pandas-ai
用自然语言对话式查询 Pandas/SQL 数据,AI 自动生成并执行分析代码
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用自然语言对话式查询 Pandas/SQL 数据,AI 自动生成并执行分析代码
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景: 周五下午,老板突然问你:「我们华东区 Q3 的销售数据怎么样?」你打开 Excel,筛选、排序、复制、粘贴、画图——十分钟过去了。而在不久的将来,你只需要对着电脑说一句话:「帮我分析一下华东区 Q3 销售数据」,答案就出来了。PandasAI 正在让这件事成为现实。
Pandas 是 Python 数据分析的代名词,全球数百万数据工作者每天都在用它处理 CSV、SQL 数据库和各种数据格式。但即便如此,用 Pandas 做分析仍然需要用户具备一定的编程能力——你需要知道怎么写 groupby、怎么写 merge、怎么画 matplotlib 图表。
2023 年 4 月,一个叫 sinaptik-ai 的团队在 GitHub 上开源了 PandasAI(github.com/sinaptik-ai/pandas-ai),给 Pandas 插上了 LLM 的翅膀。这个项目的核心理念很简单:让用户用自然语言向 DataFrame 提问,LLM 理解问题后,自动生成对应的 Python/Pandas 代码并执行,最终返回结果——可以是数字、文本,也可以是图表。
项目上线不到两年,已累计获得 23,550 颗 GitHub Stars,成为该领域最受关注的开源项目之一。团队也顺势成立公司,2023 年 10 月获得 Runa Capital 领投的 120 万美元 Pre-Seed 融资,进入了 YC W24 加速营。
如果把 PandasAI 看作一个翻译官,那么它的翻译过程可以分为三层:
第一层:自然语言理解 用户输入「哪些地区的营收增长最快?」,LLM 先理解这句话在问什么,结合对话上下文判断用户意图。
第二层:代码生成(Code Generation)
PandasAI 的核心在 pandasai/core/code_generation/ 模块,LLM 根据理解生成 Python 代码。例如上述问题可能被翻译成:
df.groupby('region')['revenue'].pct_change().sort_values(ascending=False)
生成的代码经过 pandasai/core/code_execution/ 模块的安全沙箱执行。代码执行完成后,LLM 还会对结果进行自然语言总结,把数字「翻译」成人类可读的报告。
第三层:数据理解(Virtual DataFrame)
要让 LLM 理解用户的 DataFrame 里有哪些列、数据分布如何,pandasai/dataframe/virtual_dataframe.py 模块负责提取数据的元信息(列名、数据类型、样本值),作为上下文注入 LLM 提示词。这本质上是一种轻量级的 RAG(检索增强生成)策略。
PandasAI 支持多种 LLM 后端:OpenAI GPT-4/4o、Anthropic Claude、VertexAI 等,通过 extensions/llms/ 插件体系扩展,目前官方提供了 openai 和 litellm 两个插件。LiteLLM 是一个统一的 LLM 封装库,一个接口兼容 100+ 大模型,使得用户可以轻松切换到国产模型(如通义千问、文心一言)或开源模型(如 Llama)。

图1:用户用自然语言要求 PandasAI 生成直方图,系统自动输出代码并渲染图表。
PandasAI 的野心不只是读 CSV 文件。extensions/connectors/ 插件体系让用户可以连接多种数据源:
extensions/connectors/sql/):直接对接 PostgreSQL、MySQL 等关系数据库,用自然语言查询企业数据库中的数据。extensions/connectors/yfinance/):查询 Yahoo Finance 金融数据,股票、财报、宏观经济数据均可自然语言查询。此外,PandasAI 还提供了 SmartDataLake 类,专门处理数据湖场景(CSV + Parquet + 数据库混合查询),适合数据分析团队构建统一的数据查询入口。
作为 Python 库,PandasAI 的安装极为简单:
pip install pandasai
pip install pandasai-litellm # 推荐,配合 LitellM 使用任意模型
依赖项包括:pandas、pydantic(数据验证)、duckdb(嵌入式分析数据库)、sqlglot(SQL 方言解析)、matplotlib/seaborn(图表)、pyarrow(列式存储读取)。Python 版本要求 3.8-3.11(注意:不对 Python 3.12 兼容)。
代码执行安全是一个容易被忽视的问题:如果用户问「删掉所有数据」,LLM 生成的代码可能真的有破坏性。PandasAI 提供了 pandasai-docker 扩展包,在 Docker 沙箱中执行 LLM 生成的代码,隔离操作,保护真实数据。
PandasAI 最大的挑战在于 LLM 生成代码的可靠性。对于复杂的分析任务,LLM 可能生成错误的数据转换逻辑、错误的 SQL JOIN 条件,甚至生成语法错误的代码。项目虽然有完整的测试套件(tests/unit_tests/ 和 tests/integration_tests/),但生产环境中仍需人工复核关键数据结论。
此外,对 Python 3.12 的不兼容限制了其在部分新项目中的使用;而对某些国产大模型的调用,需要额外的 API 网关配置,入门门槛相对较高。
从更宏观的角度看,PandasAI 代表的趋势是 NL2Code(自然语言转代码) 在数据分析领域的落地。传统 BI(Business Intelligence)工具如 Tableau、PowerBI 需要用户学习复杂操作界面,而 PandasAI 的思路是:只要你会提问,就会数据分析。
GitHub Stars 曲线显示,项目从 2023 年底的数千星快速增长到 2024 年的 2 万+,同期 YC 融资和商业化产品 pandas-ai.com 的推出,标志着开源工具到商业产品的完整闭环。这种「开源引流 + SaaS 变现」的路径,正在成为 AI 数据工具的标准商业模式。

图2:PandasAI 演示——用自然语言分析员工薪资数据。