Pandas: so gruppieren sie zwei spalten und aggregieren sie
Sie können die folgende grundlegende Syntax mit der Funktion „groupby()“ in Pandas verwenden, um nach zwei Spalten zu gruppieren und eine weitere Spalte zu aggregieren:
df. groupby ([' var1 ',' var2 '])[' var3 ']. mean ()
In diesem speziellen Beispiel wird der DataFrame nach den Spalten var1 und var2 gruppiert und dann der Durchschnitt der Spalte var3 berechnet.
Die folgenden Beispiele zeigen, wie man mit dem folgenden Pandas-DataFrame in zwei Spalten gruppiert und aggregiert:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'G', 'G', 'F'], ' points ': [15, 22, 24, 25, 20, 35, 34, 19, 14, 12]}) #view DataFrame print (df) team position points 0 AG 15 1 AG 22 2 AF 24 3 AF 25 4 AF 20 5 BG 35 6 BG 34 7 BG 19 8 BG 14 9 BF 12
Beispiel 1: Gruppieren Sie zwei Spalten und berechnen Sie den Durchschnitt einer anderen Spalte
Wir können die folgende Syntax verwenden, um den Durchschnittswert der Punktespalte , gruppiert nach den Team- und Positionsspalten , zu berechnen:
#calculate mean of points grouped by team and position columns
df. groupby ([' team ', ' position '])[' points ']. mean ()
team position
AF23.0
G 18.5
BF 12.0
G 25.5
Name: points, dtype: float64
Aus dem Ergebnis können wir sehen:
- Der durchschnittliche Punktwert der Spieler von Team A auf Position F beträgt 23 .
- Der durchschnittliche Punktwert der Spieler von Team A auf Position G beträgt 18,5 .
Und so weiter.
Beispiel 2: Gruppieren Sie zwei Spalten und berechnen Sie das Maximum einer anderen Spalte
Wir können die folgende Syntax verwenden, um den Maximalwert der Punktespalte , gruppiert nach den Team- und Positionsspalten , zu berechnen:
#calculate max of points grouped by team and position columns
df. groupby ([' team ', ' position '])[' points ']. max ()
team position
AF25
G22
BF 12
G 35
Name: points, dtype: int64
Aus dem Ergebnis können wir sehen:
- Der maximale Punktewert für Spieler von Team A auf Position F beträgt 25 .
- Der maximale Punktewert für Spieler von Team A auf Position G beträgt 22 .
Und so weiter.
Beispiel 3: Nach zwei Spalten gruppieren und Vorkommen zählen
Wir können die folgende Syntax verwenden, um das Vorkommen jeder Kombination der Team- und Positionsspalten zu zählen:
#count occurrences of each combination of team and position columns
df. groupby ([' team ', ' position ']). size ()
team position
AF3
G2
BF 1
G4
dtype: int64
Aus dem Ergebnis können wir sehen:
- Es gibt 3 Spieler in Team A auf Position F.
- Es gibt 2 Spieler in Team A auf Position G.
Und so weiter.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in Pandas ausführen:
So zählen Sie eindeutige Werte mit Pandas GroupBy
So wenden Sie eine Funktion auf Pandas Groupby an
So erstellen Sie ein Balkendiagramm aus Pandas GroupBy