import numpy as np
import pandas as pd
from pandas import Series,DataFrame
有兩種丟失數據:
None
np.nan(NaN)
1. None
None是Python自帶的,其類型爲python object。因此,None不能參與到任何計算中。
a=np.array([1,None,3,4])
a.sum() #None不能參與到計算中,會報錯
2. np.nan(NaN)
np.nan是浮點類型,能參與到計算中。但計算的結果總是NaN。
a=np.array([1,np.nan,3,4])
a.sum()
nan
np.nansum(a)
8.0
3. pandas中的None與NaN
1) pandas中None與np.nan都視作np.nan
2) pandas中None與np.nan的操作
isnull()
notnull()
dropna(): 過濾丟失數據
fillna(): 填充丟失數據
(1)判斷函數
isnull()
notnull()
(2) 過濾函數
dropna()
刪除所有的空值
(3) 填充函數
fillna()
data.fillna(0) #空值用0來填充
data.fillna(method='ffill') #空值用前一個值來填充
data.fillna(method='bfill') #空值用後一個值來進行填充
對於DataFrame來說,還要選擇填充的軸axis。記住,對於DataFrame來說:
axis=0:列
axis=1:行
df.fillna(method='ffill',axis=0) #按照該列的前一列的值來進行填充
fillna(method='ffill',axis=1) #按照該行的前一個值來進行填充