Delete 轉換

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

依據 row 運算式中指定的條件,刪除資料集中的一組資料列。如果條件運算式的結果為 true,則會刪除資料列。

delete 轉換與 keep 轉換的作用相反。請參閱 Keep 轉換

基本用法

delete row:(dateAge >= 90)

輸出:針對資料集中的每一列,如果 dateAge 資料欄中的值大於或等於 90,則刪除該資料列。

參數

delete row:(expression)

符記是否必要?資料類型說明
delete轉換轉換名稱
row字串識別一或多個待刪除資料列的運算式。如果運算式評估資料列後所得的值為 true,則會移除該資料列。

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

row

用來識別一或多個待執行轉換之資料列的運算式。運算式必須評估為 truefalse

範例:

運算式說明

Score >= 50
如果 Score 資料欄中的值大於 50,則傳回 true

LEN(LastName) > 8
如果 LastName 資料欄中的值長度超過 8,則傳回 true

ISMISSING([Title])
如果 Title 資料欄中的資料列值遺漏,則傳回 true

ISMISMATCHED(Score,['Integer'])
如果 Score 資料欄中的資料列值不符合整數資料類型,則傳回 true

範例:

delete row: (lastContactDate < 01/01/2010 || status == 'Inactive')

輸出:刪除資料集中 lastContactDate 日期值在 2010 年 1 月 1 日之前,或狀態為 Inactive 的所有資料列。

使用須知:

是否必要?資料類型
評估為 truefalse 的運算式

範例

範例 - 移除舊產品及保留新訂單

本範例說明如何使用下列轉換指令在資料集中保留及刪除資料列:

  • delete - 依據 row 參數中條件運算式的評估結果,刪除一組資料列。請參閱 Delete 轉換一文。
  • keep - 依據 row 參數中條件運算式的評估結果,保留一組資料列。系統會刪除資料集中的所有其他資料列。請參閱 Keep 轉換

來源:

您的資料集包含以下訂單資訊。您想要編輯資料集,以達成下列目的:

  • 移除已不再提供之產品的所有訂單,這些產品的 ID 如下:P100P101P102P103
  • 保留過去 90 天內提交的所有訂單。
OrderIdOrderDateProdIdProductNameProductColorQtyOrderValue
10016/14/2015P100帽子棕色190
10021/15/2016P101帽子黑色2180
100311/11/2015P103毛衣黑色3255
10048/6/2015P105開襟毛衣紅色4320
10057/29/2015P103帽衣黑色5375
100612/1/2015P102褲子白色6420
100712/28/2015P107T 恤白色7390
10081/15/2016P105開襟毛衣紅色8420
10091/31/2016P108外套海軍藍9495

轉換:

首先,移除舊產品的訂單。因為產品集相當小,所以您可以先從新增下列指令開始:

注意:只需要先預覽這個轉換指令,還不要將它新增至您的方案。

delete row:(ProdId == 'P100')

預覽這個步驟時,您應該會發現系統醒目顯示上表中待移除的頂端資料列。請注意轉換指令與 ProdId 值的相依關係。查看 ProductName 值時,您可能會發現其中一列受影響的資料含有錯字,所以該資料欄不適合用於比較。

您可以使用下列轉換指令擴展,將其他產品 ID 新增至轉換指令;此擴展已移除含有相符 ProdId 值的所有資料列:

delete row:(ProdId == 'P100' || ProdId == 'P101' || ProdId == 'P102' || ProdId == 'P103')

將上述步驟新增至方案時,資料應會如下所示:

OrderIdOrderDateProdIdProductNameProductColorQtyOrderValue
10048/6/2015P105開襟毛衣紅色4320
100712/28/2015P107T 恤白色7390
10081/15/2016P105開襟毛衣紅色8420
10091/31/2016P108外套海軍藍9495

現在您可以篩選出 90 天以前的資料集訂單。首先,新增含有今天日期的資料欄:

derive value:'2/25/16' as:'today'

使用下列指令,保留此日期 90 天內的資料列:

keep row:DATEDIF(OrderDate,today,day) <= 90

切記刪除不再需要的 today 資料欄:

drop col:today

結果:

OrderIdOrderDateProdIdProductNameProductColorQtyOrderValue
100712/28/2015P107T 恤白色7390
10081/15/2016P105開襟毛衣紅色8420
10091/31/2016P108外套海軍藍9495

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

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

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