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格式。