Pyt*_*ous 5 python group-by pandas
我之前曾问过这个问题:python pandas:将不同的聚合函数应用于不同的列, 但对pandas的最新更改https://github.com/pandas-dev/pandas/pull/15931 意味着我认为这是一种优雅而pythonic不推荐使用该解决方案,原因是我确实无法理解。
问题过去是,现在仍然是:在进行分组时,如何将不同的聚合函数应用于不同的字段(例如x的总和,x的平均值,y的最小值,z的最大值等)并重命名结果字段,一口气,或者至少以一种可能的pythonic且不太麻烦的方式?即sum_x不会,我需要显式重命名字段。
我喜欢这种方法:
df.groupby('qtr').agg({"realgdp": {"mean_gdp": "mean", "std_gdp": "std"},
"unemp": {"mean_unemp": "mean"}})
Run Code Online (Sandbox Code Playgroud)
将不推荐使用,现在会产生以下警告:
FutureWarning: using a dict with renaming is deprecated and will be removed in a future version
Run Code Online (Sandbox Code Playgroud)
谢谢!
agg() 并未被弃用,但使用 agg 重命名则被弃用。
已弃用的内容: 1. 将字典传递给分组/滚动/重采样系列,允许重命名生成的聚合 2. 将字典中的字典传递给分组/滚动/重采样 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |