Heim >Backend-Entwicklung >Python-Tutorial >Wie berechnet man gruppenweise Statistiken (Anzahl, Mittelwert usw.) in Pandas GroupBy?
Problem:
Sie haben ein DataFrame df in Pandas und möchten gruppenweise Statistiken wie Mittelwert, Anzahl und mehr für mehrere berechnen Spalten.
Kurze Antwort:
Um die Zeilenanzahl pro Gruppe zu erhalten, rufen Sie einfach .size() auf, was eine Serie zurückgibt:
df.groupby(['col1','col2']).size()
Für ein DataFrame-Ergebnis mit Anzahlen als Spalte verwenden Sie:
df.groupby(['col1', 'col2']).size().reset_index(name='counts')
Detaillierte Beispiel:
Betrachten Sie den DataFrame df:
col1 col2 col3 col4 col5 col6 0 A B 0.20 -0.61 -0.49 1.49 1 A B -1.53 -1.01 -0.39 1.82 2 A B -0.44 0.27 0.72 0.11 3 A B 0.28 -1.32 0.38 0.18 4 C D 0.12 0.59 0.81 0.66 5 C D -0.13 -1.65 -1.64 0.50 6 C D -1.42 -0.11 -0.18 -0.44 7 E F -0.00 1.42 -0.26 1.17 8 E F 0.91 -0.47 1.35 -0.34 9 G H 1.48 -0.63 -1.14 0.17
Zeilenanzahl abrufen:
df.groupby(['col1', 'col2']).size()
Ausgabe:
col1 col2 A B 4 C D 3 E F 2 G H 1 dtype: int64
Erstellen eines DataFrame mit Zählungen:
df.groupby(['col1', 'col2']).size().reset_index(name='counts')
Ausgabe:
col1 col2 counts 0 A B 4 1 C D 3 2 E F 2 3 G H 1
Einschließlich Ergebnisse für weitere Statistiken:
Zur Berechnung zusätzlicher Statistiken wie Mittelwert, Median und Min. verwenden agg():
(df .groupby(['col1', 'col2']) .agg({ 'col3': ['mean', 'count'], 'col4': ['median', 'min', 'count'] }))
Ausgabe:
col4 col3 median min count mean count col1 col2 A B -0.810 -1.32 4 -0.372500 4 C D -0.110 -1.65 3 -0.476667 3 E F 0.475 -0.47 2 0.455000 2 G H -0.630 -0.63 1 1.480000 1
Statistik in einzelne Aggregationen aufteilen:
Für mehr Kontrolle über die Ausgabe teilen Sie die Statistiken und kombinieren Sie sie mit join:
gb = df.groupby(['col1', 'col2']) counts = gb.size().to_frame(name='counts') (counts .join(gb.agg({'col3': 'mean'}).rename(columns={'col3': 'col3_mean'})) .join(gb.agg({'col4': 'median'}).rename(columns={'col4': 'col4_median'})) .join(gb.agg({'col4': 'min'}).rename(columns={'col4': 'col4_min'})) .reset_index() )
Ausgabe:
col1 col2 counts col3_mean col4_median col4_min 0 A B 4 -0.372500 -0.810 -1.32 1 C D 3 -0.476667 -0.110 -1.65 2 E F 2 0.455000 0.475 -0.47 3 G H 1 1.480000 -0.630 -0.63
Das obige ist der detaillierte Inhalt vonWie berechnet man gruppenweise Statistiken (Anzahl, Mittelwert usw.) in Pandas GroupBy?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!