Pandas 的 rolling()
函数用于在数据框或系列上创建一个滚动窗口(滑动窗口),这对于计算移动平均、移动总和等统计量非常有用。rolling()
函数通过在指定的窗口大小上应用某种聚合函数来实现这些操作。
基本用法
rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, method='single')
- window: 窗口大小,必需参数,指定计算时的窗口长度。
- min_periods: 窗口内所需的非NA值的最小数量,默认为窗口大小。
- center: 布尔值,是否设置窗口居中。
- win_type: 窗口类型(如三角形、汉宁等),默认无。
- on: 指定用于窗口的列(仅适用于DataFrame)。
- axis: 指定滚动窗口应用的轴,默认0(行)。
- method: 计算方法,默认为'single'。
示例
假设我们有一个数据框 df
,其中包含一列数据:
import pandas as pd
# 创建示例数据
data = {'Value': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}
df = pd.DataFrame(data)
# 计算滚动窗口的平均值
df['Rolling_Mean'] = df['Value'].rolling(window=3).mean()
print(df)
结果
Value Rolling_Mean
0 1 NaN
1 2 NaN
2 3 2.0
3 4 3.0
4 5 4.0
5 6 5.0
6 7 6.0
7 8 7.0
8 9 8.0
9 10 9.0
解释
- 窗口大小为3:这意味着计算每个位置的平均值时,会考虑当前元素及其前两个元素。
- 前两个结果为NaN:因为在计算第一个和第二个元素的滚动平均时,窗口内的元素不足3个。
-
从第三个元素开始:
(1+2+3)/3 = 2.0
,(2+3+4)/3 = 3.0
,依此类推。
其他常用聚合函数
-
sum()
: 计算窗口内的总和。 -
max()
: 计算窗口内的最大值。 -
min()
: 计算窗口内的最小值。 -
std()
: 计算窗口内的标准差。 -
var()
: 计算窗口内的方差。
通过使用不同的聚合函数,rolling()
可以用于各种类型的移动统计计算。
网友评论