Если у меня есть Панды DataFrame
с MultiIndex
, где первый уровень является символом, то второй уровень является дата, что это самый простой способ выполнить 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"]
Это работает. Случай 'ewma' может быть разрешен аналогично:' df.groupby (level = 0) .apply (lambda x: pd.ewma (x, com = 2)) ' –