Gruppenbezogene Statistiken mit Pandas GroupBy abrufen
Problem
Gegeben ist ein DataFrame df mit Wenn Sie mehrere Spalten (col1, col2 usw.) haben, möchten Sie Gruppenstatistiken wie Anzahl, Mittelwert, Median, Minimum usw. berechnen Maximum, für jede eindeutige Kombination von Werten in diesen Spalten.
Ansatz
Pandas bietet eine umfassende Groupby-Funktion, die eine gruppenweise Datenanalyse ermöglicht. Es ermöglicht Ihnen, Daten basierend auf bestimmten Gruppierungsschlüsseln zu aggregieren und umzuwandeln.
Anzahl
Um die Anzahl der Zeilen in jeder Gruppe zu ermitteln, verwenden Sie die Methode .size() . Es gibt eine Serie zurück, die die Zeilenanzahl für jede eindeutige Gruppe enthält. Zum Beispiel:
df.groupby(['col1', 'col2']).size()
Um diese Serie in einen DataFrame zu konvertieren, können Sie .reset_index(name='counts'):
df.groupby(['col1', 'col2']).size().reset_index(name='counts')
Multiple Statistics verwenden
Um mehrere Statistiken für jede Gruppe zu berechnen, verwenden Sie die Methode .agg(). Sie können die Statistiken, die Sie berechnen möchten, als Wörterbuch mit Spaltennamen als Schlüssel und Aggregationsfunktionen als Werten angeben. Um beispielsweise Mittelwert, Median und Minimum für die Spalten Spalte 3 und Spalte 4 zu berechnen:
df.groupby(['col1', 'col2']).agg({ 'col3': ['mean', 'count'], 'col4': ['median', 'min', 'count'] })
Statistiken kombinieren
Um verschiedene Aggregationen in einem einzigen DataFrame zu kombinieren, müssen Sie kann die Join-Methode verwenden. Dadurch können Sie mehrere DataFrames basierend auf gemeinsamen Spalten zusammenführen. Um beispielsweise ein Ergebnis zu erstellen, das Anzahl, Mittelwert, Median und Minimum kombiniert:
counts = df.groupby(['col1', 'col2']).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()
Das obige ist der detaillierte Inhalt vonWie kann ich mit Pandas GroupBy gruppenbezogene Statistiken (Anzahl, Mittelwert, Median, Min., Max.) abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!