不知不觉开学已经一个月了。今天是星期五,班主任老师把开学一个月来四次数学考试的分数发在了班级群里: 老师发送给家长的成绩图片,是直接对着成绩单用手机拍摄的。成绩单上只有学生的学号。 为了方便汪子熙简单了解自己的成绩在班级里处于什么样的水平,我和他会坐在一起分析一下这些数据。 在 ChatGPT 出现之前,数据分析无非就是用 OCR 工具,把这些图片里包含的数字信息,提取出来,然后粘贴到 Excel 里,在 Excel 里进行各种操作,比如计算总分,按照总分降序排列,按照某一周的分数降序排列,打印总分排列在指定某位同学之前的所有同学的分数等等。 按照我过去的记忆,这些操作做完,再怎么快也要半小时左右——我并不擅长 Excel 操作。比如老师提供的原始图片里,只包含学号,不包含姓名,因此把姓名补充到数据集里,并完成总分求和等操作,需要编辑一些简单的公式。这些公式我很少用,所以老是记不住,每次要用的时候,都要去搜索引擎里查找语法。 有了 ChatGPT 之后,省事多了,从此彻底告别了 Excel,直接用自然语言,向 ChatGPT 发布指令就行了。 以下操作在 ChatGPT 4 中完成。 指令如下: 我给你上传一个图片文件,里面是一个表格,包含五列数据。第一列是班级学生的学号,第二列到第五列,分别是学生第一周到第四周的数学考试分数。请你把这些数字信息从图片中提取出来,保存到 maths.txt 文件中,要求输出的文件里,每一行的学号和分数之间,用一个空格符进行间隔。 ChatGPT 就会自动编写 Python 代码完成这个任务。 点击 Analyzing 的下拉箭头,可以看到它书写的 Python 源代码。我也贴在这里了,感兴趣的朋友可以看一下:
很快 ChatGPT 完成了任务,点击超链接,就可以把包含了四周考试成绩的 text 文件,下载到本地: maths.txt 文件打开后是这样的: 接下来让 ChatGPT 对这四周的成绩进行求和,然后按照总分从高到低进行排序。指令如下: 我给你上传两个 text 文件,其中 maths.txt 包含了学生的学号,和第一,第二,第三,第四周考试成绩。学号和成绩之间用空格符号分隔。list.txt 文件第一列包含了学生的学号,第二列包含了学生的姓名。学号和姓名之间用空格符号分隔。 现在我把 maths.txt 文件内的数据称为数据集 A,list.txt 文件内的数据称为数据集 B。请你根据数据集 A 和 B 中共有的学生学号值,将两个数据集连接起来,生成一个新的数据集 C,这个数据集 C 增添一个新的列,列值为学生四周的成绩的总和。最后的数据集 C,按照成绩总和从高到低的顺序排序。 很快 ChatGPT 就给出了我想要的数据。班上总分排名第一的一位同学,四次考试总共只丢了 12 分,妥妥的学霸! 对于 ABAP 开发人员来说,上述操作类似使用 OPEN SQL 操作数据库表,不过同 OPEN SQL 有区别的是,我使用的是自然语言,向 ChatGPT 描述我要的结果,它具体如何完成我不关心。ChatGPT 帮我生成了包含学生学号,姓名和总分的新的数据集 C,这个数据集 C 好比 ABAP 里一个新生成的结果内表,我可以继续对其发布指令,任意查看我感兴趣的数据,比如查看总分排名前 20 的名单: 查看最后一次考试成绩的排名: 实际完成这些分析,总共也就花了五分钟左右,绝大部分时间花在编写指令上,粘贴到 ChatGPT 的指令输入字段,敲回车后,就切换到其他窗口做其他事情了。 而且这个数据分析的需求本身很简单。ChatGPT 的魅力就在于,数据分析的需求越复杂,它能节省的人力就越多。比如要是让我用 Excel 统计,列出这四次考试,分数逐周上升,和分数逐周下降的同学名单,我就不知道怎么完成了。但用自然语言给 ChatGPT 发布指令,就能轻松完成: 并且能够查看到 ChatGPT 实现这个任务使用的 Python 源代码,自己也能从中学习。 |
|