参考URL:https://note.nkmk.me/python-pandas-shift/
目次
時系列でない場合
# サンプルデータ作成
df = pd.DataFrame(np.arange(15).reshape(5,3), columns=list('abc'))
a b c
0 0 1 2
1 3 4 5
2 6 7 8
3 9 10 11
4 12 13 14shift()を利用する- ずらした場合、そこにはNaNが入るため、列はfloat型に変換される
- ずらした結果、ずらされた末端の行または列は消える
- マイナス値を入れると下行または最右列へ挿入される
df.shift()
# a b c
# 0 NaN NaN NaN
# 1 0.0 1.0 2.0
# 2 3.0 4.0 5.0
# 3 6.0 7.0 8.0
# 4 9.0 10.0 11.0
df.shift(2)
# a b c
# 0 NaN NaN NaN
# 1 NaN NaN NaN
# 2 0.0 1.0 2.0
# 3 3.0 4.0 5.0
# 4 6.0 7.0 8.0
df.shift(-1)
# a b c
# 0 3.0 4.0 5.0
# 1 6.0 7.0 8.0
# 2 9.0 10.0 11.0
# 3 12.0 13.0 14.0
# 4 NaN NaN NaN
df.shift(axis=1)
# a b c
# 0 NaN 0 1
# 1 NaN 3 4
# 2 NaN 6 7
# 3 NaN 9 10
# 4 NaN 12 13
df.shift(-1, axis=1)
# a b c
# 0 1 2 NaN
# 1 4 5 NaN
# 2 7 8 NaN
# 3 10 11 NaN
# 4 13 14 NaN
時系列の場合
上記URL参照する