Pandas ewma或多索引移位

Pandas ewma或多索引移位,pandas,Pandas,如果我有一个带有多索引的PandasDataFrame,其中第一级是符号,第二级是日期,那么对数据执行ewma或shift操作的最简单方法是什么 目前天真地在符号之间切换 也许我需要使用面板 使用: 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_datet

如果我有一个带有多索引的Pandas
DataFrame
,其中第一级是符号,第二级是日期,那么对数据执行
ewma
shift
操作的最简单方法是什么

目前天真地在符号之间切换

也许我需要使用
面板

使用:

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
这看起来可能有效,但
面板
布局绝对不直观:
df.to_panel().shift(1,axis=“minor”).ix[“price”]
使用
groupby()


这很有效。
ewma
案例可以类似地解决:
df.groupby(level=0.apply)(lambda x:pd.ewma(x,com=2))
df.groupby(level=0).transform("shift")