正規化數字值

本節說明如何使用一些技巧將資料集裡的數字值正規化。在理想情況下,您的來源系統會被設定為採用標準化結構與格式的一組一致單位來擷取和遞送資料。但在實務中,來自多個系統的資料會在數字資料使用的精確度層級上發生差異,或是明明參照相同的內容,但文字輸入卻有不同。在 Cloud Dataprep by TRIFACTA® 中,您可以使用以下技巧,解決將數字類型的單位和值標準化時可能會遇到的一些問題。

標準化小數精確度

在資料欄中,如果小數值的精確度層級不一致,您可以將精確度標準化為單一層級。

步驟:

  1. 在資料欄選單中選取 [Column Details]
  2. .在「資料欄詳細資料」面板中,選取 [Patterns] 分頁標籤,並在模式中選取下列項目:

    {digit}.{digit}
  3. 在右側的「Suggestions」面板中,找出使用 ROUND 函式的「Edit Column」轉換建議。按一下 [Edit]
  4. 變更 ROUND 函式的第二個參數以符合精確度的位數。

如要在多個資料欄中將此格式設定一般化,請在轉換的函式中套用 $col 參照,如下所示:

轉換名稱 Edit column with formula
參數:資料欄 colA, colB, colC
參數:公式 IFVALID($col, ['Float'], ROUND($col, 2))

請參閱資料欄詳細資料面板

詳情請參閱 ROUND 函式

標準化單位

提示:含有數字值的每個資料欄應該都有指定的測量單位。在理想狀況下,這個資訊應嵌入資料欄資料的名稱中。如果資料欄名稱不含測量單位,則難以適當的解譯資料。

TRIFACTA 提供的 Cloud Dataprep 不會對匯入的資料加上任何單位。例如,浮點格式值的資料欄可能表示公分、盎司或任何其他測量單位。只要資料符合資料欄的特定資料類型,TRIFACTA 提供的 Cloud Dataprep 就能使用該資料。

但這樣的靈活度可能對資料集的使用者造成問題。如果資料沒有標示清楚且被轉換成一組標準化單位,則使用者會被迫假設資料,因而造成資料誤用。

提示:部分測量單位的意義可能會隨著時間而變更。例如,2010 年的美元價值與 2015 年的美元價值不同。當您對意義會變化的測量單位進行標準化時,如果可能,應將任何因時間而發生的差異列入考量。

範例 - 固定轉換因子

在多數情況下,只要將固定轉換因子套用於資料欄,就可以將原有的單位換算成其他單位。例如,您的資料集裡含有下列三個資料欄的測量資料:

PersonHeight_ftWeight_kgArm_Length_in
Jack5'10"92 kg32
Jill5'2"56 kg29
Joe6'3"101 kg35

上方資料有以下問題:

  1. 「Weight」和「Height」資料欄中含有識別單位,這會強制系統將值視為字串。
  2. 混合使用公制資料 (公斤) 與英制單位資料 (英尺及英寸)。
  3. 「Height」資料不是數字。

問題 1 - 移除單位

Weight_kg 資料欄含有識別單位。匯入時,這些值會被視為字串,因而限制了這些值的在分析上的使用。

步驟:

  1. 在資料格線中,選取一個「.kg」例項。請注意,空格應一併選取。
  2. 在建議資訊卡中,選取「取代」資訊卡。
  3. 系統應該會自動選擇取代為空格,以有效刪除內容。如要檢查,請按一下 [Modify]
  4. 轉換指令應如下所示:

    轉換名稱 Replace text or patterns
    參數:資料欄 Weight_kg
    參數:尋找 ' kg'
    參數:替換值 ''
    參數:比對所有發生情況 true
  5. 將轉換作業加入您的方案。
  6. 驗證資料欄的資料類型是否已變更為 IntegerDecimal,視資料欄所含的值而定。

問題 2 - 將英制轉換成公制單位

如要重量正規化為英制單位,只要將 Weight 值乘以 2.2 就可以解決這個問題,因為 1 公斤 = 2.2 磅:

轉換名稱 Edit column with formula
參數:資料欄 Weight_kg
參數:公式 (Weight_kg * 2.2)

如果想要將值四捨五入到最接近的整數,請使用下列指令:

轉換名稱 Edit column with formula
參數:資料欄 Weight_kg
參數:公式 ROUND((Weight_kg * 2.2))

將上述轉換作業加入方案後,應重新命名資料欄:Weight_lbs

問題 3 - 將英尺/英寸轉換成英寸

