PandasAI

面向智能数据分析的开源框架,可将自然语言需求转成 Pandas 代码或 SQL 查询,并自动执行、绘图和解释结果,是智能数据分析 Agent 的核心执行层之一。

简介

PandasAI 是一个围绕数据分析场景构建的 AI 框架,核心作用是把自然语言问题转换为可执行的数据分析代码。用户不需要直接写 Pandas、SQL 或图表代码,只需要说“计算各区域平均销售额并绘制柱状图”“统计近 3 个月各区域销售总额,生成趋势折线图”,PandasAI 负责生成分析逻辑、执行计算并返回数值结果或可视化图表。

智能数据分析Agent 的架构中,PandasAI 扮演“执行层”角色。上游由 Agent 做需求理解、任务分类、数据源判定和 Schema语义映射;中间由 PandasAI 将任务转成 Pandas 或 SQL;下游再由安全围栏、可视化模块和自然语言报告模块处理执行风险与业务表达。它不是完整产品本身,而是把“自然语言 → 数据运算”这段最难复用的能力封装起来。

与传统手写 Prompt 让模型生成代码相比,PandasAI 的价值在于围绕数据分析做了专门封装:SmartDataframe 面向单个本地 DataFrame,适合客户端轻量分析;SmartDatalake 面向多数据源或数据库连接,适合云端生产级分析。它把数据结构、LLM、执行引擎和结果解析放在同一套接口里,降低了从 demo 到项目的实现成本。

关键信息

核心特性

安装方式

教程给出的客户端依赖安装命令如下:

pip install "pandasai>=3.0.0b2" pandasai-openai

这里 pandasai-openai 是与 OpenAI 模型集成的适配包。实际生产项目中也可以根据企业模型策略替换为私有模型或其他 LLM 接入层,但无论接哪个模型,都要保留代码审查、数据权限和执行审计。

基本用法:SmartDataframe

SmartDataframe 适合本地 CSV/Excel 数据分析。典型流程是读取数据、初始化 LLM、把 DataFrame 包装成智能数据帧,然后调用 sdf.chat()

import pandas as pd
from pandasai import SmartDataframe
from pandasai_openai import OpenAI
 
llm = OpenAI(api_key="你的OpenAI密钥")
df = pd.read_csv("sales_data.csv")
sdf = SmartDataframe(df, config={"llm": llm})
 
res = sdf.chat("计算各区域平均销售额并绘制柱状图")
print("分析结果:", res)

这个模式适合个人离线分析、临时复盘、客户侧轻量工具和原型验证。它的优点是部署简单、反馈快、无需数据库权限;限制是数据规模受本地内存影响,复杂权限和多表关联能力有限。

云端用法:SmartDatalake

SmartDatalake 适合连接数据库或多数据源。教程示例使用 MySQL 连接,让用户自然语言查询近 3 个月各区域销售总额:

from pandasai import SmartDatalake
from pandasai_openai import OpenAI
import mysql.connector
 
llm = OpenAI(api_key="你的OpenAI密钥")
 
db_conn = mysql.connector.connect(
    host="localhost",
    user="root",
    password="密码",
    database="sales_db"
)
 
dl = SmartDatalake([db_conn], config={"llm": llm})
res = dl.chat("统计近3个月各区域销售总额,生成趋势折线图")
print("云端数据库分析结果:", res)

云端模式的优势是可以将计算下推到数据库,面对海量数据时比本地 Pandas 更高效;同时可以结合企业权限、日志、审计和报告导出。但云端模式也更危险,必须引入 数据分析Agent安全围栏,避免模型生成越权查询、批量导出或破坏性代码。

适用场景

PandasAI 适合任务目标清晰、数据结构明确、结果可以通过数值或图表验证的场景,例如分组统计、趋势分析、异常筛查、销售区域对比、月度经营报告初稿。它尤其适合把“分析师重复写的 Pandas/SQL 代码”转成可复用 Agent 能力。

不适合的场景包括:字段口径未定义、业务问题本身不清楚、数据质量极差且无人维护、结果直接影响财务/法务动作但没有人工复核、需要复杂因果推断或实验设计的分析任务。

不同素材中的观点

  • 2026-07-05-juejin-intelligent-data-analysis-agent:这篇教程把 PandasAI 定位为“工业界数据分析 Agent 的首选底层框架”,原因是它封装了自然语言转 Pandas/SQL、自动绘图和结果解析。教程没有把 PandasAI 当成独立工具介绍,而是放入智能数据分析 Agent 的完整产品链路中:前面先做预处理和 Schema 映射,后面接安全执行和自然语言报告。这个视角说明 PandasAI 的价值不在于“替你写一段代码”,而在于成为可商用 Agent 的可复用执行层。

实用信息

  • 快速上手步骤:准备 CSV → pd.read_csv() 读取 → 初始化 LLM → 用 SmartDataframe(df, config={"llm": llm}) 包装 → 调用 sdf.chat("你的分析问题")
  • 云端落地步骤:用只读账号连接数据库 → 用 SmartDatalake([db_conn], config={"llm": llm}) 包装 → 限制可访问表和字段 → 记录生成 SQL/代码 → 加安全检查和执行超时。
  • 常用提示词:尽量写清指标、维度、时间范围和输出形式,例如“统计近 3 个月各区域销售总额,按月份绘制趋势折线图,并指出最高和最低区域”。
  • 注意事项:不要把真实生产数据库 root 账号交给 Agent;不要允许写操作;不要让模型执行未审查的文件删除、网络请求、批量导出代码;涉及敏感数据时优先私有部署或内网执行。

相关页面