nan测评:我踩过的坑

nan测评不能只看“能不能填掉”,要看它从哪来、会污染哪些指标、处理后有没有副作用。我按真实排查流程写:从发现异常到定位来源,再到补救和复盘。照这个走,基本不会被 nan 偷偷改掉结果。

第1步:从异常结果反推 nan

很多 nan 不是一打开表就跳出来,而是藏在结果里。比如转化率突然显示为空、图表断线、模型 loss 变成 nan、均值比预期低一截。看到这种现象,不要先改图表,先查原始字段。

我的固定动作是查三类列:参与除法的列、类型转换后的列、外部合并来的列。nan 最爱出现在这三个地方。尤其是左连接后没匹配上的记录,整片字段会变成 nan。

第2步:测缺失率,别只数总量

做 nan测评,单看“缺了 500 个”没意义。500 个在 100 万行里很轻,在 800 行里就是灾难。我会输出缺失数、缺失率、唯一值数量,再按日期或渠道切一刀。

如果缺失集中在某一天,优先查同步任务;集中在某个渠道,查接口字段;集中在某个版本,查埋点。别急着 fillna,很多 nan 是系统故障的烟。

想要完整资源?

会员专享,海量内容

立即查看 →

第3步:检查是不是计算制造的 nan

原始数据没缺失,计算后也会造出 nan。典型例子是 0/0、空数组求均值、字符串转数字失败、负数开平方。报表里的点击率、复购率、客单价都可能中招。

避坑写法是给分母加条件:分母为 0 时返回空或业务默认值,不要让系统自己随便吐 nan。比如曝光为 0 的点击率,显示为“无曝光”比显示 0% 更诚实。

第4步:选择处理方案前先问业务

最差的处理是全表 fillna(0)。它快,也最危险。库存缺失填 0,会被理解成没货;价格缺失填 0,可能触发低价异常;年龄缺失填 0,会污染人群画像。

我的判断顺序是:能回源修复就回源;不能修复再看能否删除;必须保留样本才考虑填补。填补也要分列处理,金额、次数、比例、类别、时间字段没有同一种安全答案。

第5步:复测处理副作用

nan 处理完不是收工。要复测指标前后差异,尤其是均值、分位数、样本量和分组排名。我遇到过一次,中位数补值后整体 AUC 提升,但某个小渠道表现暴跌,原因是该渠道缺失机制和其他渠道完全不同。

一份合格的 nan测评,最后应该留下三样东西:缺失原因、处理规则、影响范围。下次同字段再出问题,团队不用重新猜。

获取完整内容

加入会员,海量资源任你看

立即进入 →

常见问题

nan测评主要看哪些指标?
看缺失数、缺失率、按时间和来源的分布、处理前后核心指标变化。建模场景还要看训练是否报错、特征重要性和验证集表现。
nan一定是坏数据吗?
不一定。nan 表示当前没有有效数字,可能是正常缺失,也可能是计算错误或系统故障。关键看它是否符合业务逻辑。
nan太多的字段还能用吗?
要看缺失是否有信息。缺失率很高的字段不一定废,比如“是否填写邀请码”可能有价值;但如果来源不稳定,建模和报表都要谨慎。