【问题标题】:Creating mulitple dataframes from Dictionary full of list of tuples从充满元组列表的字典创建多个数据帧
【发布时间】:2019-12-08 20:19:01
【问题描述】:
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 个元素的元组的数据框? 有可能吗? 我可以为每个键创建不同的数据框吗?

亲切的问候

【问题讨论】:

  • 不知道如何在多行上发布代码。抱歉难以阅读,但如果您复制和粘贴应该是可读的。

标签: python pandas dataframe key


【解决方案1】:

如果您希望得到以下结果

             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]

但是,如果您想拆分元组键(第一列),则可以修改上述内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 2011-08-29
    • 2020-10-05
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 2014-12-18
    相关资源
    最近更新 更多