“删除重复行”组件

本文介绍 Azure 机器学习设计器中的一个组件。

使用此组件从数据集中删除可能的重复数据。

例如,假设数据看上去如下所示,其中包含了多个患者记录。

PatientID Initials 性别 Age 入院时间
1 F.M. M 53 一月
2 F.A.M. M 53 一月
3 F.A.M. M 24 一月
3 F.M. M 24 二月
4 F.M. M 23 二月
F.M. M 23
5 F.A.M. M 53
6 F.A.M. M NaN
7 F.A.M. M NaN

显然,这个示例有多个列,其中可能有重复的数据。 它们是否确实是重复项取决于你对数据的了解。

  • 例如,你可能知道许多患者具有相同的姓名。 不使用任何姓名列消除重复项,仅使用“ID”列进行消除。 这样,无论患者是否具有相同的姓名,都只会筛选出具有重复 ID 值的行。

  • 或者,可以选择允许 ID 字段中存在重复项,而使用一些其他的文件组合来查找唯一记录,如名字、姓氏、年龄和性别。

若要设置用于判断行是否重复的条件,请将一列或一组列指定为键。 仅当两行的所有键列中的值相等时,才会将两行视为重复。 如果任何行缺少键值,则不会将这些行视为重复行。 例如,如果在上表中将“性别”和“年龄”设置为“键”,则第 6 行和第 7 行不是重复行,因为其缺少“年龄”值。

运行此组件时,它会创建一个候选数据集,并返回一个行集,这些行在指定的列集中没有重复项。

重要

源数据集未更改;此组件创建一个新数据集,该数据集根据指定的条件进行筛选以排除重复项。

如何使用“删除重复行”

  1. 将此组件添加到管道。 可以在“数据转换”下的“操作”中找到“删除重复行”组件。

  2. 连接要检查其是否有重复行的数据集。

  3. 在“属性”窗格的“键列选择筛选器表达式”下,单击“启动列选择器”,选择用于标识重复项的列 。

    在此上下文中,“键”并不表示唯一标识符。 使用“列选择器”选择的所有列都指定为“键列”。 所有未选定的列都被视为非键列。 所选择的作为键的列的组合确定了记录的唯一性。 (可将其想象成使用多个等值连接的 SQL 语句。)

    示例:

    • “我想要确保 ID 是唯一的”:仅选择“ID”列。
    • “我想要确保名字、姓氏和 ID 的组合是唯一的”:选中所有三个列。
  4. 使用“保留第一个重复行”复选框指示在找到重复项时要返回的行:

    • 如果选择此选项,则返回第一行,丢弃其他行。
    • 如果取消选择此选项,则最后一个重复行将保留在结果中,而丢弃其他行。
  5. 提交管道。

  6. 若要查看结果,请右键单击组件,然后选择“可视化”。

提示

如果结果难以理解,或者你不想考虑某些列,则可使用在数据集中选择列组件来删除列。

后续步骤

请参阅 Azure 机器学习可用的组件集