python - Pandas groupby 聚合多个总和
问题描述
新手问题。我想使用两个汇总列来计算数据框列,如下所示:
grouped_columns = df1.groupby(['Parent1', 'Parent2']).agg(Attr_fac = ('Exposure1', 'sum') / ('Exposure2', 'sum'))
不断收到 TypeError: Unsupported operand type(s) for /: 'tuple' 和 'tuple'
Exposure1 和 Exposure2 是从 excel 文件中读取的数值列。请帮忙,我做错了什么?
解决方案
你真的不能这样做,('Exposure1', 'sum') / ('Exposure2', 'sum')
因此会出现错误。你可以试试:
grouped_columns = (df1.groupby(['Parent1', 'Parent2'])
[['Exposure1','Exposure2']].sum()
.assign(Attr_fac=lambda x: x['Exposure1']/x['Exposure2'])
)
或者groupby().apply()
:
grouped_columns = (df1.groupby(['Parent1', 'Parent2'])
.apply(lmabda x: x['Exposure1'].sum()/x['Exposure2'].sum())
)
推荐阅读
- ios - 视图约束不更新
- date - 谷歌表格“ctrl+;” 进入明天的日期?
- docker - 如何从 devcontainer 转发 UDP 端口?
- python - 编码自定义似然 Pymc3
- google-sheets - 使用双引号在 Google 表格中导出 CSV 输出 3 个双引号
- python - 我们如何在 sqlmodel 中迁移数据库?
- javascript - 强制 mocha 要求返回值?
- javascript - Javascript动态替换正则表达式匹配
- linux - 在 Debian 11 (Bullseye) 上,docker 容器内的 /proc/self/cgroup 不显示 docker 信息
- amazon-web-services - 如何从其 ARN 中获取 AWS 角色的友好名称?