2014-01-29 21 views
1

的移位如果我有一個熊貓DataFrameMultiIndex其中所述第一電平符號,第二級是日期,什麼是執行ewma或對數據的操作shift最簡單的方法。EWMA或多指標

目前天真地移動符號上的移位。

也許我需要使用Panel

使用:

In [13]: pd.concat({"GOOG": pd.DataFrame({'price':[100,101]},index=["2013-1-1","2013-1-2"]),"AAPL": pd.DataFrame({'price':[100,101]},index=pd.to_datetime(["2013-1-1","2013-1-2"]))}, axis=0, names=["Symbol", "Date"]) 
Out[13]: 
       price 
Symbol Date 
AAPL 2013-1-1 100 
     2013-1-2 101 
GOOG 2013-1-1 100 
     2013-1-2 101 

In [17]: df.shift() 
Out[17]: 
       price 
Symbol Date 
AAPL 2013-1-1 NaN 
     2013-1-2 100 
GOOG 2013-1-1 101 
     2013-1-2 100 

這看起來似乎是工作,但Panel佈局絕對不是直觀: df.to_panel().shift(1, axis="minor").ix["price"]

回答

2

使用groupby()

df.groupby(level=0).transform("shift") 
+1

工程。 'ewma'可以類似地解決:'df.groupby(level = 0).apply(lambda x:pd.ewma(x,com = 2))' –