【问题标题】:Select rows with missing value in a Julia dataframe在 Julia 数据框中选择缺失值的行
【发布时间】:2020-09-29 11:32:23
【问题描述】:

我刚刚开始探索 Julia,并且正在努力处理子集数据框。我想选择LABEL 的值为“B”且缺少VALUE 的行。选择带有“B”的行可以正常工作,但尝试为缺失添加过滤器会失败。任何建议如何解决这个问题。欢迎提供有关 Julia 中的子集/过滤数据框的良好文档提示。在 Julia 文档中我没有找到解决方案。

using DataFrames
df = DataFrame(ID = 1:5, LABEL = ["A", "A", "B", "B", "B"], VALUE = ["A1", "A2", "B1", "B2", missing])
df[df[:LABEL] .== "B", :] # works fine
df[df[:LABEL] .== "B" && df[:VALUE] .== missing, :] # fails

【问题讨论】:

    标签: dataframe julia subset


    【解决方案1】:

    用途:

    filter([:LABEL, :VALUE] => (l, v) -> l == "B" && ismissing(v), df)
    

    filter 函数的文档中给出了一个非常相似的示例)。

    如果你想使用getindex,那么写:

    df[(df.LABEL .== "B") .& ismissing.(df.VALUE), :]
    

    在处理数组时需要使用 .& 而不是 && 的事实并非 DataFrames.jl 特有的 - 这是 Julia 中使用布尔值索引数组时的常见模式。

    【讨论】:

      猜你喜欢
      • 2019-02-11
      • 2019-03-13
      • 1970-01-01
      • 2019-08-18
      • 2016-07-24
      • 2011-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多