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

最低0.47元/天 解锁文章
701

被折叠的 条评论
为什么被折叠?



