pandas.DataFrame.drop_duplicates 用法介绍

  • Post category:Python

当我们在处理数据时,有可能会遇到重复数据的情况,这些重复数据对于我们的分析会产生一定的干扰。而pandas.DataFrame.drop_duplicates()函数就可以帮助我们快速地删除重复的行。

函数介绍

pandas.DataFrame.drop_duplicates()函数可以去掉DataFrame中的重复行。默认情况下,该函数会根据DataFrame中的所有列进行判断,若行的所有值相同,则认为该行是重复的。函数的常用参数如下所示:

df.drop_duplicates(subset=None, keep='first', inplace=False, ignore_index=False)
  • subset: 用于指定去重的列名,使用该参数后,函数只会根据指定的列来进行重复行的删除。

  • keep: 指定保留哪一个重复的数据,默认保留第一行,可选值为firstlastfalse,其中first表示保留第一行,last表示保留最后一行,false表示将所有的重复行删除。

  • inplace: 如果为True,则直接在原数据上修改,而不是返回一个新的DataFrame,默认为False。

  • ignore_index: 如果为True,则新的DataFrame中将自动重置行索引。

示例说明

示例1

我们可以通过一个简单的例子来加深对该函数的理解。

首先,假设我们有如下一个DataFrame:

import pandas as pd

data = {
    'name': ['Peter', 'John', 'Peter', 'Mary', 'John', 'Tom'],
    'age': [25, 32, 25, 18, 32, 20],
    'gender': ['M', 'M', 'M', 'F', 'M', 'M']
}

df = pd.DataFrame(data)
name age gender
0 Peter 25 M
1 John 32 M
2 Peter 25 M
3 Mary 18 F
4 John 32 M
5 Tom 20 M

然后,我们可以使用drop_duplicates函数来删除重复的行:

df.drop_duplicates()

结果:

name age gender
0 Peter 25 M
1 John 32 M
3 Mary 18 F
5 Tom 20 M

可以看到,函数默认会根据所有的列来判断重复行,并将重复的行删除。在本例中,行2和行4都是重复的,函数将其删除。

示例2

接下来,我们再看一个使用subset参数的例子,在这个例子中,我们只想按照name列来去重:

df.drop_duplicates(subset=['name'])

结果:

name age gender
0 Peter 25 M
1 John 32 M
3 Mary 18 F
5 Tom 20 M

可以看到,函数只按照name列来判断重复行,并将重复的行删除。在本例中,行2和行4都是重复的,函数将其删除。

结语

以上就是pandas.DataFrame.drop_duplicates()函数的详细介绍和示例说明。对于一些数据分析师和科研人员而言,这是一个非常实用的函数,可以帮助我们优化数据处理的流程。