窗口计算
大约 1 分钟PythonPythonPandas
窗口计算
窗口函数用于执行一系列统计计算,如移动平均、累积求和等。这些计算通常基于数据的一个固定大小的窗口,并且可以沿着数据集滑动应用。
1 滚动窗口
滚动窗口允许您定义一个窗口大小,并对这个窗口内的数据执行计算。例如,计算过去7天的日平均温度。
与group by 相似,但是并不相同。滚动窗口对于同一个数据会在不同的窗口中被计算。

1.1 窗口函数
rolling(window)
是滚动函数,window
参数指定窗口的大小。
import pandas as pd
df = pd.DataFrame(range(0,10))
print(df)
0
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
每两天计算平均值
df_rolling_mean = df.rolling(2).mean()
print(df_rolling_mean)
0
0 NaN
1 0.5
2 1.5
3 2.5
4 3.5
5 4.5
6 5.5
7 6.5
8 7.5
9 8.5
可以看到是对数据中的元素两两求平均值。由于第一个数字没有前一个数字所以结果为NaN
。
对于窗口中的数据,常用的统计方法都可以使用
2 扩展窗口
扩展窗口是指随着时间的推移,窗口不断扩大的计算。计算从数据开始到当前点的所有数据的累计平均值。

2.1 扩展窗口函数
使用expanding
函数可以实现扩展窗口。
计算扩展窗口中元素的和
df_expanding_sum = df.expanding().mean()
print(df_expanding_sum)
0
0 0.0
1 1.0
2 3.0
3 6.0
4 10.0
5 15.0
6 21.0
7 28.0
8 36.0
9 45.0