為分析構建資料

有一些基本概念可瞭解資料準備以及如何為分析構建資料。資料可以透過各式各樣令人眼花撩亂的格式產生、捕獲和儲存,但是在分析時,所建立的所有資料格式並非都相同。

資料準備是將格式設定良好的資料帶入單一表或多個相關表的程序,以便在 Tableau 中進行分析。此程序包括結構(亦即列和欄)以及資料整潔度、此類正確資料的類型和正確的資料值等層面。

提示:如果您有自己的資料集,瀏覽以下主題可能會有所幫助。如果您還沒有可以使用的資料集,請參閱尋找良好資料集(連結在新視窗開啟)的提示。

結構如何影響分析

可能無法控制資料的結構。本主題的其餘部分假定您有權存取原始資料以及具有整理原始資料所需的工具,例如 Tableau Prep Builder。但是,在某些情況下,可能無法根據需要對資料進行樞紐分析或彙總。雖然通常仍然可以執行分析,但是可能需要變更計算或處理資料的方式。有關如何對不同的資料結構執行相同分析的範例,請參閱「生活情境中的 Tableau Prep 日:在 Tableau Desktop 中對第二個日期進行分析(連結在新視窗開啟)」。但是,若可以最佳化資料結構,則可能會讓分析變得更加容易。

資料結構

Tableau Desktop 最適合搭配以表格式設定的資料(如試算表),也就是指儲存在列和欄中且第一列具有欄位標題的資料。那麼,什麼內容應該是列或欄呢?

什麼是列?

列(或記錄)的內容包羅萬象,可以是有關零售店某筆交易的資訊、特定地點的氣象測量值,或是有關某則社交媒體貼文的統計資料。

請務必瞭解資料中的記錄(列)所代表的意義。這就是資料的粒度

在這裡,每筆記錄都是一天在這裡,每筆記錄都是一個月

提示:最佳作法是擁有唯一識別碼 (UID),也就是可將每個列識別為唯一資料的值。您可以將它視為每筆記錄的身分證字號或 URL。在 Superstore,此識別碼會是列 ID。請注意,並非所有資料集都有 UID,但是有也不會造成影響。

請試著確定您可以回答以下問題:「資料集中的列代表什麼內容?」。這和回答「TableName(Count) 欄位代表什麼內容?」是一樣的。如果您無法加以闡述,就代表資料的構建不良,無法進行分析。

彙總和粒度

與組成列之內容相關的概念就是彙總和粒度的概念,且這兩項是光譜的兩端。

彙總

  • 指多個資料值如何合併成單一值,例如計算「南瓜香料」的所有 Google 搜尋結果,或是計算西雅圖在指定日期所有溫度讀數的平均值。

  • 預設情況下,Tableau 的度量一律會彙總起來。預設的彙總是 SUM。您可以將彙總變更為「平均值」、「中位數」、「不重複計數」、「最小值」等選項。

粒度

  • 指資料的詳細程度。資料集中的列或記錄代表什麼內容?是罹患瘧疾的人嗎?是某個省當月的瘧疾病例總數嗎?這就是粒度。

  • 瞭解資料的粒度,對於使用詳細資料層級 (LOD) 運算式來說相當重要。

瞭解彙總和粒度是相當重要的概念,原因很多;它對於尋找實用資料集、建置您所需的視覺效果、正確地關聯或聯結資料以及使用 LOD 運算式等方面,都會造成影響。

提示:有關詳情,請參閱 Tableau 中的資料彙總。

什麼是欄位或欄?

表中的資料會以資料窗格中的欄位形式進入 Tableau Desktop,但是它們基本上是可互換的用語。(我們會在 Tableau Desktop 中保留一詞,以便用於欄和列架,以及用來描述特定視覺效果。)資料的欄位應含有可分組到較大關係的項目。這些項目本身稱為成員(只有離散維度才會含有成員)。

指定欄位中允許哪些值是由欄位的網域來決定(請參閱下方附註)。舉例來說,「雜貨店部門」可能含有「熟食」、「烘焙食品」、「農產品」等,但是不會包括「麵包」或「義大利臘腸」,因為這些是商品,而非部門。換句話說,部門欄位的網域僅限可能的雜貨店部門。

此外,建構良好的資料集會具有「銷售額」欄和「獲利」欄,而不是只有單一的「金額」欄,因為獲利和銷售額是不同的概念。

  • 「銷售額」欄位的網域會是 ≥ 0 的值,因為銷售額不能是負數。

  • 但是,「獲利」欄位的網域則可能會是各種值,因為獲利有可能是負數。

附註網域也可能是指資料中存在的值。如果「雜貨店部門」欄誤含有「義大利臘腸」,則依照此定義,該值可能就位於該欄的網域中。這些定義有點矛盾。一個是可能存在或應該存在的值,另一個是實際存在的值

