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

DataFrame如何按item_no分组拼接item_code并聚合求和item_cost

Pandas按指定字段分组实现多规则聚合

你可以直接用pandas的groupby配合agg自定义聚合规则实现需求,不需要额外循环处理。

核心实现代码

# 若未导入pandas先执行导入
import pandas as pd

# 分组聚合,sort=False保留item_no原始出现顺序,和预期输出顺序一致
result_df = df.groupby(by='item_no', as_index=False, sort=False).agg(
    # item_code字段:同组值转字符串后用逗号拼接
    item_code=('item_code', lambda val: ','.join(val.astype(str))),
    # item_cost字段:同组值累加求和
    item_cost=('item_cost', 'sum')
)

注意点

  • 加as_index=False是为了不让分组字段item_no变成结果表的行索引,输出结构和普通DataFrame一致
  • 拼接item_code前先转str是为了兼容该字段为数值类型的情况,避免join方法报错
  • 加sort=False可以关闭分组后的默认排序,最终item_no的展示顺序和原表首次出现的顺序一致,完全匹配你给出的预期效果

输出结果

执行代码后得到的result_df结构如下:

item_noitem_codeitem_cost
100111111,11112300
100444444100
100222222,22221280
100666666180

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 23:39:14