Python时间序列优化之道滑动与累积窗口的应用技巧

大家好,在时间序列数据处理中,通常会进行滑动窗口计算(rolling)和累积窗口计算(expanding)等操作,以便分析时间序列的变化趋势或累积特征。Pandas提供的rollingexpanding函数提供了简单、高效的实现方式,特别适用于金融、气象、市场营销等领域的数据分析。这些函数能够对时间序列数据进行窗口操作,从而灵活地进行均值、标准差、最大值、最小值等计算。

1.滑动窗口与累积窗口概述

在Pandas中,滑动窗口和累积窗口是处理数据流时常用的两种窗口模型,它们在时间序列分析、事件处理、流处理等领域中非常重要。

滑动窗口是一种动态窗口模型,它在时间轴上滑动以覆盖连续的数据段。窗口的大小是固定的,但随着时间的推移,窗口会沿着数据流向前移动。这种窗口模型允许数据的连续处理,窗口内的数据可以是重叠的。

累积窗口是一种非重叠的窗口模型,每个窗口包含不重叠的数据段。当窗口内的数据被处理完毕后,窗口会向前移动到下一个数据段,开始处理新的数据。

2.rolling函数的用法与应用

rolling函数可以在指定的窗口长度内对数据进行滑动计算。常见应用包括计算移动平均、滑动标准差、滑动最大值和最小值等。rolling函数的基本语法如下:

Series/DataFrame.rolling(window, min_periods=None, center=False).agg(func)
  • window:窗口大小,通常为整数,表示滑动窗口包含的数据点数。

  • min_periods:窗口内计算所需的最小非缺失值数量。默认为窗口大小。

  • center:窗口是否居中对齐,默认为False

2.1 示例数据集

首先,创建一个包含日销售额的示例数据集:

import pandas as pd
import numpy as np

# 创建示例数据
date_range = pd.date_range(start="2023-01-01", periods=10)
sales = [100, 150, 120, 130, 170, 160, 180, 200, 210, 220]
df = pd.DataFrame({'日期': date_range, '销售额': sales})
df.set_index('日期', inplace=True)
print("原始数据:\n", df)

原始数据如下:

             销售额
日期             
2023-01-01   100
2023-01-02   150
2023-01-03   120
2023-01-04   130
2023-01-05   170
2023-01-06   160
2023-01-07   180
2023-01-08   200
2023-01-09   210
2023-01-10   220

2.2 滑动均值

滑动均值(moving average)是时间序列分析中最常用的统计方法之一,用于平滑数据。以下计算3天的滑动均值:

# 计算3天滑动均值
df['3天滑动均值'] = df['销售额'].rolling(window=3).mean()
print("3天滑动均值:\n", df)

结果如下:

             销售额  3天滑动均值
日期                     
2023-01-01   100       NaN
2023-01-02   150       NaN
2023-01-03   120     123.33
2023-
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python慕遥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值