寫程式是資料分析的必要技能
什麼是 GUI、非 GUI?
GUI(Graphic User Interface)圖形化的使用者介面,有時候我們會講古意來形容透過以操作滑鼠(拖拉點選)為主,來與運算核心溝通的介面。像是常見的試算表、SPSS 與 Tableau。
至於非 GUI,就泛指透過指令與運算核心溝通,像是 Python、R。
看著遊標停在那裡,除了 print("Hello world!")
,說實話還真有點不知道要幹嘛?
整合開發環境
不要再盯著遊標跟黑螢幕了,趕快去下載一個整合開發環境 IDE(Integrated Development Environment)來用吧!說得簡潔一些,整合開發環境就是用來提升寫程式體驗的工具,它不是全然透過鍵盤或滑鼠跟運算核心溝通,而是在兩者之中取得一個不錯的平衡點,讓使用者同時保有兼顧方便的滑鼠操作與彈性大的指令操作,像是 Jupyter Lab 與 RStudio。
什麼是 Do Data Science?
瞭解 GUI 的定義之後,接著我們思考何謂 Do Data Science?在同一個座談中,Hadley Wickham 分享了一個 tidyverse 生態系的流程圖,大致給我們一個非常好的資料科學應用場景概觀,從資料取得、清理、轉置、模型、視覺化到溝通,都涵蓋於其中,我們要舉的例子屬於資料清理應用場景。
一個資料清理的例子
在先前的一篇文章大學城的房價較為抗跌保值裡頭曾經碰到一個問題,要把美國大學城資料由州名與大學城名參雜在一起的樣式清理轉換為州、大學城兩個欄位的樣式,您可以在此參考原始資料。
這是資料原本的樣子:
最後要將資料整理成這樣:
一開始碰到這個問題我會想,假如透過 GUI 來操作,該怎麼進行?大概會花費多少的時間?大概有以下幾個步驟:
- 判斷文字是州名亦或者是大學城名
- 清理文字後面不必要的中括號、小括號與其內容
- 將州名與大學城名拆開,對應關係為一對多(一個州裡有多個大學城)
想了一會覺得用手動來處理確實辛苦且耗時,若能透過程式處理,不僅提高效率,也能避免操作錯誤;我們會需要用到迴圈、流程控制以及文書處理的相關知識。