有没有办法自定义rolling_mean函数的窗口?
data
1
2
3
4
5
6
7
8
Run Code Online (Sandbox Code Playgroud)
假设窗口设置为2,即计算观察前后的2个数据点的平均值.说第3次观察.在这种情况下,我们将有(1+2+3+4+5)/5 = 3.等等等等.
unu*_*tbu 18
使用前向(或后向)窗口计算通常的滚动平均值,然后使用该shift方法根据需要重新定位它.
data_mean = pd.rolling_mean(data, window=5).shift(-2)
Run Code Online (Sandbox Code Playgroud)
如果你想在观察之前和之后平均超过2个数据点(总共5个数据点)然后制作window=5.
例如,
import pandas as pd
data = pd.Series(range(1, 9))
data_mean = pd.rolling_mean(data, window=5).shift(-2)
print(data_mean)
Run Code Online (Sandbox Code Playgroud)
产量
0 NaN
1 NaN
2 3
3 4
4 5
5 6
6 NaN
7 NaN
dtype: float64
Run Code Online (Sandbox Code Playgroud)
正如kadee指出的那样,如果你希望将滚动平均值集中在一起,那就用吧
pd.rolling_mean(data, window=5, center=True)
Run Code Online (Sandbox Code Playgroud)