直接上代码演示:
import pandas as pd
s = [1,2,3,5,6,10,12,14,12,30]
print(pd.Series(s))
print(pd.Series(s).rolling(window=3).mean())
print(pd.Series(s).rolling(window=3).count())
运行结果:
0 1
1 2
2 3
3 5
4 6
5 10
6 12
7 14
8 12
9 30
dtype: int64
0 NaN
1 NaN
2 2.000000
3 3.333333
4 4.666667
5 7.000000
6 9.333333
7 12.000000
8 12.666667
9 18.666667
dtype: float64
0 1.0
1 2.0
2 3.0
3 3.0
4 3.0
5 3.0
6 3.0
7 3.0
8 3.0
9 3.0
dtype: float64
首先看mean()就是取当前位置往前一共窗口大小的数据的平均值,本次窗口为3,由于0和1位置前面加起来没有3个数,于是mean之后为nan,之后2号位的值就等于窗口内的平均值即1+2+3/3=2,3号2+3+5/3=3.3333,以此类推。
再看count()查阅官方文档(The rolling count of any non-NaN observations inside the window.),即统计窗口内非NAN的个数,本次数据未包含NAN,因而结果依次为1 2 3 3 3 3 3 3 3 3。
比较乱,仅供自己食用(呲牙)