共用方式為


叢集值

叢集值會利用模糊匹配演算法自動建立具有相似值的群組,然後將每欄的值映射到最匹配的群組。 這個轉換在處理同一值有許多不同變體的資料時非常有用,且需要將數值合併成一致的群組。

考慮一個範例表,其中的 id 欄位包含一組 ID,以及一欄 Person ,包含一組不同拼寫與大小寫的 Miguel、Mike、William 和 Bill 名字。

表格截圖,包含九行條目,包含Miguel和William名字的各種拼寫與大小寫。

在這個例子中,你要找的結果是一個有新欄位的表格,顯示來自 Person 欄位的正確數值群組,而不是同一詞的所有不同變體。

這是將聚類值作為初始表格中新欄位「Cluster」的截圖。

備註

叢集值功能僅在 Power Query Online 上提供。

建立叢集欄位

要分組數值,先選擇 「人物 」欄位,進入色帶中的 「新增」欄位 標籤,然後選擇 「群組」值 選項。

Power Query 線上功能區中新增欄位標籤內叢集值圖示的截圖。

叢集值 對話框中,確認你想用來建立叢集的欄位,然後輸入該欄位的新名稱。 在這種情況下,將這個新欄位命名 為 Cluster

群組值視窗的截圖,欄位選取了「人物」,新增欄位命名為叢集。

該操作的結果如下圖所示。

這是將聚類值作為初始表格中新欄位「Cluster」的截圖。

備註

對於每個值群組,Power Query 會從所選欄位中選擇最頻繁的實例作為「典範」實例。 如果有多個實例以相同頻率出現,Power Query 會選擇第一個。

使用模糊聚類選項

以下選項可用於將數值聚類到新欄位:

  • 相似度門檻(可選):此選項表示兩個數值必須多相似才能被歸類。 最小設定為零(0)時,所有值會被歸為一組。 最大設定為 1 時,只能將完全相同的數值分組在一起。 預設值是 0.8。
  • 忽略大小寫:當比較文字串時,忽略大小寫。 此選項預設為啟用。
  • 透過結合文字部分來分組:該演算法嘗試將文字部分(例如將 Micro 與 Soft 合併成 Microsoft)來分組數值。
  • 顯示相似度分數:顯示輸入值與經過模糊分群後計算出的代表性值之間的相似度分數。
  • 轉換表(可選):你可以選擇一個轉換表,將數值對應(例如將 MSFT 映射到 Microsoft)並將其分組。

在這個範例中,使用一個名為 My transform table 的新轉換表來示範如何映射值。 此轉換表有兩欄:

  • 來源:表格中要尋找的文字字串。
  • 收件人:用來替換 「From 」欄位文字字串的文字字串。

表格截圖顯示 From 的 Mike 和 William 的值,以及 To 的 Miguel 和 Bill 的值。

這很重要

重要的是,轉換表的欄位和欄位名稱必須與前一張圖片相同(必須命名為「From」和「To」),否則 Power Query 不會將此表格辨識為轉換表,且不會進行轉換。

使用先前建立的查詢,雙擊「 Clustered values 」步驟,然後在 「Cluster values 」對話框中展開 模糊群組選項。 在 模糊叢集選項中,啟用 「顯示相似度分數」 選項。 對於轉換表(可選),選擇具有轉換表的查詢。

模糊叢集選項的截圖,轉換表下拉選單設為樣本轉換表。

選擇轉換表並啟用 「顯示相似度分數」 選項後,選擇 確定。 這個操作的結果會得到一個包含原始資料表相同的 idPerson 欄位的資料表,但同時新增了兩個欄位,分別是 ClusterPerson_Cluster_SimilarityCluster 欄位包含 Miguel 和 William 的正確拼寫且大寫的標準版本,其中 Miguel 包含 Miguel 和 Mike 的各種版本,而 William 包含 Bill、Billy 和 William 的不同版本。 Person_Cluster_Similarity欄包含每個名字的相似度分數。

包含新Cluster和Person_Cluster_Similarity欄位的表格截圖。

轉換表原則

你可能會注意到前一節的轉換表似乎顯示麥克的實例改成米格爾,威廉的實例改為比爾。 然而,在結果的表格中,Bill 和「billy」的實例改成了 William。 在轉換表中,這張表並不是直接的的路徑,而是聚類時是對稱的,也就是說「mike」等於「Miguel」,反之亦然。 轉換表中等價項的結果取決於以下規則:

  • 如果多數值相同,這些值優先於非相同值。
  • 如果沒有多數值,先出現的值優先。

例如,本文所用的原始表格中,人物欄中的 Miguel 的變體(包括"miguel" 和 Miguel)佔了 Miguel 和 Mike 出現的大多數例子。 此外,名字Miguel中的大寫字母「M」占了名字的主要部分。 因此,將 Miguel 及其導數與 Mike 及其導數關聯到轉換表,會導致 Cluster 欄位中使用 Miguel 這個名字。

然而,對於 William、Bill 和「billy」這三個名字,並沒有多數數值,因為這三者都是獨一無二的。 由於威廉出現在最前面,威廉被用於 叢集 欄。 如果「billy」在表格中最先出現,那麼「billy」就會出現在 Cluster 欄位。 另外,因為沒有佔多數的數值,所以會使用個別名字的原有大小寫格式。 也就是說,如果威廉是第一個,則使用大寫字母「W」的威廉作為結果值;如果「Billy」在前面,則使用小寫「b」的「billy」。