最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python2與python3中關(guān)于對NaN類型數(shù)據(jù)的判斷和轉(zhuǎn)換方法

 更新時間:2018年10月30日 10:00:33   作者:敲代碼的quant  
今天小編就為大家分享一篇python2與python3中關(guān)于對NaN類型數(shù)據(jù)的判斷和轉(zhuǎn)換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

今天在對一堆新數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗的時候,遇到了一個這樣的問題:

ValueError: cannot convert float NaN to integer 

一開始是這樣的,我用的jupyter是python35的,使用DataFrame讀入了數(shù)據(jù),其中有一列是year,默認(rèn)讀入時是將year這一列轉(zhuǎn)換為了float,所以就有了這樣的現(xiàn)象:

python2 python3 對NaN類型數(shù)據(jù)的判斷和轉(zhuǎn)換

年份都是float類型了,看得我強迫癥都犯了。于是通過這樣的代碼來進(jìn)行強轉(zhuǎn),于是就報了上面的錯誤了。

df.year = [int(y) for y in df.year]

簡單描述一下問題,其實就是NaN在python35中無法被強轉(zhuǎn)。

首先說一下,NaN類型在python25中在強轉(zhuǎn)int的時候默認(rèn)是轉(zhuǎn)換為0的,而在python25之后的版本再進(jìn)行轉(zhuǎn)換的時候就會報以上的錯誤。

我們先打印看一下np.nan的類型:

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

np.nan是float類型,但是在進(jìn)行int轉(zhuǎn)換的時候就會報錯。

解決方法:

使用is或者==進(jìn)行判斷是不是NaN,不是NaN進(jìn)行強轉(zhuǎn)int,是則用0代替。

先說一下==和is使用時的區(qū)別:

is和==都是對對象進(jìn)行比較判斷作用的,但對對象比較判斷的內(nèi)容并不相同。

如果有a跟b兩個變量,只有數(shù)值型和字符串型的情況下,a is b才為True,當(dāng)a和b是tuple,list,dict、set或者是實例化對象時,a is b為False。

==是python標(biāo)準(zhǔn)操作符中的比較操作符,用來比較判斷兩個對象的value(值)是否相等。

通過下面的代碼可以看出,np.nan==np.nan結(jié)果是False,但是np.nan is np.nan卻是True。

a = np.nan
 
 
print(a == np.nan)
print(a == a)
print(a is np.nan)
print(a is a)
 
 
False
False
True
True

因此,通過每個元素與自身比較就可以解決了,代碼如下:

year = []
for y in df.year:
 if y == y:
  year.append(int(y))
 else:
  year.append(0)

以上這篇python2與python3中關(guān)于對NaN類型數(shù)據(jù)的判斷和轉(zhuǎn)換方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 簡化Python的Django框架代碼的一些示例

    簡化Python的Django框架代碼的一些示例

    這篇文章主要介紹了簡化Python的Django框架代碼的一些示例,實際上文中只是抽取了一些Django中最基本的功能用于簡化入門者的上手復(fù)雜度,下,需要的朋友可以參考下
    2015-04-04
  • Python經(jīng)緯度坐標(biāo)轉(zhuǎn)換為距離及角度的實現(xiàn)

    Python經(jīng)緯度坐標(biāo)轉(zhuǎn)換為距離及角度的實現(xiàn)

    這篇文章主要介紹了Python經(jīng)緯度坐標(biāo)轉(zhuǎn)換為距離及角度的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python中的super用法詳解

    Python中的super用法詳解

    這篇文章主要介紹了Python中的super用法詳解,本文講解了關(guān)于super問題的發(fā)現(xiàn)與提出、走進(jìn)Python的源碼世界分析super的實現(xiàn)、延續(xù)的討論super等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • python 使用sys.stdin和fileinput讀入標(biāo)準(zhǔn)輸入的方法

    python 使用sys.stdin和fileinput讀入標(biāo)準(zhǔn)輸入的方法

    今天小編就為大家分享一篇python 使用sys.stdin和fileinput讀入標(biāo)準(zhǔn)輸入的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python 爬取B站原視頻的實例代碼

    python 爬取B站原視頻的實例代碼

    這篇文章主要介紹了python 爬取B站原視頻的實例代碼,幫助大家更好的理解和使用python 爬蟲,感興趣的朋友可以了解下
    2020-09-09
  • 利用Python如何批量更新服務(wù)器文件

    利用Python如何批量更新服務(wù)器文件

    這篇文章主要給大家介紹了關(guān)于利用Python如何批量更新服務(wù)器文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • NumPy性能優(yōu)化的實例技巧

    NumPy性能優(yōu)化的實例技巧

    NumPy 提供了一些工具和技巧,幫助用戶優(yōu)化代碼以提高執(zhí)行效率,本文主要介紹了NumPy性能優(yōu)化,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 提升Python代碼質(zhì)量巧妙整理包引入順序

    提升Python代碼質(zhì)量巧妙整理包引入順序

    在Python編程中,優(yōu)化導(dǎo)入包的順序可以提高代碼的可讀性、可維護(hù)性和性能,一個良好的導(dǎo)入順序不僅使代碼更易于理解,還可以幫助減少潛在的循環(huán)依賴和提高導(dǎo)入速度,本文將介紹如何快速、有效地優(yōu)化Python導(dǎo)入包的順序,并提供豐富的示例代碼以幫助更好地理解
    2024-01-01
  • python實現(xiàn)tail -f 功能

    python實現(xiàn)tail -f 功能

    這篇文章主要介紹了python實現(xiàn)tail -f 功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • 在Mac OS上使用mod_wsgi連接Python與Apache服務(wù)器

    在Mac OS上使用mod_wsgi連接Python與Apache服務(wù)器

    這篇文章主要介紹了在Mac OS上使用mod_wsgi連接Python與Apache服務(wù)器的方法,同時文中還介紹了使用Python的Django框架時mod_wsgi連接方式下可能遇到的問題的一般解決方法,需要的朋友可以參考下
    2015-12-12

最新評論

静宁县| 额敏县| 五家渠市| 新兴县| 麦盖提县| 金秀| 红桥区| 灵璧县| 苍山县| 江门市| 增城市| 栖霞市| 铁岭县| 宁晋县| 景宁| 兴仁县| 久治县| 定西市| 平塘县| 利川市| 淮安市| 宁河县| 保靖县| 遂昌县| 泽州县| 犍为县| 靖江市| 原平市| 隆回县| 乐东| 浠水县| 巴里| 丽江市| 瓦房店市| 静宁县| 厦门市| 南开区| 金寨县| 永胜县| 搜索| 青冈县|