如何在Julia中向数据框插入缺失值

Him*_*dar 2 dataframe julia

df3[10, :A] = missing
df3[15, :B] = missing
df3[15, :C] = missing
Run Code Online (Sandbox Code Playgroud)

即使NA也不行.

我收到了一个错误

MethodError:Missings.Missing convert类型的对象不能是Int64类型的对象这可能是由于对构造函数Int64(...)的调用引起的,因为类型构造函数会回退到转换方法.Stacktrace:[1] setindex!(:: Array {Int64,1},:: Missings.Missing,:: Int64)at ./array.jl:583 [2] insert_single_entry!(:: DataFrames.DataFrame,:: Missings .Missing,:: Int64,:: Symbol)/home/jrun/.julia/v0.6/DataFrames/src/dataframe/dataframe.jl:361 [3] setindex!(:: DataFrames.DataFrame,:: Missings .Missing,:: Int64,:: Symbol)在/home/jrun/.julia/v0.6/DataFrames/src/dataframe/dataframe.jl:448 [4] include_string(:: String,:: String)at. /loading.jl:522

Bog*_*ski 7

使用allowmissing!功能.

julia> using DataFrames

julia> df = DataFrame(a=[1,2,3])
3×1 DataFrame
? Row ? a     ?
?     ? Int64 ?
???????????????
? 1   ? 1     ?
? 2   ? 2     ?
? 3   ? 3     ?

julia> df.a[1] = missing
ERROR: MethodError: Cannot `convert` an object of type Missing to an object of type Int64

julia> allowmissing!(df)
3×1 DataFrame
? Row ? a      ?
?     ? Int64? ?
????????????????
? 1   ? 1      ?
? 2   ? 2      ?
? 3   ? 3      ?

julia> df.a[1] = missing
missing

julia> df
3×1 DataFrame
? Row ? a       ?
?     ? Int64?  ?
?????????????????
? 1   ? missing ?
? 2   ? 2       ?
? 3   ? 3       ?
Run Code Online (Sandbox Code Playgroud)

您可以查看DataFrame允许中的哪些列,missing因为它们?在列名称下以类型名称后突出显示.

您还可以使用allowmissing函数创建新的DataFrame.

两个函数都可以选择接受要转换的列.

最后有一个disallowmissing/ disallowmissing!对执行相反的操作(即Missing,eltype如果向量实际上不包含缺失值,则从中剥离可选的并集).

  • 在文档中,您可以在此处找到它:http://juliadata.github.io/DataFrames.jl/latest/#API-1.此外还有一个关于DataFrames.jl的教程:https://github.com/bkamins/JuliabonsFrames-Tutorial(你的问题的主题在第3章中有介绍). (3认同)