Panda's: aggfunc gebruiken in de kruistabel()-functie


U kunt het aggfunc- argument in de pandas crosstab() -functie gebruiken om een kruistabel te maken waarin waarden worden samengevoegd met behulp van een specifieke metriek:

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

De standaardwaarde van aggfunc is „count“, maar u kunt andere aggregatiemethoden opgeven, zoals gemiddelde, mediaan, som, min, max, enz.

U kunt ook meerdere aggregatiemethoden opgeven in het aggfunc- argument:

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

De volgende voorbeelden laten zien hoe u elk van deze methoden in de praktijk kunt gebruiken met de volgende panda’s DataFrame:

 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

Voorbeeld 1: Maak een kruistabel met een waarde in aggfunc

We kunnen de volgende kruistabel()- functie gebruiken met het aggfunc=’mean‘- argument om een kruistabel te maken die de gemiddelde waardepunten voor elke positie- en teamcombinatie weergeeft:

 #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

Zo interpreteert u het resultaat:

  • Het gemiddelde aantal punten van de spelers van team A op positie F is 24 .
  • Het gemiddelde aantal punten van spelers van team A op positie G is 23,5 .

Enzovoort.

We kunnen ook een andere aggregatiestatistiek gebruiken, zoals de maximale waarde:

 #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

Zo interpreteert u het resultaat:

  • Het maximale aantal punten voor spelers van team A op positie F is 24 .
  • Het maximale aantal punten voor spelers van team A op positie G is 25 .

Enzovoort.

Voorbeeld 2: Maak een kruistabel met meerdere waarden in aggfunc

We kunnen de functie kruistabel() gebruiken met meerdere waarden in het aggfunc- argument om puntwaarden samen te voegen met meerdere statistieken voor elke positie- en teamcombinatie:

 #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

Zo interpreteert u het resultaat:

  • De minimale puntenwaarde voor spelers van team A op positie F is 24 .
  • De minimale puntenwaarde voor spelers van team A op positie G is 22 .
  • De maximale puntenwaarde voor spelers van team A op positie F is 24 .
  • De maximale puntenwaarde voor spelers van team A op positie G is 25 .

Enzovoort.

Opmerking : u kunt de volledige documentatie van de pandas crosstab() -functie hier vinden.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende panda-taken kunt uitvoeren:

Panda’s: een kruistabel met percentages maken
Panda’s: GroupBy gebruiken en waardetellingen
Panda’s: GroupBy gebruiken met het aantal bakken

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert