Python Pandas移动窗口函数rolling全解析
本文系统介绍Python Pandas库中基于rolling的移动窗口函数系列。涵盖rolling_count、rolling_sum、rolling_mean等核心统计函数,以及指数加权移动平均ewma系列。详细解析各函数的参数设置、适用场景及代码示例,帮助开发者高效处理时间序列数据与滑动统计计算。
Pandas移动窗口函数概览
超级好用的移动窗口函数
近期在数据处理中频繁使用移动窗口函数,发现其不仅功能强大、代码简洁,还能极大提升处理效率。因此,本文将对Pandas中所有以rolling开头的移动窗口函数进行详细介绍,展示如何通过组合不同的后缀函数来实现特定的窗口计算功能。
rolling_count 计算各个窗口中非NA观测值的数量
基础统计函数:计数、求和与均值
函数
pandas.rolling_count(arg, window, freq=None, center=False, how=None)
参数说明: arg : 输入数据,格式为DataFrame或numpy的ndarray数组。 window : 移动窗口的大小,必须为整数。 freq : 频率参数(通常用于时间序列重采样)。 center : 布尔型,默认为False。若设为True,窗口将居中显示。 how : 字符串,默认为“mean”,用于指定down-sampling或re-sampling时的聚合方式。
import pandas as pd
import numpy as np
df = pd.DataFrame({'key1':['a','a','b','b','a'],
'key2':['one','two','one','two','one'],
'data1':np.nan,
'data2':np.random.randn(5)})
df

示例代码:pd.rolling_count(df[['data1','data2']],window = 3)

rolling_sum 移动窗口的和
pandas.rolling_sum(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
参数说明: arg : 输入数据,为Series或DataFrame。 window : 窗口的大小,整数类型。 min_periods : 每个窗口中所需的最小观察值数量,若不足则返回NaN。 freq : 频率参数。 center : 布尔型,默认为False,控制窗口是否居中。 how : 取值方式,默认为None。
示例代码:pd.rolling_sum(df,window = 2,min_periods = 1)

分布统计:中位数、方差与标准差
rolling_mean 移动窗口的均值
pandas.rolling_mean(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
rolling_median 移动窗口的中位数
pandas.rolling_median(arg, window, min_periods=None, freq=None, center=False, how='median', **kwargs)
rolling_var 移动窗口的方差
pandas.rolling_var(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
rolling_std 移动窗口的标准差
pandas.rolling_std(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
极值与相关性计算
rolling_min 移动窗口的最小值
pandas.rolling_min(arg, window, min_periods=None, freq=None, center=False, how='min', **kwargs)
rolling_max 移动窗口的最大值
pandas.rolling_min(arg, window, min_periods=None, freq=None, center=False, how='min', **kwargs)
rolling_corr 移动窗口的相关系数
pandas.rolling_corr(arg1, arg2=None, window=None, min_periods=None, freq=None, center=False, pairwise=None, how=None)
rolling_corr_pairwise 配对数据的相关系数
该函数等价于调用 rolling_corr(…, pairwise=True),用于计算多列数据间的配对相关性。
示例代码:pandas.rolling_corr_pairwise(df1, df2=None, window=None, min_periods=None, freq=None, center=False)
rolling_cov 移动窗口的协方差
pandas.rolling_cov(arg1, arg2=None, window=None, min_periods=None, freq=None, center=False, pairwise=None, how=None, ddof=1)
rolling_skew 移动窗口的偏度(三阶矩)
pandas.rolling_skew(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
rolling_kurt 移动窗口的峰度(四阶矩)
pandas.rolling_kurt(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
高级应用:自定义函数与分位数
rolling_apply 对移动窗口应用普通数组函数
pandas.rolling_apply(arg, window, func, min_periods=None, freq=None, center=False, args=(), kwargs={})
rolling_quantile 移动窗口分位数函数
pandas.rolling_quantile(arg, window, quantile, min_periods=None, freq=None, center=False)
rolling_window 移动窗口
pandas.rolling_window(arg, window=None, win_type=None, min_periods=None, freq=None, center=False, mean=True, axis=0, how=None, **kwargs)
指数加权移动系列(EWMA)
ewma 指数加权移动
ewma(arg[, com, span, halflife, ...])
ewmstd 指数加权移动标准差
ewmstd(arg[, com, span, halflife, ...])
ewmvar 指数加权移动方差
ewmvar(arg[, com, span, halflife, ...])
ewmcorr 指数加权移动相关系数
ewmcorr(arg1[, arg2, com, span, halflife, ...])
ewmcov 指数加权移动协方差
ewmcov(arg1[, arg2, com, span, halflife, ...])
以上关于Python Pandas移动窗口函数rolling的用法介绍完毕,希望能为读者提供有价值的参考。如有更多疑问或建议,欢迎继续支持本站获取更多技术分享。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









