不会写代码也能跑分析:用ChatGPT生成数据脚本(Python/R/SQL)

即使你不熟悉编程,也可以借助 ChatGPT 快速生成并运行数据分析脚本。下面我将分三步介绍思路与示例,并给出几种典型场景下的 Python、R、SQL 脚本模板。
一、通用流程
- 明确分析目标
- 你要回答什么问题?(如:销售趋势、用户画像、异常点检测……)
- 需要用到哪些数据?(CSV/Excel 文件、数据库、API……)
- 向 ChatGPT 提示(Prompt)
- 说明数据来源、格式、分析需求、输出形式(图表?统计表?报告?)
- 举例:
我有一个名为 sales.csv 的文件,包含日期、产品、销量三列。请帮我写一个 Python 脚本: 1. 读取数据 2. 按月汇总销量 3. 画出折线图 4. 输出汇总结果到 new_sales.csv
- 复制并运行脚本
- 在你常用的环境中粘贴运行:
- Python:Jupyter Notebook / VS Code / PyCharm
- R:RStudio / R Markdown
- SQL:DBeaver / DataGrip / MySQL Workbench
- 在你常用的环境中粘贴运行:
- 检视结果并迭代
- 如果出错,复制报错信息继续询问 ChatGPT;
- 对图表或输出不满意,也可再让 ChatGPT 调整。
二、示例脚本
1. Python(Pandas + Matplotlib)
import pandas as pd
import matplotlib.pyplot as plt
# 1. 读取数据
df = pd.read_csv('sales.csv', parse_dates=['date'])
# 2. 按月汇总
df['month'] = df['date'].dt.to_period('M')
monthly = df.groupby('month')['sales'].sum().reset_index()
monthly['month'] = monthly['month'].dt.to_timestamp()
# 3. 画折线图
plt.figure(figsize=(8, 4))
plt.plot(monthly['month'], monthly['sales'], marker='o')
plt.title('Monthly Sales Trend')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.grid(True)
plt.tight_layout()
plt.savefig('monthly_sales.png')
# 4. 输出结果
monthly.to_csv('monthly_sales_summary.csv', index=False)
print('完成:已生成 monthly_sales.png 和 monthly_sales_summary.csv')
2. R(Tidyverse + ggplot2)
library(readr)
library(dplyr)
library(ggplot2)
library(lubridate)
# 1. 读取数据
df <- read_csv('sales.csv', col_types = cols(date = col_date()))
# 2. 按月汇总
monthly <- df %>%
mutate(month = floor_date(date, 'month')) %>%
group_by(month) %>%
summarise(total_sales = sum(sales, na.rm = TRUE))
# 3. 画折线图
p <- ggplot(monthly, aes(x = month, y = total_sales)) +
geom_line() + geom_point() +
labs(title = 'Monthly Sales Trend',
x = 'Month', y = 'Sales') +
theme_minimal()
ggsave('monthly_sales.png', p, width = 8, height = 4)
# 4. 输出结果
write_csv(monthly, 'monthly_sales_summary.csv')
cat('完成:已生成 monthly_sales.png 和 monthly_sales_summary.csv\n')
3. SQL(假设表名 sales
,字段 sale_date
, product
, amount
)
-- 1. 按月汇总销量
SELECT
DATE_FORMAT(sale_date, '%Y-%m-01') AS month_start,
SUM(amount) AS total_sales
FROM sales
GROUP BY month_start
ORDER BY month_start;
-- 2. 如果想把结果写到新表
CREATE TABLE monthly_sales AS
SELECT
DATE_FORMAT(sale_date, '%Y-%m-01') AS month_start,
SUM(amount) AS total_sales
FROM sales
GROUP BY month_start
ORDER BY month_start;
三、常见提示(Prompt)范例
- 图表类型
- “请帮我画出……的柱状图/饼图/散点图/热力图”
- 统计分析
- “请计算平均值、中位数、标准差,并输出为报告”
- 数据清洗
- “帮我剔除缺失值、格式化日期、删除重复行”
- 数据库交互
- “给出 Python 连接 MySQL 的示例,并执行上述 SQL 查询”
小贴士:
- 先用简短测试数据验证脚本,确认无误后再用全量数据。
- 运行脚本前,先在环境里
pip install pandas matplotlib
或install.packages("tidyverse")
。- 报错时,把完整错误消息贴给 ChatGPT,通常能快速定位与修复。
通过以上流程和范例,即使零基础,也能流畅地借助 ChatGPT 生成并运行数据分析脚本。祝你分析顺利!