我有一个嵌套的词典,包含10,000多个帐户。我需要一个可靠的解决方案。下面是一个需要缩放为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 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
。将keys
的选项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