pandas中read_csv的缺失值处理

今天遇到的问题是,要将一份csv数据读入dataframe,但某些列中含有NA值。对于这些列来说,NA应该作为一个有意义的level,而不是缺失值,但read_csv函数会自动将类似的缺失值理解为缺失值并变为NaN。
看pandas文档中read_csv函数中这两个参数的描述,默认会将’-1.#IND’, ‘1.#QNAN’, ‘1.#IND’, ‘-1.#QNAN’, ‘#N/A N/A’,’#N/A’, ‘N/A’, ‘NA’, ‘#NA’, ‘NULL’, ‘NaN’, ‘-NaN’, ‘nan’, ‘-nan’, ''转换为NaN,且na_values参数还支持定义另外的应处理为缺失值的值。

值得注意的是keep_default_na参数,这个参数的作用是决定要不要保留默认应该转换的缺失值列表,将这个参数设为False之后同时不定义na_values参数,就可以在读取文件时不将任何值转换为缺失值NaN。
例:

import pandas as pd
df = pd.read_csv('train.csv', keep_default_na=False)

猜你喜欢

转载自blog.csdn.net/dzysunshine/article/details/83418994