当我们在处理数据时,有可能会遇到重复数据的情况,这些重复数据对于我们的分析会产生一定的干扰。而pandas.DataFrame.drop_duplicates()函数就可以帮助我们快速地删除重复的行。
函数介绍
pandas.DataFrame.drop_duplicates()
函数可以去掉DataFrame中的重复行。默认情况下,该函数会根据DataFrame中的所有列进行判断,若行的所有值相同,则认为该行是重复的。函数的常用参数如下所示:
df.drop_duplicates(subset=None, keep='first', inplace=False, ignore_index=False)
-
subset
: 用于指定去重的列名,使用该参数后,函数只会根据指定的列来进行重复行的删除。 -
keep
: 指定保留哪一个重复的数据,默认保留第一行,可选值为first
、last
、false
,其中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()
函数的详细介绍和示例说明。对于一些数据分析师和科研人员而言,这是一个非常实用的函数,可以帮助我们优化数据处理的流程。