Pandalar: crosstab() işlevinde aggfunc nasıl kullanılır?


Belirli bir ölçüm kullanarak değerleri toplayan bir çapraz tablo oluşturmak için pandas crosstab() işlevindeki aggfunc bağımsız değişkenini kullanabilirsiniz:

 p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=' count ')

Aggfunc’un varsayılan değeri “count”tur ancak ortalama, medyan, toplam, minimum, maksimum vb. gibi diğer toplama yöntemlerini belirtebilirsiniz.

Ayrıca aggfunc bağımsız değişkeninde birden çok toplama yöntemi de belirtebilirsiniz:

 p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=[' min ', ' max '])

Aşağıdaki örnekler, bu yöntemlerin her birinin 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', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C '],
                   ' position ':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]})

#view DataFrame
print (df)

   team position points
0 AG 22
1 AG 25
2 AF 24
3 BG 39
4 BF 34
5 BF 20
6 BF 18
7 GC 17
8 GC 20
9 CF 19
10 CF 22

Örnek 1: aggfunc’ta bir değere sahip bir çapraz tablo oluşturma

Her konum ve takım kombinasyonu için ortalama değer puanlarını görüntüleyen bir çapraz tablo oluşturmak için aşağıdaki crosstab() işlevini aggfunc=’mean’ bağımsız değişkeniyle birlikte kullanabiliriz:

 #create crosstab that displays mean points value by team and position
p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' mean ')

position F G
team		
A 24.0 23.5
B 24.0 39.0
C 20.5 18.5

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

  • A takımının F pozisyonundaki oyuncularının ortalama puanı 24’tür .
  • A takımının G pozisyonundaki oyuncularının ortalama puanı 23,5’tir .

Ve benzeri.

Maksimum değer gibi başka bir toplama metriğini de kullanabiliriz:

 #create crosstab that displays max points value by team and position
p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' max ')


position F G
team		
At 24 25
B 34 39
C 22 20

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

  • A takımının F pozisyonundaki oyuncuları için maksimum puan 24’tür .
  • A takımında G pozisyonundaki oyuncular için maksimum puan 25’tir .

Ve benzeri.

Örnek 2: aggfunc’ta birden çok değere sahip bir çapraz tablo oluşturma

Her pozisyon ve takım kombinasyonu için puan değerlerini birden çok metrikle toplamak için crosstab() işlevini aggfunc bağımsız değişkeninde birden çok değerle kullanabiliriz:

 #create crosstab that displays min and max points by team and position
p.d. crosstab (df. team , df. position , df. points , aggfunc=[' min ', ' max ']) 

	              min max
position F G F G
team				
A 24 22 24 25
B 18 39 34 39
C 19 17 22 20

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

  • A takımının F pozisyonundaki oyuncuları için minimum puan değeri 24’tür .
  • G pozisyonundaki A takımı oyuncuları için minimum puan değeri 22’dir .
  • A takımının F pozisyonundaki oyuncuları için maksimum puan değeri 24’tür .
  • G pozisyonundaki A takımı oyuncuları için maksimum puan değeri 25’tir .

Ve benzeri.

Not : Pandas crosstab() işlevinin tam belgelerini burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde diğer yaygın panda görevlerinin nasıl gerçekleştirileceği açıklanmaktadır:

Pandalar: Yüzdelerle çapraz tablo nasıl oluşturulur?
Pandalar: GroupBy ve değer sayıları nasıl kullanılır?
Pandalar: GroupBy’yi çöp kutusu sayımı ile kullanma

Yorum ekle

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