使用CSV.read读取CSV文件时,如何将NA识别为missing值?
解决CSV.read()识别NA为missing值的问题
这个问题在Julia处理CSV数据时挺常见的——默认情况下CSV包不会把"NA"自动解析成missing,才会导致含NA的列被识别成字符串类型。你只需要在读取时指定missingstrings参数就能轻松搞定:
using CSV, DataFrames # 读取文件时指定"NA"为缺失值标记 df = CSV.read("dax.dat"; missingstrings=["NA"])
补充细节:
missingstrings=["NA"]的作用是告诉CSV包:当遇到字符串"NA"时,直接替换为Julia原生的missing值。- 这样处理后,原本带NA的数值列会被正确推断为
Union{<:Number, Missing}类型,不会再被当成字符串列。 - 如果你的数据集里还有其他缺失值标记(比如"na"、空字符串""、"N/A"),可以把它们都加到参数数组里:
missingstrings=["NA", "na", "", "N/A"]
你可以用eltype(df[:, :目标列名])验证效果,正常情况下会看到包含Missing的联合类型,说明缺失值已经被正确识别啦。
内容的提问来源于stack exchange,提问作者Hamlet
相关产品推荐
相关产品推荐

