使用 Julia 分析資料

Lin Rei
5 min readApr 18, 2019

--

我近期在摸索 Julia 語言,加上手邊拿到一份『空氣品質即時污染指標0401_0417』檔案,試著用 Medium 來記錄這一次摸資料的過程。

Step 1.

  • 使用 CSV, DataFrames, Gadfly 套件
  • 使用 CSV 套件讀入檔案
  • 觀察資料:使用 size 觀察 (rows, columns) 數量,使用 first 顯示前幾列。

剛讀入資料,便立刻發現 Data redundancy 重複資料,等下接著處理。
這邊做個小紀錄:共有 14678 筆資料。

Step 2.

使用 names 觀察資料

Step 3.

使用 describe 觀察資料狀態

  • 發現 missing 遺失值
  • 觀察每個欄位的 Type

Step 4–1.

從上圖中,可以看到 PSI 的遺失值數量 等於 全部資料筆數,推測這個欄位可能不再使用,查詢資料後,使用 deletecols! 刪除 舊的指標 PSI 欄位。

清除 PSI值 欄位後,剩下 22 個欄位。

Step 4–2.

接著清除流水序號,這個欄位會影響 unique 的處理。

清除 序號 欄位後,剩下 21 個欄位。
若不去除序號欄位,要刪除重複資料需要多做處理。

Step 5.

使用 unique 清除重複值,原本有 14678 筆資料,經清除重複值步驟後,剩下 4943 筆資料,刪除將近七成多餘的資料。

Step 6–1.

處理 Missing。

有時候利用 describe 觀察資料時,會發現多個欄位都有 1 個 missing,這是因為讀入 CSV 檔案的最後一行。

利用 last 觀察最後一列資料,都是 missing

去除資料最後一列後,重新確認資料狀態

  • 如綠色方框,已處理掉最後一列造成的 missing。
  • 還有紅色方框 missing 待處理。

Step 6–2.

使用 CSV 套件將處理至今的檔案匯出利用 Numbers 或 Excel,分別對不同欄位做升序、降序後,觀察資料。

推測多數 missing 可能是測量異常而未上拋,後續先對這些上拋欄位為數值型別者,做 dropmissing 的處理。

整理要 Drop Missing 的欄位後,使用 dropmissing! 處理。

Step 7–1

觀察資料筆數

  • 原始資料有 14678 筆資料
  • 清除重複值後,剩下 4943 筆資料,刪除將近七成多餘的資料。
  • 去除遺失值後,剩下 4716 筆資料,約刪去 4.5% 的資料。

觀察 missing 狀態,僅剩下 污染物 這個欄位,是指標污染物,在 AQI 良好 0 ~ 50 時會是空值。

污染物 有 390 筆 遺失值

撈取 AQI值 介於 0 ~ 50 之間的資料筆數,確實為 390 筆。
那麼這些值不能算是遺失值,而是字串型別的空值。

使用 Missings 套件,將污染物欄位中的遺失值以空值取代。

使用 levels 觀察 污染物 欄位的唯一值。

Step 7–2.

選取 Meinong 美濃區 和 Daliao 大寮區 在這段時間範圍內的 AQI 值。

以 Gadfly 套件的 Geom.boxplot 作圖:

  1. 使用 Colors 套件,協助處理顏色
  2. 使用 Coord.cartesian 指定 Y 軸上下界
  3. 使用 Guide.xlabel 和 Guide.ylabel 處理 X 軸 和 Y 軸的 Label
  4. 使用 hstack 做水平方向的堆疊圖

觀察到大寮區的 AQI值 在各項統計數字上均較 美濃區 高。

以 Gadfly 套件的 Geom.line 作圖:

  1. 使用 Colors 套件,協助處理顏色 (在 Geom.boxplot 上方已經使用過)
  2. 使用 layer 做出不同圖層,每個圖層上各自以 Geom.line 處理折線圖
  3. 在 Guide.ylabel 設定 orientation 為 :horizontal
  4. 以圖層處理時,以 Guide.manual_color_key 手動處理圖例

觀察到大寮區的 AQI值 在線圖上大多數的點均高於 美濃區。

Final.

使用 CSV 套件將資料匯出。

--

--