滚动意味着与熊猫的定制窗口

zsl*_*ius 6 python pandas

有没有办法自定义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)

  • 要重新居中,还可以:data_mean = pd.rolling_mean(data,window = 5,center = True) (2认同)