Oft möchten Sie möglicherweise nach mehreren Spalten eines Pandas DataFrame gruppieren und aggregieren. Glücklicherweise ist dies mit den Pandas-Funktionen .groupby() und .agg()einfach zu bewerkstelligen.

In diesem Tutorial werden einige Beispiele für die praktische Verwendung dieser Funktionen erläutert.

Beispiel 1: Nach zwei Spalten gruppieren und Durchschnitt ermitteln

Angenommen, wir haben die folgenden Pandas DataFrame:

import pandas as pd

#Dataframe erstellen
df = pd.DataFrame({'team': ['A', 'B', 'B', 'B', 'B', 'M', 'M', 'M'],
                   'position': ['G', 'G', 'F', 'G', 'F', 'F', 'C', 'C'],
                   'assists': [5, 7, 7, 8, 5, 7, 6, 9],
                   'rebounds': [11, 8, 10, 6, 6, 9, 6, 10]})

#Dataframe anzeigen
print(df)

  team position  assists  rebounds
0    A        G        5        11
1    B        G        7         8
2    B        F        7        10
3    B        G        8         6
4    B        F        5         6
5    M        F        7         9
6    M        C        6         6
7    M        C        9        10

Der folgende Code zeigt, wie Sie nach den Spalten "Team" und "Position" gruppieren und die mittleren Vorlagen finden:

df.groupby(['team', 'position']).agg({'assists': ['mean']}).reset_index()


        team    position  assists
                          mean
0   A   G     5.0
1   B   F     6.0
2   B   G     7.5
3   M   C     7.5
4   M   F     7.0

Die Ausgabe sagt uns:

  • Die durchschnittliche Unterstützung für Spieler auf Position G in Team A beträgt 5,0.
  • Die durchschnittliche Unterstützung für Spieler auf Position F in Team B beträgt 6,0.
  • Die durchschnittliche Unterstützung für Spieler auf Position G in Team B beträgt 7,5.

Und so weiter.

Wir können auch den folgenden Code verwenden, um die Spalten im resultierenden DataFrame umzubenennen:

#Gruppe nach Team und Position und finde gemeine Assists
new = df.groupby(['team', 'position']).agg({'assists': ['mean']}).reset_index()

#Spalten umbenennen
new.columns = ['team', 'pos', 'mean_assists']

#Dataframe anzeigen
print(new)

    team    pos mean_assists
0   A   G   5.0
1   B   F   6.0
2   B   G   7.5
3   M   C   7.5
4   M   F   7.0

Beispiel 2: Gruppieren nach zwei Spalten und Suchen mehrerer Statistiken

Angenommen, wir verwenden denselben Pandas-DataFrame wie im vorherigen Beispiel:

import pandas as pd

#Dataframe erstellen
df = pd.DataFrame({'team': ['A', 'B', 'B', 'B', 'B', 'M', 'M', 'M'],
                   'position': ['G', 'G', 'F', 'G', 'F', 'F', 'C', 'C'],
                   'assists': [5, 7, 7, 8, 5, 7, 6, 9],
                   'rebounds': [11, 8, 10, 6, 6, 9, 6, 10]})

Der folgende Code zeigt, wie Sie den Median und die maximale Anzahl von Rebounds ermitteln, die in den Spalten "team" und "position" gruppiert sind:

df.groupby(['team', 'position']).agg({'rebounds': ['median', 'max']}).reset_index()


        team    position    rebounds
                         median max
0   A   G    11 11
1   B   F    8  10
2   B   G    7  8
3   M   C    8  10
4   M   F    9  9

Die Ausgabe sagt uns:

  • Der Median der Rebounds-Assists für Spieler auf Position G in Team A beträgt 11.
  • Der maximale Rückprall für Spieler auf Position G in Team A beträgt 11.
  • Der Median der Rebounds für Spieler auf Position F in Team B beträgt 8.
  • Die maximale Rückprallrate für Spieler auf Position F in Team B beträgt 10.

Und so weiter.

Zusätzliche Ressourcen

So filtern Sie einen Pandas DataFrame unter mehreren Bedingungen
So zählen Sie fehlende Werte in einem Pandas DataFrame
So stapeln Sie mehrere Pandas DataFrames

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: