Pandas: so verwenden sie group by mit der where-bedingung
Der einfachste Weg, „group by“ mit einer „Where“ -Bedingung in Pandas zu verwenden, ist die Verwendung der Funktion „query()“ :
df. query (" team == 'A' "). groupby ([" position "])[" points "]. mean (). reset_index ()
In diesem speziellen Beispiel wird der Durchschnittswert der Punkte berechnet, gruppiert nach Position , wobei Team in einigen Pandas-DataFrames gleich „A“ ist.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: So verwenden Sie „Gruppieren nach“ mit der Bedingung „Where“ in Pandas
Angenommen, wir haben den folgenden Pandas-DataFrame, der Informationen über verschiedene Basketballspieler enthält:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'F'], ' points ': [22, 14, 15, 10, 8, 29, 33, 18]}) #view DataFrame print (df) team position points 0 AG 22 1 AG 14 2 AF15 3 AF 10 4 AF 8 5 BG 29 6 BG 33 7 BF 18
Wir können den folgenden Code verwenden, um den durchschnittlichen Punktwert zu berechnen, gruppiert nach Position , wobei das Team gleich „A“ ist:
#calculate mean value of points, grouped by position, where team == 'A' df. query (" team == 'A' "). groupby ([" position "])[" points "]. mean (). reset_index () position points 0 F 11.0 1G 18.0
Aus dem Ergebnis können wir sehen:
- Der durchschnittliche Punktwert für Spieler auf Position „F“ in Team A beträgt 11 .
- Der durchschnittliche Punktewert für Spieler auf der „G“-Position von Team A beträgt 18 .
Beachten Sie, dass wir in der Funktion query() auch den & -Operator verwenden können, um Zeilen zu finden, in denen mehrere Bedingungen erfüllt sind.
Der folgende Code zeigt beispielsweise, wie der durchschnittliche Punktwert , gruppiert nach Position , berechnet wird, wobei Team gleich „A“ und Position gleich „G“ ist:
#calculate mean value of points by position where team is 'A' and position is 'G' df. query (" team=='A' & position=='G' "). groupby ([" position "])[" points "]. mean (). reset_index () position points 0G 18.0
Aus dem Ergebnis können wir ersehen, dass der durchschnittliche Punktwert für Spieler auf Position „G“ in Team A 18 beträgt.
Da wir in der Funktion query() zwei Bedingungen angegeben haben, wurden nur Zeilen verwendet, die beide Bedingungen erfüllten.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:
So führen Sie eine GroupBy-Summe in Pandas durch
So verwenden Sie Groupby und Plot in Pandas
So zählen Sie eindeutige Werte mit GroupBy in Pandas