Dans pandas groupby, j'ai donné l'argument de agg () au format dict pour appliquer plusieurs fonctions à une colonne, mais comme cette fonction a été supprimée dans la v1, elle ne peut plus être utilisée. La solution. Les données utilisées proviennent de la documentation pandas.
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]})
#Pour chaque espèce, additionnez la valeur totale de la hauteur et le nombre de caisses, et chaque"sum_all", "count_all"Appeler
animals.groupby("kind")["height"].agg({"sum_all":"sum", "count_all":"count"})
Sortie attendue (c'était possible avant la v1)
Sortie réelle
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)
―― Le problème est que vous récapitulez et renommez en même temps, vous pouvez donc les séparer.
animals.groupby("kind")["height"].agg(["sum", "count"])
.rename(columns={"sum": "sum_all",
"count":"count_all"})
-Utiliser Named Aggrecation (fonctionnalité de la v0.25)
animals.groupby("kind")["height"].agg(sum_all="sum",
count_all="count")
animals.groupby("kind").agg(sum_all=("height", "sum"),
count_all=("height", "count"))
Recommended Posts