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

pandas.DataFrame.drop函数是一种用于从数据框中删除给定坐标轴上的行或列的方法。它可以用于删除指定标签的行或列,并返回新的数据框。

语法格式

在Python中,可以使用以下语法来使用DataFrame.drop()函数:

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

在上面的代码中,参数含义如下:

  • labels:删除的标签。
  • axis:用于确定要删除的是行还是列,0表示行,1表示列。
  • index:删除的行索引。
  • columns:删除的列索引。
  • level:只适用于具有多层索引的数据帧,指定要删除的级别。
  • inplace:指定是否在原始数据帧中进行删除操作。默认值为False。
  • errors:指定如何处理无效标签。如果它们是raise,则引发异常。否则,可以将它们忽略或打印警告信息。

样例

以下是两个 Python 代码示例,说明如何使用 DataFrame.drop函数的不同方式:

示例1:删除行和列

在下面的示例中,将从数据框中删除指定的行和列。原始数据框是:

import pandas as pd

data = {'name': ['John', 'Marry', 'Peter', 'David'],
        'age': [22, 31, 36, 28],
        'gender': ['Male', 'Female', 'Male', 'Male'],
        'Marks': [84, 61, 35, 77]}

df = pd.DataFrame(data)

print(df)

原始数据帧如下所示:

    name  age  gender  Marks
0   John   22    Male     84
1  Marry   31  Female     61
2  Peter   36    Male     35
3  David   28    Male     77

然后使用上面提到的pandas.DataFrame.drop()方法来删除数据帧中的行和列如下:

df = df.drop([0,3],axis=0)
df = df.drop(['age'],axis=1)

print(df)

输出结果如下所示:

    name gender  Marks
1  Marry Female     61
2  Peter   Male     35

在上面的代码中,我们使用了DataFrame.drop函数来删除索引0、3和列索引“age”。

示例2:原地修改和制定级别

在这个示例中,我们将使用inplace参数来原地更改数据框,而不是使用默认的创建一个新的数据框。 我们还将使用DataFrame.drop函数来删除多层索引级别。

原始数据框如下:

import pandas as pd

data = {('class 1', 'Alice'): [84, 72, 'M'],
        ('class 1', 'Bob'): [78, 92, 'M'],
        ('class 2', 'Charlie'): [65, 35, 'F'],
        ('class 2', 'David'): [85, 78, 'M']}

df = pd.DataFrame(data, index=['marks', 'age', 'Gender']).T

print(df)

原始数据帧如下所示:

              marks age Gender
class 1 Alice    84  72      M
        Bob      78  92      M
class 2 Charlie  65  35      F
        David    85  78      M

现在,我们将使用 DataFrame.drop 函数来删除索引处级别为“Gender”的所有行,并将更改原始数据框的值:

df.drop(index='Gender', level=1, inplace=True)

print(df)

输出结果如下所示:

              marks age
class 1 Alice    84  72
        Bob      78  92
class 2 Charlie  65  35
        David    85  78

在上面的代码中,我们使用了DataFrame.drop函数来删除级别为“level=1”的索引,即索引“Gender”。我们使用inplace参数来指定是否需要在原始数据帧中进行删除操作。

以上就是利用 DataFrame.drop 函数来删除行和列的步骤,该函数还有很多其他的参数用法,总结起来就是可以利用该函数,灵活操作数据帧。

本文链接:https://my.lmcjl.com/post/20064.html

展开阅读全文

4 评论

留下您的评论.