01-什麼是Pandas
- Python Data Analysis Library 或 pandas 是基於NumPy 的一種工具,該工具是爲了解決數據分析任務而創建的。
- pandas 納入了大量庫和一些標準的數據模型,提供了高效地操作大型數據集所需的工具。
- pandas提供了大量能使我們快速便捷地處理數據的函數和方法。
- 它使Python成爲強大而高效的數據分析環境的重要因素之一。
02-導入
它使Python成爲強大而高效的數據分析環境的重要因素之一。
兩大神器:
- Series 是一個類似數組的數據結構。
- DataFrame 數據框類似於Excel,DataFrame組織數據,處理數據。
import pandas as pd
03-Series
(1)Series創建
由列表或numpy數組創建默認索引爲0到N-1的整數型索引
obj = Series([1,2,3,4])
a = np.array([1,2,3])
obj = Series(a)
(2)Series 索引和切片
(1) 顯式索引:
- 使用index中的元素作爲索引值
使用.loc[](推薦)
注意,此時是開區間(2) 隱式索引:
- 使用整數作爲索引值
- 使用.iloc[](推薦)
注意,此時是半開區間
(3)Series的基本概念
- 可以把Series看成一個定長的有序字典可以通過shape,size,index,values等得到series的屬性.
- 可以通過head(),tail()快速查看Series對象的部分樣式。
- 當索引沒有對應的值時,可能出現缺失數據顯示NaN(not a number)的情況。
- 可以使用pd.isnull(),pd.notnull(),或自帶isnull(),notnull()函數檢測缺失數據。
- Series對象本身及其索引都有一個name屬性。
(4)Series的運算
- 適用於numpy的數組運算也適用於Series.
- Series之間的運算在運算中自動對齊不同索引的數據如果索引不對應,則補NaN.
04-Dataframe
DataFrame創建
最常用的方法是傳遞一個字典來創建。DataFrame以字典的鍵作爲每一【列】的名稱,以字典的值(一個數組)作爲每一列。
此外,DataFrame會自動加上每一行的索引(和Series一樣)。
同Series一樣,若傳入的列與字典的鍵不匹配,則相應的值爲NaN。
DataFrame 的索引
分爲對行,列,元素進行索引。
【注意】 直接用中括號時:
索引表示的是列索引
切片表示的是行切片
DataFrame的運算
DataFrame之間的運算:同Series一樣:
在運算中自動對齊不同索引的數據
如果索引不對應,則補NaN
Series與DataFrame之間的運算:
【重要】
使用Python操作符:以行爲單位操作(參數必須是行),對所有行都有效。(類似於numpy中二維數組與一維數組的運算,但可能出現NaN)
使用pandas操作函數:
axis=0:以列爲單位操作(參數必須是列),對所有列都有效。
axis=1:以行爲單位操作(參數必須是行),對所有列都有效。
05-DataFrame處理數據丟失
1.有兩種數據丟失
None是Python自帶的,其類型爲python object。因此,None不能參與到任何計算中
object類型的運算要比int類型的運算慢得多.
np.nan是浮點類型,能參與到計算中。但計算的結果總是NaN
2.pandas中的None與NaN
①pandas中None與np.nan都視作np.nan
②pandas中None與np.nan的操作
- 判斷函數:isnull,notnull()
- dropna(): 過濾丟失數據
- fillna(): 填充丟失數據
- 對於DataFrame來說,還要選擇填充的軸axis。記住,對於DataFrame來說:
axis=0:index/行
axis=1:columns/列