今天遇到的問題是,要將一份csv數(shù)據(jù)讀入dataframe最盅,但某些列中含有NA值突雪。對于這些列來說,NA應(yīng)該作為一個有意義的level涡贱,而不是缺失值咏删,但read_csv函數(shù)會自動將類似的缺失值理解為缺失值并變?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ù)中這兩個參數(shù)的描述问词,默認(rèn)會將'-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ù)激挪,這個參數(shù)的作用是決定要不要保留默認(rèn)應(yīng)該轉(zhuǎn)換的缺失值列表辰狡,將這個參數(shù)設(shè)為False
之后同時不定義na_values
參數(shù),就可以在讀取文件時不將任何值轉(zhuǎn)換為缺失值NaN垄分。
例:
import pandas as pd
df = pd.read_csv('train.csv', keep_default_na=False)