2017-06-15 25 views
0

我想创建一个3级多索引熊猫数据框,其数量很大like the one found in this Stack Overflow question但我希望能够在DataFrame创建后添加新数据。将嵌套字典作为一行添加到多索引数据框中

这是来自链接帖子的多索引数据框。为了清楚起见,我已将列级别更名。

AA   BB 
    A  B  A  B 
    a b a b a b a b 
0 2 2 2 2 2 2 2 2 
1 3 3 3 3 3 3 3 3 
2 4 4 4 4 4 4 4 4 
3 5 5 5 5 5 5 5 5 
4 6 6 6 6 6 6 6 6 

,我将传递到这将是一个嵌套的字典下面的表单中的数据:

dictionary = {'AA': {'A': {'a': [9], 
          'b': [8]}, 
        'B': {'a': [6], 
          'b': [2]}}, 
       'BB': {'A': {'a': [3], 
          'b': [8]}, 
        'B': {'a': [1], 
          'b': [3]}}} 

任何想法如何,我可以做到这一点?

回答

1

您可以将新数据转换为链接文章中所述的数据帧,然后使用pd.concat将其与原始数据帧组合。

使用你的例子:

df 
Out[127]: 
    AA   BB   
    A  B  A  B 
    a b a b a b a b 
0 2 2 2 2 2 2 2 2 
1 3 3 3 3 3 3 3 3 
2 4 4 4 4 4 4 4 4 
3 5 5 5 5 5 5 5 5 
4 6 6 6 6 6 6 6 6 

newrow 
Out[129]: 
    AA   BB   
    A  B  A  B 
    a b a b a b a b 
0 9 8 6 2 3 8 1 3 

pd.concat([df, newrow]) 
Out[130]: 
    AA   BB   
    A  B  A  B 
    a b a b a b a b 
0 2 2 2 2 2 2 2 2 
1 3 3 3 3 3 3 3 3 
2 4 4 4 4 4 4 4 4 
3 5 5 5 5 5 5 5 5 
4 6 6 6 6 6 6 6 6 
0 9 8 6 2 3 8 1 3 
+0

谢谢!有效! –