Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mehrere Funktionen auf mehrere Spalten in einem Pandas GroupBy DataFrame anwenden?
Anwenden mehrerer Funktionen auf mehrere gruppierte Spalten
Beim Arbeiten mit gruppierten Daten können Sie mit der Groupby-Methode in Pandas mehrere Funktionen gleichzeitig anwenden ein Wörterbuch. Dieser Ansatz funktioniert jedoch nur für Series-Groupby-Objekte.
Wenn Sie einen Groupby-DataFrame haben und Funktionen auf mehrere Spalten anwenden möchten, stehen Sie vor der Herausforderung, Spaltennamen als Schlüssel im Wörterbuch anzugeben. Darüber hinaus können bestimmte Funktionen von anderen Spalten abhängen, was die Verwendung der agg-Methode komplex macht.
Hier sind die verfügbaren Optionen:
Verwenden der apply-Methode
Die Apply-Methode übergibt implizit einen DataFrame an die angewendete Funktion. Dadurch können Sie mit mehreren Spalten gleichzeitig arbeiten. Verwenden Sie ein Wörterbuch, um Spaltennamen Aggregationsfunktionen zuzuordnen:
df.groupby('group').apply({'a': ['sum', 'max'], 'b': 'mean', 'c': 'sum', 'd': lambda x: x.max() - x.min()})
Alternativ können Sie eine benutzerdefinierte Funktion verwenden, um eine Reihe aller Aggregationen zurückzugeben:
def f(x): return pd.Series({'a_sum': x['a'].sum(), 'a_max': x['a'].max(), 'b_mean': x['b'].mean(), 'c_d_prodsum': (x['c'] * x['d']).sum()}) df.groupby('group').apply(f)
Einschränkungen und Alternativen
Zusammenfassend lässt sich sagen, dass Pandas zwar nicht über eine integrierte Möglichkeit verfügt, mehrere Funktionen auf bestimmte Spalten in einem Groupby-DataFrame anzuwenden, die Apply-Methode jedoch eine flexible und anpassbare Lösung für die meisten Szenarien bietet. Für komplexe Aggregationen, die mehrere Spalten und Abhängigkeiten umfassen, müssen Sie möglicherweise alternative Ansätze erkunden oder das gruppierte Objekt manuell durchlaufen.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Funktionen auf mehrere Spalten in einem Pandas GroupBy DataFrame anwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!