gpt4 book ai didi

python - 将不同的聚合函数应用于不同的列(现在不推荐使用重命名的字典)

转载 作者:太空狗 更新时间:2023-10-30 01:26:23 25 4
gpt4 key购买 nike

我之前问过这个问题:python pandas: applying different aggregate functions to different columns但 pandas 的最新变化 https://github.com/pandas-dev/pandas/pull/15931这意味着我认为优雅的 pythonic 解决方案已被弃用,原因我真的无法理解。

问题过去是,现在仍然是:在进行 groupby 时,如何将不同的聚合函数应用于不同的字段(例如 x 的总和、x 的平均值、y 的最小值、z 的最大值等)并重命名结果字段,一次完成,或者至少以一种可能是 pythonic 且不太麻烦的方式? IE。 sum_x 不行,我需要明确地重命名这些字段。

我喜欢这种方法:

df.groupby('qtr').agg({"realgdp": {"mean_gdp": "mean", "std_gdp": "std"},
"unemp": {"mean_unemp": "mean"}})

将被弃用,现在会产生此警告:

FutureWarning: using a dict with renaming is deprecated and will be removed in a future version

谢谢!

最佳答案

agg() 未被弃用,但使用 agg 重命名是。

请仔细阅读文档:https://pandas.pydata.org/pandas-docs/stable/whatsnew.html#deprecate-groupby-agg-with-a-dictionary-when-renaming

弃用的内容:1. 将 dict 传递给分组/滚动/重采样系列,允许重命名生成的聚合2. 将 dict-of-dicts 传递给分组/滚动/重新采样的 DataFrame。

虽然这不是一行代码,但它会起作用

df.groupby('qtr').agg({"realgdp": ["mean",  "std"], "unemp": "mean"})

df.columns = df.columns.map('_'.join)

df.rename(columns = {'realgdp_mean': 'mean_gdp', 'realgdp_std':'std_gdp', 'unemp_mean':'mean_unemp'}, inplace = True)

关于python - 将不同的聚合函数应用于不同的列(现在不推荐使用重命名的字典),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46694207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com