Ren*_*ene 4 subset dataframe julia
我刚刚开始探索 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
Run Code Online (Sandbox Code Playgroud)
使用:
filter([:LABEL, :VALUE] => (l, v) -> l == "B" && ismissing(v), df)
Run Code Online (Sandbox Code Playgroud)
(该函数的文档中给出了一个非常相似的示例filter)。
如果你想使用getindex那就写:
df[(df.LABEL .== "B") .& ismissing.(df.VALUE), :]
Run Code Online (Sandbox Code Playgroud)
事实上,在处理数组时需要使用.&而&&不是 DataFrames.jl 特有的 - 这是 Julia 中使用布尔值索引数组时的常见模式。
| 归档时间: |
|
| 查看次数: |
1213 次 |
| 最近记录: |