Pandas中的滑动窗口—rolling()函数方法

           在时间序列中,还有另外一个比较重要的概念—滑动窗口。滑动窗口指的是根据指定的单位长度来框住时间序列,从而计算框内的统计指标。相当于一个长度指定的滑块在刻度尺上面滑动,每滑动一个单位即可反馈滑块内的数据。

           Pandas中提供了一个窗口方法rolling(),其语法格式如下:rolling(window,min_periods=None,center=False,win_type=None,on=None,axis=0,closed=None)

部分参数含义如下:

  1. window:表示窗口的大小,值可以是int(整数值)或offest(偏移)。如果是整数值的话,每个窗口是固定的大小,即包含相同数量的观测值。如果值为offest,则指定了每个窗口包含的时间段,每个窗口包含的观测值的数量是不一定的。
  2. min_periods:是否把窗口最少包含的观测值数量。当值是int类型时默认为None,当值为offest类型默认为1。
  3. center:是否把窗口的标签设置为居中,默认为False。
  4. win_type:表示窗口的类型。
  5. on:对于DataFrame而言,指定要计算滚动窗口的列,值为列名。
  6. axis:默认为0,表示对列进行计算。
  7. closed:用于定义区间的开闭。

接下来通过代码演示:

Pandas中的滑动窗口—rolling()函数方法_第1张图片

import pandas as pd           #滑动窗口rolling
import numpy as np
year_data=np.random.randn(366)
date_index=pd.date_range('2020-01-01','2020-12-31',freq='D')
ser=pd.Series(year_data,date_index)
ser.head()

例子1 rolling()的使用:

在这里插入图片描述

roll_window=ser.rolling(window=10)  # window=10代表窗口的大小为10,center=False代表窗口的标签不居中,axis=0代表对列进行计算,窗口会按照从
roll_window                         #左向右的方向,一个单位一个单位地向右滑行

如果要在窗口中统计一下指标,则可以对窗口应用相应的统计方法,例子2

Pandas中的滑动窗口—rolling()函数方法_第2张图片

roll_window.mean()  #由于前9个时间戳的单位长度小于10,所以返回的数据都为NaN,从第10个时间戳开始,所有时间戳对应的都是每个窗口的平均值

例子3 原始数据与窗口数据的区别:

Pandas中的滑动窗口—rolling()函数方法_第3张图片

import matplotlib.pyplot as plt                #窗口数据的整体动向相对趋于平稳——蓝色线
ser.plot(style='y--')
ser_window=ser.rolling(window=10).mean()        #原始数据浮动大
ser_window.plot(style='b')

作者:KJ.JK
本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。
文章对你有所帮助的话,欢迎给个赞或者 star 呀,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习呀

你可能感兴趣的:(数据分析中的pandas,python,数据分析,数据可视化,rolling,pandas)