Python 从充满元组列表的字典创建多个数据帧
我有两个键,对每个值乘以一个元组列表中的值。 相对于包含3个元素的元组,如何创建包含3列的数据框? 可能吗? 我可以为每个键创建不同的数据帧吗Python 从充满元组列表的字典创建多个数据帧,python,pandas,dataframe,key,Python,Pandas,Dataframe,Key,我有两个键,对每个值乘以一个元组列表中的值。 相对于包含3个元素的元组,如何创建包含3列的数据框? 可能吗? 我可以为每个键创建不同的数据帧吗 如果您希望以下内容,请向您致以亲切的问候 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,
如果您希望以下内容,请向您致以亲切的问候
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')]}
作为输出
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]