本地千万级 XLSX/CSV 学校成绩交叉矩阵表实战:用 AI 工作流零代码、零 SQL 完成行列转置、双维度透视与成绩统计分析
今天分享一个学校期末成绩交叉矩阵表的实战案例:对原始成绩数据完成清洗,关联学生和班级教师信息,将长表转为交叉矩阵表,并完成排名和统计分析。
这里要介绍是小白都能用的AI 工作流方案:
不用写 Python,也不用懂 SQL,直接在本地电脑上就能完成千万级 XLSX/CSV 成绩数据的清洗、透视、排名统计和结果输出。
一、案例需求分析
有三张原始数据表,数据量在百万到千万级别,如下:
- 期末成绩表.csv (考试ID、学号、科目代码、科目名称、成绩、考试日期、班级)— 500万行
- 学生信息表.csv (学号、姓名、班级、年级、入学日期)— 20万行
- 班级教师表.csv (班级、科目代码、班主任、任课教师)— 5000行
本案例需要先清洗 3 张表的数据,再将期末成绩与学生信息、班级教师信息进行关联,生成成绩关联宽表;随后将成绩长表转为交叉矩阵表,并完成总分、平均分、班级排名、年级排名等统计分析;最后输出多个分析结果表和可视化大盘。
生成的可视化大盘如图(HTML文件):


1、清洗数据
清洗数据就是将一些带有脏数据,格式有问题的数据都清洗成统一的, AI 工作流内置了 Python Agent,通过提示词就能实现任意清洗逻辑,本案例涉及到的清洗操作如下。
第一步 - 清洗期末成绩表:
- 按"考试ID"筛选同一次期末考试数据
- "考试日期"统一为 yyyy-MM-dd 格式
- "成绩"去除"分"后缀,转为纯数字
- 成绩 < 0 或 > 100 时,将"成绩"置空,并写入"异常成绩明细表"
- "科目名称"去除前后空格
- 同一"考试ID"+"学号"+"科目代码"有多条记录时,保留"考试日期"最新的一条,其余写入"重复成绩明细表"
第二步 - 清洗学生信息表:
- "班级"去除前后空格
- "年级"归一化:"高一""G10""高中一年级"统一为"高一"
第三步 - 清洗班级教师表:
- "班级"、"任课教师"去除前后空格
2、数据SQL统计
完成清洗后,下一步就是把期末成绩表、学生信息表、班级教师表关联起来,生成一张成绩关联宽表。
AI 工作流内置了 SQL Agent,只需要用自然语言描述关联逻辑,就可以自动完成多表关联、字段补充、交叉矩阵生成和统计结果输出,如下提示词:
- 将"期末成绩表"按"学号"关联"学生信息表",输出全部字段,新增"标准班级",取值为学生信息表中的"班级",期末成绩表中的"班级"改名为"来源班级"。
- 将上一步结果按"标准班级"+"科目代码"关联"班级教师表",输出全部字段;未匹配到时教师字段置空。
-
输出"成绩关联宽表"。
然后基于中间宽表进行下面结果统计:
生成交叉矩阵表:
1. 基于"成绩关联宽表"
2. 按"考试ID"+"学号"+"姓名"+"标准班级"+"年级"汇总
3. 将各"科目名称"展开为列,填入"成绩"
4. 缺考科目写为空
5. 新增"总分",汇总所有有效成绩
6. 新增"平均分",按有效成绩科目计算平均分
7. 按"总分"降序生成"班级排名"和"年级排名";总分相同时按"平均分"降序
8. 输出"交叉矩阵表"
生成班级成绩统计表:
1. 基于"成绩关联宽表"
2. 按"标准班级"+"科目名称"分组,仅统计有效成绩
3. 统计:平均分、及格率(>=60)、优秀率(>=90)、标准差
4. 输出"班级成绩统计表"
生成任课教师平均分排名表:
1. 基于"成绩关联宽表"
2. 按"任课教师"+"科目名称"分组,仅统计任课教师不为空且成绩有效的记录
3. 统计平均分、有效成绩人数
4. 按平均分降序排名;平均分相同时按有效成绩人数降序
5. 输出"任课教师平均分排名表"
生成各科年级Top10学生表:
1. 基于"成绩关联宽表"
2. 按"年级"+"科目名称"分组,仅统计成绩有效的记录
3. 在每组内按"成绩"降序、"学号"升序排序,取前10名
4. 若第10名并列,按排序结果保留前10名
5. 输出"各科年级Top10学生表"(含学号、姓名、标准班级、年级、科目名称、成绩)
二、案例要完成的任务提示词
这个提示词就是案例需要完成的任务,直接用于配置到工作流智能体里面。
需要说明一点: 提示词不一定非要写成固定模板 。只要表达得 清晰 、 明确 、 简洁 ,让人一眼能看懂要做什么、按什么顺序做、最后输出什么结果,就可以了。
本次案例整理出的提示词如下:
整体要求:生成学校期末成绩交叉矩阵和统计分析报告:
第一步 - 清洗期末成绩表:
1. 按"考试ID"筛选同一次期末考试数据
2. "考试日期"统一为 yyyy-MM-dd 格式
3. "成绩"去除"分"后缀,转为纯数字
4. 成绩 < 0 或 > 100 时,将"成绩"置空,并写入"异常成绩明细表"
5. "科目名称"去除前后空格
6. 同一"考试ID"+"学号"+"科目代码"有多条记录时,保留"考试日期"最新的一条,其余写入"重复成绩明细表"
第二步 - 清洗学生信息表:
1. "班级"去除前后空格
2. "年级"归一化:"高一""G10""高中一年级"统一为"高一"
第三步 - 清洗班级教师表:
1. "班级"、"任课教师"去除前后空格
第四步 - 生成成绩关联宽表:
1. 将"期末成绩表"按"学号"关联"学生信息表",输出全部字段,新增"标准班级",取值为学生信息表中的"班级";期末成绩表中的"班级"改名为"来源班级"
2. 将上一步结果按"标准班级"+"科目代码"关联"班级教师表",输出全部字段;未匹配到时教师字段置空
3. 输出"成绩关联宽表"
第五步 - 生成交叉矩阵表:
1. 基于"成绩关联宽表"
2. 按"考试ID"+"学号"+"姓名"+"标准班级"+"年级"汇总
3. 将各"科目名称"展开为列,填入"成绩"
4. 缺考科目写为空
5. 新增"总分",汇总所有有效成绩
6. 新增"平均分",按有效成绩科目计算平均分
7. 按"总分"降序生成"班级排名"和"年级排名";总分相同时按"平均分"降序
8. 输出"交叉矩阵表"
第六步 - 生成班级成绩统计表:
1. 基于"成绩关联宽表"
2. 按"标准班级"+"科目名称"分组,仅统计有效成绩
3. 统计:平均分、及格率(>=60)、优秀率(>=90)、标准差
4. 输出"班级成绩统计表"
第七步 - 生成任课教师平均分排名表:
1. 基于"成绩关联宽表"
2. 按"任课教师"+"科目名称"分组,仅统计任课教师不为空且成绩有效的记录
3. 统计平均分、有效成绩人数
4. 按平均分降序排名;平均分相同时按有效成绩人数降序
5. 输出"任课教师平均分排名表"
第八步 - 生成各科年级Top10学生表:
1. 基于"成绩关联宽表"
2. 按"年级"+"科目名称"分组,仅统计成绩有效的记录
3. 在每组内按"成绩"降序、"学号"升序排序,取前10名
4. 若第10名并列,按排序结果保留前10名
5. 输出"各科年级Top10学生表"(含学号、姓名、标准班级、年级、科目名称、成绩)
三、落地实现:工作流配置
工作流是由多个智能体节点组成的,这个案例我们涉及到下面几个智能体:
- 文件助手: 获取磁盘的文件或目录。
- 内容清洗器: 专门用来做数据清洗的,只要输入清洗描述就可以对文件数据进行任意整理。
- 数据入库:将文件数据转成本地数据库,用于后面作SQL统计。
- 表统计: 对本地数据库表进行SQL统计,不需要写sql,只需要统计的描述就可以了。
- 报表导出: 对数据库表进行导出,支持导出csv,xlsx,HTML(可视化显示) 。
根据这几个智能体还有上面描述的提示词,我们就可以完成工作流的配置了。
1. 配置文件助手
”文件助手“ 可以用来获取磁盘上任意的一个或多个文件。打开DT-Bot工作流, 配置一个 “文件助手”智能体节点,描述原始数据文件位置,如图:
DT-Bot工作流,解决方案获取: 宫中&浩气: “老罗软件”。

