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
解决方案
采用:
filter([:LABEL, :VALUE] => (l, v) -> l == "B" && ismissing(v), df)
(函数的文档中给出了一个非常相似的例子filter
)。
如果你想使用getindex
然后写:
df[(df.LABEL .== "B") .& ismissing.(df.VALUE), :]
在使用数组时需要使用.&
而不是&&
使用数组的事实并不是 DataFrames.jl 特有的——这通常是 Julia 中使用布尔值索引数组时的常见模式。
推荐阅读
- flutter - 颤动悬停式触摸处理 - 无需抬起手指即可检测来自不同小部件的触摸
- javascript - formArray 的 Angular 异步自定义验证器
- c++ - 尝试验证数据时内部有些奇怪
- ajax - 如何将 Json 分配给 drafjs 中的编辑器?
- xamarin.forms - Xamarin:电话号码验证
- java - 为什么 OpenCV-Java 无法连接到 mjpeg-stream(来自烧瓶)而 Python3/cv2 可以做到?
- bootstrap-4 - 如何在 Bootstrap 4 中减小小屏幕中的图标大小
- xslt - 如果条件满足,XLS 创建新元素
- visual-c++ - 开发 Visual Studio 通用项目 - 如何在 for 循环中从顺序命名的 TextBox 中提取文本
- keycloak - Keycloak 授权服务不会拒绝资源中的范围