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的一項重要功能,它使你能在一個軸上擁有多個(兩個以上)索引級別。抽象點說,它是你能以低維度形式處