聊聊 Pandas 的前世今生

我是小 z

本文將從 Python 生態、Pandas 歷史背景、Pandas 核心語法、Pandas 學習資源四個方面去聊一聊 Pandas,期望能帶給大家一點啓發。

一、Python 生態裏的 Pandas

五月份 TIOBE 編程語言排行榜,Python 追上 Java 又回到第二的位置。Python 如此受歡迎一方面得益於它崇尚簡潔的編程哲學,另一方面是因爲強大的第三方庫生態。

要說殺手級的庫,很難排出個先後順序,因爲 python 的明星庫非常多,在各個領域都算得上出類拔萃。

比如 web 框架 - Django、深度學習框架 - TensorFlow、自然語言處理框架 - NLTK、圖像處理庫 - PIL、爬蟲庫 - requests、圖形界面框架 - PyQt、可視化庫 - Matplotlib、科學計算庫 - Numpy、數據分析庫 - Pandas......

上面大部分庫我都用過,用的最多也最順手的是 Pandas,可以說這是一個生態上最完整、功能上最強大、體驗上最便捷的數據分析庫,稱爲編程界的 Excel 也不爲過。

Pandas 在 Python 數據科學鏈條中起着關鍵作用,處理數據十分方便,且連接 Python 與其它核心庫。

二、十項全能的 Pandas

Pandas 誕生於 2008 年,它的開發者是 Wes McKinney,一個量化金融分析工程師。

因爲疲於應付繁雜的財務數據,Wes McKinney 便自學 Python,並開發了 Pandas。

大神就是這麼任性,沒有,就創造。

爲什麼叫作 Pandas,其實這是 “Python data analysis” 的簡寫,同時也衍生自計量經濟學術語“panel data”(面板數據)。

所以說 Pandas 的誕生是爲了分析金融財務數據,當然現在它已經應用在各個領域了。

2008: Pandas 正式開發併發布 

2009:Pandas 成爲開源項目 

2012: 《利用 Python 進行數據分析》出版 

2015: Pandas 成爲 NumFOCUS 贊助的項目

Pandas 能做什麼呢?

它可以幫助你任意探索數據,對數據進行讀取、導入、導出、連接、合併、分組、插入、拆分、透視、索引、切分、轉換等,以及可視化展示、複雜統計、數據庫交互、web 爬取等。

同時 Pandas 還可以使用複雜的自定義函數處理數據,並與 numpy、matplotlib、sklearn、pyspark、sklearn 等衆多科學計算庫交互。

Pandas 有一個偉大的目標,即成爲任何語言中可用的最強大、最靈活的開源數據分析工具。

讓我們期待下。

三、Pandas 核心語法

1.  數據類型

Pandas 的基本數據類型是 dataframe 和 series 兩種,也就是行和列的形式,dataframe 是多行多列,series 是單列多行。

如果在 jupyter notebook 裏面使用 pandas,那麼數據展示的形式像 excel 表一樣,有行字段和列字段,還有值。

2. 讀取數據

pandas 支持讀取和輸出多種數據類型,包括但不限於 csv、txt、xlsx、json、html、sql、parquet、sas、spss、stata、hdf5

讀取一般通過 read_* 函數實現,輸出通過 to_* 函數實現。

image

image

3. 選擇數據子集

導入數據後,一般要對數據進行清洗,我們會選擇部分數據使用,也就是子集。

在 pandas 中選擇數據子集非常簡單,通過篩選行和列字段的值實現。

具體實現如下:

4. 數據可視化

不要以爲 pandas 只是個數據處理工具,它還可以幫助你做可視化圖表,而且能高度集成 matplotlib。

你可以用 pandas 的 plot 方法繪製散點圖、柱狀圖、折線圖等各種主流圖表。

5. 創建新列

有時需要通過函數轉化舊列創建一個新的字段列,pandas 也能輕而易舉的實現

image

6. 分組計算

在 sql 中會用到 group by 這個方法,用來對某個或多個列進行分組,計算其他列的統計值。

pandas 也有這樣的功能,而且和 sql 的用法類似。

image

7. 數據合併

數據處理中經常會遇到將多個表合併成一個表的情況,很多人會打開多個 excel 表,然後手動複製粘貼,這樣就很低效。

pandas 提供了 merge、join、concat 等方法用來合併或連接多張表。

小結

pandas 還有數以千計的強大函數,能實現各種騷操作。

python 也還有數不勝數的寶藏庫,等着大家去探索

三、Pandas 學習資源

如果說學習 Pandas 最好的教程是什麼,那毫無疑問是官方文檔,從小白到高手,它都給你安排的妥妥的,這個後面詳細介紹。

首推,當然是之前小 z 我寫的《用實戰玩轉 Pandas》系列~

下面,會接着從入門、進階、練習四個三面給你們推薦相應的教程和資源。

1. 入門教程

十分鐘入門 Pandas(英文版)[1]

這是 Pandas 官網專門爲新手寫的入門引導,大概就幾千字,包括對 Pandas 的簡要介紹,和一些基本的功能函數。

主要的內容有:數據的創建、查看、篩選、拼接、連接、分組、變形、可視化等等。

而且這個小冊子包含了很多代碼示例,如果你能完整過一遍,入門 Pandas 基本沒啥問題。

中文版似乎也有,但翻譯的準確性大家自己識別斟酌下。

十分鐘入門 Pandas | Pandas 中文 [2]

利用 Pandas 進行數據分析 [3]

這本書不用了說了,可能是你入門 python 數據分析的第一本書,它的作者是 Pandas 庫的核心開發者,也就是說這本書相當於是 Pandas 的官方出版教程。

image

爲什麼它適合入門 pandas,因爲整本書的編排是從數據分析的角度切入的,由淺入深將 pandas 對數據的處理講的很透徹。

當然這本書也存在知識點過於零碎,翻譯不到位的問題,但整體來說是本好書。

w3schools pandas tutorial[4]

w3school 的 pandas 文檔, 邏輯比較清晰,也是從數據分析角度去講 pandas。

image

Learn Pandas Tutorials[5]

數據科學平臺 kaggle 提供的 pandas 入門教程,共六大節涵蓋了 pandas 數據處理各種方法。

image

joyful-pandas[6]

國內小夥伴寫的 Pandas 筆記,挺詳細的,大家可以去下載項目裏的 notebook,放到自己電腦裏練習。

2. 進階教程

pandas 用戶指南 [7]

這是 pandas 官網的教程,非常詳細,主要從數據處理的角度介紹相應的 pandas 函數,方便用戶查閱。

如果你的英文還不錯,也喜歡閱讀技術文檔,我是建議花時間把這份指南看一遍,配合練習。

我把整個 pandas 文檔下載下來,發現足足有 3000 多頁。

pandas api 檢索 [8]

官網的 pandas api 集合,也就是 pandas 所有函數方法的使用規則,是字典式的教程,建議多查查。

pandas-cookbook[9]

這是一個開源文檔,作者不光介紹了 Pandas 的基本語法,還給出了大量的數據案例,讓你在分析數據的過程中熟悉 pandas 各種操作。

Python Data Science Handbook[10]

數據科學書冊,不光有 pandas,還有 ipython、numpy、matplotlib、sklearn,這些都是深入學習 pandas 不可缺少的工具。

3. 練習資源

Pandas 練習集 [11]

github 上一個練習項目,針對 pandas 每個功能都有對應的真實數據練習。

101 個 Pandas 練習 [12]

一位國外博主總結的 100 多個 pandas 練習題,非常全面。

datacamp[13]

數據科學教程網站,裏面有大量 pandas 的練習題,還提供了詳細的速查表。

Reference

[1]

十分鐘入門 Pandas(英文版):https://pandas.pydata.org/docs/user_guide/10min.html

[2]

十分鐘入門 Pandas | Pandas 中文:http://www.pypandas.cn/docs/getting_started/10min.html

[3]

利用 Pandas 進行數據分析:https://github.com/wesm/pydata-book

[4]

w3schools pandas tutorial:https://www.w3schools.com/python/pandas/default.asp

[5]

Learn Pandas Tutorials:https://www.kaggle.com/learn/pandas

[6]

joyful-pandas:https://github.com/datawhalechina/joyful-pandas

[7]

pandas 用戶指南:https://pandas.pydata.org/docs/user_guide/index.html#user-guide

[8]

pandas api 檢索:https://pandas.pydata.org/docs/reference/index.html#api

[9]

pandas-cookbook:https://github.com/jvns/pandas-cookbook

[10]

Python Data Science Handbook:https://jakevdp.github.io/PythonDataScienceHandbook/

[11]

Pandas 練習集:https://github.com/guipsamora/pandas_exercises

[12]

101 個 Pandas 練習:https://www.machinelearningplus.com/python/101-pandas-exercises-python/

[13]

datacamp:https://www.datacamp.com/community/tutorials

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/t0XAinwR--thRYvpfLwqNg