pandas.DataFrame.drop_duplicates 用法介绍

1. pandas.DataFrame.drop_duplicates 介绍

pandas是一个开源的Python数据分析工具,提供了大量对数据的操作和分析的方法。其中的DataFrame是pandas最重要的数据结构之一,类似于数据库表格或Excel的电子表格。DataFrame中的数据可以按行或列进行操作。

pandas.DataFrame.drop_duplicates是DataFrame对象的一个方法,用于删除DataFrame中重复的行。在数据分析过程中,常常会遇到需要对数据进行去重的情况,这时候就可以使用drop_duplicates方法。

2. drop_duplicates 语法

pandas.DataFrame.drop_duplicates 方法的语法如下:

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

参数说明:

subset:指定在哪些列中进行重复行的判断。默认值为None,表示在所有列中进行判断。

keep:指定保留哪些重复行。可选值为'first'、'last'或False。默认值为'first',表示保留第一次出现的行。

inplace:指定是否在原DataFrame上直接进行修改。默认值为False,表示返回一个新的DataFrame。

3. drop_duplicates 示例

为了更好地理解drop_duplicates的使用方法和效果,下面将通过示例来说明。

3.1 创建DataFrame

首先,我们先创建一个包含重复行的DataFrame:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Alice', 'Bob', 'Charlie'],

'age': [25, 30, 25, 30, 35],

'city': ['New York', 'Paris', 'New York', 'Paris', 'Tokyo']}

df = pd.DataFrame(data)

print(df)

运行上述代码,得到的输出如下所示:

      name  age      city

0 Alice 25 New York

1 Bob 30 Paris

2 Alice 25 New York

3 Bob 30 Paris

4 Charlie 35 Tokyo

可以看到,DataFrame中存在重复的行,即第0行和第2行是重复的,第1行和第3行是重复的。

3.2 删除重复行

接下来,我们使用drop_duplicates方法来删除重复行:

df.drop_duplicates(inplace=True)

print(df)

运行上述代码,得到的输出如下所示:

      name  age      city

0 Alice 25 New York

1 Bob 30 Paris

4 Charlie 35 Tokyo

可以看到,重复的行被成功删除,剩下的行是没有重复的。

3.3 指定子集进行去重

在上述示例中,我们没有指定subset参数,即在所有列中进行重复行的判断。现在,我们尝试指定'name'列进行去重:

df.drop_duplicates(subset='name', inplace=True)

print(df)

运行上述代码,得到的输出如下所示:

      name  age      city

0 Alice 25 New York

1 Bob 30 Paris

4 Charlie 35 Tokyo

可以看到,仅基于'name'列进行去重,其他列的值不影响去重的结果。

3.4 保留最后一次出现的重复行

除了保留第一次出现的重复行外,还可以通过设置keep参数为'last'来保留最后一次出现的重复行:

df.drop_duplicates(keep='last', inplace=True)

print(df)

运行上述代码,得到的输出如下所示:

      name  age      city

1 Bob 30 Paris

4 Charlie 35 Tokyo

可以看到,重复的行被成功删除,只保留了最后一次出现的重复行。

4. 总结

本文介绍了pandas.DataFrame.drop_duplicates方法的用法。通过该方法,我们可以对DataFrame对象进行去重操作,删除重复的行。

在使用drop_duplicates时,可以根据具体的需求指定subset参数和keep参数,以达到预期的去重效果。

值得注意的是,drop_duplicates默认返回一个新的DataFrame,如果想在原DataFrame上直接修改,可以设置inplace参数为True。

希望本文对您理解和使用pandas.DataFrame.drop_duplicates方法有所帮助!

后端开发标签