Pandalar: benzersiz değerler nasıl bulunur ve nan nasıl göz ardı edilir


Pandalarda benzersiz değerler aramak ve NaN değerlerini yok saymak için aşağıdaki özel işlevi tanımlayabilirsiniz:

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

Bu işlev, NaN değerleri dışında her benzersiz değeri içeren bir panda serisi döndürecektir.

Aşağıdaki örnekler, bu işlevin aşağıdaki pandalar DataFrame ile farklı senaryolarda nasıl kullanılacağını gösterir:

 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

Örnek 1: Pandalar Sütununda Benzersiz Değerler Bulun ve NaN Değerlerini Yoksayın

DataFrame’in puan sütunundaki tüm benzersiz değerleri görüntülemek için pandas Unique() işlevini kullandığımızı varsayalım:

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

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

Unique() fonksiyonunun varsayılan olarak sonuçlara nan’ı dahil ettiğini unutmayın.

Ancak bunun yerine, benzersiz değerleri puan sütununda görüntülemek için özel benzersiz_no_nan() işlevimizi kullandığımızı varsayalım:

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

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

Fonksiyonumuz, NaN hariç, puan sütunundaki her benzersiz değeri döndürür.

Örnek 2: Pandas Groupby’de benzersiz değerler bulun ve NaN değerlerini göz ardı edin

Puan sütunundaki tüm benzersiz değerleri ekip sütununa göre gruplandırılmış olarak görüntülemek için pandas groupby() ve agg() işlevlerini kullandığımızı varsayalım:

 #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]

Unique() fonksiyonunun varsayılan olarak sonuçlara nan’ı dahil ettiğini unutmayın.

Ancak bunun yerine, puan sütunundaki benzersiz değerleri ekip sütununa göre gruplandırılmış olarak görüntülemek için özel benzersiz_no_nan() işlevimizi kullandığımızı varsayalım:

 #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

Fonksiyonumuz, NaN değerlerini saymadan, her takım için puan sütunundaki her benzersiz değeri döndürür.

Ek kaynaklar

Aşağıdaki eğitimlerde pandalarda diğer ortak işlevlerin nasıl gerçekleştirileceği açıklanmaktadır:

Pandalar: DataFrame’de tek satırlar nasıl seçilir
Pandalar: Dizin sütunundan benzersiz değerler nasıl alınır?
Pandalar: iki sütunun benzersiz kombinasyonlarının nasıl sayılacağı

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir