选择具有缺失值的Julia数据框中的行。

4

我刚开始探索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
1个回答

5

使用:

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

(在filter函数的文档中也给出了非常相似的示例)。

如果您想使用getindex,则请编写:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接