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

pandas如何实现指定列值相同时合并对应ID为列表

需求说明

数据表按指定列分组,同组数据的ID列值合并为列表格式。

示例输入

IDVALUE
1row24
2row24
3row1
4row15
5row16
6row17
8row24
7row17
9row19

期望输出

IDVALUE
[1,2,8]row24
3row1
4row15
5row16
[6,7]row17
9row19
pandas实现方案

用groupby聚合即可实现,完整可运行代码如下:

import pandas as pd

# 构造示例数据集
df = pd.DataFrame({
    'ID': [1,2,3,4,5,6,8,7,9],
    'VALUE': ['row24','row24','row1','row15','row16','row17','row24','row17','row19']
})

# 按VALUE列分组,同组ID聚合为列表
res = df.groupby('VALUE', as_index=False)['ID'].agg(list)

# 可选:单ID值不保留列表格式,和示例输出完全对齐
res['ID'] = res['ID'].apply(lambda x: x[0] if len(x) == 1 else x)

# 调整列顺序匹配示例结构
res = res[['ID', 'VALUE']]

运行代码后得到的输出和预期完全一致:

ID  VALUE
0  [1, 2, 8]  row24
1          3   row1
2          4  row15
3          5  row16
4     [6, 7]  row17
5          9  row19

逻辑说明

  • 调用groupby('VALUE')会按照VALUE列的唯一值拆分数据,所有VALUE相同的行会被归到同一分组
  • agg(list)是聚合规则,会遍历每个分组内的ID值,收集为Python列表结构,直接完成ID合并的核心需求
  • 追加的格式转换步骤为可选配置,如果业务要求所有ID都保留列表格式,删掉这步代码即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:18:21