pandas常用函數之shift


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

shift函數是對數據進行移動的操作,假如現在有一個DataFrame數據df,如下所示:

index value1
A 0
B 1
C 2
D 3

那么如果執行以下代碼:

df.shift()

就會變成如下:

index value1
A NaN
B 0
C 1
D 2

看一下函數原型:

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

參數

  • periods:類型為int,表示移動的幅度,可以是正數,也可以是負數,默認值是1,1就表示移動一次,注意這里移動的都是數據,而索引是不移動的,移動之后沒有對應值的,就賦值為NaN。
    執行以下代碼:
df.shift(2)

就會得到:

index value1
A NaN
B NaN
C 0
D 1

執行:

df.shift(-1)

會得到:

index value1
A 1
B 2
C 3
D NaN
  • freq: DateOffset, timedelta, or time rule string,可選參數,默認值為None,只適用於時間序列,如果這個參數存在,那么會按照參數值移動時間索引,而數據值沒有發生變化。例如現在有df1如下:
index value1
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’,則會左右移動。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM