Pandas Shift函数学习笔记

25 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

Pandas学习之差分函数diff

在上一篇的文章中,我们学习了Pandas的shift函数,今天要来学习的是diff函数,shift函数与dif
55 sec read

使用Python进行相关性分析

在数据分析时,经常会针对两个变量进行相关性分析。在Python中主要用到的方法是pandas中的corr()方
42 sec read

一维数组的聚类

需求:分析订单的价格分布 方案:按照100为梯度,分析不同价格区间的订单量 缺陷:现实生活中,定价存在一些自然
1 min read

发表评论

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