Python之Pandas中Series、DataFrame實踐

NO IMAGE

Python之Pandas中Series、DataFrame實踐

1. pandas的資料結構Series

1.1 Series是一種類似於一維陣列的物件,它由一組資料(各種NumPy資料型別)以及一組與之相關的資料標籤(即索引)組成。
1.2 Series的字串表現形式為:索引在左邊,值在右邊。

2. pandas的資料結構DataFrame是一個表格型的資料結構,它含有一組有序的列,每列可以是不同的值型別(數值、字串、布林值的)。

dataframe中的資料是以一個或者多個二位塊存放的(而不是列表、字典或者別的一維資料結構)。

3.索引物件

pandas的索引物件負責管理軸標籤和其他元素(比如軸名稱等)。構建Series或DataFrame時,所用到的任何陣列或其他序列的標籤都會被轉換成一個Index。
Index物件是不可修改的。

4. pandas的主要Index物件

Index       最泛化的Index物件,將軸標籤表示為一個由Python物件組成的NumPy陣列
Int64Index  針對整數的特殊Index
MultiIndex  “層次化”索引物件,表示單個軸上的多層索引。可以看做由元陣列組成的陣列
DatetimeIndex   儲存納秒級時間戳(用NumPy的datetime64型別表示)
PeriodIndex 針對Period資料(時間間隔)的特殊Index

5. 操作Series和DataFrame中的資料的基本手段

5.1 重新索引 reindex
5.2 丟棄指定軸上的項 drop
5.3 索引、選取和過濾(.ix)
5.4 算數運算和資料對齊
DataFrame和Series之間的算數運算預設情況下會將Series的索引項 匹配到DataFrame的列,然後沿著行一直向下廣播。(如果希望匹配行且在列上廣播,則必須使用算數運算方法)

6. 函式應用和對映

NumPy的ufuncs(元素級陣列方法)也可用操作pandas物件
DataFrame中將函式應用到由各列或各行所行成的一維陣列上可用apply方法。

7. 排序和排名

要對行或列索引進行排序(按字典順序),可使用sort_index方法,它將返回一個已排序的新物件;對於DataFrame,則可以根據任意一個軸上的索引進行排序。

8. 彙總和計算描述統計

8.1 相關係數corr與協方差cov
8.2 成員資格isin,用於判斷向量化集合的成員資格,可用於選取Series或DataFrame列資料的子集。

9. 處理缺失資料(Missing data)

9.1 pandas使用浮點值NaN(Not a Number)表示浮點和非浮點陣列中的缺失資料。
9.2 NA處理辦法
dropna      根據各標籤值中是否存在缺失資料對軸標籤進行過濾,可通過閥值調節對缺失值的容忍度
fillna      用指定的或插值方法(如ffil或bfill)填充缺失資料
isnull      返回一個含有布林值的物件,這些布林值表示哪些值是缺失值/NA,該物件的型別與源型別一樣
notnull     isnull的否定式

10. 層次化索引

層次化索引(hierarchical indexing)是pandas的一項重要功能,它使你能在一個軸上擁有多個(兩個以上)索引級別。抽象點說,它是你能以低維度形式處理高維度資料。