2016-09-19 11 views
1

How would I go about adding a row to the top of this dataframe. This is downloaded data. I cannot use a specific row index in the formula because the first Datetime indice changes all the time. I cannot also use a specific label for the inner index as it could be Datetime. Is there a way to generalize this?日時マルチインデックスパンダDATAFRAME

I tried this

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

however it only add a row at the end of the Dataframe. Sorting,

df.sort_index(inplace=True) 

did not help because I guess I am dealing with 2 levels of index here; which would explain why the row sticks to the bottom of the frame.

     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

sort_indexsortlevelMultiindexない作業を行います。だから、あなたは少しhack使用することができます

を - パラメータappend=Trueと2番目のレベルStatssort_indexとの最初reset_indexとバック最後set_indexを:

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 
+0

こんにちはjezrael :)、ありがとう!しかし、私はこれを得る:KeyError: 'MultiIndex Slicingは完全にlexsorted tuple len(2)、lexsort depth(1)'を必要とする ' – uniXVanXcel

+1

最初に 'sort_index()'を試してみる。 – jezrael

+0

あなたはもう一度やった!:)) – uniXVanXcel

関連する問題