Pandas中通过shift将对象移动指定数量的位置
shift() 函数是 Pandas 库中的一个重要函数,用于将 DataFrame 或 Series 对象沿着轴向上/下移动指定数量的位置,并用 NaN 值填充空缺位置。shift() 函数可以用于计算时间序列数据中的差异值,也可以用于数据预处理中的特征工程等。
下面是一些示例,展示如何在 Pandas 中使用 shift() 函数。
Series 对象的 shift()
首先,我们可以使用 Series 对象的 shift() 方法来将序列向上或向下移动指定的位置。以下是一个示例:
import pandas as pd s = pd.Series([1, 2, 3, 4, 5]) s_shifted = s.shift(periods=2) print(s) print(s_shifted)
在这个示例中,我们创建了一个 Series 对象 s,包含值 [1, 2, 3, 4, 5]。然后,我们使用 shift() 方法将 s 向上移动 2 个位置,并将结果保存在 s_shifted 中。shift() 方法接受一个 periods 参数,用于指定移动的位置数。
输出结果为:
0 1 1 2 2 3 3 4 4 5 dtype: int64 0 NaN 1 NaN 2 1.0 3 2.0 4 3.0 dtype: float64
可以看到,原始的序列 s 中的前两个值被移动到了 s_shifted 序列的后面,而前面的空缺位置被填充为 NaN 值。
DataFrame 对象的 shift()
除了 Series 对象之外,我们还可以使用 DataFrame 对象的 shift() 方法来沿着轴向上/下移动指定数量的位置。以下是一个示例:
import pandas as pd df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10]}) df_shifted = df.shift(periods=2) print(df) print(df_shifted)
在这个示例中,我们创建了一个 DataFrame 对象 df,包含两个列 A 和 B。然后,我们使用 shift() 方法将 df 沿着轴向上移动 2 个位置,并将结果保存在 df_shifted 中。
输出结果为:
A B 0 1 6 1 2 7 2 3 8 3 4 9 4 5 10 A B 0 NaN NaN 1 NaN NaN 2 1.0 6.0 3 2.0 7.0 4 3.0 8.0
可以看到,原始的 DataFrame df 中的前两行被移动到了 df_shifted
相关文章