Pandalar: groupby'nin nlargest() ile nasıl kullanılacağı


Bir pandas DataFrame’de en büyük n değeri gruba göre görüntülemek için aşağıdaki sözdizimini kullanabilirsiniz:

 #display two largest values by group
df. groupby (' group_var ')[' values_var ']. nlargest ( 2 )

Ve bir pandas DataFrame’de grup başına en büyük n değer üzerinde belirli işlemleri (toplam almak gibi) gerçekleştirmek için aşağıdaki sözdizimini kullanabilirsiniz:

 #find sum of two largest values by group
df. groupby (' group_var ')[' values_var ']. apply ( lambda grp: grp.nlargest ( 2 ) .sum ())

Aşağıdaki örnekler, her yöntemin pratikte aşağıdaki pandalar DataFrame ile nasıl kullanılacağını gösterir:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [12, 29, 34, 14, 10, 11, 7, 36, 34, 22]})

#view DataFrame
print (df)

  team points
0 to 12
1 to 29
2 to 34
3 to 14
4 to 10
5 B 11
6 B 7
7 B 36
8 B 34
9 B 22

Örnek 1: En büyük N değerini gruba göre görüntüleyin

Takıma göre gruplandırılmış en büyük iki puan değerini görüntülemek için aşağıdaki sözdizimi kullanılabilir:

 #display two largest points values grouped by team
df. groupby (' team ')[' points ']. nlargest ( 2 )

team   
At 2 34
      1 29
B 7 36
      8 34
Name: points, dtype: int64

Sonuç, orijinal DataFrame’deki dizin konumlarıyla birlikte her takım için en büyük iki puan değerini görüntüler.

Örnek 2: grup başına N en büyük değer üzerinde bir işlem gerçekleştirin

Takıma göre gruplandırılmış en büyük iki puan değerinin toplamını hesaplamak için aşağıdaki sözdizimini kullanabiliriz:

 #calculate sum of two largest points values for each team
df. groupby (' team ')[' points ']. apply ( lambda grp: grp.nlargest ( 2 ) .sum ())

team
At 63
B70
Name: points, dtype: int64

Sonucun nasıl yorumlanacağı aşağıda açıklanmıştır:

  • A takımının en büyük iki puan değerinin toplamı 63’tür .
  • B Takımı için en büyük iki puan değerinin toplamı 70’tir .

Takıma göre gruplandırılmış en büyük iki puan değerinin ortalamasını hesaplamak için benzer sözdizimini kullanabiliriz:

 #calculate mean of two largest points values for each team
df. groupby (' team ')[' points ']. apply ( lambda grp: grp.nlargest ( 2 ) .mean ())

team
At 31.5
B 35.0
Name: points, dtype: float64

Sonucun nasıl yorumlanacağı aşağıda açıklanmıştır:

  • A takımının en yüksek iki puan değerinin ortalaması 31,5’tir .
  • B Takımı için en yüksek iki puan değerinin ortalaması 35,0’dır .

Not : GroupBy işlevine ilişkin tüm belgeleri burada bulabilirsiniz.

Ek kaynaklar

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

Pandalar: Grup başına kümülatif toplam nasıl hesaplanır?
Pandalar: benzersiz değerlerin gruba göre nasıl sayılacağı
Pandalar: gruba göre mod nasıl hesaplanır
Pandalar: gruba göre korelasyon nasıl hesaplanır

Yorum ekle

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