You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DataFrames.jl中筛选包含missing缺失值的DataFrame列

正确实现方法

你可以通过遍历每一列判断是否存在missing值的方式筛选列名,有两种常用写法:

  1. 通用写法(兼容所有DataFrames版本)
names(df)[[any(ismissing, col) for col in eachcol(df)]]

运行上述代码针对你给出的示例df会返回正确结果:

1-element Vector{String}:
 "x3"
  1. 简洁写法(适用于DataFrames 1.3及以上版本)
    你可以直接给names函数传入谓词作为筛选条件,写法更简短:
names(df, x -> any(ismissing, x))

原写法问题说明

你之前使用的names(df, Missing)确实只会匹配列元素类型完全是Missing或者Missing的子类型的列,只能筛选出允许存储missing值的列,无法区分这些列中是否实际存储了missing值。如果你的需求是筛选所有允许存储missing的列(无论是否实际存在),可以用下面的写法:

names(df, eltype -> Missing <: eltype)

针对你的示例df运行该代码会返回["x2", "x3"]。

内容的提问来源于stack exchange,提问作者Bogumił Kamiński

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:42:03