Pandas ewma或多索引移位
如果我有一个带有多索引的PandasPandas 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
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")