關(guān)于Python中的空值問(wèn)題及解決
背景
python中有許多表示空值的方式,本文對(duì)不同的空值表達(dá)方式從類(lèi)型、等值性、語(yǔ)法方面進(jìn)行歸納總結(jié)
1. None 介紹
None是python中獨(dú)有的特殊數(shù)據(jù)類(lèi)型,它不同于空列表、空字符串、空Series等,它是一個(gè)特殊的存在,表示什么都沒(méi)有。
類(lèi)型
NoneType
2. NaN和np.nan 介紹
NaN(not a number)是屬于numpy和pandas下的專(zhuān)有數(shù)據(jù)類(lèi)型,不是python原生的。
np.nan在import numpy as np
后可以使用,而NaN需要額外from numpy import NaN
類(lèi)型
float
語(yǔ)法
由于np.nan和NaN的等值性比較特殊,NaN == NaN會(huì)return false,所以判斷一個(gè)值是否為空需要調(diào)用pandas活著numpy包中的api,具體語(yǔ)法如下:
對(duì)于整體的Series或者Dataframe判斷是否為空:isnull()
對(duì)于單獨(dú)的某個(gè)值判斷:np.isnan()
3. Null 介紹
NULL是C語(yǔ)言中表示空值的主要表現(xiàn)方式,而Python中沒(méi)有Null,在python中的等位替換為None
4. NaT 介紹
NaT是numpy和pandas中一種特殊的空值,類(lèi)似于NaN中var = np.nan的方式對(duì)變量賦NaT,該變量只會(huì)出現(xiàn)在python連接數(shù)據(jù)庫(kù)讀取數(shù)據(jù)的情況下(未找到相關(guān)官方資料,如有不對(duì)之處請(qǐng)指正),如果數(shù)據(jù)庫(kù)中的數(shù)據(jù)類(lèi)型是timestamp等與時(shí)間相關(guān)的類(lèi)型,而其中又沒(méi)有數(shù)據(jù)的話,用python讀取后可能為此類(lèi)型。
類(lèi)型
datetime
非時(shí)間標(biāo)量值
語(yǔ)法
判斷是否為空的語(yǔ)句(對(duì)單個(gè)值而不是dataframe):np.isnat()
注意:對(duì)NaT執(zhí)行x.tz_localize(None)
等時(shí)區(qū)轉(zhuǎn)換的操作不會(huì)報(bào)錯(cuò)。
5. 等值性
在python中等值性不太穩(wěn)定,總體來(lái)說(shuō)None的表現(xiàn)比NaN穩(wěn)定,推薦優(yōu)先考慮None或者空字符串。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)根據(jù)主機(jī)名字獲得所有ip地址的方法
這篇文章主要介紹了python實(shí)現(xiàn)根據(jù)主機(jī)名字獲得所有ip地址的方法,涉及Python解析IP地址的相關(guān)技巧,需要的朋友可以參考下2015-06-06基于Python實(shí)現(xiàn)網(wǎng)頁(yè)文章轉(zhuǎn)PDF文檔
有時(shí)候看到一篇好的文章,想去保存下來(lái),傳統(tǒng)方式一般是收藏書(shū)簽、復(fù)制粘貼到文檔或者直接復(fù)制鏈接保存,但這也太麻煩了。本文將用Python語(yǔ)言實(shí)現(xiàn)將網(wǎng)上的文章轉(zhuǎn)存為PDF文檔,保存電腦上慢慢看2022-05-05簡(jiǎn)單的命令查看安裝的python版本號(hào)
在本篇內(nèi)容里小編給大家整理的是關(guān)于簡(jiǎn)單的命令查看安裝的python版本號(hào)的文章,需要的朋友們可以參考下。2020-08-08Pandas index操作索引的實(shí)現(xiàn)
Pandas中的索引index用于選擇特定的行數(shù)和列數(shù),加快數(shù)據(jù)訪問(wèn)速度,本文就來(lái)介紹一下index操作索引,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01python 讀取鼠標(biāo)點(diǎn)擊坐標(biāo)的實(shí)例
今天小編就為大家分享一篇python 讀取鼠標(biāo)點(diǎn)擊坐標(biāo)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python使用Matplotlib繪制甘特圖的實(shí)踐
甘特圖已經(jīng)發(fā)展成項(xiàng)目規(guī)劃和跟蹤的必備工具,本文主要介紹了Python使用Matplotlib繪制甘特圖的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12python在windows下創(chuàng)建隱藏窗口子進(jìn)程的方法
這篇文章主要介紹了python在windows下創(chuàng)建隱藏窗口子進(jìn)程的方法,涉及Python使用subprocess模塊操作進(jìn)程的相關(guān)技巧,需要的朋友可以參考下2015-06-06Python使用gluon/mxnet模塊實(shí)現(xiàn)的mnist手寫(xiě)數(shù)字識(shí)別功能完整示例
這篇文章主要介紹了Python使用gluon/mxnet模塊實(shí)現(xiàn)的mnist手寫(xiě)數(shù)字識(shí)別功能,結(jié)合完整實(shí)例形式分析了Python調(diào)用gluon/mxnet模塊識(shí)別手寫(xiě)字的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-12-12Python3導(dǎo)入CSV文件的實(shí)例(跟Python2有些許的不同)
今天小編就為大家分享一篇Python3導(dǎo)入CSV文件的實(shí)例(跟Python2有些許的不同),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Python2與Python3的區(qū)別點(diǎn)整理
在本篇文章里小編給大家整理的是關(guān)于Python2與Python3的區(qū)別點(diǎn)整理內(nèi)容,需要的朋友們可以參考下。2019-12-12