DataFrame分组聚合多函数调用报错:TypeError问题求助
问题原因与解决方案
这个报错是因为你使用的pandas版本低于0.25.0——在0.25.0之前的版本,agg()方法不支持直接通过关键字=(列名, 聚合函数)这种关键字参数的方式传递带别名的聚合操作。
解决方法
方法1:升级pandas
将pandas升级到0.25.0或更高版本,你的原代码就能正常运行:
pip install --upgrade pandas
方法2:适配旧版本的写法
如果无法升级pandas,可以改用以下两种兼容写法:
写法A:通过列表传递聚合操作
df = df.groupby(['Name', 'ID'])['Amount'].agg([('Average_Revenue', np.mean), ('Sum_Revenue', np.sum)]) # 如果需要扁平化列名(去掉默认的多层索引) df = df.reset_index() df.columns = ['Name', 'ID', 'Average_Revenue', 'Sum_Revenue']
写法B:先聚合再重命名列
# 先执行聚合,再手动修改列名 df = df.groupby(['Name', 'ID'])['Amount'].agg(['mean', 'sum']) df.columns = ['Average_Revenue', 'Sum_Revenue'] df = df.reset_index()
内容的提问来源于stack exchange,提问作者Samir112
相关产品推荐
相关产品推荐

