pandas之shift()函式
阿新 • • 發佈:2018-11-14
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’,則會左右移動。