群集值

聚类值使用模糊匹配算法自动创建具有相似值的组,然后将每个列的值映射到最佳匹配组。 使用具有相同值的不同变体的数据时,此转换非常有用,并且需要将值合并为一致的组。

请考虑一个包含 ID 列的示例表,其中包含一组 ID ,一个 Person 列,其中包含一组各种拼写和大写版本的名称 Miguel、Mike、William 和 Bill。

表格的屏幕截图,其中包含了九行包含 Miguel 和 William 名字的各种拼写和大写的条目。

在此示例中,要查找的结果是一个表,其中包含一个新列,其中显示了 “人员” 列中的正确值组,而不是相同单词的所有不同变体。

在初始表中将聚集值作为名为 Cluster 的新列的屏幕截图。

注释

群集值功能仅适用于 Power Query Online。

创建群集列

若要群集值,请先选择 “人员 ”列,转到功能区中的 “添加列 ”选项卡,然后选择 “群集值 ”选项。

Power Query Online 功能区“添加列”选项卡内的群集值图标的屏幕截图。

“群集值 ”对话框中,确认要用于从中创建群集的列,然后输入列的新名称。 在本例中,将此新列命名为 “群集”。

“群集值”窗口的屏幕截图,其中选择了“人员”列,“新建”列名为“群集”。

该作的结果如下图所示。

在初始表中将聚集值作为名为 Cluster 的新列的屏幕截图。

注释

对于每个值群集,Power Query 将从所选列中选取最频繁的实例作为“规范”实例。 如果出现多个实例的频率相同,Power Query 将选取第一个实例。

使用模糊群集选项

以下选项可用于新列中聚类值的生成:

  • 相似性阈值(可选):此选项指示必须将两个值组合在一起的方式。 最小设置为零(0)会导致所有值组合在一起。 最大设置为 1 仅允许完全匹配的值组合在一起。 默认值为 0.8。
  • 忽略大小写:比较文本字符串时,将忽略大小写。 此选项默认处于启用状态。
  • 通过组合文本部件进行分组:算法尝试将文本部件(例如将 Micro 和 soft 组合到 Microsoft)组合到分组值。
  • 显示相似性分数:显示输入值与计算出代表性值之间的相似性分数(在模糊聚类分析后)。
  • 转换表(可选):可以选择映射值(例如将 MSFT 映射到 Microsoft)的转换表,以将它们组合在一起。

对于本示例,使用名为 我的转换表 的新的转换表来演示如何映射值。 此转换表有两列:

  • 来源:要查找在表中的文本字符串。
  • :用于替换 From 列中的文本字符串。

表格的屏幕截图,显示 Mike 和 William 的 From 值,以及 Miguel 和 Bill 的 To 值。

重要

转换表具有与上图中显示的相同列和列名(它们必须命名为“From”和“To”),否则 Power Query 不会将此表识别为转换表,并且不会发生任何转换。

使用之前创建的查询,双击 “聚集值 ”步骤,然后在“ 群集值 ”对话框中展开 模糊群集选项。 在 模糊群集选项下,启用 “显示相似性分数 ”选项。 对于 转换表(可选),请选择具有转换表的查询。

模糊群集选项的屏幕截图,其中转换表下拉菜单设置为示例转换表。

选择转换表并启用 “显示相似性分数 ”选项后,选择“ 确定”。 该作的结果提供一个表,其中包含与原始表相同的 IDPerson 列,但也包含两个名为 ClusterPerson_Cluster_Similarity 的新列。 群集列包含 Miguel 和 Mike 这些名字的正确拼写和大写版本,作为 Miguel 的变体,以及 Bill、Billy 和 William 这些名字的正确拼写和大写版本,作为 William 的变体。 Person_Cluster_Similarity列包含每个名称的相似性分数。

包含新群集和Person_Cluster_Similarity列的表的屏幕截图。

转换表原则

你可能会注意到,上一部分中的转换表似乎表明迈克的实例已更改为 Miguel,威廉的实例更改为 Bill。 然而,在生成的表中,比尔和“billy”的实例被改为威廉。 在转换表中,转换表不是直接 从头 的路径,而是在聚类分析期间对称的,这意味着“mike”等效于“Miguel”,反之亦然。 转换表中给定的等效项的结果取决于以下规则:

  • 如果存在大多数相同的值,则这些值优先于非典型值。
  • 如果没有大多数值,则首先出现的值优先。

例如,在本文中使用的原始表中, “Person ”列中的 Miguel(既是“miguel”和“Miguel”)的版本构成了名称 Miguel 和 Mike 的大多数实例。 此外,首字母大写的“米格尔”占据了名字“米格尔”的大部分。 因此,将 Miguel 及其派生项与 Mike 及其派生项关联在转换表中,结果是在 群集 列中使用 Miguel 这个名称。

但是,对于威廉、比尔和“billy”的名字,没有大多数值,因为这三个都是唯一的。 由于 William 首先出现,因此在 “聚类” 列中使用 William。 如果表中首先出现“billy”,则会在 “群集 ”列中使用“billy”。 此外,由于没有大多数值,因此使用各个名称使用的事例。 也就是说,如果威廉是第一个,则使用威廉的大写形式“W”作为结果值;如果“billy”是第一个,则使用billy的小写形式“b”。