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

Python-Pandas:如何对指定列值相同的行自定义合并数据?

解决方法

你可以通过给agg()方法传入字典,为不同列指定自定义的聚合逻辑,实现保留指定前两列内容并对数值列求和的需求:

示例代码

import pandas as pd

# 构造原始数据
data = {
    'CustomerID': ['1899', '1899B'],
    'CustomerName': ['CustomerBlue', 'CustomerBlue'],
    'ValA': [2, 3],
    'ValB': [5, 6],
    'ValC': [8, 7],
    'ValD': [9, 8]
}
df = pd.DataFrame(data)

# 分组聚合:自定义CustomerID取值,对数值列求和
result = df.groupby('CustomerName', as_index=False).agg(
    CustomerID=('CustomerID', lambda x: '1899'),  # 手动指定CustomerID为目标值
    ValA=('ValA', 'sum'),
    ValB=('ValB', 'sum'),
    ValC=('ValC', 'sum'),
    ValD=('ValD', 'sum')
)

print(result.to_csv(index=False, header=False))

代码说明

  • groupby('CustomerName') 按客户名称分组
  • agg() 中通过键值对定义每列的聚合规则:
    • 对CustomerID使用lambda函数直接返回你需要的固定值(比如示例中的'1899'),如果想取分组内第一个ID,可改为lambda x: x.iloc[0]
    • 对所有Val开头的数值列使用sum求和

输出结果

1899,CustomerBlue,5,11,15,17

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 03:16:11