如何将Julia DataFrame列中的数值转换为missing?
尝试将99的值替换为缺少的值:如何将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
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
已对整个向量起作用,因此您不应广播它。对在标量上工作的方法使用广播。