Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich mit Pandas GroupBy.agg() mehrere Aggregationen für dieselbe Spalte durchführen?

Wie kann ich mit Pandas GroupBy.agg() mehrere Aggregationen für dieselbe Spalte durchführen?

Patricia Arquette
Freigeben: 2024-12-06 17:50:15
Original
1052 Leute haben es durchsucht

How Can I Perform Multiple Aggregations on the Same Column Using Pandas GroupBy.agg()?

Mehrere Aggregationen in derselben Spalte mit Pandas GroupBy.agg()

In Pandas ermöglicht GroupBy.agg() eine bequeme Aggregation von Daten durch Anwenden einer Funktion auf jede Spalte. Es ist jedoch erforderlich, agg() mehrmals aufzurufen, wenn verschiedene Funktionen auf dieselbe Spalte angewendet werden.

Traditioneller (falscher) Ansatz:

Der intuitiv unkomplizierte Ansatz wäre sein:

df.groupby("dummy").agg({
    "returns": f1, 
    "returns": f2
})
Nach dem Login kopieren

Leider führt dies zu einem Fehler aufgrund von Duplikaten Schlüssel.

Lösung:

Da agg() ein Wörterbuch erwartet, besteht die einfache Lösung darin, ein Wörterbuch mit dem Spaltennamen und einer Liste von Funktionen zu erstellen:

df.groupby("dummy").agg({
    "returns": [f1, f2]
})
Nach dem Login kopieren

Dies führt zu einem Multi-Index-DataFrame mit der Ausgabe beider Aggregationen.

Beispiel:

Bedenken Sie den folgenden DataFrame:

import pandas as pd
import datetime as dt
import numpy as np

pd.np.random.seed(0)
df = pd.DataFrame({
    "date": [dt.date(2012, x, 1) for x in range(1, 11)],
    "returns": 0.05 * np.random.randn(10),
    "dummy": np.repeat(1, 10)
})
Nach dem Login kopieren

So wenden Sie Mittelwert und Summe auf die Spalte „Erträge“ an:

df.groupby("dummy").agg({
    "returns": ["mean", "sum"]
})
Nach dem Login kopieren

Dies ergibt:

           returns          
           mean       sum
dummy                    
1      0.036901  0.369012
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich mit Pandas GroupBy.agg() mehrere Aggregationen für dieselbe Spalte durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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