删除重复值,不只Excel,Python pandas更行 您所在的位置:网站首页 python删除数据集中的重复数据 删除重复值,不只Excel,Python pandas更行

删除重复值,不只Excel,Python pandas更行

2024-05-06 21:29| 来源: 网络整理| 查看: 265

标签:Python与Excel,pandas

在Excel中,我们可以通过单击功能区“数据”选项卡上的“删除重复项”按钮“轻松”删除表中的重复项。确实很容易!然而,当数据集太大,或者电子表格中有公式时,这项操作有时会变得很慢。因此,我们将探讨如何使用Python从数据表中删除重复项,它超级简单、快速、灵活。

图1

准备用于演示的数据框架

可以到完美Excel社群下载示例Excel电子表格以便于进行后续操作。首先,让我们将电子表格加载到Python中。

import pandas as pd

df = pd.read_excel(‘D:\用户-1.xlsx’)

图2

快速观察上述小表格:

第1行和第5行包含完全相同的信息。第3行和第4行包含相同的用户名,但国家和城市不同。

删除重复值

根据你试图实现的目标,我们可以使用不同的方法删除重复项。最常见的两种情况是:从整个表中删除重复项或从列中查找唯一值。我们将了解如何使用不同的技术处理这两种情况。

从整个表中删除重复项

Python提供了一个方法.drop_duplicates()可以帮助我们轻松删除重复项!此方法包含以下参数:

subset:引用列标题,如果只考虑特定列以查找重复值,则使用此方法,默认为所有列。keep:保留哪些重复值。’first’(默认):保留第一个重复值;’last’:保留最后一个重复值。False:删除所有重复项。inplace:是否覆盖原始数据框架。

图3

在上面的代码中,我们选择不传递任何参数,这意味着我们检查所有列是否存在重复项。唯一完全重复的记录是记录#5,它被丢弃了。因此,保留了第一个重复的值。

图4

这一次,我们输入了一个列名“用户姓名”,并告诉pandas保留最后一个的重复值。现在pandas将在“用户姓名”列中检查重复项,并相应地删除它们。记录#1和3被删除,因为它们是该列中的第一个重复值。

现在让我们检查原始数据框架。它没有改变!这是因为我们将参数inplace留空,默认情况下其值为False。如果我们指定inplace=True,那么原始的df将替换为新的数据框架,并删除重复项。

图5

在列表或数据表列中查找唯一值

有时,我们希望在数据框架列的列表中查找唯一值。在这种情况下,我们不会使用drop_duplicate()。我的意思是,虽然我们可以这样做,但是有更好的方法找到唯一值。

pandas Series vs pandas数据框架

对于Excel用户来说,很容易记住他们之间的差异。数据框架是一个表或工作表,而pandas Series是该表/表中的一列。换句话说,数据框架由各种系列组成。

pandas Series方法.unique()

pandas Series有一个.unique()方法;然而,pandas Dataframe没有此方法。

当我们对pandas Series对象调用.unique()时,它将返回该列中唯一元素的列表。

图6

在pandas Dataframe上调用.unique()时,我们将收到一条错误消息,因为数据框架上上不存在此方法!

图7

Python集

获取唯一值的另一种方法是使用Python中的数据结构set,集(set)基本上是一组唯一项的集合。由于集只包含唯一项,如果我们将重复项传递到集中,这些重复项将自动删除。

图8

下面是一个示例。

我们的列(或pandas Series)包含两个重复值,”Mary Jane”和”Jean Grey”。通过将该列转换为一个集,我们可以有效地删除重复项!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有