Pandas Shift函数学习笔记

27 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

KNN算法实战:验证码的识别

识别验证码的方式很多,如tesseract、SVM等。前面的几篇文章介绍了KNN算法,今天主要学习的是如何使用
3 min read

阿里实时计算Blink核心技术

实时计算in阿里巴巴 实时计算在阿里巴巴内部应用广泛。随着新经济体的出现与发展,技术的革新和用户需求的提升,人
1 min read

京东图计算系统JoyGraph

图计算简介 图计算中的图英文是Graph,用英文完整的表达就是Graph Computing。图计算是研究客观
1 min read

发表评论

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