標準化總覽

Cloud Dataprep by TRIFACTA® 提供多種機制來查看您的資料欄值,並識別資料格式中的模式或意指同一事物的相似值。透過簡單的視覺工具,您就可以選取要標準化的模式或分群值,並在系統提示時,選取要用做標準的模式或值。您還可以視需要,將格式化或結構化函式套用到資料,以進行精細的控制。本節說明可用的標準化方法及其建議用法。

標準化方法

您可以使用下列任一方法,將資料集資料欄中的值標準化。視情況而定,您可能可以選擇混搭使用這些方法。這些方法詳述如下。

方法說明建議用法使用方法
依分群法

Cloud Dataprep by TRIFACTA 可使用其中一種可用的演算法來比較值,進而識別相似值。您可以根據拼字或無關語言的發音比較值。

  • 將值標準化,以更正拼字差異、大小寫、空格及其他錯誤。
  • 在資料欄中,所有資料列的值必須一致。
  • 主要用於以字串為主的資料類型。
透過標準化頁面提供。
依模式

Cloud Dataprep by TRIFACTA 可在一組值中識別共同的模式,然後建議使用轉換將值標準化為通用格式。

  • 將值標準化以採用一致的格式,例如,電話號碼或身分證字號。
  • 資料類型採用某種程度的一致格式並需要重新調整。
透過資料欄詳細資料面板中的「Patterns」分頁提供
依函式您可套用一或多個特定函式,以清理格式化或結構中輕度錯誤的資料。
  • 此方法適合用於改善以模式或演算法為主的比對效能。
  • 有些函式專用於一種資料類型,有些函式則有較多的一般應用。
轉換製作工具中編輯含有公式的資料欄。
自由搭配您可以使用上述方法的組合,來進行較複雜的應用實例。
  • 使用以函式為主的標準化來全域變更所有值,結合以分群或模式為主的標準化來變更個別值。

無效的值

這些標準化技巧假設資料欄只含有效值或空白值。

提示:標準化可能有助於減少無效值的數量。不過,在您開始標準化之前,請先選取資料欄直方圖中的紅色長條,來查看對目前類型無效的值,然後透過建議進行修正 (如果可以的話)。詳情請參閱找出無效資料一文。

依分群法標準化值

藉由使用其中一個支援的比對演算法,Cloud Dataprep by TRIFACTA 可以將相似的資料欄值群聚在一起。您可以查看值的分群,來判斷其是否應對應至相同值。如果是,您可以在應用程式中套用這些值的對應。

範例 - 多種分群法

來源:

下列資料集包含一些可予以標準化的值:

RowId
Row01Apple
Row02pear
Row03apple
Row04pair
Row05Åpple
Row06pare

當您使用以拼字為主的演算法進行標準化時,會將下列值分群:

來源值新值
Apple
apple
Åpple
未分群的值
pear
pair
pare

當您選取頂端的分群值後,可以在右側內容面板中輸入 apple,將分群值取代為單一字串。

上述未分群的值在拼字方面不同,但英文的發音相同 (即同音異義字)。當您選取以發音為主的演算法時,就會為這些值分群:

來源值新值

pear

pair
pare
未分群的值
Appleapple
appleapple
Åppleapple

當您選取頂端依發音分群的值時,可在右側內容面板中輸入 pear

結果:

這六個來源值透過兩種不同的分群方法,縮減為兩個最終值。如要進一步瞭解分群演算法,請參閱以下說明。

來源值新值

pear

pear
pairpear
parepear
Appleapple
appleapple
Åppleapple

您可以透過「Standardize」頁面套用以分群為主的標準化。請參閱標準化頁面一文。

分群演算法

下列是支援的分群值演算法。

相似字串

如要比較相似字串,可運用下列方法:

指紋:

指紋方法會先將下列步驟套用到資料,再進行比較和分群,藉此比較資料欄中的值:

注意:這些步驟適用於資料的內部表示法。您的資料集和方案不會因這個比較法而改變。只有您選擇修改值並新增對應時,才會套用變更。

  1. 移除字元中的重音,只保留 ASCII 字元。
  2. 將所有字元變更為小寫。
  3. 移除空格。
  4. 在標點符號、任何剩餘空格和控制字元位置分割字串。剩餘字元會組合成稱為符記的群組。
  5. 對符記排序並移除任何重複項目。
  6. 將符記聯結在一起。
  7. 比較資料欄中所有符記化的值,以進行分群。

指紋 N 元語法:

此方法採用與上述相容的步驟,但符記會依據特定 (N) 個字元進行拆分。根據預設,Cloud Dataprep by TRIFACTA 會使用 2 個字元的符記。

提示:這個方法可以提供更精確的比對,但對含有大量不重複值的資料欄而言,效能會受到影響。

發音

根據無關語言的發音,為值分群。

這個方法使用 Double Metaphone 演算法來比較字串。詳情請參閱比較字串一文。

依模式標準化格式

針對個別的資料欄,Cloud Dataprep by TRIFACTA 會針對模式分析資料欄值,然後建議如何將具模式的值正規化為一致的格式。比分說,同一個美國電話號碼可以用下列任一方法來表示:

555-1212
415-555-1212
4155551212
(415) 555-1212
+1 (415) 555-1212

提示:以模式為基礎的標準化,對確認資料欄中的值符合特定格式很有用。此方法適用於電話號碼、日期、身分證字號之類的資料類型,也適用於較小範圍的電子郵件地址和網址。

您可以透過「Patterns」分頁套用以模式為主的標準化。請參閱資料欄詳細資料面板一文。

使用函式進行標準化

您可以使用下列函式將值標準化。

字串函式

