python - 使用 pd.to_dict,获取具有在 Pandas 中具有重复索引的列键/值对的 dict 列表
问题描述
我有带有多索引的数据框,我需要将其格式化为dict
使用列表pd.to_dict
或任何其他功能
df = pd.DataFrame(index=[0,0,1,1], data={('c', 'a'):[10,15, 20, 50], ('c', 'b'):[15,25, 20, 30]})
c
a b
0 10 15
0 15 25
1 20 20
1 50 30
异常输出:
{0: [{(c,a):10, (c,b):15}, {(c,a):15, (c,b):25}], 1: [{(c,a):20, (c,b):20}, {(c,a):50, (c,b):30}]}
有什么最佳方法可以实现这一目标吗?
解决方案
我们可以DataFrame.to_dict
为索引中的每个唯一值使用DataFrame.groupby
.
my_dict = {i : group.to_dict('records') for i, group in df.groupby(level=0)}
输出
{0: [{('c', 'a'): 10, ('c', 'b'): 15}, {('c', 'a'): 15, ('c', 'b'): 25}],
1: [{('c', 'a'): 20, ('c', 'b'): 20}, {('c', 'a'): 50, ('c', 'b'): 30}]}
推荐阅读
- sql-server - SQL:使用逐行值过滤列
- sql - 在 SQL 中创建详尽的案例列
- python - Flask 应用程序为来自公共 IP 的路由提供 404
- android - 在 rxJava 中压缩超过 9 个 Observable
- outlook-addin - Outlook 加载项 OWA ios 未加载
- python - 我的 self.canvas.clear() 函数不起作用,但方法中的其他代码运行
- python - 使用 Python 抓取分页
- curl - 卷曲保存下载,扩展名由内容类型确定
- css - 表单向上移动并与导航栏重叠
- laravel - Laravel 和 Vue.js。我无法修复我的代码