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

PageRank算法学习与研究

什么是PageRank PageRank,简称PR,是Google排名运算法则(排名公式)的一部分,是Goog
2 min read

多经纬度坐标的中心点计算方法

在实际的应用场景,通常会遇到计算多个经纬度中心的需求。而在计算经纬度中心点通常有三种方式,每种方式对应不同的需
1 min read

XGBoost之类别特征的处理

无论是XGBoost还是其他的Boosting Tree,使用的Tree都是cart回归树,这也就意味着该类提
5 min read

发表评论

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