[英]Pandas rolling average on groupby
我想知道使用下面描述的MuliIndex
對groupby
object 應用rolling
的行為是否是預期的。 問題是直接在groupby
上使用rolling
不會保留MultiIndex
。 但是,在groupby
上使用apply
會保留索引。
df = pd.DataFrame([1, 2, 3, 4], index=pd.MultiIndex.from_arrays([[1, 1, 2, 2], ['red', 'blue', 'red', 'blue']], names=['number', 'color']))
我想在level='number'
中計算每組的滾動平均值。 直接在groupby
上應用rolling
,結果由單個level='number'
索引,刪除level='color'
:
df.groupby(level='number').rolling(window=2).mean()
0
number
1 NaN
1 1.5
2 NaN
2 3.5
我可以在groupby
上使用apply
獲得所需的結果
df.groupby(level='number').apply(lambda x: x.rolling(2).mean())
0
number color
1 red NaN
blue 1.5
2 red NaN
blue 3.5
MultiIndex
上groupby().rolling()
的行為是錯誤嗎?
此行為是一個錯誤,將在 pandas 版本 1.2.3 中修復,請參閱 GitHub 上的 pandas 存儲庫中報告的此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.