若要獨立用 Python 處理資料科學問題,Pandas 是繞不過去的。
新番
今天,花了一上午的時間,跟著這個 Youtube 系列教程,學習了 Pandas 中級技巧。
視訊來自於 Data School。釋出者是 Kevin Markham 。
在這個系列視訊教程裡, Kevin 將自己的 PYCON 2018 workshop 分成了10個部分全部精剪後釋出。一步步帶你領略 Pandas 的魅力。
我用了2個多小時,完成了他10個視訊的全部內容。
收穫頗豐。
利用教程中提到的美國交通警務資料來自於史丹佛開放警務專案(THE STANFORD OPEN POLICING PROJECT)。
這是資料大概的樣子:
一步步按照 Kevin 的指令練習,你可以完成這些內容:
分析男女司機的交通違規都包括哪些類別?每一類佔比如何?
那些被搜查車輛的男女司機,各是由於什麼原因?
哪個時段,警察發現違規的數量最多?
不同違規行為裡,司機年齡是如何分佈的?
這些分析結果,只是這個教程的一小部分而已。
更妙的是,上述這些圖形,幾乎都是利用兩三條 Pandas 語句,就可以做出。有的只需要一條就可以。
怎麼樣?有沒有想學習的衝動?
教程與 ipynb 檔案,都可以從這個github repo下載。
安裝好 Anaconda 3之後,你就可以開啟一個 Jupyter Notebook,跟著視訊一起做了。
老友
說說我是怎麼找到這麼好的視訊教程的。
其實一點兒也不稀奇。
因為我追 data school (Kevin Markham) 的視訊,已經有好幾年了。
可以看到, Kevin 最早的視訊,上傳於 2014 年 4 月,講述 git 和 github。
他還開設了官方網站 dataschool.io 。
後面一發不可收拾。講的內容,幾乎都是令人感興趣的資料科學領域知識。
包括:
- R ,尤其是 dplyr。也是我們之前介紹過的 R 語言大師級人物 Hadley Wickham 的作品(參見《如何用 Python 和 API 收集與分析網路資料?》);
- 利用 Python 和 scikit-learn 做機器學習;
- 利用 Pandas 做資料整理;
- 用 Beautifulsoup 做網路爬蟲。
我從2013年,開始自學 Python 。
其中有段時間,一直在追 dataschool 的更新。
從這些免費視訊教程中,我受益良多。
2016年, Kevin 出品了一門付費課程,講授如何使用 Python, scikit-learn 來進行自然語言處理(NLP)以及文字機器學習(machine learning for text)。
這是我第一次在主流課程平臺(Coursera, Udacity, EdX, Datacamp)之外,付費購買課程。
售價不菲。
但是我覺得,這筆投資很有收穫。
依靠這門課程獲得的知識與技能,我帶著研究生團隊釋出了3篇論文,其中2篇 EI 檢索國際會議,一篇CSSCI國核心心期刊。3名研究生順利畢業。
我也把這門課程中學到的知識,利用簡書和微信公眾號等途徑,分享給了更多人。
案例式教學,詳細講述過程,用 Jupyter Notebook 分享全部程式碼與執行結果……
如果你常看我的公眾號,對這種風格,應該不陌生吧?
對,Kevin 給了我很大影響。
但是,學完這門課之後,我發現 Kevin 的 Youtube 頻道,一直出於停更狀態。
我當時疑惑,他是不是和 mac 系統某著名編輯器作者一樣,錢賺夠了就一走了之退休了?
還好,幾個月後,我從訂閱郵件得知了他的去向:
原來是喜得貴子,休陪產假去了。
所以,在 PyCon 2018 看見 Kevin 迴歸,我很開心。
教程
資料框 Pandas 的教程,我推薦你認真學習。
為什麼呢?
因為資料科學分析全流程裡面,人們似乎對爬蟲(入口)和深度學習(出口)過於熱衷,往往忘記了採集來的資訊也許不是結構化的,而且裡面存在著“不乾淨”(untidy)的資料,需要整理。
整理這樣的資料,常用的工具,分別是 Python 中的 Pandas,以及 R 中的 tidyverse。
想想看,如果你用 Beautifulsoup, requests-html, scrapy 爬取資料,用 scikit-learn, keras, tensorflow 來做機器學習,那麼你願意中間跑出去一趟,到 R 裡面做資料整理,再折騰回來嗎?
所以,Pandas 比起 tidyverse 的主要優勢,並不在於它的功能更強大,而在於它屬於 Python 生態環境。
若要獨立用 Python 處理資料科學問題,Pandas 是繞不過去的。
一旦你掌握了 Pandas 的資料框技術,就能輕鬆處理收集來的資料,同時為後面的模型建立做好充足的鋪墊工作。
用什麼教程來學習呢?
如果你對紙質閱讀有偏愛,我推薦你看經典之作:Python for Data Analysis。這本書廣受好評,口碑說明很多問題。
這本書有個問題,就是已經出版了將近6年,所以很多操作都已經過時了。
另外,所有紙質書的普遍問題,在於認知攝取維度單一。
相較而言,我更喜歡看視訊教程,畢竟有個真人在演示,感覺好很多,也對自己的學習有個督促。
最起碼,還能鍛鍊一下英語聽說讀寫能力,是不是?
不過PyCon 2018 的這個教程,並不適合 Pandas 初學者。它的定位,是有一定基礎的使用者群體。
跟著教程開始做之前,我建議你先把 Pandas 的基礎內容,學習一遍。
推薦的教程,是 Kevin 2016年的 Pandas 系列免費視訊教程:Data analysis in Python with pandas。
這個教程,從最簡單的概念談起,先教你怎麼讀取 csv 資料,然後一步步用具體問題引領你嘗試、實踐資料整理與分析操作。
可是,這個教程畢竟也已經出來兩年了。
兩年,對於一個成熟學科來說,也許還算不得什麼。
不過,對於資料科學,那真可謂日新月異。
好在,2018年1月份, Kevin 發了兩段更新視訊教程,介紹了當前 Pandas 最新版本(0.22) 和 2016年時的版本(0.18)之間的區別,算是給教程打了個升級補丁。
有了這些前導內容做基礎,相信你再來看 PyCon 2018 的視訊,就輕鬆多了。
但是,我的建議,是不要侷限於觀看,而要一邊看,一邊開啟 Jupyter Notebook 來實踐。
唯其如此,才能真正提升應用技能,把 Pandas 的常用命令形成肌肉記憶。
祝學習進步!
喜歡請點贊。還可以微信關注和置頂我的公眾號“玉樹芝蘭”(nkwangshuyi)。
如果你對資料科學感興趣,不妨閱讀我的系列教程索引貼《如何高效入門資料科學?》,裡面還有更多的有趣問題及解法。