1. 程式人生 > >Python資料處理(二) | Pandas資料處理

Python資料處理(二) | Pandas資料處理

本篇部落格所有示例使用Jupyter NoteBook演示。

Python資料處理系列筆記基於:Python資料科學手冊電子版  下載密碼:ovnh

示例程式碼  下載密碼:02f4

目錄

一、Pandas簡介

Pandas是在NumPy基礎上建立的新程式庫,提供了DataFrame資料結構,支援相同型別資料和缺失值的多維陣列,為資料科學家們處理耗時的“資料清理”任務提供了捷徑,pandas的操作對處理資料庫框架和電子表格資料很方便。

二、Pandas物件簡介

從底層觀察Pandas物件,可以把它看成增強版的Numpy結構化陣列,行列不再是簡單的整數索引,還可以帶上標籤。Pandas的三個基本資料結構:Series、DataFrame和Index。

1.Pandas的Series物件

Pandas的Series物件是一個帶索引資料構成的一維陣列。可以用陣列建立Series物件:

Series物件將一組資料和一組索引繫結,可以分別通過values和index屬性獲取資料:

和陣列一樣可通過[]+索引的方式進行訪問:

  • Series是通用的NumPy陣列

NumPy陣列是通過隱式定義的整數索引來獲取數值,Pandas的Series物件使用一種顯示定義的索引與數值關聯。

顯示定義索引,索引不再僅僅是整數,可以是任意型別:

  • Series是特殊的字典

可以把Series物件看作是一種特殊的Python字典,,字典是一種將任意鍵對映到一組任意值的資料結構,忘記的同學可以看我的另一篇部落格複習一下 Python字典

Series其實也是一種將型別鍵對映到一組型別值的資料結構。就像NumPy陣列的某些操作比Python列表更高效一樣,Series物件的某些操作也比Python字典更高效。

  • 建立Series物件

Series物件建立的形式:

pd.Series(data,index=index)

data引數支援多種資料型別,index是一個可選的引數:

每一種形式都可以通過顯示指定索引篩選需要的結果;

2.Pandas的DataFrame物件

  • DataFrame是通用的NumPy陣列

如果說Series是一個帶靈活索引的一維陣列,那麼DataFrame就是一種既有靈活的行索引,又有靈活列名的二維陣列;可以把DataFrame物件看成是若干有序排列的Series物件,這些Series物件有相同的索引:

DataFrame物件有index和columns屬性,可以分別獲得索引和列名:

可以把DataFrame看作一種通用的NumPy二維陣列,可以通過索引和列名,獲取相應的行或列。

  • DataFrame是特殊的字典

字典是一個鍵對映一個值,而DataFrame是一列對映一個Series的資料。

  • 建立DataFrame物件

通過單個Series物件建立,DataFrame是一組Series物件的集合,可用單個Series建立一個單列的DataFrame:

通過字典列表建立:

即使字典中有些鍵不存在,Pandas會用缺失值NaN(Not a Number)表示:

通過具有相同行索引的Series物件字典建立:

通過NumPy二維陣列建立。指定行/列索引,不指定預設為整數索引:

通過NumPy結構化陣列建立:

最後,也可以通過讀入Excel表格或csv檔案來轉化成DataFrame格式。

3.Pandas的Index物件

三、資料取值與選擇

1.Series資料選擇方法

2.DataFrame資料選擇方法

四、Pandas數值運算方法

1.保留索引

2.索引對齊

3.DataFrame與Series的運算

五、處理缺失值

1.選擇處理缺失值的方法

2.Pandas的缺失值

3.處理缺失值

六、層級索引

1.多級索引Series

2.多級索引的建立方法

3.多級索引的取值和切片

4.多級索引行列互換

5.多級索引的資料累計方法

七、合併資料集:Concat與Append操作

1.NumPy數組合並

2.通過pd.concat實現簡易合併

八、合併資料集:合併與連線

1.關係代數

2.資料連線的型別

3.設定資料合併的鍵

4.設定資料連線的集合操作規則

5.重複列名:suffixes引數

6.案例:美國各州統計資料

九、累計與分組

1.行星資料

2.Pandas的簡單累計功能

3.GroupBy:分割、應用和組合

十、資料透視表

1.演示資料透視表

2.手工製作資料透視表

3.資料透視表語法

4.案例:美國人的生日

十一、向量化字串操作

1.Pandas字串操作簡介

2.Pandas字串方法列表

3.案例:食譜資料集

十二、處理時間序列

1.Python的日期與時間工具

2.Pandas時間序列:用時間作索引

3.Pandas時間序列資料結構

4.時間頻率與偏移量

5.重新取樣、遷移和視窗

6.更多學習資料

7.案例:美國西雅圖自行車統計資料的視覺化

十三、高效能Pandas:eval()與query()

1.query()和eval()的設計動機:複合代數式

2.用pandas.eval()實現高效能運算

3.用DataFrame.eval()實現列間運算

4.DataFrame.query()方法

5.效能決定使用時機