You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Pandas如何匹配两列条件并按分组对第三列求和

场景1:一次性统计所有艺术家对应各流派的总成本

直接用groupby对两个字段分组聚合即可,代码如下:

# 分组统计,输出包含Artist、Genre、Total Cost三列的完整结果表
result_all = df.groupby(['Artist', 'Genre'])['Cost'].sum().reset_index(name='Total Cost')

输出结果会包含所有艺术家和对应流派的总成本汇总,你可以直接从这个表里筛选任意艺术家的数据。

场景2:单独查询指定艺术家(以Beethoven为例)的各流派总成本

可以先过滤出目标艺术家的数据,再按流派分组求和:

# 先筛选Beethoven的所有数据,再按Genre分组统计Cost总和
beethoven_result = df[df['Artist'] == 'Beethoven'].groupby('Genre')['Cost'].sum().reset_index(name='Total Cost')

运行以上代码得到的beethoven_result就和你给出的预期输出完全一致。

补充:多条件直接查询特定组合的总成本

如果你需要直接计算某一个艺术家+流派组合的总成本,可以用多条件的loc查询,注意多个判断条件需要用括号包裹,逻辑与用&连接:

# 示例:计算Beethoven的Classical流派总成本
beethoven_classical_total = df.loc[(df['Artist'] == 'Beethoven') & (df['Genre'] == 'Classical'), 'Cost'].sum()

内容的提问来源于stack exchange,提问作者user8738575

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:24:01