Pandas read_csv()读取字符串"null"出现异常的解决方法咨询
解决方案
pandas的read_csv方法默认会将null、nan、NA等字符串识别为缺失值NaN,你可以通过调整读取参数直接解决该问题,适合大文件场景,无额外性能开销。
方法1:关闭默认缺失值识别规则(最简便)
如果你不需要识别任何字符串为缺失值,仅把空单元格识别为缺失,可添加keep_default_na=False参数:
import pandas df = pandas.read_csv("test.csv", keep_default_na=False) print(list(df["col1"])) # 输出结果为 ['null']
方法2:自定义缺失值识别规则
如果你仍需要保留其他默认缺失值的识别规则(比如把NA、nan识别为NaN),仅排除null字符串,可自定义na_values列表:
import pandas # 从pandas默认缺失值列表中移除'null'/'NULL' custom_na_values = ['', '#N/A', '#N/A N/A', '#NA', '-1.#IND', '-1.#QNAN', '-NaN', '-nan', '1.#IND', '1.#QNAN', '<NA>', 'N/A', 'NA', 'NaN', 'n/a', 'nan'] df = pandas.read_csv("test.csv", na_values=custom_na_values, keep_default_na=False)
兜底方案:读取后替换
如果文件已经读取完成,可以将对应列的NaN替换为字符串null,注意该方法会把列内所有真实缺失值也替换为null,请根据场景选择:
df["col1"] = df["col1"].fillna("null")
内容的提问来源于stack exchange,提问作者Wartin
相关产品推荐
相关产品推荐

