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

如何查找pandas中非NaN格式的缺失值?是否需咨询数据提供者或用循环?

处理非标准缺失值的实用方案

定位含未知符号缺失值的行

不用写循环,用pandas的矢量化操作就能高效解决:

  • 先快速排查疑似缺失符号:对目标列执行df[目标列名].unique(),查看所有唯一值,一眼就能找出####、**这类和正常数据格格不入的符号;如果列太多,用df.nunique()看每列的不同值数量,值少且包含特殊符号的列重点排查
  • 批量匹配筛选行:把排查到的疑似缺失符号放进列表,比如missing_symbols = ['####', '**', 'NA', '—'],然后用df[df.isin(missing_symbols).any(axis=1)]就能直接筛选出包含这些符号的所有行
  • 正则模糊匹配:如果符号是重复特殊字符(比如全#、全*),可以用正则匹配模式,比如df[df['目标列名'].str.match(r'^[#*]+$', na=False)],匹配该列符合“全是#或*”的行,再结合any(axis=1)就能找出整行存在这类缺失值的记录

优先咨询数据收集人员

这是最靠谱的第一步:

  • 数据采集方清楚缺失值的编码规则,能直接告诉你所有非标准缺失符号,省得你逐个猜
  • 还能了解这些缺失值的业务背景(比如是未采集、采集失败还是无效数据),这决定了你后续是填充、删除还是做其他处理

别用循环处理

循环在pandas里效率极低,尤其是数据量上万的时候,矢量化操作(比如上面的isin()、str.match())比循环快几十倍甚至上百倍,完全能覆盖你的需求,没必要写循环。

内容的提问来源于stack exchange,提问作者rereer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 11:03:16