查找具有某些缺失值的数据框列的子集
Find a subset of columns of a data frame that have some missing values
给定来自 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
值的列。
我试过:
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"
给定来自 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
值的列。
我试过:
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"