使用Pandas按id分组DataFrame并将值转为列表存入新列e_values
Pandas按id分组聚合列值为列表的实现方法
核心逻辑为使用groupby方法对id列分组后,将目标列用list方法聚合即可,以下是完整可运行代码:
- 导入依赖库
import pandas as pd
- 构造测试数据(实际使用时替换为你自己的DataFrame即可)
df = pd.DataFrame({ 'id': [1, 1, 2, 2, 2, 3], 'e': ['a', 'b', 'c', 'd', 'e', 'f'] })
- 核心处理逻辑
# 分组聚合得到结果 result_df = df.groupby('id')['e'].agg(list).reset_index(name='e_values')
特殊场景适配
- 保留同id对应其他固定列
如果你的原始DataFrame中存在其他和id一一对应的固定列需要保留,可以调整聚合写法:
result_df = df.groupby('id').agg( # 示例保留同id唯一的列col1、col2,取分组内第一个值即可 col1 = ('col1', 'first'), col2 = ('col2', 'first'), e_values = ('e', list) ).reset_index()
- 聚合结果改为逗号分隔字符串
如果需要将聚合结果改为逗号分隔的字符串而非列表,只需将聚合方法替换为','.join:
result_df = df.groupby('id')['e'].agg(','.join).reset_index(name='e_values')
内容的提问来源于stack exchange,提问作者Beginner
相关产品推荐
相关产品推荐

