rolling 是个非常好用的函数 。
先来个df
num = list(range(4))
num2 =list(range(1,5))
df= pd.DataFrame({'a':num,'b':num2})
index |
a |
b |
0 |
0 |
1 |
1 |
1 |
2 |
2 |
2 |
3 |
3 |
3 |
4 |
先说参数的意思
- 第一个参数是 window
是说往前数几个数进行计算。比如windw=3
以column a ,取平均为例,第三个数就是(0+1+2)/3
df['a'].rolling(window=3).mean() #(1)
index |
a |
0 |
NaN |
1 |
NaN |
2 |
1 |
3 |
2 |
- 第二个参数 min_periods
这个参数是说,我给定一个数,比如min_periods =2,那么在前2个数的窗口内都是空。举例承接上面,那么在windw假说为3,也就是说,如果没定义min_periods,前两个数是空值,那么定义这个参数为2之后,第二个数就不是空了,第二个数0.5=(0+1)/2
df['a'].rolling(window=3,min_periods=2).mean()
index |
a |
0 |
NaN |
1 |
0.5 |
2 |
1 |
3 |
2 |