如何偏移 pandas 中的列:示例


您可以使用shift()函数将 pandas DataFrame 中的列上移或下移:

 #shift values down by 1
df[' column1 '] = df[' column1 ']. shift (1)

#shift values up by 1
df[' column1 '] = df[' column1 ']. shift (-1)

以下示例展示了如何在实践中通过以下 pandas DataFrame 使用此函数:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' product ': ['A', 'B', 'C', 'D', 'E', 'F'],
                   ' sales ': [4, 7, 8, 12, 15, 19]})

#view DataFrame
df

        product sales
0 to 4
1 B 7
2 C 8
3 D 12
4 E 15
5 F 19

示例 1:向上或向下移动列

下面的代码展示了如何将“product”列中的所有值下移 1:

 #shift all 'product' values down by 1
df[' product '] = df[' product ']. shift (1)

#view updated DataFrame
df

	product sales
0 NaN 4
1 to 7
2 B 8
3 C 12
4 D 15
5 E 19

请注意,“product”列中的每个值均已移位 1,并且该列中的第一个值已更改为 NaN。

另请注意,产品列中的最后一个值(“F”)已从 DataFrame 中完全删除。

为了保留DataFrame中的值“F”,我们首先需要在DataFrame的底部添加一个空行,然后进行偏移:

 import numpy as np

#add empty row to bottom of DataFrame
df. loc [len(df. index )] = [np. nah , np. no ]

#shift all 'product' values down by 1
df[' product '] = df[' product ']. shift (1)

#view updated DataFrame
df

	product sales
0 NaN 4.0
1 to 7.0
2B 8.0
3C 12.0
4 D 15.0
5 E 19.0
6 F NaN

请注意,“F”值保留为“产品”列中的最后一个值。

示例 2:向上或向下移动多列

下面的代码展示了如何将“product”和“sales”列中的所有值向上移动 2:

 #shift all 'product' and 'sales' values up by 2
df[[' product ', ' sales ']] = df[[' product ', ' sales ']]. shift (-2)

#view updated DataFrame
df

        product sales
0 C 8.0
1 D 12.0
2 E 15.0
3 F 19.0
4 NaN NaN
5 NaN NaN

请注意,“产品”和“销售”列中的每个值都已上移 2,并且每列中底部的两个值已更改为 NaN。

注意:您可以在此处找到shift()函数的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何向 Pandas DataFrame 添加行
如何向 Pandas DataFrame 添加列
如何向 Pandas DataFrame 添加标题行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注