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

如何用Python/Pandas合并C1-C4列重复行并汇总Value值?

解决Pandas中按指定列合并重复行并汇总值的问题

没问题,这个需求在Pandas里可以通过分组聚合轻松实现。核心思路是按C1-C4列分组,对Value求和,同时保留每组首行的ID、C5、C6内容。

完整解决方案代码

import pandas as pd

# 构造你的DataFrame
df = pd.DataFrame({
    'Value': [100,50,20,10,5,2], 
    'ID': [1,2,3,4,5,6], 
    'C1': ['aa','bb','aa','dd','aa','bb'], 
    'C2': ['ee','ff','ee','hh','ee','ff'], 
    'C3': ['ii','jj','ii','ll','ii','jj'], 
    'C4': ['mm','nn','mm','pp','mm','nn'], 
    'C5': ['aaaaa','cccc','eeee','gggg','abcd','aaaaa'], 
    'C6': ['bbbb','ddddd','ffff','hhhh','efgh','bbbb']
})

# 按C1-C4分组,指定各列的聚合规则
result = df.groupby(['C1', 'C2', 'C3', 'C4'], as_index=False).agg({
    'Value': 'sum',       # 汇总Value列
    'ID': 'first',        # 保留每组首行的ID
    'C5': 'first',        # 保留每组首行的C5
    'C6': 'first'         # 保留每组首行的C6
})

# 调整列顺序,匹配你期望的输出格式
result = result[['Value', 'ID', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6']]

print(result)

代码解释

  • 分组:groupby(['C1', 'C2', 'C3', 'C4']) 将所有C1-C4内容完全相同的行归为一组。
  • 聚合规则:
    • 'Value': 'sum':对每组的Value值求和,实现汇总需求。
    • 'ID': 'first'/'C5': 'first'/'C6': 'first':取每组第一行对应的列值,满足你保留首行内容的要求。
  • 列顺序调整:最后通过重新指定列名顺序,让输出和你期望的格式一致。

运行结果

Value  ID C1 C2 C3 C4     C5      C6
0    125   1 aa ee ii mm  aaaaa    bbbb
1     52   2 bb ff jj nn   cccc  ddddd
2     10   4 dd hh ll pp   gggg    hhhh

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:36:00