首页 > 解决方案 > Groupby和组合在熊猫数据框中

问题描述

我有一个看起来像这样的数据框 -name,count存在stringsid成为int.

姓名 数数 ID
美国广播公司 123 01122
美国广播公司 123 55432
美国广播公司 123 33432
美国广播公司 123 34786
xyz 232 36126
xyz 232 67437

使用熊猫 - 我正在尝试获得类似的东西

姓名 数数 ID
美国广播公司 123 01122,55432,33432,34786
xyz 232 36126,67437

我认为像下面这样的东西会起作用 - 但它似乎并没有真正加入列表。

df.groupby(['name','count'])['id'].apply(lambda x: ','.join(map(str, x))).reset_index()

标签: pythonpandasdataframe

解决方案


使用astype()+ groupby()+ agg()

out=df.astype({'id':'str'}).groupby(['name','count'],as_index=False)['id'].agg(','.join)
#df.groupby(['name','count'],as_index=False)['id'].agg(lambda x: ','.join(map(str, x)))

输出:

    name    count   id
0   abc     123     1122,55432,33432,34786
1   xyz     232     36126,67437

推荐阅读