人工智能训练师三级:判断缺失前,先别把0删掉

TIVIA人工智能训练师三级数据清洗自测:区分Python真假与缺失规则,用可运行样例检查数字0、空字符串和空白字符串。

发布:2026-11-01 · TIVIA

人工智能训练师三级数据清洗学习中,“程序执行完成”之后,还要检查判断条件是否符合字段含义。今天用普通Python标量自拟一个例子:同一句 if not value,可能把合法的数字0当缺失,却放过只含空格的字符串。

先写规则,再写条件

先约定本例规则:只有None、空字符串和纯空白字符串算缺失;数字0、字符串“0”和字符串“NA”都保留。NA在这里是允许的文本值,不是缺失标记。这是教学用的字段约定,不是所有数据的通用规则。

原因在于真假判断与业务含义不同。Python中的数字0、None和空字符串都可判为假;非空的空格字符串则可判为真。因此“不是空”的写法必须先说明你要检查什么,不能把真假直接当缺失标签。

六个值逐项验收

输入本例判缺失理由
0False保留合法零值
NoneTrue规则指定空对象
''True空字符串
' 'True去掉首尾空白后为空
'0'False非空文本
'NA'False本例允许的文本

先猜输出,再运行

def is_missing(value):
    # 本例约定:None、空串、纯空白字符串算缺失
    return value is None or (
        isinstance(value, str) and value.strip() == ""
    )

values = [0, None, "", "   ", "0", "NA"]
assert [is_missing(v) for v in values] == [False, True, True, True, False, False]
assert bool(0) is False
assert bool("   ") is True
assert is_missing(False) is False
print([is_missing(v) for v in values])

四个断言通过;第一条同时核对六个样例。自测:上面return里的两个主条件之间应填and还是or?是or,因为“None”或“符合规则的字符串”任一成立就判缺失。若用and,会要求一个值同时是None和字符串,漏掉本例缺失值。

本例只覆盖普通Python标量中的上述类型,不处理浮点NaN、日期缺失或表格整列。实际项目要先理解字段约定与数据类型,再选择检测方式并补边界样例;不应直接把本函数套到所有数据。

今天只完成一个学习动作

先写一句字段缺失规则,再各找一个应保留和应判缺失的值,验证代码。不要只记“0不是缺失”,而要能解释判断条件为什么保留它。

本文由TIVIA产品方发布,AI辅助整理并核对来源。TIVIA包含理论题学习与上机代码填空等学习内容;本例围绕数据清洗学习范围重新编写,不是官方真题,不承诺命中、提分或通过。

查看实操体验范围 · 免费理论练习(固定样本,未必包含本文自测;完整版范围以产品说明为准)。

技术参考:Python官方文档的Truth Value Testing与str.strip。 真假判断、去除首尾空白。

微信学习群二维码

扫码加入学习群

使用微信扫描上方二维码