Pandalar: ortalamayı hesaplamak ve nan'leri göz ardı etmemek için groupby'yi kullanın


Bir sütuna göre gruplamak ve başka bir sütunun ortalama değerini hesaplamak için pandas groupby() işlevini kullanırken, pandalar varsayılan olarak NaN değerlerini göz ardı edecektir.

Bunun yerine, bir sütunda NaN değerleri varsa NaN’i görüntülemek istiyorsanız aşağıdaki temel sözdizimini kullanabilirsiniz:

 df. groupby (' team '). agg ({' points ': lambda x: x. mean (skipna= False )})

Bu özel örnek, DataFrame sütununun satırlarını Takıma göre gruplandıracak ve ardından NaN değerlerini göz ardı etmeden puan sütununun ortalama değerini hesaplayacaktır.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: pandas groupby() kullanın ve NaN’leri göz ardı etmeyin

Çeşitli basketbol oyuncuları hakkında bilgi içeren aşağıdaki pandalar DataFrame’e sahip olduğumuzu varsayalım:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [15, np.nan, 24, 25, 20, 35, 34, 19, 14, 12]})

#view DataFrame
print (df)

  team points
0 to 15.0
1 A NaN
2 A 24.0
3 A 25.0
4 A 20.0
5 B 35.0
6 B 34.0
7B 19.0
8B 14.0
9B 12.0

Takıma göre gruplandırılmış ortalama puan değerini hesaplamak için aşağıdaki sözdizimini kullandığımızı varsayalım:

 #calculate mean of points, grouped by team
df. groupby (' team ')[' points ']. mean ()

team
At 21.0
B 22.8
Name: points, dtype: float64

Puan sütununda A Takımı için bir NaN değeri olsa bile, her takım için ortalama puan değerinin döndürüldüğünü unutmayın.

Varsayılan olarak pandalar ortalamayı hesaplarken NaN değerini göz ardı eder.

Bunun yerine, gerçekten NaN’ler varsa, NaN’i ortalama değer olarak görüntülemek istiyorsanız aşağıdaki sözdizimini kullanabilirsiniz:

 #calculate mean points value grouped by team and don't ignore NaNs
df. groupby (' team '). agg ({' points ': lambda x: x. mean (skipna= False )})

      points
team	
To NaN
B 22.8

Bu kez A Takımı için ortalama puan değeri olarak bir NaN değerinin döndürüldüğünü unutmayın.

skipna=False argümanını kullanarak pandalara ortalamayı hesaplarken NaN değerlerini göz ardı etmemelerini söyledik.

Ek kaynaklar

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

Pandas GroupBy kullanılarak benzersiz değerler nasıl sayılır?
Pandas Groupby’ye bir işlev nasıl uygulanır?
Pandas GroupBy’den Bar Grafiği Nasıl Oluşturulur

Yorum ekle

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