Pandas:如何删除存在的列


您可以使用以下基本语法删除 pandas DataFrame 中的一列或多列(如果存在):

 df = df. drop ([' column1 ', ' column2 '], axis= 1 , errors=' ignore ')

注意:如果不使用error=’ignore’参数,则在尝试删除不存在的列时将收到错误。

以下示例展示了如何在实践中使用此语法。

示例:如果 Pandas 中存在该列,则删除该列

假设我们有以下 pandas DataFrame,其中包含有关各种篮球运动员的信息:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F'],
                   ' points ': [18, 22, 19, 14, 14, 11],
                   ' assists ': [5, 7, 7, 9, 12, 9],
                   ' minutes ': [10.1, 12.0, 9.0, 8.0, 8.4, 7.5],
                   ' all_star ': [True, False, False, True, True, True]})

#view DataFrame
print (df)

  team points assists minutes all_star
0 A 18 5 10.1 True
1 B 22 7 12.0 False
2 C 19 7 9.0 False
3 D 14 9 8.0 True
4 E 14 12 8.4 True
5 F 11 9 7.5 True

现在假设我们尝试删除名为分钟_播放点 的列:

 #drop minutes_played and points columns
df = df. drop ([' minutes_played ', ' points '], axis= 1 )

KeyError: "['minutes_played', 'points'] not found in axis"

我们收到错误,因为Mining_played列在 DataFrame 中不作为列名存在。

相反,我们需要使用带有errors=’ignore’参数的drop()函数:

 #drop minutes_played and points columns
df = df. drop ([' minutes_played ', ' points '], axis= 1 , errors=' ignore ')

#view updated DataFrame
print (df)

  team assists minutes all_star
0 A 5 10.1 True
1 B 7 12.0 False
2 C 7 9.0 False
3 D 9 8.0 True
4 E 12 8.4 True
5 F 9 7.5 True

请注意,列已从 DataFrame 中删除。

另请注意,即使我们尝试删除不存在的名为分钟_播放 的列,我们也没有收到任何错误。

其他资源

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

Pandas:如何删除未命名的列
Pandas:如何删除除特定列之外的所有列
Pandas:如何删除除某些行之外的所有行

添加评论

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