我开始学习大熊猫并坚持下面的问题:
我的示例数据框如下所示
id batchid batchname
1 101 accounts
2 101 accounts
1 102 finance
2 104 admin
我需要创建一个新的数据框,根据batchid
汇总batchname
和id
,如下所示:
id group_info
1 [{batchid:101, batchname:accounts},{batchid:102, batchname:finance}]
2 [{batchid:101, batchname:accounts},{batchid:104, batchname:admin}]
我尝试使用消耗DataFrame.apply()
的{{1}},但却出错了
对此有何建议?
答案 0 :(得分:1)
groupby
+ to_dict
df.groupby('id')['batchid','batchname'].apply(lambda x : x.to_dict('r')).to_frame('group_info').reset_index()
Out[84]:
id group_info
0 1 [{'batchname': 'accounts', 'batchid': 101}, {'...
1 2 [{'batchname': 'accounts', 'batchid': 101}, {'...