找到一个数据框架的列的子集,这些列有一些缺失值



给定DataFrames.jl中的以下数据帧:

julia> using DataFrames
julia> df = DataFrame(x1=[1, 2, 3], x2=Union{Int,Missing}[1, 2, 3], x3=[1, 2, missing])
3×3 DataFrame
Row │ x1     x2      x3
│ Int64  Int64?  Int64?
─────┼────────────────────────
1 │     1       1        1
2 │     2       2        2
3 │     3       3  missing

我想找到包含missing值的列。

I have try:

julia> names(df, Missing)
String[]

,但这是不正确的,因为names函数,当传递一个类型时,查找所传递类型的子类型。

如果要查找实际上包含missing值的列,请使用:

julia> names(df, any.(ismissing, eachcol(df)))
1-element Vector{String}:
"x3"

在这种方法中,我们迭代df数据框架的每一列,并检查它是否包含至少一个缺失值。

如果您想查找可能包含缺失值的列,您需要检查它们的元素类型:

julia> names(df, [eltype(col) >: Missing for col in eachcol(df)]) # using a comprehension
2-element Vector{String}:
"x2"
"x3"
julia> names(df, .>:(eltype.(eachcol(df)), Missing)) # using broadcasting
2-element Vector{String}:
"x2"
"x3"

最新更新