如何将Julia DataFrame列中的数值转换为missing?

如何将Julia DataFrame列中的数值转换为missing?,dataframe,julia,Dataframe,Julia,尝试将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 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

我懂了。因此,在替换整个单元和部分单元值时使用广播,例如:
df_2=DataFrame(a_str=[“a”、“b”、“c”、“x”、“e”、“1x”、“x2”、“3x4”])
replace.(df_2.a_str,“x”=>“y”)
replace(df_2.a_str,“x”=>“y”)
将只替换“x”的实例,而不是“1x”.
replace
已对整个向量起作用,因此您不应广播它。对在标量上工作的方法使用广播。