Python 将嵌套字典中的数据帧添加到自己的列中
我有一本超过10000个帐户的嵌套字典。我需要一个可靠的解决方案。下面是一个需要缩放为n的示例 嵌套字典如下所示,其中acct#作为键:Python 将嵌套字典中的数据帧添加到自己的列中,python,pandas,concat,Python,Pandas,Concat,我有一本超过10000个帐户的嵌套字典。我需要一个可靠的解决方案。下面是一个需要缩放为n的示例 嵌套字典如下所示,其中acct#作为键: {'Acct301': ds trend yhat y 0 2018-05-01 00:00:00 1.268612 0.679369 2.554900 1 2018-05-01 01:00:00
{'Acct301':
ds trend yhat y
0 2018-05-01 00:00:00 1.268612 0.679369 2.554900
1 2018-05-01 01:00:00 1.268372 0.089233 2.022369
2 2018-05-01 02:00:00 1.268132 -0.256185 1.640524
[744 rows x 19 columns],
'Acct2':
ds trend yhat y
0 2018-05-01 00:00:00 0.575119 -0.456240 1.26193
1 2018-05-01 01:00:00 0.575140 -0.687562 1.033594
2 2018-05-01 02:00:00 0.575161 -0.795286 0.906530
[744 rows x 19 columns]}
我需要数据框将帐户#放在它自己的列中
我尝试了以下代码:
df= pd.concat(dict.values(), ignore_index= True)
此输出几乎可以工作,但没有Acct#,我得到以下结果:
ds trend yhat y
0 2018-05-01 00:00:00 1.268612 0.679369 2.554900
1 2018-05-01 01:00:00 1.268372 0.089233 2.022369
2 2018-05-01 02:00:00 0.575161 -0.795286 0.906530
3 2018-05-01 00:00:00 0.575119 -0.456240 1.26193
4 2018-05-01 01:00:00 0.575140 -0.687562 1.033594
5 2018-05-01 02:00:00 0.575161 -0.795286 0.906530
我期望的输出如下所示
Acct # ds trend yhat y
0 Acct1 2018-05-01 00:00:00 1.268612 0.679369 2.554900
1 Acct1 2018-05-01 01:00:00 1.268372 0.089233 2.022369
2 Acct1 2018-05-01 02:00:00 0.575161 -0.795286 0.906530
3 Acct2 2018-05-01 00:00:00 0.575119 -0.456240 1.26193
4 Acct2 2018-05-01 01:00:00 0.575140 -0.687562 1.033594
5 Acct2 2018-05-01 02:00:00 0.575161 -0.795286 0.906530
假设字典是
d
。将pd.concat
的选项键
与一些清理命令一起使用
df = (pd.concat(d.values(), keys=d.keys())
.reset_index()
.drop('level_1',1).rename(columns={'level_0': 'Acct#'}))
Out[207]:
Acct# ds trend yhat y
0 Acct1 2018-05-01 00:00:00 1.268612 0.679369 2.554900
1 Acct1 2018-05-01 01:00:00 1.268372 0.089233 2.022369
2 Acct1 2018-05-01 02:00:00 1.268132 -0.256185 1.640524
3 Acct2 2018-05-01 00:00:00 0.575119 -0.456240 1.261930
4 Acct2 2018-05-01 01:00:00 0.575140 -0.687562 1.033594
5 Acct2 2018-05-01 02:00:00 0.575161 -0.795286 0.906530
假设字典是
d
。将pd.concat
的选项键
与一些清理命令一起使用
df = (pd.concat(d.values(), keys=d.keys())
.reset_index()
.drop('level_1',1).rename(columns={'level_0': 'Acct#'}))
Out[207]:
Acct# ds trend yhat y
0 Acct1 2018-05-01 00:00:00 1.268612 0.679369 2.554900
1 Acct1 2018-05-01 01:00:00 1.268372 0.089233 2.022369
2 Acct1 2018-05-01 02:00:00 1.268132 -0.256185 1.640524
3 Acct2 2018-05-01 00:00:00 0.575119 -0.456240 1.261930
4 Acct2 2018-05-01 01:00:00 0.575140 -0.687562 1.033594
5 Acct2 2018-05-01 02:00:00 0.575161 -0.795286 0.906530