过去几年,生成式人工智能(Generative AI)的爆发彻底改变了数据领域的玩法。从 ChatGPT 席卷全球,到各类 AI 工具接连问世,企业都在想办法把这股浪潮转化为竞争优势。而就在数据分析圈子里,一个叫PandasAI的新项目悄然登场,把 Python 数据分析的老牌利器 Pandas 和 GenAI 技术结合到了一起,让数据分析彻底告别死板的代码输入,进入到“能聊会说”的新阶段。
今天,我们就来一次完整的PandasAI 深度解读 + 上手实操,帮你搞清楚它是什么、能做什么、怎么用。
1. PandasAI 是什么?
一句话总结:PandasAI = Pandas + Generative AI。
它的核心思路是,把生成式 AI(GenAI)的大语言模型能力直接嵌入到 Pandas 里,让数据分析从“写代码”变成“聊天”。你可以用自然语言直接向数据提问,比如“平均花瓣长度是多少?”,PandasAI 就能帮你生成正确的代码并执行,然后直接给出答案,甚至画出图表。
在PandasAI 3.0里,它的功能又升级了,不只是对数据集进行对话分析,还新增了一个数据准备层(Data Preparation Layer),支持:
换句话说,它已经不只是“会聊天的 Pandas”,而是一个集数据准备 + 自然语言分析为一体的开源框架。
2. 为什么要用 PandasAI?
以前我们做 Pandas 数据分析,要写一堆代码,尤其是刚入门的同学,经常被.groupby()、.merge()之类的语法折磨。PandasAI 的出现,直接让数据科学家、分析师,甚至零代码背景的业务人员,都能用一句自然语言完成数据探索。
优势主要有三个:
- 省时间:不需要写复杂的代码,直接对话就能完成分析和绘图。
- 可扩展:支持和 LangChain 等 LLM 应用框架结合,构建更复杂的智能分析系统。
3. PandasAI 背后的技术逻辑
PandasAI 的底层核心是生成式人工智能(GenAI)+ 大语言模型(LLM)。
- GenAI:能根据历史数据模式生成文本、图像、音频、视频等。
- LLM:由数十亿参数的人工神经网络构成,负责理解你的自然语言指令,并将其转化为可执行的代码。
- LangChain 支持:方便开发者在已有 LLM 应用中直接接入 PandasAI 的功能。
PandasAI 收到你的问题后,会先做自然语言解析 → 转成 Pandas 代码 → 执行 → 输出结果或图表,中间完全不需要你写一行 Python 语法。
4. PandasAI 安装与使用
PandasAI 提供两种用法:
- 方式 1:结合 LangChain(适合已有 LangChain 项目的用户)
- 方式 2:直接使用 PandasAI(更简单,本文用这个)
4.1 安装 PandasAI
pip install pandasai
注意:你需要一个OpenAI API Key才能使用 PandasAI。免费账号有速率限制(每分钟 3 次请求),绘图等高频操作建议升级到付费账号。
4.2 导入依赖与加载数据
importpandasaspd
frompandasaiimportPandasAI
importseabornassns
# 加载 iris 数据集
iris = sns.load_dataset('iris')
iris.head()
4.3 配置 LLM
frompandasai.llm.openaiimportOpenAI
llm = OpenAI(api_token="INSERT_YOUR_API_KEY_HERE")
pandas_ai = PandasAI(llm)
5. 和数据“聊天”的例子
例 1:查询最常见的物种
pandas_ai.run(iris, prompt='Which is the most common specie?')
输出:Oh, the most common specie is actually setosa!
例 2:计算花萼长度的平均值
pandas_ai.run(iris, prompt='What is the average of sepal_length?')
输出:The average sepal length of the dataset is 5.84.
例 3:计算花瓣长度最常见的数值
pandas_ai.run(iris, prompt='Which is the most common petal_length?')
输出:Based on the data provided, the most common petal_length is 1.4.
6. 绘图功能(可视化)
除了文本查询,PandasAI 还能画图,这对于快速做数据可视化特别方便。
例 1:绘制数据直方图
response = pandas_ai.run(
iris,
"
lot the histogram of the entries",
)
print(response)
例 2:绘制花萼长宽散点图
response = pandas_ai.run(
iris,
"
erform scattered plot of sepal_length and sepal_width",
)
print(response)
例 3:按物种绘制花萼长宽散点图
response = pandas_ai.run(
iris,
"
lot a scattered plot of sepal_length and sepal_width for the species",
)
print(response)
7. RateLimitError 处理
如果你用的是免费 API Key,频繁绘图可能会遇到RateLimitError。解决办法:
8. 总结与思考
PandasAI 把数据分析从“写代码”变成了“对话式交互”,大大降低了门槛。它特别适合:
- 业务分析师无需学习 Pandas 语法即可操作数据
但要注意,PandasAI 的分析结果依赖 LLM 模型,仍需人工验证准确性,尤其在做关键决策时。未来如果能结合更强的本地推理能力和更灵活的可视化支持,它可能会成为数据分析领域的标配工具。