嵌套字典中的熊猫数据帧将字典键添加到自己的列



我有一个嵌套词典,有超过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。将pd.concat的选项keys与一些清理命令一起使用

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

最新更新