Python中合并DataFrame重复CP值的行(无需聚合函数)
解决方法
你可以通过groupby配合自定义lambda函数实现需求,因为CL列本身已是列表类型,直接用'list'聚合可能因pandas默认处理逻辑报错,改用lambda函数收集分组内的列表元素即可:
df_new = df.groupby('CP', as_index=False)['CL'].agg(lambda x: list(x))
代码说明
as_index=False:确保CP作为普通列保留,而非转为索引,与你期望的结果结构一致lambda x: list(x):将分组内的每个CL列表元素收集到一个大列表中,生成嵌套列表格式
效果验证
原始DataFrame:
CP CL 0 45538 [757, 1] 1 5548 [712515, 1] 2 7908 [251, 3] 3 7908 [7885, 1]
执行代码后得到的结果:
CP CL 0 45538 [757, 1] 1 5548 [712515, 1] 2 7908 [[251, 3], [7885, 1]]
完全匹配你的期望输出。
内容的提问来源于stack exchange,提问作者arpit joshi
相关产品推荐
相关产品推荐

