如何向Datetime Multiindex Panda Dataframe添加行

时间:2016-09-19 17:29:14

标签: python pandas dataframe append multi-index

  

如何在此数据框的顶部添加行。这个   是下载数据。我不能在公式中使用特定的行索引   因为第一个Datetime indice一直在变化。我不能也用   内部索引的特定标签,因为它可能是Datetime。有没有   如何推广这个?

     

我试过这个

df[df.index.min()[0])) - dt.timedelta(minutes=5), :] = [list to add]
  

但是它只在Dataframe的末尾添加一行。排序,

df.sort_index(inplace=True) 
  

没有帮助,因为我想我在这里处理2级索引;   这可以解释为什么这条线粘在框架的底部。

                        A      B      C        D     E

2006-04-28 00:00:00                                    
             A        69.62  69.62  6.518   65.09  69.62
             B
             C
2006-05-01 00:00:00  
            A         71.5   71.5  6.522   65.16   71.5
            B
            C
2006-05-02 00:00:00   
            A        72.34  72.34  6.669   66.55  72.34
            B
            C

最终结果应如下所示: X是要添加的列表/数组中的元素。

                        A      B      C        D     E
        NEWROW          X1     X2    X3       X4    X5

2006-04-28 00:00:00                                    
             A        69.62  69.62  6.518   65.09  69.62
             B
             C
2006-05-01 00:00:00  
            A         71.5   71.5  6.522   65.16   71.5
            B
            C
2006-05-02 00:00:00   
            A        72.34  72.34  6.669   66.55  72.34
            B
            C

1 个答案:

答案 0 :(得分:1)

sort_indexsortlevel对我来说Multiindex合作:

所以你可以使用少量hack - 第一个reset_index第二个Stats,然后sort_index和最后set_index返回参数append=True

df1 = df1.sort_index()

df1.loc[((df1.index.min()[0]) -  dt.timedelta(minutes=5), 'SUM'),:] = 
df1.loc[(slice(None), slice('price')),:].sum()

df1 = df1.reset_index('Stats')
df1 = df1.sort_index(axis=0).set_index('Stats', append=True)
print (df1)
                                 A       B       C       D       E
Date                Stats                                         
2006-04-27 23:55:00 SUM     213.46  213.46  19.709  196.80  213.46
2006-04-28 00:00:00 price    69.62   69.62   6.518   65.09   69.62
                    std        NaN     NaN     NaN     NaN     NaN
                    weight     NaN     NaN     NaN     NaN     NaN
2006-05-01 00:00:00 price    71.50   71.50   6.522   65.16   71.50
                    std        NaN     NaN     NaN     NaN     NaN
                    weight     NaN     NaN     NaN     NaN     NaN
2006-05-02 00:00:00 price    72.34   72.34   6.669   66.55   72.34
                    std        NaN     NaN     NaN     NaN     NaN
                    weight     NaN     NaN     NaN     NaN     NaN