我有一个CSV,包含成千上万行,但基本上看起来像这样
| 个人标识|位置类型|位置_编号|
| - ------| - ------| - ------|
| 1个|"公司"|一百二十三|
| 第二章|'支|三二一|
| 1个|'支|四百五十六|
| 1个|'支|五六七|
目标是按personal_id
及以下对所有内容进行分组,其中location_number
有2个列表,由location_type
标识
[
{
"personal_id": 1,
"company": [123],
"branch": [456, 567]
},
{
"personal_id": 2,
"branch": [321]
}
]
我使用python panda是因为我以前做过一些成功的事情,但只是在1个过滤级别上,使用panda to_dict('records)
在当时工作得很完美
我一直想在这种情况下做些事情,比如这样
merge_df= (data_df.groupby(['personal_id'])
.apply(lambda x: x[['regulator', 'employee_number', 'sex', 'status']]
.to_dict('records'))
.reset_index()
.rename(columns={0: 'employee'}))
但是我不知道如何在apply()
中添加一个额外的过滤器,而且这个方法创建了一个列,在上面的场景中我不需要这个列,我将其重命名为"employee"
我唯一的其他选择是用C#重新开始一切,比如说CSVHelper,如果Pandas是错误的选择,也许还有自动Map器
2条答案
按热度按时间vof42yt11#
试试看:
图纸:
dddzy1tm2#
您可以执行以下操作: