pandas中read_csv的缺失值處理

今天遇到的問題是,要將一份csv數(shù)據(jù)讀入dataframe,但某些列中含有NA值。對(duì)于這些列來說,NA應(yīng)該作為一個(gè)有意義的level,而不是缺失值,但read_csv函數(shù)會(huì)自動(dòng)將類似的缺失值理解為缺失值并變?yōu)镹aN。

na_values
: scalar, str, list-like, or dict, default None
Additional strings to recognize as NA/NaN. If dict passed, specific per-column NA values. By default the following values are interpreted as NaN: '-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A N/A','#N/A', 'N/A', 'NA', '#NA', 'NULL', 'NaN', '-NaN', 'nan', '-nan', ''
.
keep_default_na
: boolean, default True
If na_values are specified and keep_default_na is False
 the default NaN values are overridden, otherwise they’re appended to.

看pandas文檔中read_csv函數(shù)中這兩個(gè)參數(shù)的描述,默認(rèn)會(huì)將'-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A N/A','#N/A', 'N/A', 'NA', '#NA', 'NULL', 'NaN', '-NaN', 'nan', '-nan', ''轉(zhuǎn)換為NaN,且na_values參數(shù)還支持定義另外的應(yīng)處理為缺失值的值。

值得注意的是keep_default_na參數(shù),這個(gè)參數(shù)的作用是決定要不要保留默認(rèn)應(yīng)該轉(zhuǎn)換的缺失值列表,將這個(gè)參數(shù)設(shè)為False之后同時(shí)不定義na_values參數(shù),就可以在讀取文件時(shí)不將任何值轉(zhuǎn)換為缺失值NaN。

例:

import pandas as pd
df = pd.read_csv('train.csv', keep_default_na=False)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容