Pandas Shift函数学习笔记

31 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

使用implicit搭建实时推荐系统

Implicit简介 Implicit是一个开源的系统过滤项目,其包含多种流行的推荐算法,主要应用场景是针对隐
1 min read

Windows安装PostgreSQL/MongoDB问题

PostgreSQL 相较于MySQL(MariDB)我更喜欢PostgreSQL,最近在Windows安装的
43 sec read

TensorFlow学习笔记:特征工程

特征工程是机器学习流程中重要的一个环节,即使是通常用来做端到端学习的深度学习模型在训练之前也免不了要做一些特征
5 min read

发表评论

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