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

如何在Python中基于现有DataFrame创建按order_id聚合的汇总DataFrame?

实现方法(高效非迭代)

完全可以实现,用pandas内置的分组聚合操作就能高效完成,比迭代方法快得多,具体步骤如下:

1. 构造示例DataFrame(与你提供的结构一致)

import pandas as pd

df = pd.DataFrame({
    'order_id': [1,1,1,2,2,3],
    'product_id': [534,234,292,445,646,8734]
})

2. 分组聚合生成目标DataFrame

方式一:将关联的product_id转为列表形式

# 按order_id分组,把每组的product_id聚合为列表
result_df = df.groupby('order_id')['product_id'].agg(list).reset_index()

生成的结果:

order_idproduct_id
1[534, 234, 292]
2[445, 646]
3[8734]

方式二:将关联的product_id转为拼接字符串形式(按需选择)

如果需要用分隔符(比如逗号)连接product_id,可使用以下代码:

# 按order_id分组,将product_id转为逗号分隔的字符串
result_df = df.groupby('order_id')['product_id'].agg(lambda x: ', '.join(map(str, x))).reset_index()

生成的结果:

order_idproduct_id
1534, 234, 292
2445, 646
38734

效率说明

pandas的groupby和agg属于矢量化操作,底层由C语言优化实现,避免了Python层面的循环迭代,数据量越大,和迭代方法的效率差距越明显,完全适合处理大规模数据集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 18:04:58