In pandas groupby wurde das Argument von agg () im Diktatformat angegeben, um mehrere Funktionen auf eine Spalte anzuwenden. Da diese Funktion jedoch in Version 1 gelöscht wurde, kann sie nicht mehr verwendet werden. Die Lösung. Die verwendeten Daten stammen aus Pandas-Dokumentation.
animals = pd.DataFrame({'kind': ['cat', 'dog', 'cat', 'dog'],
'height': [9.1, 6.0, 9.5, 34.0],
'weight': [7.9, 7.5, 9.9, 198.0]})
#Addieren Sie für jede Art den Gesamtwert der Höhe und die Anzahl der Fälle"sum_all", "count_all"Benennen
animals.groupby("kind")["height"].agg({"sum_all":"sum", "count_all":"count"})
Erwartete Ausgabe (war vor Version 1 möglich)
Tatsächliche Ausgabe
SpecificationError: nested renamer is not supported
Removed support for nested renaming in DataFrame.aggregate(), Series.aggregate(), core.groupby.DataFrameGroupBy.aggregate(), core.groupby.SeriesGroupBy.aggregate(), core.window.rolling.Rolling.aggregate() (GH18529)
――Das Problem besteht darin, dass Sie gleichzeitig aggregieren und umbenennen, damit Sie sie trennen können.
animals.groupby("kind")["height"].agg(["sum", "count"])
.rename(columns={"sum": "sum_all",
"count":"count_all"})
-Verwenden Sie Named Aggrecation (Feature ab Version 0.25).
animals.groupby("kind")["height"].agg(sum_all="sum",
count_all="count")
animals.groupby("kind").agg(sum_all=("height", "sum"),
count_all=("height", "count"))