贼拉刺激!GPT+Excel+Python王炸组合让数据分析起飞!

共 7372字,需浏览 15分钟

 ·

2024-07-01 18:59

话说天下大势,合久必分,分久必合。

对于 数据分析 而言,近几年是实实在在的多事之秋。

首先是顶流Python高举卷王大旗向传统王者VBA抢班夺权,pandas, xlwings、OpenPyXL和Matplotlib等第三方包已经具备VBA和Power Query的几乎所有功能。

然后是ChatGPT席卷而来,语言大模型开始接管一切,改变一切。

8月,微软开启Excel内置Python的Beta测试,Python名正言顺地嵌入Excel,与VBA并驾齐驱。11月1日,微软经过7个多月的测试后,正式发布Microsoft 365 Copilot10月17日,国内金山软件与科大讯飞宣布合作,要在WPS中做中国版的Copilot。

智能分析的理想已经照进现实,真实并且热烈!



01

提示词:追求生成的代码不需修改

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窗口输出各班的平均成绩。

>>> == RESTART: D:/Samples/1.py =一班 90.6三班 90.1二班 88.9

操作的整个过程不需要用户懂编程,编程的工作ChatGPT帮你做了,真正实现了办公自动化。

点击下图,查看视频实操讲解

(点击学习)




02

ChatGPT数据分析

编程语言和工具的选择

Excel数据分析目前可用的编程语言主要有VBA和Python,其中Python又有pandas, xlwings和OpenPyXL等不同的包。Python的这几个包既可以单独完成任务,又可以优化组合,更高效地完成分析任务。

经过大量测试,目前可以肯定的是,ChatGPT生成的Python代码的成功率要大于生成的VBA代码的成功率,写提示词的难度也更小。成功率指的是代码运行不出错,并且正确解决问题。

比如下面是用代码实现中国式排名的例子,同样的数据,生成Python pandas代码的提示词为:

你是pandas专家,文件路径为:D:/Samples/07 数据排名/中国式排名/短跑成绩排名.xlsx。该Excel文件的第一个工作表中A1:B8为给定数据,A-B列分别为“姓名”和“短跑成绩(秒)”数据。用pandas导入Excel文件的数据,第1行为索引行,引擎为"openpyxl",请根据短跑成绩进行排名,用时越少排名越靠前。排名为整数,采用中国式排名,名次相同时取最小名次,数据添加在最后一列。根据排名对行数据进行升序排列。给代码添加注释。

生成VBA代码的提示词为:

你是Excel VBA专家,第一个工作表中A1:B8为给定数据,A-B列分别为“姓名”和“短跑成绩(秒)”数据,第1行为变量名称。遍历第2行到末行,首先按照短跑成绩对各行数据进行升序排列,得到各行对应的序号。排序后的姓名和短跑成绩数据放在第E列和第F列,变量名为“姓名”和“短跑成绩(秒)”,数据从第2行开始往下放。排序后行数据处于第几行序号就是几。比如,假设排序后短跑成绩(10 11 11 12 13 13 13 15)对应的序号为(1 2 3 4 5 6 7 8),对于短跑成绩相同的情况,比如成绩都为11的有两个,它们对应的序号为2和3,采用中国式排名,现在序号都取2,取最小值;成绩都为13的有三个,它们对应的序号为5,6和7,都取最小值5。处理完后,最终序号添加在第G列,变量名为“排名”。给代码添加注释。

为什么会有这么明显的差异呢?

笔者考虑主要有两点原因。

  • 第一个原因是ChatGPT是用Python写的,大量使用了Python深度学习的包,而这些包跟pandas包是一脉相承的;

  • 第二个原因是pandas包已经封装了很多算法,比如本例中的排名算法,pandas包中直接调用rank方法就可解决,而VBA中需要向ChatGPT详细描述算法,相当于写一个中国式排名算法的伪代码

所以,在VBA和Python之间,我们选择Python。

然后是Python的3个常用包,即pandas, xlwings和OpenPyXL。

工作中常常用pandas包处理数据,用xlwings包和OpenPyXL包做报表,与Excel工作表打交道。

