Python中pandas dataframe删除一行或一列:drop函数详解

  • Post category:Python

下面是“Python中pandas dataframe删除一行或一列:drop函数详解”的完整攻略。

1. 前言

pandas是Python中一个非常强大的数据处理库,其中DataFrame对象是其中最重要的数据结构。删除DataFrame中的一整行或一整列是操作DataFrame的常见任务之一,本文将详细讲解如何在Python中使用drop函数实现这一功能。

2. drop函数定义

drop函数是pandas.DataFrame数据类型对象中定义的一个函数,用于删除指定行和列。

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

下面对这些参数进行简要说明:

  • labels: 待删除的行或列的标签。可以为行索引标签或列名标签,具体根据axis参数值来决定。当axis=0时,表示删除标签所示行;当axis=1时,表示删除标签所示列。
  • axis: 删除行或列操作的轴向,默认为索引axis=0(即行只能通过行索引删除),当axis=1时,表示删除列。
  • index: 作用和labels参数一样,当axis=0时,删除行需要调用的参数
  • columns: 作用和labels参数一样,当axis=1时,删除列需要调用的参数
  • level: 删除那个层级的标签
  • inplace: 是否在原来的DataFrame上直接删除
  • errors: 几种可能的取值为‘raise’、‘ignore’. 当参数为raise时,如果labels不存在,就直接报错。当参数为ignore时,就直接忽略。

3. 用法说明

在删除DataFrame中的一行或一列之前,需要先通过loc或iloc等方法取出需要删除的行或列的标签或索引,然后再将其传递给drop函数进行删除,在删除之后,可以通过to_csv或to_excel来将DataFrame的内容写出到文件中。

3.1 示例一

在这个例子中,我们将要使用一个简单的数据表,并删除表中的一行和一列。

首先,我们需要导入pandas库,然后准备数据:

import pandas as pd
data = {
    'name': ['Tom', 'Mike', 'Jason', 'Lucy'],
    'score': [78, 91, 62, 46],
    'gender':['M', 'M', 'M', 'F']
}
df = pd.DataFrame(data)

数据表将是这样的:

name score gender
0 Tom 78 M
1 Mike 91 M
2 Jason 62 M
3 Lucy 46 F

我们将通过标签删除一行和一列:

#删除行
df.drop(1,axis=0,inplace=True)

#删除列
df.drop('score',axis=1,inplace=True)

删除之后,数据表将会是这样的:

name gender
0 Tom M
2 Jason M
3 Lucy F

3.2 示例二

这个例子中,我们将要使用一个包含大量数据的数据文件,并删除表中的一行和一列。

首先,我们需要导入pandas库,并读入数据文件:

import pandas as pd
df = pd.read_csv('data.csv')

数据表将是一个非常大的数据表,其中含有很多行和列,这里我们就不细说了。

我们将通过标签删除一行和一列:

#删除行
df.drop(10,axis=0,inplace=True)

#删除列
df.drop('score',axis=1,inplace=True)

删除之后,可以将其输出到新的文件中:

df.to_csv('new_data.csv', index=False)

在新的数据文件 ‘new_data.csv’ 中,我们将可以看到data.csv中的行10已经被删除了,score这一列也被删除了。

4.小结

这篇文章简要介绍了Python中pandas DataFrame对象的drop函数,具体介绍了drop函数参数的含义以及函数使用的场景,我们通过两个示例演示了如何通过标签删除DataFrame中的一行或一列。希望这篇文章能够帮助你更好地掌握pandas DataFrame对象的drop函数。