AI 入门与核查AI 应用

AI关联表格后人数变多?用双表练习核对5行、3人与重复键

关联后的五行,可能来自三个人,并不代表多了两名学生。下面保留原有三人四条选课案例,补齐可下载双表、本站实际关联操作和逐行参考答案。再用重复主表复现七行,区分正常的一对多展开与需要修复的输入重复。

多条铁路轨道交错分岔的交汇处
配图:iridial · Unsplash License

本次修订:补双表下载、实际左关联和CSV重读;加入重复主表产生7行的故障与从原件恢复。

先明确任务与结果

先定义计数对象,再检查左右表同键数量。用StudentID做左关联,本例应得到5行、3个不同学生、2名有选课记录的学生和4条匹配明细;保留S3的未匹配行。下载后逐项检查E1至E4,不能把结果行数当人数,也不能删除E4来凑数。

先摆出两张小表和统计问题

以下学生和课程均为虚构数据。学生表为 S1/Ada、S2/Bo、S3/Cy,StudentID 唯一。选课表四行:E1/S1/Math、E2/S1/Art、E3/S2/Math、E4/S2/Math。先问“总共有几名学生”和“有选课记录的学生有几名”,不要上来就要求AI返回一个含糊的总数。

E3 与 E4 课程名称相同,但选课记录ID不同。它们可能代表重复录入,也可能是业务允许的不同记录;这个例子只把它们作为四条输入明细,不能擅自按姓名或课程名删掉。身份碰撞的另一类问题可参照稳定ID与同名合并检查。

输入选课表:四条记录,不等于四个人
EnrollmentIDStudentIDCourse
E1S1Math
E2S1Art
E3S2Math
E4S2Math

逐个学生展开左关联结果

PostgreSQL的关联规则说明用于解释匹配展开及左关联保留未匹配记录。本站数据清洗与分析已有按键关联入口,以下步骤使用这个浏览器工具,不要求安装数据库,也不把数据库全部功能当成本站能力。

手工先算:S1对应E1、E2,两行;S2对应E3、E4,两行;S3没有匹配,左关联仍留一行,所以2+2+1=5。工具导出把左右来源字段分开保留,未匹配右侧显示为空白;这与数据库文档里的null表示方式不同,空白本身也不能证明每一种缺失原因。

本例应得到的五行左关联结果
StudentID / NameEnrollmentIDCourse
S1 / AdaE1Math
S1 / AdaE2Art
S2 / BoE3Math
S2 / BoE4Math
S3 / Cy(未匹配)(未匹配)

先检查展开原因,再解释总数

错误地共用一个计数

AI总结:关联结果5行,因此有5名学生

分别命名的指标

学生3名;有选课记录的学生2名;选课明细4条;左关联结果5行

几个数字都可以同时正确,前提是它们的计数对象不同且标签准确。

给每个指标单独写分子和单位

总学生数来自学生表三个不同 StudentID;选课人数来自有真实 EnrollmentID 的匹配学生,即 S1、S2 两个不同ID;匹配的选课记录是 E1 至 E4 共四条;结果行数才是五。每次输出数字都跟一个名词,例如“4条选课记录”,不要只写“总计4”。

S3 的空匹配不应变成一条“0号课程”,也不能因为关联行保留了它就说它已经选课。如果任务要求每人选课记录数,结果应为 S1:2、S2:2、S3:0,这个0是对已知表范围内匹配数量的统计,不是给缺失课程字段补造一个值。更多空值判断见缺失值与零的区别。

同一数据的四个正确指标
问题本例答案检查依据
学生总人数3人学生表不同StudentID
有选课记录的人数2人有真实匹配的不同StudentID
匹配选课记录数4条非空EnrollmentID:E1–E4
左关联结果行数5行2+2+1个展开结果

要求AI同时交出过程和异常

下面的提示词提供全部自编数据,适合检查模型是否能解释结果。不要用它证明某一模型准确率,也不要把真实学生身份信息粘贴进未经许可的服务。先在小样本重算,再把同一验收思路用于有权限处理的数据。

接收结果时,不只看最终的3、2、4、5。还要检查五行展开是否逐项对应输入,S3 是否保留,E3/E4 是否被静默合并,以及有没有添加输入中不存在的选课。把来源ID留在结果中,核查才不依赖AI的叙述。

可复制的一对多计数核查练习

仅使用这组虚构数据。
学生:S1 Ada;S2 Bo;S3 Cy。
选课:E1 S1 Math;E2 S1 Art;E3 S2 Math;E4 S2 Math。
按StudentID做左关联,逐行列出结果,未匹配右侧明确标记为空。
分别计算学生总人数、有选课记录的不同学生数、非空选课记录数、结果行数,并解释为何不同。
不要按课程名自动去重,不要添加课程或ID。列出需要人工确认的业务歧义。
这是结构与计数练习,不是本站数据库工具入口。

再查左表是否本身重复

如果学生表误录两条 S1,而右侧仍有两条 S1 选课记录,S1 就会产生2×2=4个配对。此时先回查左表的唯一性规则,不能用“关联本来就会变多”掩盖输入错误。相反,若左表确实每行代表不同学期,业务键可能需要加入学期;应重新定义关联条件。

不要靠对最终结果一键去重来修饰人数。这样可能同时删掉应保留的明细,又掩盖左表重复的根因。把“输入唯一性”“匹配数量”“指标口径”分别记录,任何一项不清楚都先保留待核查结论。

把五行结果交出去之前

  • 输入表的行单位与StudentID唯一性规则已说明。
  • 五行展开均能回到输入ID,S3空匹配被保留。
  • 3人、2人、4条、5行分别有清楚的计数标签。
  • E3/E4是否业务重复列为问题,未静默删除或擅自判断。

数字异常时先看哪里

每个人都多出很多行

检查左右两侧同键出现次数,排查多对多配对。

人数和记录数混在一起

重新定义单位,分别计算不同身份和非空明细。

未匹配者消失

核对是否用了只保留匹配项的关联方式,或后续筛选移除了空行。

从双表文件开始,完成一次可核对的左关联

下载本页练习ZIP,解压students.csv、enrolments.csv、students-duplicate.csv和expected.json。前三份是输入,expected是编辑计算的参考答案。正常练习只导入前两份,不把故障副本或答案当成第三张业务表。全部姓名与记录均为虚构教学数据。

导入后,“当前工作数据”默认只显示首张表,这不是文件丢失。关联操作使用左表、右表所选的两张原始表;不要先纵向追加,也不要仅清洗当前工作表后以为原始关联输入已被替换。

  1. 打开数据清洗与分析,一次选择students.csv与enrolments.csv。核对原始导入分别为3行与4行。
  2. 展开“关联与差异(原始表)”;左表选students,右表选enrolments,关联键选StudentID。
  3. 关联方式选“左关联:保留左表全部记录”,点击“按键关联”。
  4. 预览应有5行。检查S1对应E1/E2、S2对应E3/E4,S3右侧编号和课程为空白。
  5. 下载当前结果CSV,在独立目录重新打开;用来源列与编号核对五行,不把“7条原始输入→5行结果”中的7称作7人。

如果要继续在结果上汇总,先点“以当前结果继续处理”;重新运行关联仍读取所选原始表。需要更换关联输入时,修正文件后重新导入。

故障练习:七行不是删掉两行就能修好

另开工具页面,改用students-duplicate.csv和同一份enrolments.csv。故障主表有四行,其中S1/Ada完整重复一次;在这个练习规定的“一人一行”主表中,它是编辑故意设置的错误。左关联应得7行:S1四行、S2两行、S3一行。E1和E2各出现两次,是配对展开的结果。

不要对七行结果按StudentID去重,那会把S1的两门课及S2的两条有效明细一起丢掉。回查故障主表,按本例明确的身份唯一规则恢复students.csv,再与原选课表重新导入关联,应回到5行。真实主表若按“学生+学期”记行,应先定义复合键,不能把多学期记录按人删除。

交付时保存两份源CSV、实际关联CSV和口径说明:学生3人、选课学生2人、匹配明细4条、结果5行。E3/E4是否业务重复仍待业务规则判断。预期答案只核对这个小样本,不代表AI模型准确率或真实用户处理成功率。

正常与故障输入的独立核对
核对对象正常输入重复主表输入
左表行数 / 不同StudentID3 / 34 / 3
左关联结果行数57
S1展开行数24
E1、E2各自出现次数各1各2
恢复动作保留来源与口径修正原主表,重新导入关联

常见问题

左关联五行是否一定出错?

不一定。本例三名学生对应2、2、0条选课记录,左关联仍保留未匹配学生,得到五行是预期。错的是把这五行直接称为五名学生。

同一学生同一课程能直接删重吗?

不能只看课程名决定。检查选课记录ID及业务规则,确认是重复录入、不同学期还是允许重复的记录,再决定怎样处理。

S3没有匹配,为什么每人记录数可以写0?

这里0表示在已知输入表范围内计数为零。关联结果中的课程字段仍是未匹配,不能给它伪造一个课程编号0或把其他未知信息也填成0。

参考资料与延伸阅读

按步骤开始处理

进入对应工具,预览处理结果,检查导出的文件。

继续阅读