Pandas Shift函数学习笔记

29 sec read

在使用Pandas的过程中,有时会遇到shift函数,今天就一起来彻底学习下。先来看看帮助文档是怎么说的:

该函数主要的功能就是使数据框中的数据移动,若freq=None时,根据axis的设置,行索引数据保持不变,列索引数据可以在行上上下移动或在列上左右移动;若行索引为时间序列,则可以设置freq参数,根据periods和freq参数值组合,使行索引每次发生periods*freq偏移量滚动,列索引数据不会移动。

参数详解:

  • period:表示移动的幅度,可以是正数,也可以是负数,默认值是1,1就表示移动一次,注意这里移动的都是数据,而索引是不移动的,移动之后没有对应值的,就赋值为NaN。
  • freq: DateOffset, timedelta, or time rule string,可选参数,默认值为None,只适用于时间序列,如果这个参数存在,那么会按照参数值移动时间索引,而数据值没有发生变化。
  • axis: {0, 1, ‘index’, ‘columns’},表示移动的方向,如果是0或者’index’表示上下移动,如果是1或者’columns’,则会左右移动。

先来看一下一些简单的示例:

1、非时间索引下period的设置

假设存在一个DataFrame数据df:

如果执行以下代码  df.shift()  就会变成如下:

执行 df.shift(2) 就会得到:

执行 df.shift(-1) 会得到:

注意,shift移动的是整个数据,如果df有如下多列数据:

执行 df.shift(2) 的数据为:

如果只想移动df中的某一列数据,则需要这样操作: df['DD']= df['DD'].shift(1)

执行后的数据为:

2、时间索引下freq 参数设置

假设存在如下DataFrame的df:

执行 df.shift(freq=datetime.timedelta(1))  后:

执行 df.shift(freq=datetime.timedelta(-2)) 后:

可以看到索引直接变了。

3、axis轴向设置

打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

使用Prophet进行时间序列预测

Prophet是Facebook开源的预测工具,相比ARIMA模型,Prophet真的是非常的简单。只要读入两
1 min read

采用时间序列预测股价变化

时间序列简介 在数学上,随机过程被定义为一族时间随机变量,即{x(t),t∈T},其中T表示时间t的变动范围。
5 min read

SARIMAX:季节性ARIMA

在先前的使用Python创建季节性ARIMA模型中,出现了SARIMAX模型。在上一篇的文章中并没有讲清楚SA
18 sec read

发表评论

电子邮件地址不会被公开。 必填项已用*标注