人工智能训练师三级:数字转换后,先核行数和新增缺失

TIVIA人工智能训练师三级数字转换验收:用自拟文本和五条断言核对pd.to_numeric的行数、缺失与原字段。

发布:2026-11-14 · TIVIA

人工智能训练师三级实操学习中,数字转换成功不代表每条记录都有效。今天只观察一个自拟例子:三个文本“18”“oops”“20”,用pandas转换为数字,检查转换后的行数和缺失位置。

pd.to_numeric(raw, errors="coerce")会把本例能解析的文本转成数值,把不能解析的“oops”变为缺失值NaN。结果仍有三条,索引A、B、C也保留。中间那条出现缺失,不等于那一行已经被删除。

转换后仍保留三条记录

索引原文本本例转换结果
A“18”18.0
B“oops”NaN
C“20”20.0

本例在pandas 2.3.1执行,输出为A对应18.0、B对应NaN、C对应20.0。重点是行数仍为3,缺失值有1个;不能因为程序没有报错,就认为三个原文本都已经变成有效数值。

五条断言核对结果与原字段

import pandas as pd
raw = pd.Series(["18", "oops", "20"], index=["A", "B", "C"])
converted = pd.to_numeric(raw, errors="coerce")
assert len(converted) == 3
assert converted.isna().sum() == 1
assert converted.iloc[0] == 18 and converted.iloc[2] == 20
assert converted.index.equals(raw.index)
assert raw.tolist() == ["18", "oops", "20"]
print(converted)

样例在已有Python/pandas 2.3.1执行通过。需要pandas环境;断言是技术核验,不是学员学习效果。

先保留原始字段,再记录新增缺失的数量和位置,核对原文本为什么不能解析。是否修正、保留、填充或删去,需要另定业务规则;本例只转换并检查,不替你决定这些处理策略。

自拟填空:转换后仍有三条,缺失值数量应怎样检查?可填写converted.isna().sum()。本例结果为1。再解释一句:errors="coerce"处理解析失败,不是删行指令。

适用范围:本例只有三个自拟文本,使用默认数值后端;不处理带单位文本、特殊数值格式、大整数精度或真实业务约束。错误文本如何处理必须先核规则,不能把所有转换失败都自动填成0。

把转换和处理规则分开验收

今天只做一个验收动作:把“转换前行数、转换后行数、新增缺失位置、原字段是否保留”写在同一张检查表里。先核转换结果,再决定后续清洗,不只检查代码有没有运行完。

本文由TIVIA产品方发布,AI辅助整理并执行自拟代码核验。TIVIA包含理论题学习与上机代码填空等学习内容。本文借产品实操中的数字转换作基础延伸,非原题照搬、官方真题或考试通过承诺;完整范围以实际产品说明为准。

实操体验范围 · 免费理论练习(固定样本未必含本文同题)。

技术参考:pandas官方to_numeric文档。

微信学习群二维码

扫码加入学习群

使用微信扫描上方二维码