📜  Python|熊猫 Series.rolling()(1)

📅  最后修改于: 2023-12-03 15:34:20.429000             🧑  作者: Mango

Python | 熊猫 Series.rolling() 介绍

简介

Series.rolling() 是 pandas 库中一种滑动窗口函数,通过对指定数据进行连续的滑动计算,实现数据的平滑处理和移动统计。

语法

Pandas.Series.rolling(window=, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)

  • window : 每个滑动窗口的大小,可以是整数,也可以是与 Series 等长的数组/列表,用于在不同的时间点应用不同的权重系数。
  • min_periods : 每个滑动窗口的最小观测数目,在该数目以下的窗口将返回 NaN。
  • center : 窗口是否居中对齐,默认为 False,即默认情况下窗口左对齐。
  • win_type : 指定窗口类型,如平移窗、指数加权窗等。默认为 None。
  • on : 应用滑动窗口的索引或列,默认为 None。如果指定该参数,则仅对该索引或列上的数据应用窗口操作。
  • axis : 应用滑动窗口的轴向,默认为 0。
  • closed : 控制窗口的端点是否闭合,默认为 None。如果设为 left 或 right,则指定左侧或右侧的端点为闭区间。
示例
import pandas as pd

data = {
    'A': [1, 2, 3, 4, 5],
    'B': [6, 7, 8, 9, 10],
}

df = pd.DataFrame(data)

# 应用滑动窗口,默认窗口大小为 2
print(df.rolling().mean())
     A    B
0  NaN  NaN
1  1.5  6.5
2  2.5  7.5
3  3.5  8.5
4  4.5  9.5

以上代码中,我们对一个数据框 df 使用了 rolling() 函数进行滑动平均。由于没有指定窗口大小,因此默认情况下每个窗口大小为 2。输出结果中每行代表着以当前行为起点,窗口大小为 2 的子序列的平均值。由于第一行只有一个元素,是无法计算平均值的,因此输出了 NaN。

注意事项
  • 使用类似于 rolling() 的函数时,需要确认 Pandas 版本。根据版本不同,API 可能略有变化。
  • 当使用 rolling() 等函数时,尽量指定轴向以避免出现错误。
  • 定义窗口大小时,应该根据实际情况调整,太小可能会造成过拟合,太大可能会失去泛化能力。