gpt4 book ai didi

python - 如何 groupby() 在多列上聚合并重命名 Pandas 0.21+ 中的多索引?

转载 作者:行者123 更新时间:2023-11-28 18:17:05 25 4
gpt4 key购买 nike

代码

import pandas as pd
df = pd.DataFrame({'A': [1, 1, 1, 2, 2],
'B': range(5),
'C': range(5)})

df1 = df.groupby('A').B.agg({'B': ['count','nunique'],'C': ['sum','median']})
df1.columns = ["_".join(x) for x in df1.columns.ravel()]

df1 输出

   B_count  B_nunique  C_sum  C_median
A
1 3 3 3 1.0
2 2 2 7 3.5

警告

__main__:1: FutureWarning: using a dict on a Series for aggregation
is deprecated and will be removed in a future version

在 Pandas 0.20 之前,这是推荐的分组和重命名方式。在没有此警告的情况下实现相同 df1 输出的优雅方法是什么?

最佳答案

正如@Wen 在问题评论中所述,删除 agg 之前的 '.B',agg 中的字典是正确的。接下来,您可以使用 mapjoin 来展平该多索引列。

import pandas as pd
df = pd.DataFrame({'A': [1, 1, 1, 2, 2],
'B': range(5),
'C': range(5)})

df1 = df.groupby('A').agg({'B': ['count','nunique'],'C': ['sum','median']})
df1.columns = df1.columns.map('_'.join)

输出:

   B_count  B_nunique  C_sum  C_median
A
1 3 3 3 1.0
2 2 2 7 3.5

关于python - 如何 groupby() 在多列上聚合并重命名 Pandas 0.21+ 中的多索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47666438/

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