Python的drop_duplicates()方法用法介绍及实例

Python的drop_duplicates()方法用法介绍及实例

Python的drop_duplicates()方法用法介绍及实例

介绍

在数据处理和分析过程中,我们常常会遇到需要删除重复数据的情况。Python提供了一种简单而有效的方法来处理这个问题,即使用drop_duplicates()函数。

drop_duplicates()函数可以在数据框架中删除重复的行,并返回一个新的数据框架。这个函数能够根据指定的列或整个行来判断重复项,并决定要保留哪一个。该函数具有很高的灵活性,能够根据不同的需求进行自定义配置。

本文将详细介绍drop_duplicates()函数的用法,并提供一些实例来帮助读者更好地理解。

语法

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

函数参数:

  • subset(可选):指定要考虑的列名或列名的列表。默认值为None,表示考虑整个行。
  • keep(可选):指定保留哪个重复项。可选值为'first''last'False。默认值为'first',表示保留第一个出现的重复项。
  • inplace(可选):一个布尔值,用于指示是否要在原始数据框架上进行更改。默认值为False,表示返回一个新的数据框架。

示例

1. 删除整行重复项

首先,让我们创建一个包含重复行的数据框架,并使用drop_duplicates()函数来删除这些重复行。

import pandas as pd

# 创建数据框架
data = {'姓名': ['张三', '李四', '王五', '张三', '李四'],
        '年龄': [25, 30, 35, 25, 30],
        '城市': ['北京', '上海', '北京', '北京', '上海']}
df = pd.DataFrame(data)

# 删除整行重复项
df.drop_duplicates(inplace=True)

# 打印结果
print(df)
Python

输出为:

   姓名  年龄  城市
0  张三  25  北京
1  李四  30  上海
2  王五  35  北京
Python

如上所示,drop_duplicates()函数删除了重复的行,并返回了一个新的数据框架。

2. 根据指定列删除重复项

有时我们只希望根据特定列来判断重复项,并根据其他列的值来保留其中的一项。在这种情况下,可以使用subset参数来指定要考虑的列。

import pandas as pd

# 创建数据框架
data = {'姓名': ['张三', '李四', '王五', '张三', '李四'],
        '年龄': [25, 30, 35, 25, 30],
        '城市': ['北京', '上海', '北京', '北京', '上海']}
df = pd.DataFrame(data)

# 根据姓名列删除重复项
df.drop_duplicates(subset=['姓名'], inplace=True)

# 打印结果
print(df)
Python

输出为:

   姓名  年龄  城市
0  张三  25  北京
1  李四  30  上海
2  王五  35  北京
Python

如上所示,通过指定subset=['姓名']drop_duplicates()函数只根据姓名列来判断重复项,并且保留了第一个出现的重复项。

3. 根据多个列删除重复项

如果需要根据多个列来判断重复项,只需在subset参数中提供列名的列表。

import pandas as pd

# 创建数据框架
data = {'姓名': ['张三', '李四', '王五', '张三', '李四'],
        '年龄': [25, 30, 35, 25, 30],
        '城市': ['北京', '上海', '北京', '北京', '上海']}
df = pd.DataFrame(data)

# 根据姓名和城市列删除重复项
df.drop_duplicates(subset=['姓名', '城市'], inplace=True)

# 打印结果
print(df)
Python

输出为:

   姓名  年龄  城市
0  张三  25  北京
1  李四  30  上海
Python

如上所示,在subset=['姓名', '城市']的情况下,drop_duplicates()函数根据姓名城市两列来判断重复项,并删除了第二个出现的重复项。

4. 保留最后一个重复项

除了保留第一个出现的重复项外,还可以使用keep='last'来保留最后一个出现的重复项。

import pandas as pd

# 创建数据框架
data = {'姓名': ['张三', '李四', '王五', '张三', '李四'],
        '年龄': [25, 30, 35, 25, 30],
        '城市': ['北京', '上海', '北京', '北京', '上海']}
df = pd.DataFrame(data)

# 删除整行重复项,并保留最后一个重复项
df.drop_duplicates(keep='last', inplace=True)

# 打印结果
print(df)
Python

输出为:

   姓名  年龄  城市
2  王五  35  北京
3  张三  25  北京
4  李四  30  上海
Python

如上所示,drop_duplicates(keep='last')函数保留了最后一个出现的重复项。

5. 返回新的数据框架

默认情况下,drop_duplicates()函数返回一个不带重复行的新的数据框架,原始数据框架保持不变。

import pandas as pd

# 创建数据框架
data = {'姓名': ['张三', '李四', '王五', '张三', '李四'],
        '年龄': [25, 30, 35, 25, 30],
        '城市': ['北京', '上海', '北京', '北京', '上海']}
df = pd.DataFrame(data)

# 删除整行重复项,并返回新的数据框架
df_new = df.drop_duplicates()

# 打印结果
print(df_new)

# 打印原始数据框架
print(df)
Python

输出为:

   姓名  年龄  城市
0  张三  25  北京
1  李四  30  上海
2  王五  35  北京
Python
   姓名  年龄  城市
0  张三  25  北京
1  李四  30  上海
2  王五  35  北京
3  张三  25  北京
4  李四  30  上海
Python

如上所示,在调用drop_duplicates()函数后,得到了一个新的数据框架df_new,其中不含重复的行。原始数据框架df保持不变。

6. 在原数据框架上进行修改

如果希望在原始数据框架上进行修改,而不是返回一个新的数据框架,可以将inplace参数设置为True

import pandas as pd

# 创建数据框架
data = {'姓名': ['张三', '李四', '王五', '张三', '李四'],
        '年龄': [25, 30, 35, 25, 30],
        '城市': ['北京', '上海', '北京', '北京', '上海']}
df = pd.DataFrame(data)

# 删除整行重复项,并在原数据框架上进行修改
df.drop_duplicates(inplace=True)

# 打印结果
print(df)
Python

输出为:

   姓名  年龄  城市
0  张三  25  北京
1  李四  30  上海
2  王五  35  北京
Python

如上所示,在调用drop_duplicates(inplace=True)函数后,原始数据框架df被直接修改为不含重复行的数据框架。

结语

以上就是关于Python的drop_duplicates()方法的介绍和实例。通过使用该函数,我们可以轻松地删除数据框架中的重复行,并根据自己的需求进行自定义配置。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程