Pandas中通过shift将对象移动指定数量的位置

2023-02-23 00:00:00 指定 对象 数量

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

相关文章