Wie bekommt man Statistiken für jede Gruppe (wie Anzahl, Mittelwert usw.) mit pandas GroupBy?

In pandas kann man die Methode groupby() verwenden, um Daten nach einer oder mehreren Spalten zu gruppieren und dann die Methode agg() verwenden, um verschiedene Statistiken für jede Gruppe zu berechnen.

Zum Beispiel, angenommen Sie haben ein DataFrame namens df mit den Spalten 'A' und 'B' und Sie möchten die Daten nach Spalte 'A' gruppieren und die Anzahl, den Mittelwert und die Summe für Spalte 'B' für jede Gruppe berechnen:

import pandas as pd

df = pd.DataFrame({'A': ['foo', 'bar', 'baz', 'foo', 'bar', 'baz'],
                   'B': [1, 2, 3, 4, 5, 6]})
grouped = df.groupby('A')
result = grouped['B'].agg(['count', 'mean', 'sum'])
print(result)

Dies gibt ein DataFrame aus, das die Anzahl, den Mittelwert und die Summe der Spalte 'B' für jeden eindeutigen Wert der Spalte 'A' zeigt:

count      mean  sum
A                     
bar      2  3.500000    7
baz      2  4.500000    9
foo      2  2.500000    5

Man kann auch ein Dictionary verwenden, um die Statistiken für jede Spalte anzugeben:

import pandas as pd

df = pd.DataFrame({'A': ['foo', 'bar', 'baz', 'foo', 'bar', 'baz'],
                   'B': [1, 2, 3, 4, 5, 6]})
grouped = df.groupby('A')
result = grouped.agg({'B': ['count', 'mean', 'sum']})
print(result)

Wie man sieht kann man mit den Methoden groupby() und agg() schnell und einfach verschiedene Statistiken für jede Gruppe berechnen.