天天看點

《建構實時機器學習系統》一第3章 資料分析工具 Pandas 3.1 颠覆 R 的 Pandas

資料分析工具 Pandas

進行機器學習應用的第一步是了解和探索資料,為此我們需要一套互動性很強的軟體。一款理想的資料分析軟體可以輕松地從多個來源讀取資料、進行預處理,并且還要具有優良的統計和可視化功能,Pandas 就是這樣一款軟體。

Pandas 是一款基于 Python 的資料分析和模組化的開源軟體包。2012 年兩位筆者剛剛在亞馬遜相識的時候,如日中天的 R工具正是機器學習和資料分析的主流,而基于Python 的資料分析工具 Pandas 正在默默無聞地發展壯大。到2016 年本書寫作之時,Pandas 已經完全取代了 R,成為了主流業務中資料分析的必備軟體。這樣的成功與Pandas 的設計是密不可分的。這其中有以下兩個方面的原因。

取材于 R,超越 R:Pandas 裡處處都有R 的影子。首先,Pandas 中資料的基本機關是 DataFrame。DataFrame 的基本概念來自于 R,其代表的是一個包含資料的基本機關。DataFrame 中的每一行代表一個觀測,每一列代表一個變量,其中變量可以是數值、文本等多種類型,這樣的資料結構大大友善了機器學習的準備工作。

優秀的生态對接:Pandas 具有優秀的對接接口,在與文本檔案、HDFS、SQL等進行讀寫操作時非常友善。在可視化方面,Pandas 與 MatplotLib 可以說是整合得天衣無縫。最讓人稱道的是,為了向 R 緻敬,Pandas 加入了一項參數,進而可以完全按照 R 的 ggplot 風格進行繪圖,另外,Pandas 的底層資料結構也依賴于Python 生态中主流的 Numpy Array,可以非常友善地調用 numpy、scipy 中已有的子產品。

本章将介紹Pandas 的基本操作。這裡主要是利用Pandas 進行初步資料清理和研究工作,我們也會對資料可視化進行初步介紹。但是對于自動化可視化呈現的工作,現今市面上已經有了更為強大的 ELK(Elasticsearch、Logstash、Kibana)叢集,該叢集将在第9章詳細介紹。