App下載

pandas怎么將NaN轉(zhuǎn)換為None?

港城寶藏女孩 2021-08-11 12:01:08 瀏覽數(shù) (4884)
反饋

在python中,用pandas處理數(shù)據(jù)非常方便。特別是當(dāng)數(shù)據(jù)里有異常值的時(shí)候,pandas異常值處理的方式就是將NaN的數(shù)據(jù)轉(zhuǎn)化為None,那么pandas怎么將NaN轉(zhuǎn)化為None呢?接下來(lái)的這篇文章帶你了解。

但是有時(shí)候從其他地方讀取數(shù)據(jù)時(shí),會(huì)有異常值需要處理。

比如,我們要從excel讀取數(shù)據(jù)然后調(diào)用接口寫(xiě)入數(shù)據(jù)庫(kù)時(shí),讀取到的空值是NaN,但是,接口接收的對(duì)應(yīng)單元格數(shù)據(jù)應(yīng)該是None,這時(shí)候怎么處理呢?當(dāng)然,用pandas做這個(gè)事也是非常容易的。

示例如下:

原始數(shù)據(jù):

原始數(shù)據(jù)

示例代碼:

import pandas as pd        
df = pd.read_excel('data/test_data.xlsx')
# 將非空數(shù)據(jù)保留,空數(shù)據(jù)用None替換
df = df.where(df.notnull(), None)
print(df)

輸出結(jié)果:

id value

0 1 100

1 2 None

2 3 None

3 4 50

補(bǔ)充:Pandas Nan & None 處理

在處理數(shù)據(jù)的時(shí)候遇到這個(gè)問(wèn)題。

數(shù)據(jù)庫(kù)里的值 是null

然后讀取數(shù)據(jù)庫(kù)后得到的dataframe 里顯示的事None.

想把這些None 裝換成0.0 但是試過(guò)很多方法都不奏效。

使用過(guò)

df['PLANDAY'].replace('None',0)

未奏效

未奏效

這個(gè)判斷句是生效的

df.loc[0,'PLANDAY'] is None:

后來(lái)發(fā)現(xiàn)這個(gè)數(shù)據(jù)類型是Nan 不是None

因此使用解決了上訴問(wèn)題。

df['PLANDAY'] = df['PLANDAY'].fillna(0.0)

運(yùn)行結(jié)果

以上就是pandas怎么將NaN轉(zhuǎn)換為None的全部?jī)?nèi)容,希望能給大家一個(gè)參考,也希望大家多多支持W3Cschool。


0 人點(diǎn)贊