根据提示词描述,获取到了”期末成绩表.csv“原始表格,给后面智能体使用。
2. 配置内容清洗
“内容清洗器” 很强大,内部是通过Python Agent执行引擎处理的, 可以对文件进行任意数据整理,我们直接输入清洗提示词就可以了, 如图:

清洗完成后,还是输出的文件,下面需要进行SQL统计,需要先将文件进行入库。
3. 数据入库
”数据入库“ 智能体可以将文件导入到本地数据库引擎,然后形成数据库表,无需任何提示词,如图配置入库:

到此,我们 工单记录表.csv 的清洗,入库就完成了, 其余的表也是如此配置。
4. 表统计
接下来我们需要进行sql统计,直接用“表统计”智能体就好了, 也是直接输入提示词描述,工作流内部会生成相关sql进行统计(全程不用你操心),下面是我配置完成的图:

5. 导出报表
表统计后,只生成了结果表到数据库里面,还需要从数据库里面下载出来,这是要用“报表导出”智能体,可以指定哪些表,下载类型(支持CSV+HTML),如下图:

配置完成后,我们发布工作流执行就可以了。
四、结尾语
这个案例的价值,不只是完成了成绩数据清洗,更重要的是把原始成绩明细转成可直接分析的交叉矩阵结果表,并进一步完成排名和多维统计分析,整个处理流程更清晰,也更贴近真实教务场景。
按照 AI 工作流配置好处理要求后,不需要手写 Python 和 SQL,也可以把原始成绩数据快速整理成可直接用于分析和管理的结果表。
更多推荐




所有评论(0)