pandas缺失值np.nan, np.isnan, None, pd.isnull, pd.isna
np.nan != np.nan
在計(jì)算機(jī)中本沒有絕對絕對相等的數(shù)據(jù),所謂的相等只是精度允許的條件下相等!np.nan 原意為 not a number。
概括:
- 對某個(gè)值是否為nan進(jìn)行判斷,只能用np.isnan(i),絕不可用 i == np.nan 來判斷,因?yàn)閚an具有不等于自身的屬性,應(yīng)該使用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 | 因?yàn)榇砣笔У臄?shù)值,np.nan的type是float |
可參與計(jì)算 | np.nan的type是float,所以np.nan可參與計(jì)算,且占主導(dǎo)地位,也就是算出的值都為np.nan |
不等于自身 | 如果用np.nan==np.nan,會(huì)發(fā)現(xiàn)返回的結(jié)果為False,如果用np.nan in array,也不能發(fā)現(xiàn)array中是否包含np.nan |
np.isnan判斷是否存在np.nan | np.nan因?yàn)闆]有等于的概念,所以要判斷是否存在np.nan,只可以用np.isnan來判斷 |
np.isnan只可以判斷數(shù)值型 | 如果用np.isnan對其余type的array判斷,會(huì)報(bào)錯(cuò),np.isnan只可以判斷數(shù)字型array |
忽略np.nan的numpy計(jì)算 |
---|
nansum() |
nanmax() |
nanmin() |
nanargmax() |
nanargmin() |
nan和None
- python自帶的 None ,為 NoneType 類型, 代表空類型,不能參與運(yùn)算;
- numpy中的 isnan 對應(yīng)的是 NaN 值,代表“不是數(shù)字”,數(shù)值類型為 float ,數(shù)組中顯示為nan,能參與運(yùn)算,但結(jié)果顯示為NaN;
None
None | |
---|---|
NoneType | None的type為NoneType,是python內(nèi)置的 |
不可參與計(jì)算 | None不可參與計(jì)算,否則報(bào)錯(cuò) |
None is None 或者 None==None | 這兩種方式返回值都是True |
pd.isnull 和 pd.isna
pd.isnull pd.isna | |
---|---|
pd.isnull 和 pd.isna是同一個(gè)東西 | 用命令pd.isnull==pd.isna,會(huì)發(fā)現(xiàn)返回值為True |
None和np.nan在pandas中都是缺省值 | None和np.nan都會(huì)被pd.isnull或者pd.isna判斷為True |
可以判斷List或者單獨(dú)一個(gè)值 | pd.isnull和pd.isna的判斷對象可以為一個(gè)值或者一個(gè)list |
pandas中缺省值不參與計(jì)算 | 當(dāng)使用df.min()等計(jì)算時(shí),會(huì)發(fā)現(xiàn)缺省值不參與計(jì)算 |
代碼示例
只可以用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可參與計(jì)算,np.nan占主導(dǎo)地位
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判斷,當(dāng)array中其余的元素為字符串是,array會(huì)將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中缺省值不參與計(jì)算
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)文章
Python BeautifulSoup基本用法詳解(通過標(biāo)簽及class定位元素)
這篇文章主要介紹了Python BeautifulSoup基本用法(通過標(biāo)簽及class定位元素),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08Python中WatchDog的使用經(jīng)驗(yàn)總結(jié)
在?python?中文件監(jiān)視主要有兩個(gè)庫,一個(gè)是?pyinotify,一個(gè)是?watchdog,本文主要為大家詳細(xì)介紹一下Python中WatchDog的使用相關(guān)經(jīng)驗(yàn),感興趣的小伙伴可以了解下2023-12-12python使用DebugInfo模塊打印一個(gè)條形堆積圖
今天介紹一個(gè)不使用 matplot,通過 DebugInfo模塊打印條形堆積圖的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-08-08Python中使用正則表達(dá)式精準(zhǔn)匹配IP地址的案例
Python的正則表達(dá)式(re模塊)是完成這個(gè)任務(wù)的利器,但你知道怎么寫才能準(zhǔn)確匹配各種合法的IP地址嗎,今天我們就來詳細(xì)探討這個(gè)問題,感興趣的朋友一起看看吧2025-04-04python 實(shí)現(xiàn)刪除文件或文件夾實(shí)例詳解
這篇文章主要介紹了python 實(shí)現(xiàn)刪除文件或文件夾實(shí)例詳解的相關(guān)資料,這里附有實(shí)例代碼,需要的朋友可以參考下2016-12-12Python+tkinter實(shí)現(xiàn)網(wǎng)站下載工具
這篇文章主要為大家詳細(xì)介紹了如何利用Python+tkinter實(shí)現(xiàn)網(wǎng)站下載工具,實(shí)現(xiàn)所有數(shù)據(jù)一鍵獲取,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-03-03