pandas数据类型判断(三)数据判断

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

实例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]

猜你喜欢

转载自www.cnblogs.com/wqbin/p/12032073.html