转换数据分组,然后创建DICT列表

2024-04-20 00:48:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个数据框

group_id        person_nid  email
apac-others     1014890     donaldmiller@email.com
amer-others     71560392    jeffreylopez@email.com
apac-others     715603926   jeffreylopez@email.com
emea-admins     3315024     amaliadelarosa@email.com
amer-finance    100103077   michelangelocasarin@email.com
amer-others     1001203872  charlesrice@uemail.com
emea-others     100134585   kevinrivera@email.com

我想把它变成这样:

{
"apac-others": [
    {"person_nid":"1014890", "email":"donaldmiller@email.com"},
    {"person_nid":"715603926", "email":"jeffreylopez@email.com"},
],
"amer-others": [
    {"person_nid":"71560392", "email":"duffaylopez@email.com"},
    {"person_nid":"1001203872", "email":"charlesrice@uemail.com"},
],
"emea-admins": [
    {"person_nid":"3315024", "email":"amaliadelarosa@email.com"}
],
"amer-finance": [
    {"person_nid":"100103077", "email":"michelangelocasarin@email.com"}
]

}

我的意思是按第一个字段分组,然后将其他字段括在一个dict中


1条回答
网友
1楼 · 发布于 2024-04-20 00:48:03

这是预期产出吗

>>> df.set_index('group_id').T.apply(dict).reset_index().groupby('group_id', sort=False).agg(list).to_dict()[0]
{'apac-others': [{'person_nid': 1014890, 'email': 'donaldmiller@email.com'}, {'person_nid': 715603926, 'email': 'jeffreylopez@email.com'}],
'amer-others': [{'person_nid': 71560392, 'email': 'jeffreylopez@email.com'}, {'person_nid': 1001203872, 'email': 'charlesrice@uemail.com'}],
'emea-admins': [{'person_nid': 3315024, 'email': 'amaliadelarosa@email.com'}],
'amer-finance': [{'person_nid': 100103077, 'email': 'michelangelocasarin@email.com'}],
'emea-others': [{'person_nid': 100134585, 'email': 'kevinrivera@email.com'}]}

相关问题 更多 >