pandas缺失值np.nan, np.isnan, None, pd.isnull, pd.isna
np.nan != np.nan
在計算機中本沒有絕對絕對相等的數(shù)據(jù),所謂的相等只是精度允許的條件下相等!np.nan 原意為 not a number。
概括:
- 對某個值是否為nan進行判斷,只能用np.isnan(i),絕不可用 i == np.nan 來判斷,因為nan具有不等于自身的屬性,應該使用np.isnan來測試nan值,如np.isnan(np.nan)將產(chǎn)生True;
- np.nan非空對象,其類型為基本數(shù)據(jù)類型float;
np.nan
| np.nan | |
|---|---|
| not a member | nan的含義是“not a number“,它是對array中缺失的數(shù)值的占位符 |
| type 為 float | 因為代表缺失的數(shù)值,np.nan的type是float |
| 可參與計算 | np.nan的type是float,所以np.nan可參與計算,且占主導地位,也就是算出的值都為np.nan |
| 不等于自身 | 如果用np.nan==np.nan,會發(fā)現(xiàn)返回的結(jié)果為False,如果用np.nan in array,也不能發(fā)現(xiàn)array中是否包含np.nan |
| np.isnan判斷是否存在np.nan | np.nan因為沒有等于的概念,所以要判斷是否存在np.nan,只可以用np.isnan來判斷 |
| np.isnan只可以判斷數(shù)值型 | 如果用np.isnan對其余type的array判斷,會報錯,np.isnan只可以判斷數(shù)字型array |
| 忽略np.nan的numpy計算 |
|---|
| nansum() |
| nanmax() |
| nanmin() |
| nanargmax() |
| nanargmin() |
nan和None
- python自帶的 None ,為 NoneType 類型, 代表空類型,不能參與運算;
- numpy中的 isnan 對應的是 NaN 值,代表“不是數(shù)字”,數(shù)值類型為 float ,數(shù)組中顯示為nan,能參與運算,但結(jié)果顯示為NaN;
None
| None | |
|---|---|
| NoneType | None的type為NoneType,是python內(nèi)置的 |
| 不可參與計算 | None不可參與計算,否則報錯 |
| None is None 或者 None==None | 這兩種方式返回值都是True |
pd.isnull 和 pd.isna
| pd.isnull pd.isna | |
|---|---|
| pd.isnull 和 pd.isna是同一個東西 | 用命令pd.isnull==pd.isna,會發(fā)現(xiàn)返回值為True |
| None和np.nan在pandas中都是缺省值 | None和np.nan都會被pd.isnull或者pd.isna判斷為True |
| 可以判斷List或者單獨一個值 | pd.isnull和pd.isna的判斷對象可以為一個值或者一個list |
| pandas中缺省值不參與計算 | 當使用df.min()等計算時,會發(fā)現(xiàn)缺省值不參與計算 |
代碼示例
只可以用np.isnan判斷array中是否包含np.nan
a = np.array([1,2,3,4,np.nan]) a == np.nan >>> array([False, False, False, False, False]) np.nan in a >>> False np.isnan(a) >>> array([False, False, False, False, True])
np.nan可參與計算,np.nan占主導地位
a = np.array([1,2,3,4,np.nan]) a.max() >>> np.nan a.min() >>> np.nan b = np.array([1,np.nan,3,4,5]) a+b >>> array([ 2., nan, 6., 8., nan])
np.isnan只可以對數(shù)值型array判斷,當array中其余的元素為字符串是,array會將np.nan轉(zhuǎn)換成’nan’

在pandas中,np.nan和None都被視為缺省值
df = pd.DataFrame({'col1':['a','b','c','d'], 'col2':[1,2,3,4]})
df.loc[1,'col1'] = np.nan
df.loc[2,'col1'] = None
df
>>> col1 col2
0 a 1
1 NaN 2
2 None 3
3 d 4
pd.isna(df)
>>> col1 col2
0 False False
1 True False
2 True False
3 False False
pandas中缺省值不參與計算
df = pd.DataFrame(np.arange(8).reshape(2,4)) df.iloc[0,1] = None df.iloc[0,2] = np.nan df >>> 0 1 2 3 0 0 NaN NaN 3 1 4 5.0 6.0 7 df.min(axis=1) >>> 0 0.0 1 4.0 dtype: float64
到此這篇關(guān)于pandas缺失值np.nan, np.isnan, None, pd.isnull, pd.isna的文章就介紹到這了,更多相關(guān) np.nan, np.isnan, None, pd.isnull, pd.isna內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pycharm沒有找到manage?repositories按鈕的解決辦法
這篇文章主要給大家介紹了關(guān)于pycharm沒有找到manage?repositories按鈕的解決辦法,pycharm是用來寫python的可視化代碼軟件,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-07-07
Keras搭建分類網(wǎng)絡(luò)平臺VGG16?MobileNet?ResNet50
這篇文章主要為大家介紹了Keras搭建分類網(wǎng)絡(luò)平臺VGG16?MobileNet?ResNet50,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
基于Tensorflow批量數(shù)據(jù)的輸入實現(xiàn)方式
今天小編就為大家分享一篇基于Tensorflow批量數(shù)據(jù)的輸入實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
python中單例常用的幾種實現(xiàn)方法總結(jié)
Python 的模塊就是天然的單例模式,下面這篇文章主要給大家介紹了關(guān)于python中單例常用的幾種實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python單例具有一定的參考學習價值,需要的朋友們一起來看看吧2018-10-10
如何使用 Python和 FFmpeg 批量截圖視頻到各自文件夾中
wxPython 提供了一個簡單易用的界面,而 FFmpeg 則負責處理視頻幀的提取,這個工具不僅對視頻編輯工作有幫助,也為批量處理視頻文件提供了極大的便利,這篇文章主要介紹了使用 Python和 FFmpeg 批量截圖視頻到各自文件夾中,需要的朋友可以參考下2024-08-08
python代碼實現(xiàn)TSNE降維數(shù)據(jù)可視化教程
今天小編就為大家分享一篇python代碼實現(xiàn)TSNE降維數(shù)據(jù)可視化教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02