將欄位分類

資料表中的每個欄都會以欄位的形式進入 Tableau Desktop,而且會顯示在「資料」窗格中。Tableau Desktop 中的欄位必須是維度或度量(在「資料」窗格中以表內的一條線隔開)以及離散或連續(以色彩編碼:藍色欄位是離散,綠色欄位是連續)。

  • 維度是定性的;也就是說,它們無法測量,但是可以描述。維度通常是指城市或國家/地區、眼睛顏色、類別、隊伍名稱等內容。維度通常是離散的。

  • 度量是定量的;也就是說,它們可以使用數字來測量和記錄。度量可以是銷售額、身高、點擊次數等內容。在 Tableau Desktop 中,度量會自動彙總;預設的彙總是 SUM。度量通常是連續的。

  • 離散代表各自分開或各自不同。Toyota 就和 Mazda 不同。在 Tableau Desktop 中,離散值會以標籤的形式進入檢視,而且會建立窗格。

  • 連續代表形成一個不間斷且連續的整體。7 的後面接著 8,然後和 9 之間的距離相同,而且 7.5 會落在 7 和 8 的中間。在 Tableau Desktop 中,連續值會以軸的形式進入檢視。

  • 維度通常是離散的,而度量通常是連續的。然而,情況並非總是如此。日期可以是離散的,也可以是連續的。

    • 日期是維度,而且會自動以離散的形式進入檢視(又稱為日期部分,例如「8 月」會考量 8 月當月,但不會考量如年份等其他資訊)。套用至含有離散日期之時間表的趨勢線會分成多條趨勢線,一個窗格一條。

    • 如果有所偏好,我們可以選擇使用連續日期(又稱為日期截斷,例如「2024 年 8 月」,和「2025 年 8 月」不同)。套用至含有連續日期之時間表的趨勢線會有整個日期軸的單一趨勢線。

提示:有關詳情,請參閱維度和度量(藍色和綠色)

在 Tableau Prep 中,維度或度量並無區分。但是,若要瞭解設定檔窗格之資料的詳細資訊和摘要呈現等,就務必要瞭解離散或連續背後的概念。

  • 詳細資訊:詳細資訊檢視會以離散標籤顯示所有網域元素,而且會具備視覺效果捲軸以提供所有資料的視覺效果概觀。

  • 摘要:摘要檢視會在連續軸上將分桶的值顯示為直方圖。

分桶和直方圖

年齡或薪資等欄位視為連續。34 歲和 35 歲之間有所關係,而 34 和 35 之間的距離與 35 和 36 之間的距離相同。但是,一旦我們過了 10 歲左右,通常就不會再用我們是「9 歲半」或「7 又 ¾ 歲」等說法。我們已經將年齡分桶為以年度為大小的工整增量。12,850 天大的人比 12,790 天大的人年長,但是我們會直接區分並表示他們都是 35 歲。同樣地,年齡分組通常會用來取代實際年齡。電影票的兒童價可能適用於 12 歲以下兒童,或是問卷調查可能會要求您選擇年齡層,像是 20-24 歲、25-30 歲等。

直方圖是用來透過分桶將數值資料的分布視覺化。直方圖與長條圖相似,但組成直方圖的矩形並非每列以離散類別顯示,而是跨連續軸分桶,例如開花數量的範圍(0-4、5-9、10-14 等)。矩形的高度是由這些值的頻率或計數來決定。在這裡,Y 軸是指落在各個分桶中的植物數量。7 種植物有 0-4 朵花,2 種植物有 5-9 朵花,而 43 種植物有 20-24 朵花。

按植物數排列的開花數量直方圖

在 Tableau Prep 中,摘要檢視是分桶值的直方圖。詳細資訊檢視會顯示每個值的頻率,且一側具有可視的捲軸,以顯示資料的整體分布。

摘要檢視詳細資訊檢視
Tableau Prep 中摘要檢視的螢幕截圖Tableau Prep 中詳細資訊檢視的螢幕截圖

分布與離群點

查看資料集的分布有助於偵測離群點。

  • 分布:資料在直方圖中的圖形,但取決於分桶的大小。能夠查看直方圖檢視中的所有資料,就有助於識別資料是否看似正確且完整。只有在您瞭解資料且能夠解釋分布是否合理時,分布的圖形才有用處。

    • 舉例來說,如果我們要查看 1940 年到 2017 年間裝有寬頻網路之住家數量的資料集,就應該會看到一個非常歪斜的分布。但是,如果我們要查看 2017 年 1 月到 2017 年 12 月間裝有寬頻網路的住家數量,就應該會看到相對一致的分布。

    • 如果我們要查看「南瓜香料拿鐵」之 Google 搜尋的資料集,就應該會看到秋季出現一個相當明顯的高峰,而「將攝氏轉換為華氏」的搜尋則可能會相當穩定。

  • 離群點:與其他值比較相對極端的值。離群點可能會是正確的值,也可能會表示出現錯誤。

    • 有些離群點是正確的,而且會指出實際的異常;這些離群點不應移除或修改。

    • 有些離群點會指出資料整潔度發生問題,例如薪資為 $50 而非 $50,000,因為鍵入的是句號而非逗號。

