【问题标题】:Find a subset of columns of a data frame that have some missing values查找具有一些缺失值的数据框列的子集
【发布时间】:2021-11-09 16:02:18
【问题描述】:

鉴于 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 函数在传递一个类型时会查找所传递类型的子类型。

【问题讨论】:

    标签: dataframe julia missing-data


    【解决方案1】:

    如果您想查找实际上包含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"
    

    【讨论】:

      猜你喜欢
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 1970-01-01
      相关资源
      最近更新 更多