Case 轉換

注意:轉換屬於基礎程式語言的一部分,使用者無法直接存取。本篇文章的內容僅供參考。

此轉換使用 if-then-else 邏輯的單一陳述式,或是使用 case 邏輯的多個陳述式執行資料條件轉換,並於新資料欄中產生結果。

以下為對應至此轉換的函式:

基本用法

範例 - if/then/else

這個範例說明單一的 if/then/else 建構:

case if: testScore >= 60 then: 'yes' else: 'no' as: 'passedTest'

輸出:如果在 testScore 中的值大於或等於 60,yes 的值就會寫入至新 passedTest 資料欄,否則會寫入 no 值。

範例 - Case (單一資料欄)

此範例會逐步說明該如何將一系列的 case 測試套用至單一資料欄。

case col: custName colCases: ['Big Co',0.2],['Little Guy Ltd',0.05] default: 0 as: 'discountRate'

輸出:檢查在 custName 資料欄中的名稱,並依據資料欄中完全相符的值寫入折扣值。

custName valuediscountRate
Big Co0.2
Little Guy Ltd0.05
預設 (若沒有相符項目)0


範例 - Case (自訂條件)

下列範例會說明如何使用多個獨立條件來建構 case 轉換。測試可來自任意資料欄和運算式。

  • 測試第一個 case:
    • 若為 true,則所列的值會寫入新資料欄。
    • 若為 false,則測試下個 case。
  • 如果所述 case 皆未評估為 true,則寫入預設值。

case cases: [totalOrdersQ3 < 10, true], [lastOrderDays > 60, true] default: false as: 'sendCheckinEmail'

輸出:如果第三季的總訂單小於 10 或是最新訂單於 60 天之前下單,則在 true 中寫入 sendCheckinEmail,否則寫入 false

邏輯測試SendCheckinEmail
iftotalOrdersQ3 < 10true
if above is falselastOrderDays > 60true
if above is falsewrite defaultfalse

參數

case [if: if_expression] [then:'str_if_true'] [else:'str_if_false] [col:col1] [colCases: [[Match1,Val1]],[[Match2,Val2]][cases: [[Exp3,Val3]],[[Exp4,Val4]] [default:default_val] as: 'new_column_name'

符記是否必要?資料類型說明
case轉換轉換指令名稱
if字串(針對單一 if/then/else) 測試的運算式必須得出 truefalse
then字串(針對單一 if/then/else 邏輯) 如果 if 運算式為 true,會將值寫入新資料欄。
else字串(針對單一 if/then/else 邏輯) 如果 if 運算式為 false,會將值寫入新資料欄。
col字串(針對單一資料欄 case) 其值尚待測試的資料欄名稱。
colCases以半形逗號分隔的陣列

(針對單一資料欄 case) 字串值組合的系列程序:

  • 第一個項目是待比對的值。
  • 第二個項目是相符項目出現時寫入新資料欄的值。
cases以半形逗號分隔的陣列

(針對自訂條件 case) 運算式值組合的系列程序:

  • 第一個項目是待評估的運算式。
  • 第二個項目是運算式為 true 時待寫入的值。
default不限(針對單一資料欄 case 和自訂條件 case) 如果沒有相符項目,新資料欄中會寫入此值。
as字串寫入結果所在的新資料欄名稱。

如要進一步瞭解語法標準,請參閱語言文件語法附註一文。

if

若為 if-then-else 條件類型,此值是待測試的運算式。運算式必須得出 truefalse

使用須知:

是否必要?資料類型
if-the-else 條件類型所需字串 (運算式)

then

若為 if-then-else 條件類型,此值是運算式得出 true 時,待寫入至輸出資料欄的常值。

使用須知:

是否必要?資料類型
if-the-else 條件類型所需字串或其他常值類型

else

若為 if-then-else 條件類型,此值是運算式得出 false 時,待寫入至輸出資料欄的常值。

使用須知:

是否必要?資料類型
if-the-else 條件類型所需字串或其他常值類型

col

若為單一 case 條件類型,此值會識別待測試的資料欄。

使用須知:

是否必要?資料類型
單一 case 條件類型所需字串 (資料欄名稱)

colCases

若為單一 case 的條件類型,此參數會含有以半形逗號分隔的一組雙值陣列。

  • 陣列值 1:在指定資料欄中待比對的常值。
  • 陣列值 2:如果值比對相符,輸出資料欄中就會寫入此值。

您可以指定一個或多個以半形逗號分隔的雙值陣列案例。

使用須知:

是否必要?資料類型
單一 case 條件類型所需陣列 (半形逗號分隔清單)

cases

若為多重 case 的條件類型,此參數會含有以半形逗號分隔的一組雙值陣列。

  • 陣列值 1:待測試的運算式,且必須得出 truefalse 值。
  • 陣列值 2:如果值比對相符,輸出資料欄中就會寫入此值。

您可以指定一個或多個以半形逗號分隔的雙值陣列案例。

使用須知:

是否必要?資料類型
單一 case 條件類型所需陣列 (半形逗號分隔清單)

default

若為單一 case 和多重 case 的條件類型,此參數會定義沒有任何 case 產生 true 結果時,待寫入新資料欄的值。

使用須知:

是否必要?資料類型
單一 case 條件類型所需任何資料類型的常值

as

系統即將產生的新資料欄名稱。如果未指定 as 參數,系統會使用預設名稱。

使用須知:

是否必要?資料類型
字串 (資料欄名稱)

範例

請參閱上述說明。

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

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

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