Python 中处理数据集中的重复值


简介

本文介绍了如何使用 Python 处理数据集中的重复值。它定义了重复值,展示了如何在 Pandas DataFrame 中识别它们,并提供了多种处理重复值的方法,包括删除重复项、保留第一次或最后一次出现以及用替代值替换重复项。本文强调了管理重复值的重要性,以支持准确的数据分析和机器学习模型。

在每个涉及数据分析或机器学习的项目中,数据清洗都是一个至关重要的步骤。数据集出现重复值是数据质量最常见的问题之一。在数据分析和机器学习模型中,重复项可能导致偏差和不准确性。因此,识别和管理数据集中的重复项至关重要。在本文中,我们将学习如何在 Python 中处理数据集中的重复值。

数据集中的重复值很常见,并且可能干扰数据分析。在本篇文章中,我们将探讨如何使用 Python 处理数据集中的重复值。

什么是重复值?

数据集中的数据点,如果在所有或部分特征中具有相同的值,则被认为具有重复值。重复值可能是由于数据输入、数据收集或其他情况等问题而产生的。

识别重复值

处理重复值的步骤第一步是找到数据集中的重复项。Pandas 库中提供了许多函数来查找重复项。duplicated 方法返回一个布尔型 Series,指示哪一行是另一行的重复项。drop_duplicates 函数用于从数据集中删除重复行。

下面是一个如何在 Pandas DataFrame 中识别重复值的示例:

示例

import pandas as pd

# Create a sample DataFrame with duplicate values
data = pd.DataFrame({
   'name': ['John', 'Emily', 'John', 'Jane', 'John'],
   'age': [25, 28, 25, 30, 25],
   'salary': [50000, 60000, 50000, 70000, 50000]
})

# Identify duplicate rows
duplicates = data.duplicated()

# Print the duplicate rows
print(data[duplicates])

输出

   name  age  salary
2  John   25   50000
4  John   25   50000

提供的 Python 代码可以找到并打印 Pandas DataFrame 中的重复值。代码的分解如下:

  • 首先,将 Pandas 库导入为 pd。

  • 一个示例 DataFrame,其中三列“姓名”、“年龄”和“收入”存在重复项。

  • 使用 Pandas 的 duplicated() 函数查找 DataFrame 中的重复行。此函数会为每一行生成一个布尔型 Series,如果该行是先前行的重复项,则值为 True。

  • 使用方括号在布尔型 Series 中索引原始 DataFrame。在本例中,只返回重复行。

  • 最后一步是将包含重复行的 DataFrame 打印到控制台。

此代码将生成一个 DataFrame,其中包含基于所有列的先前行的重复行。

处理重复值

找到重复行后,我们需要处理它们。处理重复项的方法有很多,具体取决于特定的用例。以下是一些常见的方法:

  • 删除重复行 - 这是一种简单的方法。可以使用 drop_duplicates 方法删除 DataFrame 中的重复项。

示例

# Drop duplicate rows
data = data.drop_duplicates()

# Print the updated DataFrame
print(data)

输出

    name  age  salary
0   John   25   50000
1  Emily   28   60000
3   Jane   30   70000
  • 保留第一个或最后一个重复项:可以保留第一个或最后一个重复值。可以使用 drop_duplicates 方法中的 keep 参数来选择要保留的出现次数。

示例

# Keep the first occurrence of the duplicates
data = data.drop_duplicates(keep='first')

# Print the updated DataFrame
print(data)

输出

    name  age  salary
0   John   25   50000
1  Emily   28   60000
3   Jane   30   70000
  • 替换重复值:我们可以用替代值替换重复值,例如该列的平均值或中位数。我们可以使用 groupby 函数对数据进行分组,并获取平均值或中位数。

示例

# Replace duplicate values with the median of the column
data['salary'] = data.groupby('name')['salary'].transform('median')

# Print the updated DataFrame
print(data)

输出

    name  age  salary
0   John   25   50000
1  Emily   28   60000
3   Jane   30   70000

结论

总之,管理数据集中的重复值对于确保准确的数据分析和机器学习模型至关重要。Python Pandas 库中提供了函数来查找和管理数据集中的重复项。duplicated() 方法返回一个布尔型 Series,指示哪一行是另一行的重复项。drop_duplicates() 方法用于删除数据集中的重复行。可以采用多种方法处理重复值,包括删除重复项、保留第一个或最后一个出现以及用其他值(例如该列的平均值或中位数)替换重复值。

更新于: 2023年3月10日

5K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告