在python3中檢測空值的方法

python3檢測空值的方法?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

在高臺等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計、成都做網(wǎng)站 網(wǎng)站設(shè)計制作按需網(wǎng)站開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站制作,高臺網(wǎng)站建設(shè)費用合理。

pandas 空值定義為numpy.nan

1、對整體的series或Dataframe判斷是否未空,用isnull()
eg: 
pd.isnull(df1) #df1是dataframe變量
2、math.isnan() 可以判斷np.float64類型的空
3、pd.isna() 直接判斷一列
4、對單獨的某個值判斷,可以用 np.isnan() 
eg: np.isnan(df1.ix[0,3]) #對df1的第0行第3列判斷

# 關(guān)于NaN的判斷

python在數(shù)據(jù)預(yù)處理的時候,經(jīng)常遇到需要對空值進行處理的地方。

空值在python中的表現(xiàn)一般為:

1、None

2、False

3、''

4、nan

前3個很容易判斷,直接=就可以了,第四種比較蛋疼,因為你會發(fā)現(xiàn),它無法用==進行判斷(這個跟nan的原因有關(guān)),這里要從nan的是啥說起。

NaN(not a number),在數(shù)學(xué)表示上表示一個無法表示的數(shù),這里一般還會有另一個表述inf,inf和nan的不同在于,inf是一個超過浮點表示范圍的浮點數(shù)(其本質(zhì)仍然是一個數(shù),只是他無窮大,因此無法用浮點數(shù)表示,比如1/0),而nan則一般表示一個非浮點數(shù)(比如無理數(shù))

在數(shù)學(xué)上inf==inf,且inf == inf+X(X為任意浮點數(shù)),而nan != nan,因此在python中判斷一個數(shù)是否是nan,可以直接判斷他是否與自身相等。

>>> np.nan == np.nan
False

這也是變量≠自身的一個特例,因此使用這個性質(zhì)可以判斷這個數(shù)是否為nan。

nan的類型,如果硬要歸類的話,應(yīng)該更像浮點型。

>>> np.nan
nan
>>> type(np.nan)
<type 'float'>

要注意的是,nan的類型是float,當(dāng)對nan進行強制類型轉(zhuǎn)換時,轉(zhuǎn)換為整數(shù)型時會報錯,一般的報錯是如下情況:

>>> int(np.nan)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: cannot convert float NaN to integer
>>> long(np.nan)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: cannot convert float NaN to integer
>>> int('nan')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'nan'

如果是報上面的錯前兩個錯,則是因為被轉(zhuǎn)型的已經(jīng)是一個float的nan(np.nan),如果是報第三個錯,則被轉(zhuǎn)換的是字符串'nan'

而將nan或'nan'從字符串到float轉(zhuǎn)換時,都不會出現(xiàn)錯誤。這也是有時候會隱藏的錯誤,因為numpy的ndarray是支持復(fù)合類型的(如object),如果是一個非法字符被先后轉(zhuǎn)換為float,string,則會表現(xiàn)出是一個string,如果進行強轉(zhuǎn),則報第三個錯。而且此時不能用x!=x判斷。

現(xiàn)在python的大部分普通運算中已經(jīng)不會出現(xiàn)nan,但是在numpy包中,從list轉(zhuǎn)換nparray時,如果遇到類型不匹配,或其他問題導(dǎo)致轉(zhuǎn)換失敗時,仍然會以nan填充,而不是報錯。在處理這類問題,則需要設(shè)置一些缺失值處理方法,這里pandas包里提供了很多,最常用的就是用空值或0替換掉。

感謝各位的閱讀!看完上述內(nèi)容,你們對python3檢測空值的方法大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站名稱:在python3中檢測空值的方法
網(wǎng)頁地址:http://muchs.cn/article12/gjgidc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站營銷型網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、網(wǎng)站收錄ChatGPT、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站