pandas 时间序列滑动窗口

构造序列

import matplotlib.pylab
import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.randn(600, 3), index = pd.date_range('7/1/2016', freq = 'D', periods = 600), columns = ['A', 'B', 'C'])
df.plot(subplots=True)

在这里插入图片描述

滑动平均

r = df.rolling(window = 10)
#r.agg, r.apply, r.count, r.exclusions, r.max, r.median, r.name, r.quantile, r.kurt, r.cov, r.corr, r.aggregate, r.std, r.skew, r.sum, r.var
r.mean().plot(subplots=True)

在这里插入图片描述

自定义窗口内函数

除了使用 rolling 自带的函数 mean, agg, apply, count, exclusions, max, median, name, quantile 之外,还可以自定义。

比如如下 lambda 函数实现了计算窗口内的平均绝对误差:
E [ ∣ x − E [ x ] ∣ ] E[|x-E[x]|] E[xE[x]]

df.rolling(window = 10)\
.apply(lambda x: np.fabs(x - x.mean()).mean(), raw=True)\
.plot(subplots=True)

raw=True 表示 lambda 函数的输入实参为 np.ndarray,否则为 Series
下图中的所有值都大于零了
在这里插入图片描述

时间滑动窗口是一种在时间序列分析中常用的技术,用于对时间序列数据进行分析和预测。在Python中可以通过使用pandas库来实现时间滑动窗口。 首先,我们需要导入pandas库并读取时间序列数据。可以使用pandas中的read_csv函数来读取CSV文件或read_excel函数来读取Excel文件。读取数据后,我们可以使用pandas中的DataFrame对象来存储和处理时间序列数据。 接下来,我们可以使用rolling函数来创建滑动窗口对象。滑动窗口的大小可以通过指定参数window进行设置。例如,如果我们想创建一个大小为5的滑动窗口,可以使用rolling(window=5)。 然后,我们可以使用滑动窗口对象来进行一系列的操作。例如,可以使用滑动窗口对象的mean函数来计算滑动窗口中数据的平均值。还可以使用sum函数来计算滑动窗口中数据的总和。 除了计算统计指标外,我们还可以使用滑动窗口对象进行其他操作,例如找到最大值、最小值或者执行自定义的函数。 最后,我们可以使用pandas库的plot函数来绘制时间序列数据和滑动窗口中计算出的统计指标。这样可以更直观地观察时间序列数据的趋势和窗口中的变化。 总之,时间滑动窗口是一种在时间序列分析中常用的技术,可以使用pandas库在Python中实现。通过创建滑动窗口对象并使用相应的函数,我们可以计算滑动窗口中的统计指标,并通过绘图来展示时间序列数据的变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值