利用Tableau的JOIN功能篩選完整數據片段

做數據新聞經常會需要處理大量缺失數據(Missing Data)。如果原始數據是一張二維表格,那麼這張表格中有很多「空洞」,我們常常希望過濾掉這些「空洞」,留下整行整列,以便在一個限定的範圍內,進行完整的分析工作。

本文來自同學Zoya的投稿,目的是用地圖展示各個國家市政垃圾收集的數量。原始數據來自UN Municipal Waste Collection Dataset,年份覆蓋並不完全(Missing Data)。爲了統一對比標準,項目最終選擇篩選出2002到2012年(共11年)均有數據的國家,再繪製地圖。本教程展示了兩種方法,均有值得借鑑的技巧。法一組合利用Excel、Open Refine、Tableau的基礎功能,最後使用Tableau的JOIN操作,實現了缺失數據的過濾。法二則針對本用例的特殊性,直接在Tableau內部完整整個數據流,用到了「# of Records」這個特殊的計算量。

1

圖:原始數據截圖

方法一:

由於它某些國家的某些年份的數據是不全面的,利用Google sheet Pivot Table進行重新排序。另存為CSV.文件。

2

圖:用 Pivot Table将原数据重新整理截圖

 

利用OpenRefine篩選後,在其中挑選出2002年到2012年都有數據的國家。將2002年到2012年的數據全部由text格式轉換成numeral,並去掉這幾年的blank數據。

3

圖:去掉blank之後的截圖。

 

4

圖:處理後的效果圖。

 

我們的目的是利用Tableau的地圖可視化功能,呈現這些國家在2002年到2012年的分別每年的數量大小。我們可以發現將這個新的表格導入Tableau時,由於不滿足年份單獨為一列這個條件,缺少year這個維度,無法對其進行可視化處理。

 

5

圖:缺少year維度無法進行地圖可視化。

 

於是這裡可以用到Tableau的join功能來進行操作。

第一步:導入初始的完整數據。

6

圖:導入初始數據截圖。

 

第二步:將之前用OpenRefine預處理的數據,拖拽進Tableau,將兩個表格聯接。

7

圖:聯接後截圖。

 

第三步:由於我們希望在左側表格中,挑出在右侧表格中的所有國家的數據。

(比如左侧表格有A、B、C、D四個國家的所有數據,右側表格只有B、C國家的數據,通過Join功能,可以在A、B、C、D中挑出只有B、C國家的數據。)

我們選擇第三個「右側」。然後數據源選擇Country,即都有國家名稱的一欄,讓他們進行配對。

8.jpg

圖:選擇相關數據源截圖

9

圖:選擇後,成功得到了我們想要的Year維度

 

第四步:通過篩選器,便可輕易得到每一年的這些國家的數據。

10

圖:上圖為2013年的地圖分佈

 

方法二:

第一步:直接通過Tableau打開原數據。先將Country or Area用Filters進行過濾。

one.jpg
圖:打開原數據後,發現有很多dirty data(如本案例中,Country or Area中,它顯示的是數字而非國家名)

 

two

圖:取消勾選所有的dirty data

 

第二步:將Year也拖進Filters裏面。選定年份為2002到2012年。

thr.JPG

圖:在Range of values中只選擇2002到2012

634.JPG

圖:篩選出所有國家02到12年的數據

 

第三步:為了選出02~12年裏面,所有有足11年數據的國家,我們將Measures裏面的Number of Records拖進Filters裏面。為了計算每一個國家在02年到12年總共有多少個數據,我們選擇Sum。

2234.JPG

圖:篩選Number of Records截圖

篩選出有11個數據的國家。

ta.jpg

圖:Range of Values都選擇11(即有02~12年,這十一年的數據)

645.JPG

圖:獲得所有滿足我們條件的數據截圖

第四步:做出地圖。

10.jpg

圖:根據我們篩選出的數據所做的地圖分佈截圖


文稿:Zoya Zhao

編輯:Pili Hu


Posted by: zoyazhao

Leave a Reply