可視的離群點偵測與分布

如果您想要查看以下內容:

乍看之下並不奇怪。但是,如果將其繪製在連續分桶的軸上,而不是標籤清單上,外觀就會像這樣:

而且更明顯的是,最後一個觀察值與第一個觀察值的距離更遠,而且可能會因為發生錯誤而成為離群點。

資料類型

資料庫和試算表不同,通常會在資料類型上強制執行嚴格的規則。資料類型會將指定欄位中的資料分類,並提供有關資料應如何設定格式和解釋,以及可以對該資料執行哪些作業等資訊。例如,數值欄位可能會有套用在其上的數學運算,地理欄位則是可以對應。

Tableau Desktop 會將欄位指派成維度或度量,但是欄位會依照其資料類型而有其他特性。這些內容會由每個欄位自有的圖示來表示(但有些類型會共用一個圖示)。Tableau Prep 使用相同的資料類型。如果在欄上強制執行資料類型,且現有的值與其指派的資料類型不相符,就可能會顯示為 null(因為「紫色」不代表任何數字)。

有些函數需要特定資料類型。例如,您無法將 CONTAINS 用於數值欄位。類型函數是用來變更欄位的資料類型。例如,DATEPARSE 可以採用特定格式的文字日期作為日期,從而在檢視中啟用自動向下切入等功能。

圖示資料類型
文字(字串)值
日期值
日期和時間值
數字值
布林值(僅限關係資料來源)
地理值(用於地圖)

提示:有關詳情,請參閱資料類型上的說明文章。

將資料轉置和取消轉置

方便人類讀取的資料通常會捕獲和記錄成寬格式,且含有許多欄。可供機器讀取的資料(像是 Tableau 偏好的資料)則較適合使用高格式,且有較少的欄和較多的列。

附註:傳統而言,轉置資料進是指從高轉置為寬(從列轉置為欄),取消轉置則是指從寬轉置為高(從欄轉置為列)。但是,Tableau 使用轉置一詞是指透過將欄轉換為列,以便從寬(方便人類讀取)轉置為高(可供機器讀取)。在本文件中,轉置會參照 Tableau 的字詞意思。為了清楚說明,指定「將欄轉置為列」或「將列轉置為欄」可能會很實用。

有關詳情,請參閱轉置資料使用資料的提示等說明文章。

寬資料

在 WHO 瘧疾資料集中,有一個欄是國家/地區,然後每年都有一個欄。每個儲存格都代表該國家/地區和該年的瘧疾病例數量。在此格式中,我們有 108 個列和 16 個欄。

瘧疾資料的寬格式

任何人都可以輕鬆讀取和瞭解此格式。但是,如果我們想要將此資料帶入 Tableau Desktop,每個欄就會有一個欄位。我們有 2000 年的欄位、2001 年的欄位以及 2002 年的欄位,以此類推。

Tableau Desktop 中寬格式瘧疾資料的螢幕擷取畫面

換個角度思考,有 15 個欄位都代表相同的基本內容(瘧疾通報病例數量),而且沒有時間的單一欄位。這樣會導致難以進行跨時間分析,因為資料儲存在不同的欄位中。

範例:使用寬資料

問:如何建立地圖來顯示 2000 年到 2014 年每個國家/地區的瘧疾病例總數? 

答:建立導出欄位來總結所有的年度。

附註:此圖尚未更新以反映最新的 UI。「資料」窗格已不再將維度和度量顯示為標籤。

 

另一個表示此格式不適用於分析的指標是,我們在任何地方都沒有關於實際值含義的資訊。對於 2012 年的阿爾及利亞,我們有值 55。五十五個代表什麼?從資料的結構來看並不清楚。

如果欄名稱並未描述這些值為何,但傳達出其他資訊,就表示該資料需要轉置。

高資料

如果將資料轉置,就會將資料的圖形從寬轉為高。現在,我們不再每年一個欄,而是有單一欄(年份)和一個新的欄(通報病例)。在此格式中,我們有 1,606 個列和 3 個欄。此資料格式較高,而非較寬。

現在,在 Tableau Desktop 中,我們有「年份」的欄位和「通報病例」的欄位,還有原始的「國家/地區」欄位。這樣進行分析就容易多了,因為每個欄位都代表一個有關資料集的唯一品質:地點、時間和值。

