详解pandas.DataFrame.drop()(删除行或列)函数使用方法

  • Post category:Python

pandas.DataFrame.drop()是pandas中DataFrame对象的一个函数,用于删除DataFrame中的行或列。

语法

pandas.DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')

其中,各参数的含义如下:

  • labels:需要删除的行或列的标签或标签列表。
  • axis:指定删除行还是删除列,0表示删除行,默认值为0。
  • index:需要删除的行的标签或标签列表,与labels参数同时使用时会覆盖labels参数。
  • columns:需要删除的列的标签或标签列表,与labels参数同时使用时会覆盖labels参数。
  • level:指定需要删除的多级行或列的级数,默认为None。
  • inplace:是否就地修改原DataFrame对象,True表示就地修改,False表示返回一个删除行或列后的新DataFrame,默认值为False。
  • errors:指定不存在的标签是否引发异常,’raise’表示引发异常,’ignore’表示忽略不存在的标签,默认值为’raise’。

示例

下面通过两个示例说明pandas.DataFrame.drop()函数的使用方法。

示例一:删除行

我们先创建一个pandas DataFrame对象:

import pandas as pd

data = {
    'name': ['Tom', 'Jerry', 'Amy', 'Bob', 'Ann'],
    'age': [20, 23, 18, 25, 27],
    'gender': ['male', 'male', 'female', 'male', 'female'],
    'score': [80, 90, 85, 70, 95]
}

df = pd.DataFrame(data)
print(df)

输出结果如下:

    name  age  gender  score
0    Tom   20    male     80
1  Jerry   23    male     90
2    Amy   18  female     85
3    Bob   25    male     70
4    Ann   27  female     95

我们可以使用pandas.DataFrame.drop()函数删除一行或多行,比如删除第1行和第3行:

df = df.drop([0, 2])
print(df)

输出结果如下:

    name  age  gender  score
1  Jerry   23    male     90
3    Bob   25    male     70
4    Ann   27  female     95

我们可以看到,第1行和第3行被成功删除了。

示例二:删除列

我们再创建一个pandas DataFrame对象:

import pandas as pd

data = {
    'name': ['Tom', 'Jerry', 'Amy', 'Bob', 'Ann'],
    'age': [20, 23, 18, 25, 27],
    'gender': ['male', 'male', 'female', 'male', 'female'],
    'score': [80, 90, 85, 70, 95]
}

df = pd.DataFrame(data)
print(df)

输出结果如下:

    name  age  gender  score
0    Tom   20    male     80
1  Jerry   23    male     90
2    Amy   18  female     85
3    Bob   25    male     70
4    Ann   27  female     95

我们可以使用pandas.DataFrame.drop()函数删除一列或多列,比如删除’name’列和’gender’列:

df = df.drop(columns=['name', 'gender'])
print(df)

输出结果如下:

   age  score
0   20     80
1   23     90
2   18     85
3   25     70
4   27     95

我们可以看到,’name’列和’gender’列被成功删除了。