赞
踩
语法:
shift(periods, freq, axis)
注释:
period:表示移动的幅度,可以是正数,也可以是负数,默认值是1,1就表示移动一次,注意这里移动的都是数据,而索引是不移动的,移动之后没有对应值的,就赋值为NaN。
freq: DateOffset, timedelta, or time rule string,可选参数,默认值为None,只适用于时间序列,如果这个参数存在,那么会按照参数值移动时间索引,而数据值没有发生变化。
3. axis: 轴向。0为垂,1为水平
import pandas as pd import numpy as np import datetime df = pd.DataFrame(np.arange(16).reshape(4,4),columns=['A','B','C','D'],index=pd.date_range('20130101', periods=4)) df A B C D 2013-01-01 0 1 2 3 2013-01-02 4 5 6 7 2013-01-03 8 9 10 11 2013-01-04 12 13 14 15 #默认是axis = 0轴的设定,当period为正时向下移动 df.shift(2) A B C D 2013-01-01 NaN NaN NaN NaN 2013-01-02 NaN NaN NaN NaN 2013-01-03 0.0 1.0 2.0 3.0 2013-01-04 4.0 5.0 6.0 7.0 #默认是axis = 0轴的设定,当period为负时向上移动 df.shift(-2) A B C D 2013-01-01 8.0 9.0 10.0 11.0 2013-01-02 12.0 13.0 14.0 15.0 2013-01-03 NaN NaN NaN NaN 2013-01-04 NaN NaN NaN NaN #axis = 1,当period为正向右,为负向左移动 df.shift(2,axis=1) A B C D 2013-01-01 NaN NaN 0.0 1.0 2013-01-02 NaN NaN 4.0 5.0 2013-01-03 NaN NaN 8.0 9.0 2013-01-04 NaN NaN 12.0 13.0 # frep参数决定索引为日期,正加负减 df.shift(freq=datetime.timedelta(1)) A B C D 2013-01-02 0 1 2 3 2013-01-03 4 5 6 7 2013-01-04 8 9 10 11 2013-01-05 12 13 14 15 df.shift(freq=datetime.timedelta(-1)) A B C D 2012-12-31 0 1 2 3 2013-01-01 4 5 6 7 2013-01-02 8 9 10 11 2013-01-03 12 13 14 15
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。