【发布时间】:2023-03-16 08:52:01
【问题描述】:
使用 pandas 0.18.1,我想取一列数据框的滚动平均值。从 0.18.0 版开始,这是通过 rolling() 对象完成的。这些滚动对象的默认设置是右对齐。您可以传递一个布尔参数 center=True,将滚动对象与中心值对齐,但似乎没有办法将其左对齐。这是一个例子:
df = pandas.DataFrame({'A': [2,3,6,8,20, 27]})
df
A
0 2
1 3
2 6
3 8
4 20
5 27
标准方法自动向右对齐,因此在前两个索引处没有值,窗口大小为 3:
df.rolling(window=3).mean()
A
0 NaN
1 NaN
2 3.666667
3 5.666667
4 11.333333
5 18.333333
我们可以像这样居中对齐操作:
df.rolling(window=3).mean(center=True)
A
0 NaN
1 3.666667
2 5.666667
3 11.333333
4 18.333333
5 NaN
但我正在寻找的是这个:
df.rolling(3).mean()
A
0 3.666667
1 5.666667
2 11.333333
3 18.333333
4 NaN
5 NaN
我可以通过使用默认的右对齐来实现这一点,然后重新索引它,或者通过颠倒行的顺序然后“右对齐”来实现,但这些是应该做的解决方法一个简单的操作。
【问题讨论】: