方片2:《智能分析ChatGPT Excel Python – 超强组合玩转数学分析》
Python Copilot/ChatGPT
Excel未来已来
话说天下大势,合久必分,分久必合。
于数据分析而言,近几年是实实在在的多事之秋。
首先是顶流Python高举卷王之王的大旗向传统王者VBA抢班夺权,pandas, xlwings、OpenPyXL和Matplotlib等第三方包已经具备VBA和Power Query的几乎所有功能。
然后是2023年初ChatGPT席卷而来,语言大模型开始接管一切,改变一切。
人们从质疑、嘲笑、观望、到骂骂咧咧地开始接受。
8月,微软开启Excel内置Python的Beta测试,Python名正言顺地嵌入Excel,与VBA并驾齐驱。
11月1日,微软经过7个多月的测试后,正式发布Microsoft 365 Copilot。
什么是Copilot?
我的理解是ChatGPT 微软独家秘制语料库!
10月17日,国内金山软件与科大讯飞宣布合作,要在WPS中做中国版的Copilot。
智能分析的理想已经照进现实,真实并且热烈!
01
提示词:追求生成的代码不需修改
“ChatGPT何许人也,仿佛一夜之间,如此汹汹?”
“不必惊慌,无它,一聊天机器人尔!专家讲的自然语言、神经网络、深度学习和大模型,咱们不用理会,只需要向它提问题,等它回答完以后,如此,这般……即可,操作简单而不失粗暴。”
向ChatGPT提的问题美其名曰提示词。
提示词的好坏,直接关系到答案的好坏。所以,提示词里有黄金,提示词里颜如玉。君不闻新晋职业提示词工程师者,年薪百万乎?
ChatGPT可以帮我们写文章、写文案、写诗、画画,才华横溢。但是作为数据分析师,我们让它写代码,并且殷切希望写的代码不需要修改!
如果代码需要修改,对于不懂编程的同学代码是毫无意义的,因为不会改;对于略懂编程的同学,可能调试代码找错花的时间比自己编写用得还多,不划算。
记住,我们追求的目标是让ChatGPT生成的代码不需要修改。
下面结合一个实例介绍用ChatGPT生成pandas代码分析数据的过程。
图1所示工作表中A-C列是不同班学生的考试成绩,要求计算各班学生考试成绩的平均分。这是一个分组统计问题。
图1
根据题意编写好ChatGPT的提示词,如下所示:
你是pandas专家,文件路径为:D:/Samples/ch03/02 各班学生成绩.xlsx。该Excel文件的第一个工作表中A-C列为给定数据。A-C列分别为“班级”、“姓名”和“成绩”。用pandas导入Excel文件的数据,引擎为”openpyxl”。请计算各班学生成绩的平均分,平均分保留1位小数。输出各班平均成绩,例如:一班 88.5。添加代码注释。
ChatGPT软件的外观很简单,类似于图2中的样子。用户只需要在底下的文本框中向ChatGPT提问即可,答案会显示在文本框上方。使用上面的提示词向ChatGPT提问,返回解决本示例问题的pandas代码,如图2中所示。
图2
ChatGPT生成的代码为:
import pandas as pd# 读取Excel文件数据df = pd.read_excel(D:/Samples/ch01/各班学生成绩.xlsx, engine=openpyxl)# 计算各班学生成绩的平均分average_scores = df.groupby(班级)[成绩].mean().round(1)# 输出各班平均成绩for index, value in average_scores.items(): print(f{index}班 {value})
打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存到D:/Samples/1.py。运行脚本,在IDLE Shell窗口输出各班的平均成绩。