Julia 数据框 - 需要根据缺少的多个列来选择行

  • 本文关键字:选择 数据 Julia dataframe julia rows
  • 更新时间 :
  • 英文 :


帮助朱莉娅新手 我已经联接了 2 个数据帧,需要选择缺少列的行。 以下内容从一列拉取,但我需要拉取多个。 我需要拉:md5:md5_1:md5_2....不见了。

@where(bwjoinout_1_2, findall(x -> (ismissing(x)), :md5)) # works 

这将拉取缺少:md5的行。

我在语法上受到挑战!!

问候并保持安全 布莱恩·韦伯

不确定我是否完全理解您想做什么,但这对您有用吗?

julia> df = DataFrame(id = 1:3, x=[1, missing, 3], y=[1, 2, missing])
3×3 DataFrame
Row │ id     x        y       
│ Int64  Int64?   Int64?  
─────┼─────────────────────────
1 │     1        1        1
2 │     2  missing        2
3 │     3        3  missing 
julia> df[ismissing.(df.x) .| ismissing.(df.y), :]
2×3 DataFrame
Row │ id     x        y       
│ Int64  Int64?   Int64?  
─────┼─────────────────────────
1 │     2  missing        2
2 │     3        3  missing 

filter(row -> any(ismissing, row[names(df, r"^md5")]), df)

这将df在名称以"md5"开头的任何列中保留具有missing值的所有行。这不是最有效的方法,但我认为从概念上讲这是最简单的。

如果您需要最大性能,请遵循 François Févotte 的建议,但它目前要求您明确列出要过滤的列(此 PR 将允许使其更干净)。

使用

bwmissows = bwjoinout_1_2[ismissing.(bwjoinout_1_2.md5) .| ismissing.(bwjoinout_1_2.md5_1), :]

像魅力一样工作 拉取缺少md5md5_1的行

感谢您的帮助 注意安全!

我无法获得语法

问候 布莱恩

我会做bwjoinout_1_2[.!completecases(bwjoinout_1_2, r"md5"), :].

最新更新