Pandas 的 shift 函数是对数据进行移动的操作,特别是适用于时间序列数据的处理。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(12).reshape(4, 3), index=["a", "b", "c", "d"], columns=["A", "B", "C"])
print(df)
原始数据
A B C
a 0 1 2
b 3 4 5
c 6 7 8
d 9 10 11
print(df.shift()) # 默认向下移动一行,空缺使用 NaN 填充
结果展示
A B C
a NaN NaN NaN
b 0.0 1.0 2.0
c 3.0 4.0 5.0
d 6.0 7.0 8.0
print(df.shift(axis=1)) # 向右移动一列,空缺使用 NaN 填充
结果展示
A B C
a NaN 0 1
b NaN 3 4
c NaN 6 7
d NaN 9 10
print(df.shift(periods=-1)) # 设置向上移动一行,空缺使用 NaN 填充
结果展示
A B C
a 3.0 4.0 5.0
b 6.0 7.0 8.0
c 9.0 10.0 11.0
d NaN NaN NaN
print(df.shift(fill_value=-1)) # 指定空缺使用 -1 填充
结果展示
A B C
a -1 -1 -1
b 0 1 2
c 3 4 5
d 6 7 8