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

如何使用groupby按id和type分组,将text列值合并为列表?

使用groupby合并同类型行并将text转为列表

原始表格

idtypetext
1inv_num123
1companyASD
1itemfruit
1itemvegetable
2inv_num123
2companyFOO
2itemcomputer
2itemmouse
2itemheadphones

目标表格

idtypetext
1inv_num123
1companyASD
1item['fruit', 'vegetable']
2inv_num123
2companyFOO
2item['computer', 'mouse', 'headphones']

解答

完全可以用groupby实现该需求,以下是基于Python pandas的实现方案:

代码示例

import pandas as pd

# 构造原始数据
data = [
    [1, 'inv_num', '123'],
    [1, 'company', 'ASD'],
    [1, 'item', 'fruit'],
    [1, 'item', 'vegetable'],
    [2, 'inv_num', '123'],
    [2, 'company', 'FOO'],
    [2, 'item', 'computer'],
    [2, 'item', 'mouse'],
    [2, 'item', 'headphones']
]
df = pd.DataFrame(data, columns=['id', 'type', 'text'])

# 按id和type分组,聚合text为列表
result_df = df.groupby(['id', 'type'])['text'].agg(list).reset_index()

# 可选:将单元素列表转为原始值,匹配目标表格格式
result_df['text'] = result_df['text'].apply(lambda x: x[0] if len(x) == 1 else x)

print(result_df)

代码说明

  • groupby(['id', 'type']):按id和type的组合进行分组,保证同一id下的同类型数据被归为一组
  • agg(list):将每组的text字段值聚合为列表
  • reset_index():将分组后的索引转换为普通列,恢复表格结构
  • 最后的lambda处理是可选操作,目的是让仅单个元素的列表还原为原始值,和目标表格的格式完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:45:29