借助ChatGPT使用Pandas实现Excel数据汇总

一、问题的提出

现在有如下一个Excel表:

上述Excel表中8万多条数据,记录的都是三年以来花菜类的销量,现在要求按月汇总实现统计每个月花菜类的销量总和,如果使用Python的话要给出代码。

二、问题的解决

1.首先可以用透视表的方法解决这个问题,可能相对简单一些。采用透视表的话,我们根据ChatGPT的回答,可以采用下面的方法:

  1. 然后就是采用python中的pandas来解决。这里面涉及到Excel表的读取、清洗、汇总、统计,再写入到Excel表。过分析,借助于ChatGPT我写了以下代码。如果要想使生成的代码更加准确,可以把部分Excel表的内容复制给ChatGPT对话框里,然后让它学习,并根据我们给出的指令写出Python代码就可以。

有时,ChatGPT给出代码可能无法运行,而且报错的可能性很大,这时,我们就把bug信息再回复给它,甚至一句话都不要说,它给你寻找解决办法,并且把最后的修改代码返回来。

多数情况下的问题原因是我们的描述不够清楚,造成ChatGPT在理解上有误。这时还要继续追问,对代码继续进行修正。比如我第一次提问时,让它汇总月度总销量,但是后来发现客户要求的是汇总三年中每一个月份的销量,这就要对它进一步提问,让它对已经生成的代码进行修改:

三、代码展示

最终,我经过调试、修改、增添写入Excel表的功能,最终形成以下带有注释的代码。

python 复制代码
import pandas as pd
#读取Excel,以第三行为标题
df = pd.read_excel("花菜类.xlsx",header=2)

#找到不规则日期所在行
irregular_date_rows = df[~df['销售日期'].str.match('\d{4}-\d{2}-\d{2}', na=True)]

#print("不规则日期所在行:",irregular_date_rows)

# 删除不规则日期的行
df = df.drop(irregular_date_rows.index)

# 转化日期格式
df['销售日期'] = pd.to_datetime(df['销售日期'])

# 创建一个新列 '销售月份',用于存储销售日期的月份信息
df['销售月份'] = df['销售日期'].dt.month
df['销售年份'] = df['销售日期'].dt.year

#使用 groupby 和 sum 计算每个月的销售量总和
#monthly_sales = df.groupby('销售月份')['求和项:销量(千克)'].sum()

#使用 groupby 和 sum 计算每年每个月的销售量总和
monthly_sales = df.groupby(['销售年份', '销售月份'])['求和项:销量(千克)'].sum()

# 打印结果 monthly_sales
monthly_sales.to_excel("求和项.xlsx")

下面是统计后的结果:

四、学后反思

  1. ChatGPT解决Excel问题可以直接贴表格,给的代码不一定能用,关键是提问时表述一定要问清楚。如果报错,就让它继续排bug,如果要修改就可以利用它的上下文功能继续给它指令,让它添加功能。

  2. Python和ChatGPT为解决现实的统计问题提供了多元的方法,比如这个8万多条记录如果用Python可能不到十秒就解决了所有的问题,非常的快捷和方便。

相关推荐
xn71331 天前
ChatGPT 生图如何自动导入 Astro 内容站:base64 桥接、frontmatter 更新和封面校验
chatgpt
gptAI_plus2 天前
用 React + TypeScript 写一个世界杯淘汰赛对阵树组件
chatgpt·openai
AI工程效率栈6 天前
AI 帮你补异常处理时,新人最容易犯的错:把失败悄悄变成成功
gpt·chatgpt
凌奕9 天前
让你的 AI 编程助手「偷懒」:50k Star 的 Ponytail,让 Agent 少写一半代码
chatgpt·agent·claude
Non-existent98715 天前
WPS批量清理单元格空白字符的4种方法-异常数字格式处理-实战
excel·wps
星落zx15 天前
Spring Boot 多模型集成:优雅调用全球主流大模型
人工智能·spring boot·chatgpt
Channing Lewis15 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel
jarreyer15 天前
【数据分析绘图】excel绘图和bi工具区别
数据挖掘·数据分析·excel
爱读书的小胖15 天前
无偿分享ChatGPT Image 2画图网页与并发绘图python程序【Ai绘图】
开发语言·python·chatgpt
码农小旋风15 天前
Claude Code 基础用法大全:对话、分析、修改、测试、Git 和工作流
人工智能·git·chatgpt·claude