Pandas: so verwenden sie aggfunc in der funktion crosstab()


Sie können das Argument aggfunc in der Funktion pandas crosstab() verwenden, um eine Kreuztabelle zu erstellen, die Werte anhand einer bestimmten Metrik aggregiert:

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

Der Standardwert von aggfunc ist „count“, Sie können jedoch auch andere Aggregationsmethoden wie Durchschnitt, Median, Summe, Min., Max. usw. angeben.

Sie können im Argument aggfunc auch mehrere Aggregationsmethoden angeben:

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

Die folgenden Beispiele zeigen, wie jede dieser Methoden in der Praxis mit dem folgenden Pandas DataFrame verwendet wird:

 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

Beispiel 1: Erstellen Sie eine Kreuztabelle mit einem Wert in aggfunc

Wir können die folgende Funktion crosstab() mit dem Argument aggfunc=’mean‘ verwenden, um eine Kreuztabelle zu erstellen, die den Durchschnittswert der Punkte für jede Kombination aus Position und Team anzeigt:

 #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

So interpretieren Sie das Ergebnis:

  • Der Punktedurchschnitt der Spieler der Mannschaft A auf Position F beträgt 24 .
  • Der Punktedurchschnitt der Spieler der Mannschaft A auf Position G beträgt 23,5 .

Und so weiter.

Wir können auch eine andere Aggregationsmetrik verwenden, beispielsweise den Maximalwert:

 #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

So interpretieren Sie das Ergebnis:

  • Die maximale Punktzahl für Spieler der Mannschaft A auf Position F beträgt 24 .
  • Die maximale Punktzahl für Spieler von Team A auf Position G beträgt 25 .

Und so weiter.

Beispiel 2: Erstellen Sie eine Kreuztabelle mit mehreren Werten in aggfunc

Wir können die Funktion crosstab() mit mehreren Werten im Argument aggfunc verwenden, um Punktwerte nach mehreren Metriken für jede Positions- und Teamkombination zu aggregieren:

 #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

So interpretieren Sie das Ergebnis:

  • Der Mindestpunktwert für Spieler der Mannschaft A auf Position F beträgt 24 .
  • Der Mindestpunktwert für Spieler von Team A auf Position G beträgt 22 .
  • Der maximale Punktewert für Spieler der Mannschaft A auf Position F beträgt 24 .
  • Der maximale Punktewert für Spieler von Team A auf Position G beträgt 25 .

Und so weiter.

Hinweis : Die vollständige Dokumentation der Pandas- Crosstab() -Funktion finden Sie hier .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Panda-Aufgaben ausführen:

Pandas: So erstellen Sie eine Kreuztabelle mit Prozentsätzen
Pandas: So verwenden Sie GroupBy und Wertzählungen
Pandas: So verwenden Sie GroupBy mit Bin-Anzahl

Einen Kommentar hinzufügen

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