大量实战标明,ChatGPT生成的pandas代码成功率很高,大多数情况下代码不需要修改就可以解决问题。而另外两个包用ChatGPT生成的代码运行时常常出错。

所以,综上,用ChatGPT做数据分析,优先选择Python的pandas包。




03

Excel内置Python:全面支持pandas包

2023年七夕节这天,微软发布了Excel内置Python Beta测试版。Excel内置Python在微软云上运行,不需要用户在计算机上安装Python和第三方包,从而保证大家都使用相同的软件,没有版本问题。

Excel内置Python可以在Excel中以公式的形式使用Python,并且全面支持pandas包。图4演示了在Excel内置Python中用pandas包实现数据分列的效果,使用很方便。

图4



05

Excel内置Python

使用ChatGPT生成的pandas代码

图1对应示例用ChatGPT生成的pandas代码完成了数据分析的任务,这里试图将该代码用于Excel内置Python。要将ChatGPT生成的pandas代码用于Excel内置Python,需要将代码适当作一些修改。主要是数据输入和输出部分需要修改。

在图5所示工作表中,在计算机连接互联网的条件下,在E2单元格中输入“=PY(”,进入Python模式,在公式栏输入下面根据ChatGPT生成的代码修改后得到的代码:

df=xl("A1:C26",headers=True)df.groupby('班级')['成绩'].mean().round(1)

在公式栏中单击Ctrl+Enter键,E2单元格返回一个Series对象,展开该对象,得到各班的平均成绩,如图5所示。

图5

所以, ChatGPT生成的pandas代码稍作修改就可以用于Excel内置Python,解决数据分析问题。




06

为了让不懂编程的读者也能使用ChatGPT生成代码,轻松实现Excel数据处理自动化,我们基于ChatGPT+Excel+Python超强组合推出了《ChatGPT+pandas数据处理自动化》视频课程!

▼ 点击下图查看更多实操讲解试学

(点击进入课程,查看详情)

课程一共47期,带领大家用ChatGPT自动生成代码,实现了数据处理自动化的绝大部分内容,包括数据导入和导出、数据整理、数据预处理、数据统计分析、数据可视化和与Excel工作表交互等。

配合实例讲解,即便你是零基础的小白,跟着操作下来也会成为AI时代的数据处理高手!

不懂编程?ChatGPT帮你编程;懂编程?ChatGPT帮你十倍提升工作效率!
为了帮助大家更好的学习了解AI工具,学院菌送大家一张100元的《ChatGPT+pandas数据处理自动化》课程抵扣券,不要焦虑,让AI工具服务于你,大胆的去拥抱这一浪潮!

100元优惠券
一定要在1月29日前领取哦~不然就失效啦




07

滴滴!如果你是VBA玩家,不用着急!我们同样制作了《ChatGPT+VBA数据处理自动化》视频课程!领取上面的优惠券,本课程可同享立减100元!

▼ 点击下图查看更多实操讲解试学

(点击进入课程,查看详情)

最后要强调的是,不管技术如何发展,专业和业务知识始终是根本。对于ChatGPT而言,专业和业务上有深刻认识,思路清晰,才能问出高质量的问题。

希望大家花功夫把基础打好,然后熟练使用ChatGPT等先进技术,如虎添翼。

书课同步 效率翻倍

这里给大家分享一本学习ChatGPT+Excel+Python新知识的好书

《智能分析:ChatGPT+Excel+Python超强组合玩转数据分析》

该书试图让不会编程的你也能借助ChatGPT生成代码,轻松实现Excel数据处理自动化,让你从小白秒变高手;懂编程的你也能收获良多,十倍提升工作效率。

书中用ChatGPT自动生成pandas代码,系统实现了Excel数据处理自动化的绝大部分内容,包括数据导入和导出、数据整理、数据预处理和数据统计分析等。结合xlwings包和OpenPyXL包实现了数据可视化和与Excel工作表交互。

全书对数据分析的知识体系按照面向问题的方式进行了重构,并提供提示词模板120多个。你可以在此基础上建立自己的提示词模板库,并不断丰富。

   
     

发布:王一

审核:陈歆懿



如果喜欢本文
欢迎 在看留言分享至朋友圈 三连
<
 PAST · 往期回顾 
>




浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报