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