python - 转换 Pandas DF 分组,然后创建字典列表
问题描述
我有这个熊猫数据框
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"}
]
}
我的意思是按第一个字段分组,然后将其他字段包含在一个字典中。
解决方案
这是预期的输出吗?
>>> 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'}]}
推荐阅读
- django - get() 返回了不止一个 HorseEquipment —— 它返回了 3 个!在 Django RESTApi 中
- amazon-web-services - 将 aws lambda 函数连接到我的 VPN
- php - 基于会话变量在 WooCommerce 结帐时自动选择下拉选项
- mysql - Tableau 无法连接到 Amazon RDS MySQL 数据库
- python-3.x - 我如何制作这样的代码而不必为每个代码做一堆代码
- kubernetes - EKS 入口资源
- angular - 如何将结构指令与 ng-attr-* 结合起来?
- java - AvroParquetOutputFormat - 无法写入具有空元素的数组
- html - Navbar - 当 nav-item 是 2 个单词时,第二个单词在下面
- javascript - 将文本节点分配给数据标题