在python中,用pandas處理數(shù)據(jù)非常方便。
但是有時(shí)候從其他地方讀取數(shù)據(jù)時(shí),會(huì)有異常值需要處理。
比如,我們要從excel讀取數(shù)據(jù)然后調(diào)用接口寫入數(shù)據(jù)庫時(shí),讀取到的空值是NaN,但是,接口接收的對(duì)應(yīng)單元格數(shù)據(jù)應(yīng)該是None,這時(shí)候怎么處理呢?當(dāng)然,用pandas做這個(gè)事也是非常容易的。
示例如下:
原始數(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è)問題。
數(shù)據(jù)庫里的值 是null
然后讀取數(shù)據(jù)庫后得到的dataframe 里顯示的事None.
想把這些None 裝換成0.0 但是試過很多方法都不奏效。
使用過
df['PLANDAY'].replace('None',0)
未奏效
這個(gè)判斷句是生效的
df.loc[0,'PLANDAY'] is None:
后來發(fā)現(xiàn)這個(gè)數(shù)據(jù)類型是Nan 不是None
因此使用解決了上訴問題。
df['PLANDAY'] = df['PLANDAY'].fillna(0.0)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 在Pandas中處理NaN值的方法
- pandas 缺失值與空值處理的實(shí)現(xiàn)方法
- Python Pandas對(duì)缺失值的處理方法