python - 将熊猫数据框转换为列表的字典
问题描述
我正在尝试将 3 列 pandas 数据框转换为类似{key:[{},{},{}]}
但是我真的无法弄清楚。
样本数据:
0 1 2
0 2019-01-21 BBB 11101110
1 2019-01-21 CCC 11101010
2 2019-01-21 DDD 10101110
3 2019-01-20 BBB 11101110
4 2019-01-20 CCC 11101010
5 2019-01-20 DDD 10101110
预期数据:
[
{'BBB': [{'2019-01-21': '11101110'}, {'2019-01-20': '11101110'}]},
{'CCC': [{'2019-01-21': '11101010'}, {'2019-01-20': '11101010'}]},
{'DDD': [{'2019-01-21': '10101110'}, {'2019-01-20': '10101110'}]}
]
我试过了,跟随事情,但它不起作用。
a = dict(zip(df[1], [dict(zip(df[0], df[2]))]))
print(a)
{'BBB': {'2019-01-21': '10101110', '2019-01-20': '10101110'}}
解决方案
IIUC
df['New']=[{x : y} for x,y in zip(df['0'], df['2'])]
df
0 1 2 New
0 2019-01-21 BBB 11101110 {'2019-01-21': 11101110}
1 2019-01-21 CCC 11101010 {'2019-01-21': 11101010}
2 2019-01-21 DDD 10101110 {'2019-01-21': 10101110}
3 2019-01-20 BBB 11101110 {'2019-01-20': 11101110}
4 2019-01-20 CCC 11101010 {'2019-01-20': 11101010}
5 2019-01-20 DDD 10101110 {'2019-01-20': 10101110}
d=df.groupby('1').New.apply(list).to_dict()
d
{'BBB': [{'2019-01-21': 11101110}, {'2019-01-20': 11101110}],
'CCC': [{'2019-01-21': 11101010}, {'2019-01-20': 11101010}],
'DDD': [{'2019-01-21': 10101110}, {'2019-01-20': 10101110}]}
如果你想要字典列表
d=[{k: v} for (k, v) in d.items()()]
推荐阅读
- php - 启用 PHP 扩展 Google App Engine (Laravel Web App)
- python - 根据第二列选择列中的值
- amazon-web-services - NiFi PutSNS 处理器没有附加文件?
- jspdf - 如何在 jspdf 中缩放文本?
- python-3.x - 输入提示超时以评估输入而无需在 python 3(Windows)中按下 Enter 键
- python-3.x - 正则表达式的原始字符串不是真正的原始字符串,有棘手的异常
- c - 尝试通过插入从文件流中检索到的字符来创建二维数组
- javascript - 从 Reducer 函数中访问 Redux 中的 Store 状态
- python - python oci:Oracle Cloud Infrastruture:如何列出存储桶中的文件
- php - 如何按标题查询vimeo中的视频?