Julia使用CSV.read读取文件时如何将"NA"替换为missing值?
报错原因
你参考的写法对应0.x版本的CSV.jl,目前主流使用的1.0+版本CSV.jl已经移除了null关键字参数,因此传入null="NA"时会触发无匹配方法的报错。
解决方案
直接用新版本提供的missingstring参数指定缺失值标识即可,完整读取示例:
# 加载依赖 using CSV, DataFrames # 读取文件,将"NA"识别为missing df = CSV.File("你的CSV文件实际路径.csv"; missingstring="NA") |> DataFrame
额外说明
- 该参数生效后,所有内容为"NA"的单元格会被自动解析为
missing值,对应列会正常推断为浮点/整数等数值类型,不会再被识别为字符串列 - 若文件中存在多个需要识别为缺失值的字符串(比如空字符串、"N/A"等),可以给
missingstring传入数组,例如missingstring=["NA", "", "N/A"] - 若个别列自动类型推断结果不符合预期,可通过
types参数手动指定列类型,例如下方代码指定第2列、第4列解析为Float64:
df = CSV.File("你的CSV文件实际路径.csv"; missingstring="NA", types=Dict(2 => Float64, 4 => Float64) ) |> DataFrame
内容的提问来源于stack exchange,提问作者Ron Snow
相关产品推荐
相关产品推荐