附註:此圖尚未更新以反映最新的 UI。「資料」窗格已不再將維度和度量顯示為標籤。

範例:使用高資料

問:如何建立地圖來顯示 2000 年到 2014 年每個國家/地區的瘧疾病例總數? 

答:使用「通報病例」欄位。

附註:此圖尚未更新以反映最新的 UI。「資料」窗格已不再將維度和度量顯示為標籤。

現在可以很容易看到,對於 2012 年的阿爾及利亞,55 表示通報病例的數量(因為我們可以標示這個新的欄)。

附註:在此範例中,寬資料包括每個國家/地區的單一記錄。透過高資料格式,每個國家/地區現在都有 15 列(資料中的 15 年各有一個列)。請務必記住:每個國家/地區現在都有多個列。

如果有「陸地區」的欄,則該值會在高資料結構中每個國家/地區的 15 個列中重複出現。如果您將「國家/地區」帶入「列」,並將「陸地區」帶入「欄」,藉此建立長條圖,則預設情況下,檢視會總結每個國家/地區所有 15 列的陸地區。

對於部分欄位,可能必須透過彙總平均值或最小值(而非總結或篩選)來彌補重複計數值。

標準化

關係資料庫是由多個可以透過某種方式相關或連結的表所組成。每個表的每筆記錄都含有一個唯一識別碼(或機碼)。透過關聯或聯結機碼,就可以連結記錄,以提供比單一表所含更多的資訊。帶入各個表中的資訊內容取決於所使用的資料模型,但通用原則是減少重複內容。

例如,假設要為某個活動(如婚禮)進行活動規劃。我們必須追蹤團體層級(例如家人或情侶)和個人層級的資訊。

此時可能會建立一個合併所有資訊的表: 

但是,如果某個地址不正確且需要修正,就必須跨多個列進行修正,而這樣可能會導致錯誤或衝突。較好的結構是建立兩個表,一個用於與團體相關的資訊(例如地址和邀請函是否已寄出),另一個用於與個人相關的資訊(例如座位安排和飲食限制等內容)。

團體表個人表

在團體表中可以更輕鬆地追蹤和分析團體層級的資訊,而在個人表中可以更輕鬆地分析和追蹤個人層級的資訊。例如,可以從個人表的「參加 = 是」記錄數量中取得所需的座椅數量,並從團體表中「禮物」並非 null 的記錄數量中取得感謝函所需的郵票數量。

將所有資料拆分為多個表並瞭解哪個表含有哪些欄的程序,就稱為標準化。標準化有助於減少多餘的資料並簡化資料庫的組織。

但是,有時候還是需要橫跨多個表的資訊。舉例來說,如果我們想要平衡座位安排(個人),使新娘方的團體與新郎方的團體混合在一起,該怎麼做?(新娘或新郎所屬人員會在團體層級追蹤。)為了達到此目標,我們必須將表關聯回去,以便將個人與其所屬團體的相關資訊建立關聯。適當的標準化並非只是將表拆分而已,也必須存在共用、相關欄位或唯一識別碼,以便之後用來再次將資料合併回去。在此,相關欄位是「團體」。該欄位存在於這兩個表中,因此我們可以在此欄位上聯結,並返回原始、單一的表格式。這是非標準化的結構。

那麼,為什麼不保留原始非標準化的表就好了呢?該表格較難維護,而且儲存了多餘的資訊。規模較大時,資料重複的層級可能會變得很大量。重複儲存相同的資訊沒有效率。

標準化的表有一些關鍵屬性:

  • 每個列都需要唯一識別碼

  • 每個表都需要可用來連線回其他表的欄(機碼)。

這些共用(機碼)欄可用來將表關聯或聯結回去。對於我們的資料,每個表中的「團體」欄位上都會有關係或聯結子句。

聯結類型

雖然在 Tableau Desktop 中合併資料的預設方法是關聯,但在某些情況下,您可能會想要在 Tableau Desktop 或 Tableau Prep Builder 中聯結表。如需聯結和聯結類型的基本概觀,請參閱聯結資料

「整齊的」資料

Hadley Wickham 於 2014 年在《Journal of Statistical Software》發布了一篇名為《Tidy Data》的文章(2014 年 8 月,第 59 冊第 10 刊)。這篇文章非常詳細配置了適用於分析之結構良好的資料框架。您可以在這裡(Hadley Wickham 的學術檔案)(連結在新視窗開啟)這裡(由 r-project.org 託管)(連結在新視窗開啟)找到這篇文章。

附註:該文章是在外部網站上託管。Tableau 對於外部提供者所維護之頁面的準確性或新鮮度不擔負任何責任。如果您對內容有疑問,請聯絡其擁有者。

感謝您的意見反應!已成功提交您的意見回饋。謝謝!