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

 但是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.函數:非空元素判斷

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM