如何将数值转换为Julia DataFrame列中缺少的值



试图将99的值替换为缺失值:

df_miss = DataFrame(a=[1,2,99,99,5,6,99])
allowmissing!(df_miss)
df_miss.a .= replace.(df_miss.a, 99 => missing)

但是得到这个错误:

MethodError: no method matching similar(::Int64, ::Type{Union{Missing, Int64}})

使用:
Julia 1.5.3版
DataFrames 0.22.7版

您不需要在此处使用广播。只需写:

julia> df_miss = DataFrame(a=[1,2,99,99,5,6,99])
7×1 DataFrame
Row │ a
│ Int64
─────┼───────
1 │     1
2 │     2
3 │    99
4 │    99
5 │     5
6 │     6
7 │    99
julia> df_miss.a = replace(df_miss.a, 99 => missing)
7-element Vector{Union{Missing, Int64}}:
1
2
missing
missing
5
6
missing
julia> df_miss
7×1 DataFrame
Row │ a
│ Int64?
─────┼─────────
1 │       1
2 │       2
3 │ missing
4 │ missing
5 │       5
6 │       6
7 │ missing

最新更新