python - 从充满元组列表的字典创建多个数据帧
问题描述
df = {'(5, 1.01, 0.98)': [(Timestamp('2017-08-24 22:35:00'),
-201.99999999999915, 19798.0), (Timestamp('2017-08-25 12:10:00'),
-199.95980000000057, 19598.0402), (Timestamp('2017-08-26 01:35:00'),
90.00690944516465, 19688.047109445164)], '(6, 1.04, 0.99)': [(Timestamp('2017-
08-25 16:35:00'), -808.0000000000001, 19192.0), (Timestamp('2017-08-26
01:35:00'), 73.45175794973963, 19265.45175794974), (Timestamp('2017-08-26
03:55:00'), 85.84402466986793, 19351.295782619607), (Timestamp('2017-08-26
11:10:00')]}
我有两个键和多个值,它们是每个值的元组列表。如何创建一个包含 3 列相对于包含 3 个元素的元组的数据框?有可能吗?我可以为每个键创建不同的数据框吗?
亲切的问候
解决方案
如果您希望以下
0 1 2 3
0 (5, 1.01, 0.98) 2017-08-24 22:35:00 -202.000000 19798.000000
1 (5, 1.01, 0.98) 2017-08-25 12:10:00 -199.959800 19598.040200
2 (5, 1.01, 0.98) 2017-08-26 01:35:00 90.006909 19688.047109
作为输出
{'(5, 1.01, 0.98)': [(Timestamp('2017-08-24 22:35:00'),
-201.99999999999915, 19798.0), (Timestamp('2017-08-25 12:10:00'),
-199.95980000000057, 19598.0402), (Timestamp('2017-08-26 01:35:00'),
90.00690944516465, 19688.047109445164)]}
那么你可以使用
new_df = pd.DataFrame(data=[[k] + list(t) for k, v in df.items() for t in v])
new_df.columns = [to, whatever, you, want]
但是,如果您想拆分元组键(第一列),那么您可以修改上面的内容来做到这一点。
推荐阅读
- sql - 简化复杂的嵌套 SQL 视图。转置和版本化数据
- amazon-web-services - AWS Redshift 数据库加密
- android - 如何在实现 GSON 的数据类中创建计算属性?
- c++ - (gdb) 启动后提示不返回
- asp.net-core - 如何强制 Blazor 重新渲染组件
- sql - 如何修复缓慢的不同查询
- python - 为什么 BasicEngine.RunInference 卡在子进程上
- java - 如何在@ManyToMany 关系中对相关实体进行排序
- algorithm - JAVA - 确定n的所有素数的递归函数
- python - Python sqlalchemy 类型 varchar 通过数据框 to_sql 而不是文本插入字母数字