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
Freigeben: 2024-12-21 15:03:14
Original
881 Leute haben es durchsucht

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()
Nach dem Login kopieren

Um diese Serie in einen DataFrame zu konvertieren, können Sie .reset_index(name='counts'):

df.groupby(['col1', 'col2']).size().reset_index(name='counts')
Nach dem Login kopieren

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']
})
Nach dem Login kopieren

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()
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage