为什么我不能使用偏移量rolling
多索引数据框?例如,与:
rng = pd.date_range('2017-01-03', periods=20, freq='8D')
i = pd.MultiIndex.from_product([['A','B','C'], rng], names=['Name','Date'])
df = pd.DataFrame(np.random.randn(60), i, columns=['Vals'])
如果我尝试分组并以偏移量滚动,我会得到“ValueError:窗口必须是整数":
df['Avg'] = df.groupby(['Name'])['Vals'].rolling('30D').mean() # << Why doesn't this work?
并不是说以下这些变体满足我的需求,但请注意,使用int
works:
df['Avg'] = df.groupby(['Name'])['Vals'].rolling(4).mean()
我可以在 DataFrame 的单索引子集上滚动偏移量:
d = df.loc['A']
d['Avg'] = d['Vals'].rolling('30D').mean()
如果确实不可能在多索引 DataFrame 上使用偏移量进行滚动,那么将偏移量应用于每个 0 级索引项的最有效的解决方法是什么?