Python Pandas移动窗口函数rolling全解析

七月
七月
发布时间:2026-10-13| 6人浏览过
原创

本文系统介绍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的用法介绍完毕,希望能为读者提供有价值的参考。如有更多疑问或建议,欢迎继续支持本站获取更多技术分享。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。