我有一个这样的样本数据集
Col1 Col2 Col3
A 1,2,3 A123
A 4,5 A456
A 1,2,3 A456
4,5 A123
我只想基于唯一的Col1将Col2和Col3合并为一行。
预期结果:
Col1 Col2 Col3
1,2,3,4,5 A123,A456
我介绍了一些解决方案,并尝试了以下方法。但它仅追加单列。
df.groupby(df.columns.difference(['Col3']).tolist())\
.Col3.apply(pd.Series.unique).reset_index()
答案 0 :(得分:1)
删除具有子集Col1和3的重复项
groupby Col1
然后使用string concatenate方法
(df.drop_duplicates(['Col1','Col3'])
.groupby('Col1')
.agg(Col2 = ('Col2',lambda x: x.str.cat(sep=',')),
Col3 = ('Col3', lambda x: x.str.cat(sep=','))
)
.reset_index()
)
Col1 Col2 Col3
0 A 1,2,3,4,5 A123,A456