python聚合并使用DataFrame创建dicts

时间:2018-04-02 12:48:31

标签: python pandas

我开始学习大熊猫并坚持下面的问题:
我的示例数据框如下所示

id      batchid     batchname
1       101         accounts
2       101         accounts
1       102         finance
2       104         admin

我需要创建一个新的数据框,根据batchid汇总batchnameid,如下所示:

id      group_info
1       [{batchid:101, batchname:accounts},{batchid:102, batchname:finance}]
2       [{batchid:101, batchname:accounts},{batchid:104, batchname:admin}]

我尝试使用消耗DataFrame.apply()的{​​{1}},但却出错了 对此有何建议?

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}, {'...