Tags
做數據新聞經常會需要處理大量缺失數據(Missing Data)。如果原始數據是一張二維表格,那麼這張表格中有很多「空洞」,我們常常希望過濾掉這些「空洞」,留下整行整列,以便在一個限定的範圍內,進行完整的分析工作。
本文來自同學Zoya的投稿,目的是用地圖展示各個國家市政垃圾收集的數量。原始數據來自UN Municipal Waste Collection Dataset,年份覆蓋並不完全(Missing Data)。爲了統一對比標準,項目最終選擇篩選出2002到2012年(共11年)均有數據的國家,再繪製地圖。本教程展示了兩種方法,均有值得借鑑的技巧。法一組合利用Excel、Open Refine、Tableau的基礎功能,最後使用Tableau的JOIN操作,實現了缺失數據的過濾。法二則針對本用例的特殊性,直接在Tableau內部完整整個數據流,用到了「# of Records」這個特殊的計算量。
圖:原始數據截圖
方法一:
由於它某些國家的某些年份的數據是不全面的,利用Google sheet Pivot Table進行重新排序。另存為CSV.文件。
圖:用 Pivot Table将原数据重新整理截圖
利用OpenRefine篩選後,在其中挑選出2002年到2012年都有數據的國家。將2002年到2012年的數據全部由text格式轉換成numeral,並去掉這幾年的blank數據。
圖:去掉blank之後的截圖。
圖:處理後的效果圖。
我們的目的是利用Tableau的地圖可視化功能,呈現這些國家在2002年到2012年的分別每年的數量大小。我們可以發現將這個新的表格導入Tableau時,由於不滿足年份單獨為一列這個條件,缺少year這個維度,無法對其進行可視化處理。
圖:缺少year維度無法進行地圖可視化。
於是這裡可以用到Tableau的join功能來進行操作。
第一步:導入初始的完整數據。
圖:導入初始數據截圖。
第二步:將之前用OpenRefine預處理的數據,拖拽進Tableau,將兩個表格聯接。
圖:聯接後截圖。
第三步:由於我們希望在左側表格中,挑出在右侧表格中的所有國家的數據。
(比如左侧表格有A、B、C、D四個國家的所有數據,右側表格只有B、C國家的數據,通過Join功能,可以在A、B、C、D中挑出只有B、C國家的數據。)
我們選擇第三個「右側」。然後數據源選擇Country,即都有國家名稱的一欄,讓他們進行配對。
圖:選擇相關數據源截圖
圖:選擇後,成功得到了我們想要的Year維度
第四步:通過篩選器,便可輕易得到每一年的這些國家的數據。
圖:上圖為2013年的地圖分佈
方法二:
第一步:直接通過Tableau打開原數據。先將Country or Area用Filters進行過濾。
圖:打開原數據後,發現有很多dirty data(如本案例中,Country or Area中,它顯示的是數字而非國家名)
圖:取消勾選所有的dirty data
第二步:將Year也拖進Filters裏面。選定年份為2002到2012年。
圖:在Range of values中只選擇2002到2012
圖:篩選出所有國家02到12年的數據
第三步:為了選出02~12年裏面,所有有足11年數據的國家,我們將Measures裏面的Number of Records拖進Filters裏面。為了計算每一個國家在02年到12年總共有多少個數據,我們選擇Sum。
圖:篩選Number of Records截圖
篩選出有11個數據的國家。
圖:Range of Values都選擇11(即有02~12年,這十一年的數據)
圖:獲得所有滿足我們條件的數據截圖
第四步:做出地圖。
圖:根據我們篩選出的數據所做的地圖分佈截圖
文稿:Zoya Zhao
編輯:Pili Hu