python - 遍历 df 并使用值列表输出字典
问题描述
我需要将数据框转换为字典,但无法从数据框中获取所有值以显示在字典中。
数据框:
id| region | Num |
--|--------|-----|
2 | NYC |2344 |
3 | NYC |3243 |
4 | NYC |3253 |
5 | NYC |2345 |
6 | CHI |8756 |
7 | CHI |9786 |
8 | CHI |7674 |
9 | CHI |6678 |
10| ATL |1234 |
代码:
df.set_index('region').T.to_dict('list')
:
我需要的是这个:
{'NYC: [2344, 3243, 3253, 2345 ], 'CHI': [8756, 9786, 7674, 6678], 'ATL': [1234] }
但我得到的是:
{'NYC: [2345 ], 'CHI': [6678], 'ATL': [1234] }
我试过:
num_dict = {}
for region, num in df:
num_dict.setdefault(region, []).append(num)
但这给了我一个(ValueError: too many values to unpack (expected 2)
.
有一个更好的方法吗?
提前致谢!
解决方案
groupby.apply(list)
然后使用.to_dict
df.groupby('region')['Num'].apply(list).to_dict()
[出去]
{'ATL': [1234],
'CHI': [8756, 9786, 7674, 6678],
'NYC': [2344, 3243, 3253, 2345]}
推荐阅读
- python - 从 JSON 文件导入公钥而不是 .pem 文件进行验证
- python - 如何修复使用 CNN 进行手写字符识别的分类器模型拟合错误?
- javascript - 如何将由数字组成但也有括号的“字符串”转换为数字?
- html - 谷歌字体在我的特定系统中不起作用
- ios - GIDSignIn 在提示之前指定范围
- android-studio - 我备份中的 Keystore.jks 文件现在具有与以前不同的 SHA-1?为什么?
- spring-boot - 包含 @ReguestMapping 时无法加载图像
- nginx - 无法让 Flask-SocketIO、uWSGI 和 NGINX 工作
- microsoft-graph-api - Apply filter on GET /beta/users/
/chats/getAllMessages fails - python - Opencv找不到矩形形状