所有值都可以轉換為字串,所以只要將資料類型轉換為字串資料類型,這些字串函式即適用於任何資料欄。

提示:分群演算法可能會將部分這些函式套用至資料欄值,以進行比較。

類別函式說明
字串轉換CHAR 函式

產生與輸入整數值相對應的 Unicode 字元。

UNICODE 函式

為輸入字串的第一個字元產生 Unicode 索引值。

大小寫轉換UPPER 函式

輸入值中的所有字母字元都會在輸出值中轉換成大寫。

LOWER 函式

輸入值中的所有字母字元都會在輸出值中轉換成小寫。

PROPER 函式

將輸入字串轉換為適當的大小寫,輸入值可以是資料欄參照或字串常值。

清除函式TRIM 函式

移除字串的前置及後置空格,單字之間的空格不會遭到移除。

REMOVEWHITESPACE 函式

移除字串中的所有空格,包括前置和後置空格,以及字串中的所有空格。

REMOVESYMBOLS 函式

從字串中移除不是字母、數字、加重音拉丁字元或空白字元的所有字元。

字串調整大小函式LEFT 函式

依照參數的指定,比對字串中最左邊的字元集。字串可以是資料欄參照或字串常值。

RIGHT 函式

依照參數的指定,比對字串中右邊的字元集。字串可以是資料欄參照或字串常值。

PAD 函式

在字串左側或右側加入指定字元,將字串值填充至指定的長度下限。傳回的值屬於字串類型。

字串比較函式 請參閱比較字串一文。

範例:

Cloud Dataprep by TRIFACTA 支援將函式彼此套疊在一起。下列轉換會在資料集中屬於字串清除的所有資料欄上執行基本清除。

轉換名稱 Edit column with formula
參數:資料欄 *
參數:公式 IFVALID($col,'String',LEFT(UPPER(TRIM($col)),32))
  • 資料欄值是萬用字元,在此案例中,會將轉換套用至資料集的所有資料欄 (*)。
  • 在公式中,您會看到巢狀運算式。如果資料欄的值對字串資料類型而言有效,請對資料欄值執行下列操作:

    注意:IFVALID 函式會測試每個資料列值,驗證是否符合指定的資料類型。不會比對資料類型來測試資料欄。請參閱 IFVALID 函式一文。

    • TRIM 函式會移除前置和後置空格,這些可能會標示為值差。請參閱 TRIM 函式一文。
    • UPPER 函式接著將 TRIM 函式的輸出轉換為全部大寫。這樣的方式排除了大小寫差異問題。請參閱 UPPER 函式一文。
    • LEFT 函式會將 UPPER 函式的輸出截斷成不超過 32 個字元的長度。請參閱 LEFT 函式一文。

將這個單一步驟套用至所有資料欄的結果就是移除空格,轉換為大寫,然後將每個字串的長度截斷成只有 32 個字元。

詳情請參閱清理工作一文。

數字函式

您可以使用下列函式,將數值標準化。

函式說明
ABS 函式

計算指定數字值的絕對值。值可以是小數或整數常值,或含有數字值的資料欄參照。

ROUND 函式

將輸入值四捨五入至最接近的整數。輸入值可以是整數、小數、資料欄參照或運算式。可選擇的第二個引數可用來指定要捨入的位數。

TRUNC 函式

為所有值移除小數點右側的所有數字,或是選擇指定要四捨五入的數字位數。輸入值可以是整數、小數、資料欄參照或運算式。

NUMFORMAT 函式

根據指定的數字格式,設定一組數值的格式。來源值可以是含有整數或小數值的資料欄參照。

範例:

對於 NUMFORMAT 函式,您可以指定完整格式,用於在資料欄中確認數值。在下列的範例中,凡是含有小數點並且符合小數 (浮點) 類型的值都會強制在小數前面加上值。這個步驟會將 .00 之類的值轉換為 0.00,藉此將數字格式標準化。

轉換名稱 Edit column with formula
參數:資料欄 *
參數:公式 IF(FIND($col, '.')>0, IFVALID($col, 'Float',NUMFORMAT(ROUND($col,2), '0.00')),$col)
  • 資料欄值是萬用字元,在此案例中,會將轉換套用至資料集的所有資料欄 (*)。
  • 在公式中,您會看到巢狀運算式,這比前面的字串範例要更複雜一些。
    • 外部 IF 函式會測試 FIND 函式是否在搜尋每個資料欄值中的句點 (.) 時傳回非零的值。符合的值可能是小數,因而需要進一步評估:
    • 如果資料欄中的值對小數 (浮點) 資料類型而言有效,則執行下列操作:

      • 使用 ROUND,將值四捨五入至小數點後兩位數。詳情請參閱 ROUND 函式一文。

      • 將值設定為下列格式:

        0.00
      • 上述格式表示四捨五入至小數點後兩位數,如果輸入的捨入值沒有小數點,則額外補上零。
      • 此外,如果 ROUND 函式的輸出遺漏零,會在小數前面插入另一個零。
      • 如要進一步瞭解數字格式,請參閱 NUMFORMAT 函式一文。

如需更多資訊,請參閱正規化數字值一文。

日期函式

由於日期是字串為主之資料的結構化模式,所以最佳做法是使用資料欄詳細資料面板中的「Patterns」分頁。請參閱下文。

如要進行更細的修改,您可以指定將格式化字串做為 DATEFORMAT 函式的一部分,套用至資料欄中的日期。

函式說明
DATEFORMAT 函式

依據指定的日期格式,對一組指定的日期時間值執行格式化。來源值可以是含有日期時間值的資料欄參照。

如要進一步瞭解 DATEFORMAT 函式 (包括範例),請參閱格式化日期一文。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