Pandas: cara menemukan nilai unik dan mengabaikan nan


Anda dapat menentukan fungsi khusus berikut untuk mencari nilai unik pada panda dan mengabaikan nilai NaN:

 def unique_no_nan(x):
    return x. dropna (). single ()

Fungsi ini akan mengembalikan rangkaian pandas yang berisi setiap nilai unik kecuali nilai NaN.

Contoh berikut menunjukkan cara menggunakan fungsi ini dalam skenario berbeda dengan pandas DataFrame berikut:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Mavs', 'Celtics', 'Celtics', 'Celtics'],
                   ' points ': [95, 95, 100, 113, 100, np.nan]})

#view DataFrame
print (df)

      team points
0 Mavs 95.0
1 Mavs 95.0
2 Mavs 100.0
3 Celtics 113.0
4 Celtics 100.0
5 Celtics NaN

Contoh 1: Temukan Nilai Unik di Kolom Pandas dan Abaikan Nilai NaN

Misalkan kita menggunakan fungsi pandas Unique() untuk menampilkan semua nilai unik di kolom poin DataFrame:

 #display unique values in 'points' column
df[' points ']. single ()

array([ 95., 100., 113., no])

Perhatikan bahwa fungsi unik() menyertakan nan dalam hasil secara default.

Namun, misalkan kita menggunakan fungsi unik_no_nan() khusus untuk menampilkan nilai unik di kolom poin :

 #display unique values in 'points' column and ignore NaN
unique_no_nan(df[' points '])

array([ 95., 100., 113.])

Fungsi kami mengembalikan setiap nilai unik di kolom poin , tidak termasuk NaN.

Contoh 2: Temukan nilai unik di Pandas Groupby dan abaikan nilai NaN

Misalkan kita menggunakan fungsi pandas groupby() dan agg() untuk menampilkan semua nilai unik di kolom poin , dikelompokkan berdasarkan kolom tim :

 #display unique values in 'points' column grouped by team
df. groupby (' team ')[' points ']. agg ([' single '])

	unique
team	
Celtics [113.0, 100.0, nah]
Mavs [95.0, 100.0]

Perhatikan bahwa fungsi unik() menyertakan nan dalam hasil secara default.

Namun, misalkan kita menggunakan fungsi unik_no_nan() khusus untuk menampilkan nilai unik di kolom poin , yang dikelompokkan berdasarkan kolom tim :

 #display unique values in 'points' column grouped by team and ignore NaN
df. groupby (' team ')[' points ']. apply ( lambda x: unique_no_nan(x))

team
Celtics [113.0, 100.0]
Mavs [95.0, 100.0]
Name: points, dtype: object

Fungsi kami mengembalikan setiap nilai unik di kolom poin untuk setiap tim , tidak termasuk nilai NaN.

Sumber daya tambahan

Tutorial berikut menjelaskan cara menjalankan fungsi umum lainnya di panda:

Pandas: Cara memilih satu baris di DataFrame
Pandas: Cara mendapatkan nilai unik dari kolom indeks
Pandas: cara menghitung kombinasi unik dua kolom

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *