Python时间序列--滑动窗口(三)

本文深入探讨了滑动窗口技术,一种用于提升数据准确性的方法,通过将单一数据点的取值扩大到一段区间,利用区间内的数据进行统计分析,如求均值,以更全面地评估数据点的值。文章通过实例展示了如何使用Python的pandas库实现滑动窗口,包括创建窗口、计算窗口内均值,并对比展示原始数据与滑动窗口数据的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

滑动窗口
滑动窗口就是能够根据指定的单位长度来框住时间序列,从而计算框内的统计指标。相当于一个长度指定的滑块正在刻度尺上面滑动,每滑动一个单位即可反馈滑块内的数据。
滑动窗口的意义
为了提升数据的准确性,将某个点的取值扩大到包含这个点的一段区间,用区间来进行判断,这个区间就是窗口。例如想使用2020年1月1日的一个数据,单取这个时间点的数据当然是可行的,但是太过绝对,有没有更好的办法呢?可以选取2019年12月16日到2020年1月15日,通过求均值来评估1月1日这个点的值,2019-12-16到2020-1-15就是一个窗口,窗口的长度window=30. 移动窗口就是窗口向一端滑行,每次滑动(行)并不是区间整块的滑行,而是一个单位一个单位的滑行。
滑动窗口类似于卷积或者移动均线的原理

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
df = pd.Series(np.random.random(1000), 
index = pd.date_range('1/1/2017', 
freq = 'D', 
periods = 1000))
df.head()

在这里插入图片描述

r = df.rolling(window = 10)
print(r.mean())

在这里插入图片描述
窗口2017-01-01到2017-01-10,下一个窗口并不是2017-1-10到2017-1-20,而是2017-01-02到2017-01-11(假设数据的截取是以天为单位),整体向右移动一个单位,而不是一个窗口。这样统计的每个值始终都是10单位的均值。前9个都不足够为一个窗口的长度,因此都无法取值,在此之前即为NaN。

#画出原始数据和滑动窗口的数据
plt.figure(figsize=(15, 5))

df.plot(style='r--')
df.rolling(window=10).mean().plot(style='b')

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值