zoukankan      html  css  js  c++  java
  • pandas常用函数之shift

    转自:https://sanwen8.cn/p/2241oUa.html

    shift函数是对数据进行移动的操作,假如现在有一个DataFrame数据df,如下所示:

    indexvalue1
    A 0
    B 1
    C 2
    D 3

    那么如果执行以下代码:

    df.shift()

    就会变成如下:

    indexvalue1
    A NaN
    B 0
    C 1
    D 2

    看一下函数原型:

    DataFrame.shift(periods=1, freq=None, axis=0)

    参数

    • periods:类型为int,表示移动的幅度,可以是正数,也可以是负数,默认值是1,1就表示移动一次,注意这里移动的都是数据,而索引是不移动的,移动之后没有对应值的,就赋值为NaN。
      执行以下代码:
    df.shift(2)

    就会得到:

    indexvalue1
    A NaN
    B NaN
    C 0
    D 1

    执行:

    df.shift(-1)

    会得到:

    indexvalue1
    A 1
    B 2
    C 3
    D NaN
    • freq: DateOffset, timedelta, or time rule string,可选参数,默认值为None,只适用于时间序列,如果这个参数存在,那么会按照参数值移动时间索引,而数据值没有发生变化。例如现在有df1如下:
    indexvalue1
    2016-06-01 0
    2016-06-02 1
    2016-06-03 2
    2016-06-04 3

    执行:

    df1.shift(periods=1,freq=datetime.timedelta(1))

    会得到:


    index | value1
    —-|—-
    2016-06-02 | 0
    2016-06-03 | 1
    2016-06-04 | 2
    2016-06-05 | 3

      • axis:{0, 1, ‘index’, ‘columns’},表示移动的方向,如果是0或者’index’表示上下移动,如果是1或者’columns’,则会左右移动。
  • 相关阅读:
    Luogu2751 [USACO Training4.2]工序安排Job Processing
    BZOJ4653: [Noi2016]区间
    BZOJ1537: [POI2005]Aut- The Bus
    CF1041F Ray in the tube
    POJ1186 方程的解数
    Luogu2578 [ZJOI2005]九数码游戏
    BZOJ2216: [Poi2011]Lightning Conductor
    CF865D Buy Low Sell High
    BZOJ1577: [Usaco2009 Feb]庙会捷运Fair Shuttle
    几类区间覆盖
  • 原文地址:https://www.cnblogs.com/iamxyq/p/6283334.html
Copyright © 2011-2022 走看看