人工智能训练师三级:同一ID就算重复吗?先写去重键

TIVIA人工智能训练师三级数据清洗自测:同一ID不一定是重复行,先确定去重键,附三条自拟记录和四条断言。

发布:2026-11-11 · TIVIA

人工智能训练师三级数据清洗学习中,遇到重复值先别直接删行。今天只练一个自拟场景:同一编号在不同日期有记录,要求只删除完全重复的记录,保留不同日期的两条。

本例每行只有编号和日期文本。第一条是A、11-01;第二条是A、11-02;第三条又是A、11-01。第一条与第三条整行相同,第二条日期不同。是否重复取决于指定的比较字段,不能只看编号。

先看同一编号的三条记录

行编号日期按本例规则
1A11-01保留
2A11-02日期不同,保留
3A11-01与第1行相同,去重

若用“编号加日期”作为去重键,保留两条;若只数不同编号,结果是一个A。两个数字的计算口径不同。把同编号直接当作重复行,会删掉本例要求保留的不同日期记录。

四条断言核清口径

rows = [("A", "11-01"), ("A", "11-02"), ("A", "11-01")]
unique_rows = list(dict.fromkeys(rows))
assert len(rows) == 3
assert unique_rows == [("A", "11-01"), ("A", "11-02")]
assert len({row[0] for row in rows}) == 1
assert rows == [("A", "11-01"), ("A", "11-02"), ("A", "11-01")]
print(unique_rows)

四条断言通过:原始三条、整行去重后两条、不同编号只有一个、原输入保留。输出是本例字段规则的验收,不是软件学习效果。

自拟填空:本例只删完全重复记录,比较键应选“编号”,还是“编号与日期”?应选编号与日期。然后说出理由:不同日期是本例保留规则的一部分。

代码用可哈希的字符串元组和dict.fromkeys保留第一次出现的整行,Python 3.7及以上字典保持插入顺序。本例未处理缺失值、时区、大小写、拼写差异或真实业务主键,不能把示例直接当作所有数据的清洗规则。实际任务要先核字段含义,再决定比较哪些字段。

完成一次可解释的自测

今天只做一个动作:先写一句“什么才算重复”,列出一条应删与一条应留,再写代码并核输出。去重前先确定键,去重后再核留下的记录,而不只看行数变少。

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

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

技术参考:Python官方字典与fromkeys文档。

微信学习群二维码

扫码加入学习群

使用微信扫描上方二维码