1.函數:空值判斷
1)判斷數值是否為空用 pd.isna,pd.isnull,np.isnan
2)判斷字符串是否為空用 pd.isna,pd.isnull;
3)判斷時間是否為空用 pd.isna,pd.isnull,np.isnat
參數:obj:標量或數組
返回:布爾或布爾數組
說明:
1.NA值如None或np.nan,NaT將映射True值。''或np.inf不被視為NA值
2.pandas.options.mode.use_inf_as_na = True#視為na值
3.
Series,DataFrame也有此方法;full,notfull是別名
4.pd.isna 是pandas0.21版本引入的,能判別最大范圍的空值。

實例1:缺省值判斷-標量參數
1.案例如下:
>>> pd.isna(None) True >>> >>> pd.isnull(None) True >>> >>> np.nan(None) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'float' object is not callable >>> >>> np.isnat(None) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: ufunc 'isnat' is only defined for datetime and timedelta.
2.幾種空值的判斷 是== 還是is
==和is對None,''是有效的,而np.nan的比較只能用is
>>> None==None True >>> None is None True >>> >>> >>> np.nan==np.nan False >>> np.nan is np.nan True >>> np.nan is None False >>> >>> '' is '' True >>> ''=='' True
但是np.inf無窮大就與np.nan不一樣(哈哈)
>>> np.inf is np.inf True >>> np.inf == np.inf True >>> np.inf != np.inf False
實例2:缺省值判斷-ndarrays數組
>>> array = np.array([[1, np.nan, 3], [4, 5, np.nan]]) >>> pd.isna(array) #array([[False, True, False],[False, False, True]]) array([[False, True, False], [False, False, True]])
實例3:缺省值判斷-索引,返回一個布爾值的ndarray
>>> index = pd.DatetimeIndex(["2019-07-05", "2019-07-06", None]) >>> b=pd.isna(index) >>> b array([False, False, True]) >>> type(b) <class 'numpy.ndarray'> >>>
實例4:缺省值判斷-Series
>>> s= pd.Series([1, 2,np.nan,np.inf,'']) >>> s.isna().tolist() [False, False, True, False, False]
實例5:缺省值判斷-DataFrame
dates=pd.date_range('2019-1-11',periods=4).tolist() dates[3]=pd.NaT df=pd.DataFrame([[10,20.1,'s1'],[11,20.2,''],[12,np.nan,None],[np.nan,20.4,'s4']] ,columns=list('ABC')) df['D']=dates df
pd.isna(df.B).tolist() #[False, False, True, False] np.isnan(df.B).tolist() #[False, False, True, False] pd.isna(df.C).tolist() #[False, False, True, False]空字符串不為空 np.isnat(df.D).tolist() #[False, False, False, True] pd.isna(df.D).tolist() #[False, False, False, True] pd.isna(df['D']) # 等價df['D'].isna()
2.函數:非空元素判斷