Pivot 轉換

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

當您透視資料時,所選資料欄中的值將成為資料集中的資料欄,每個資料欄都包含您指定的摘要計算。
  • 此計算可根據資料集中總計的所有資料列,也可以根據您在轉換中定義的資料列群組。
  • 當您的資料進行透視時,未使用的資料欄將遭到捨棄,只留下操作資料以更快速地進行評估。
  • 轉換可接受一或多個資料欄做為資料透視的輸入內容。

提示:此轉換在預覽模式下非常實用,可用於快速探查和分析。

基本用法

pivot col: Dates value:SUM(Sales) group: prodId

輸出:針對 ProdId 資料欄的每個不同值,重塑您的資料集以納入 Dates 資料欄和新資料欄。重塑資料集中的個別資料列代表每個不同的 ProdId 值。在每個資料列中,新資料欄包含資料集中每個日期的產品銷售總額。

參數

pivot col:column_ref value: FUNCTION(arg1,arg2) [group: group_col] [limit:int_num]

符記是否必要?資料類型說明
pivot轉換轉換名稱
col字串來源資料欄名稱
value字串包含匯總函式的運算式,用於透視來源資料欄資料
group字串資料欄名稱,包含分組計算所依據的值
limit整數 (正數)群組中不重複值的數量上限。預設值為 50。

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

col

識別要套用轉換的一或多個資料欄。

單一資料欄範例:

指定的資料欄包含成為資料集中新資料欄的值。

pivot col: autoBrand value:AVERAGE(autoPrice) group:State

輸出:針對 State 資料欄的每個不同值,重塑您的資料集以包含 autoBrand 資料欄及隨後的資料欄。這些資料欄的每個值都是 autoPrice 資料欄的平均值 (依 State 值分組)。

多資料欄範例:

針對多個輸入資料欄,系統會在轉換中為每個輸入組合產生新的資料欄。請參閱下方的範例。

使用須知:

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

value

在此轉換中,value 參數含有匯總函式及其參數;函式的參數是用來定義要套用此函式的一組資料列。

注意:針對 value 參數,您只能使用匯總函式。系統不支援 Nested 函式。詳情請參閱匯總函式一文。

使用須知:

是否必要?資料類型
包含匯總函式清單的字串,每個函式包含一個資料欄參照

group

在此轉換中,此參數會在套用指定函式前指定資料欄,且該資料欄的值用於將資料集進行分組。您可以透過逗號分隔值的形式指定多個資料欄。

附註:如使用 group 參數執行轉換,則會在資料網格中產生非確定性的重新排序。

使用須知:

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

limit

limit 參數會定義群組中所允許的不重複值數量上限。如果未指定,這個參數的預設值是 50

注意:請小心謹慎,不要將參數設得太高。在某些情況下,應用程式可能會在產生結果時耗盡記憶體,導致轉換失敗。

使用須知:

是否必要?資料類型
否,預設值為 50整數 (正數)

範例

範例:基本透視

來源:

以下資料集包含三個不同產品跨越一個週末和兩個州的銷售資訊。

DateStateProdIdSales
3/9/16CABig Trike 9000500
3/9/16NVFast GoKart 5000200
3/9/16CASuperQuick Scooter700
3/9/16CAFast GoKart 5000900
3/9/16NVBig Trike 9000300
3/9/16NVSuperQuick Scooter250
3/10/16NVFast GoKart 500050
3/10/16NVBig Trike 9000400
3/10/16NVSuperQuick Scooter150
3/10/16CABig Trike 9000600
3/10/16CASuperQuick Scooter800
3/10/16CAFast GoKart 50001100

轉換 1:每個日期的按州別產品銷售總額

僅在預覽中套用此轉換,方便您看到結果:

pivot col:Date value:SUM(Sales) group:State

取消轉換更新。

Statesum_Sales_03/09/2016sum_Sales_03/10/2016
CA21002500
NV750600


轉換 2:
每個州的按日期產品銷售總額

pivot col:State value:SUM(Sales) group:Date

Datesum_Sales_CAsum_Sales_NV
03/09/20162100750
03/10/20162500600

再次取消轉換更新。

轉換 3:每個州的按產品 ID 產品銷售總額

pivot col:State value:SUM(Sales) group:ProdId

ProdIdsum_Sales_CAsum_Sales_NV
Big Trike 90001100700
Fast GoKart 50002000500
SuperQuick Scooter1500300

範例:多資料欄透視

pivot 轉換支援使用多個資料欄中的值來指定要產生的資料欄。在資料透視表中使用兩個或更多資料欄時,系統會建立包含來源資料欄中所有可能組合值的資料欄。

下列個別產品的來源資料、銷售資料是依據品牌、產品名稱和月份整理:

BrandProductMonthSales
AAATowelsJanuary95
AAANapkinsJanuary113
BTowelsJanuary99
BTissuesJanuary88
AAATowelsFebruary108
AAANapkinsFebruary91
BTowelsFebruary85
BTissuesFebruary105
AAATowelsMarch81
AAANapkinsMarch92
BTowelsMarch112
BTissuesMarch104

轉換:

如果您要按月為每個產品建立摘要銷售資訊,可以選擇在 Product 資料欄上建立 pivot 資料透視表。然而,如果您查看資料欄的值,可能會注意到 Paper towels 這項產品同時由 AAAB 品牌供應。在這種情況下,您必須針對這兩個資料欄執行多資料欄資料透視,如下所示:

pivot col:Brand,Product value:AVERAGE(Sales) group:Month

結果:

Monthavg_Sales_B_Towelsavg_Sales_B_Tissuesavg_Sales_AAA_Napkinsavg_Sales_AAA_Towels
January998811395
February8510591108
March1121049281

範例 - 彙總值

您可使用 pivot 轉換以對資料欄中的值執行彙總計算。

來源:

在以下表格中,您可審查 10 位學生三次不同的考試結果。

StudentIdTestId分數
s001t00198
s001t00298
s001t00387
s002t00192
s002t00296
s002t00379
s003t00199
s003t00276
s003t00394
s004t00193
s004t00299
s004t00380
s005t00179
s005t00280
s005t00384
s006t00193
s006t00274
s006t00389
s007t00186
s007t00281
s007t00397
s008t00182
s008t00273
s008t00379
s009t00196
s009t00297
s009t00379
s010t00180
s010t00279
s010t00375

轉換:

您對每位學生的平均成績與最高成績較有興趣。因此您建立了以下的 pivot 轉換,依 studentId 值將平均分數與最大分數資料欄的計算進行分組。

pivot group: StudentId value: average(Score),max(Score) limit: 50

您希望將產生的平均資料欄結果四捨五入到小數第二位:

set col: average_Score value: round(average_Score, 2)

結果:

StudentIdaverage_Scoremax_Score
s00194.3398
s0028996
s00389.6799
s00490.6799
s0058184
s00685.3393
s0078897
s0087882
s00990.6797
s0107880

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

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

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