概念词条

KNIME 里的缺失值是什么

Missing Value

格子里什么都没有。它不等于零,也不等于空字符串 – 这三个东西在 KNIME 里行为完全不同,混为一谈会算错数。

一句话定义

缺失值表示「这一格没有值」,在输出表里显示为 ? 或空白。它是一种独立的状态,不是某个具体的值。

它是它不是
没有值0 – 零是一个确定的数字,表示金额为零
没有值空字符串 – 长度为零的文本,KNIME 认为它有值
没有值一个空格 – 那是一个字符,更不是缺失值
「处理过缺失值了还是有空格子」的标准答案就在这里。那些格子里是空字符串或空格,Missing Value 节点不会碰它们。要先用 String Manipulation 把这类值转成真正的空,再处理。

它在各种操作里的行为

操作缺失值会怎样
Row Filter 按条件筛选普通条件匹配不上它,所以这些行被静默丢掉。要保留得单独加一条「为空值」的条件
GroupBy 聚合默认跳过。意味着求平均时分母是有值的行数,不是总行数
Joiner 关联关联列为空的行配不上,内连接下会被丢弃
String Manipulation 文本函数作用在缺失值上,结果仍然是缺失值 – 不报错,也不会变成空字符串
Rule Engine 规则判断所有条件都不命中,如果没写兜底规则,结果列会是缺失值
Sorter 排序可以选排在最前还是最后

这张表里有四条是「安静地出事」 – 不报错,只是结果和你以为的不一样。这是缺失值最需要留意的地方。

缺失值从哪来

  1. 源数据本来就没有。人工填报漏填、这个字段对这条记录不适用、系统导出时就是空的。
  2. 转换过程产生的。文本转数字失败且选了「输出缺失值继续跑」,或者日期格式不对转不出来。这一类最危险 – 你以为流程跑通了,实际上有一批数据悄悄变成了空。选了这种容错选项,下游一定要加一步统计缺失值数量。
  3. 关联没配上产生的。左连接保留了未匹配的行,右表带过来的字段自然是空的。这种空是有含义的 – 它告诉你主数据里查无此人。

处理之前先分清两件事

「这台设备本来就没有采购价」和「这一格漏填了」,在数据里长得一模一样,但处理方式完全相反。前者应该保留为空并在口径里说明,后者才该补。

一律填 0 或填均值是最省事也最容易出事的做法 – 它把「不知道」变成了一个看起来确定的数字。做财务和稽核报表时尤其要克制,凭空造出来的数字一旦进了报表,后面没人分得清哪些是真的。

相关内容

页面相关点
Missing Value 缺失值处理六种填法的适用场景与取舍
Row Filter 行筛选器缺失值不被普通条件匹配
GroupBy 分组汇总聚合时默认跳过对均值口径的影响
Rule Engine 规则引擎没写兜底规则会得到缺失值

不确定某一列缺了多少

数据读进来先接一个统计类节点看一眼各列的缺失数量 – 缺一两个和缺三成,处理方式完全不同。

iModel 专属客服
网页直接对话,无需微信
4008568196 拨打此号码联系我们

微信扫码咨询

iModel 微信咨询二维码

使用微信扫描上方二维码