Pandas时间序列 :rolling 用法快速理解

相信初学Pandas时间序列时,会遇到rolling函数,不知道该怎么理解,对吧?

让我们用最简单的例子来说明吧。

代码如下:

import pandas as pd  
# 导入 pandas 

index = pd.date_range('2019-01-01',periods=20)  
#创建日期序列

data = pd.DataFrame(np.arange(len(index)),index=index,columns=['test'])
#创建简单的pd.DataFrame

data
#打印data
data['sum'] = data.test.rolling(3).sum()
#移动3个值,进行求和
data['mean'] = data.test.rolling(3).mean()
#移动3个值,进行求平均数
data['mean1'] = data.test.rolling(3,min_periods=2).mean()
#移动3个值,最小计数为2,进行求平均数,查看跟上面有何不同

我们看下结果吧

 大家可以看到:

1.sum列和mean列分别为三个连续值(从当前值向前推两个,共计三个值)的求和/求平均值

2.mean列mean1列区别在于:前者NaN值有2个,后者只有1个 

简单了解后,我们补充相对复杂的解释:

DataFrame.rolling(window, min_periods=None, freq=None, center=False, win_type=None, on=None, axis=0, closed=None)

逐个介绍参数值:

1) window:表示时间窗的大小,通常为int,数值表示计算统计量的观测值的数量即向前几个数据,见上面例子中rolling(3)

2)min_periods:最少需要有值的观测点的数量,对于int类型,默认与window相等。若调整,则一般小于window值,见上面例子rolling(3,min_periods=2)

3)freq:从0.18版本中已经被舍弃。

4)center:是否使用window的中间值作为label,默认为false。只能在window是int时使用。让我们举例说明,如下截图所示,

大家看出不一样了吗?

没有看出来,我们再次举例,见截图如下:

这次大家应该看出来,center=True 的设定,会使得三个连续值(从当前值向前向后各推1个,共计3个值)求平均值

5)win_type:默认为None,一般不特殊指定

6)on:对于多列FrameData,用on来指定使用哪列(举例data.test,已经指定了)

7)closed:定义区间的开闭,即默认为right

8)axis:0--行,1---列
 

好了,希望能够给大家带来帮助,谢谢阅读。

  • 55
    点赞
  • 184
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
Pandas提供了用于时间序列预测的多种功能和方法。以下是一些常用的时间序列预测方法和步骤: 1. 数据准备:首先,你需要准备好你的时间序列数据。确保数据的时间索引是正确的,并且数据点之间的时间间隔是一致的。 2. 可视化数据:使用Pandas的绘图功能,如plot()函数,可以帮助你对数据进行可视化分析。这将有助于你了解数据的趋势和模式。 3. 时间序列分解:时间序列可能包含趋势、季节性和噪声等多个组成部分。使用Pandas的seasonal_decompose()函数可以将时间序列拆分成这些组成部分,以便更好地理解数据。 4. 平稳性检验:在进行时间序列预测之前,通常需要确保数据的平稳性。可以使用Pandas的adf_test()函数或rolling_mean()函数等方法来检验时间序列的平稳性。 5. 模型选择:选择合适的时间序列模型对数据进行建模和预测。常用的时间序列模型包括ARIMA模型、SARIMA模型、指数平滑模型等。你可以使用Pandas提供的ARIMA()函数或ExponentialSmoothing()函数等方法来构建模型。 6. 模型训练和预测:使用训练集训练选定的模型,然后使用该模型对测试集进行预测。Pandas提供了fit()和predict()函数等方法来实现模型的训练和预测。 7. 模型评估:通过比较预测结果和实际观测值,可以评估模型的性能。可以使用均方根误差(RMSE)、平均绝对误差(MAE)等指标来评估模型的预测准确度。 8. 预测可视化:最后,使用Pandas的绘图功能,如plot()函数,将预测结果可视化,以便更好地理解模型的表现和预测趋势。 请注意,具体的时间序列预测方法和步骤可能因数据的特点和需求而有所不同。因此,建议根据实际情况选择合适的方法和步骤。
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值