Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mit Pandas GroupBy gruppenbezogene Statistiken (Anzahl, Mittelwert, Median, Min., Max.) abrufen?

Wie kann ich mit Pandas GroupBy gruppenbezogene Statistiken (Anzahl, Mittelwert, Median, Min., Max.) abrufen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-21 15:03:14906Durchsuche

How Can I Retrieve Group-Wise Statistics (Count, Mean, Median, Min, Max) Using Pandas GroupBy?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn