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.函数:非空元素判断