最後一個問題是如何將 Height_ft 值轉換成以英寸表示的單一值,如此一來,就能在資料集裡以一致的方式使用這些值與其他資料欄。

匯入時,資料欄中的資料可能會如下所示:

Height_ft
"5'10""
"5'2""
"6'3""

步驟:

  1. 選取其中一個項目的第一個引號。
  2. 在建議資訊卡中,選取「取代」資訊卡。
  3. 選取刪除資料欄中所有引號的變異項目。

  4. 完整指令應如下所示:

    轉換名稱 Replace text or patterns
    參數:資料欄 Height_ft
    參數:尋找 `"`
    參數:替換值 ''
    參數:比對所有發生情況 true
  5. 將轉換作業加入您的方案。
  6. 其餘步驟會計算英寸數。將英尺乘以 12,然後加上英寸數,將結果值儲存到新資料欄。
  7. 選取單引號,然後選擇「Split」建議資訊卡。這個轉換步驟應該會將這個資料欄分割成兩個資料欄:Height_ft1Height_ft2
  8. 取得以英寸為單位的值:

    轉換名稱 New formula
    參數:公式類型 Single row formula
    參數:公式 ((Height_ft1 *12)+Height_ft2)
    參數:新資料欄名稱 Height_in
  9. 您可以刪除其他暫時資料欄。

動態轉換因子

在某些情況下,兩個不同測量單位之間必須採用動態的轉換率。常見的範例包括貨幣間的不相符。舉例來說,某一資料集使用美元值,而另一個資料集使用的值則以歐元表示。

在資料欄中

如果某一資料欄中含有單位不一致的資料時,套用乘數或許能更正這些值。例如,您或許可以判斷某些值是以公里為單位而非公尺,因為數值小許多。將公里值乘以 1000 應該就能將單位標準化。下列轉換會將 Distance 資料欄中所有小於 1000 的值乘以 1000。

轉換名稱 Edit column with formula
參數:資料欄 Distance
參數:公式 IF((Distance < 1000,(Distance * 1000), Distance)

請注意,此處背後的假設為以公里為單位的距離值並不會超過 1000。

注意:資料欄中不一致的單位值表示來源資料有問題,或資料欄資料在匯入後有經過修改。如果可能,首先應在來源資料中修正這些問題,否則可能會在使用這些資料時發生問題。

調整精確度層級

對於用於測量的數字值,您可以調整資料欄內及跨資料欄之間值的精確度層級。例如,您有下列資料欄:

NameWidth_cmHeight_cm
Object 123.355.5512
Object 265.2102.4024
Object 354.212.22

在上述範例中,您可以看到下列精確度不相符情況:

  • 「Height」資料欄中有一個值的測量算術精確度只有兩位數。
  • 「Width」資料欄使用兩位數的算術精確度,而「Height」資料欄卻採用更多位數的精確度。

若測量的精確度很重要,則應考慮捨入至最低層級的精確度。在此案例中,在「Height」資料欄中,精確度層級為小數點後的兩位有效數字 (例如,12.22)。但在資料集的所有資料欄中,精確度層級卻為小數點後的一位有效數字,如所有的 Width 值都限制為這個層級的精確度。雖然您可以選擇將所有資料欄的值均捨入至四位數,但額外的 0 值卻無法準確反映測量結果,因而造成誤解。

您可以使用下列轉換指令,對這些資料欄執行四捨五入的函式:

轉換名稱 Edit column with formula
參數:資料欄 Width_cm
參數:公式 NUMFORMAT(Width_cm '#.#')

轉換名稱 Edit column with formula
參數:資料欄 Height_cm
參數:公式 NUMFORMAT(Height_cm '#.#')

注意:上述指令假設來源資料中的有效數字數量維持固定。如果這個數量會隨著時間或方案的使用情況而改變,您可能需要重新查看這些特定的轉換步驟。

注意:上述的格式設定選項,針對類似 4.0 的值,捨棄其中的 0。但您可以改用 '#.0' 格式,即使在沒有 0 的情況下,這個格式也會一律插入 0。

結果:

NameWidth_cmHeight_cm
Object 123.355.5
Object 265.2102.4
Object 354.212.2

使用匯總來調整資料的精細程度

對於不同的資料階層,您可以使用匯總來將資料的精細程度調整成適當的分組層級。例如,您想要在由個別產品組成的資料集與由品牌組成的資料集之間建立聯結。在大部分情況下,您應該將第一個資料集裡的產品層級資料匯總至品牌層級。

注意:套用匯總時會產生新的資料表,其中含有您為了併入作業而特別選取的資料欄。

詳情請參閱透視資料

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

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

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