AI数据分析配置:用Python脚本把CSV数据送进大模型并拿回结论
AI数据分析配置的目标是让脚本自动完成“读数据、拼提示词、调模型、收结论”这一串动作。
不需要先搭平台,一台能运行 Python 的电脑或服务器,加上一个可用的模型 API 密钥,就足以跑通最小流程。
下面按实际执行顺序给出命令和配置片段,并说明每一步的预期结果与检查方式。
先确认运行环境和数据格式
动手写脚本前,先确认三件事:Python 版本、网络能否访问模型接口、数据文件是否干净。
推荐使用 Python 3.9 及以上版本,在终端执行:
python3 --version
pip3 --version
如果版本低于 3.9,建议先用系统包管理器升级,避免后续安装依赖时出现不兼容。
接着安装两个最常用的库:
pip3 install openai pandas
pandas 用来读取 CSV 和做简单清洗,openai 用来发起模型请求。
安装完成后用 pip3 show openai 查看版本,确认安装成功。
数据文件建议先处理成“一行一条记录、列名清晰、没有合并单元格”的 CSV。
如果原始数据来自 Excel,另存为 UTF-8 编码的 CSV,避免中文乱码。
脚本读取前可以先跑一段检查:
import pandas as pd
df = pd.read_csv("sales.csv")
print(df.shape)
print(df.head())
预期能看到行数、列数和前几行内容。
如果报 FileNotFoundError,检查文件路径;
如果出现乱码,把文件重新另存为 UTF-8。
把数据、提示词和接口串成一个脚本
最小可运行脚本包含三部分:读取数据、构造提示词、调用接口。
下面是一个可直接保存为 analyze.py 的示例,使用环境变量保存密钥,避免把密钥写死在代码里:
import os
import pandas as pd
from openai import OpenAI
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
df = pd.read_csv("sales.csv")
summary = df.describe(include="all").to_string()
prompt = f"""你是一名数据分析助手。下面是销售数据的统计摘要:
{summary}
请用中文回答三个问题:
1. 数据整体趋势如何;
2. 有没有明显异常值;
3. 给出两条可执行的业务建议。"""
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
temperature=0.3
)
print(response.choices[0].message.content)
运行前先在终端设置密钥:
export OPENAI_API_KEY="你的密钥"
python3 analyze.py
预期结果是终端打印出一段中文分析结论。
如果报 AuthenticationError,说明密钥无效或环境变量没有生效;
如果报 RateLimitError,通常是请求频率或额度问题,稍后重试或检查账户额度。
这里用 df.describe() 生成统计摘要而不是把整张表塞进提示词,是为了控制 token 消耗。
数据量较大时,建议先按列聚合或采样,再送入模型。
常见报错与避坑点
密钥泄露风险:不要把 API 密钥直接写进脚本或提交到代码仓库。
用环境变量或服务器上的 .env 文件管理,并限制文件权限为 600。
数据含敏感信息:如果 CSV 里有手机号、身份证号等字段,发送前先脱敏或删除对应列。
模型接口会把请求内容传到外部服务,这一点要在使用前确认是否符合你的数据管理要求。
返回内容不稳定:同一个问题多次运行可能得到不同表述,这是模型输出的正常特性。
需要固定格式时,在提示词里明确要求“只输出 JSON”或“按固定字段回答”,并在脚本里增加解析和校验步骤。
token 超限:提示词过长会触发上下文长度限制。
处理方式是先做列筛选、聚合或分段分析,不要直接把整份大文件拼进一次请求。
验证脚本是否真正可用
跑通一次不代表配置完成,建议做三项检查。
第一,换一份结构相同但内容不同的 CSV,确认脚本不依赖某份特定数据。
第二,故意传一个空文件或缺少列的文件,观察报错是否清晰,必要时在读取后加判断:
if df.empty:
raise ValueError("数据文件为空,请检查输入")
第三,把模型返回内容保存到文件,便于复查:
with open("result.txt", "w", encoding="utf-8") as f:
f.write(response.choices[0].message.content)
如果这三步都通过,说明 AI 数据分析配置已经能稳定重复运行。
后续要扩展时,优先把提示词模板和数据处理逻辑拆成独立函数,而不是继续往一个脚本里堆代码。
关于模型选择和运行位置
模型名称和接口地址会随服务商变化,脚本里的 model 参数应以你实际开通的服务文档为准。
如果脚本运行在服务器上,注意出站网络是否放行对应接口域名;
如果放在本地电脑,则要保证运行期间网络稳定。
数据分析任务通常不需要实时响应,把脚本放进定时任务或手动触发都可以,关键是保留输入文件、提示词和输出结果的对应关系,方便回溯。