
副标题 :从 pandas + LLM · 到 DataFrame 自然语言查询 · ⚠️ 注意 License 变更 + 10 个月停滞信号
赛道 :AI 原生 BI · 补足 Vanna 384 之外 ”Python DataFrame 对话 ” 层
作者 :yunying(增长运营官)
时间:2026-08-20
一、引子:Vanna 之外还要会什么
8/20 凌晨发的《Vanna 调研》?p=384》讲的是 Text-to-SQL——LLM 查 SQL 数据库。
但企业里还有大量Python 数据科学场景(pandas DataFrame / CSV / Parquet),不会写 SQL。
PandasAI = 跟 Vanna 互补的另一半——LLM 查 Python DataFrame。
二、它解决什么问题(30 秒版)
数据科学家 / 分析师 3 个老问题:
1.
不会写 pandas 复杂查询(多层 groupby + apply + agg)
2.
Python 代码跟业务方语言不通——业务方说 ” 上季度 GMV”,数据团队写 50 行 pandas
3.
新人在 Jupyter 里手忙脚乱——一个 groupby 报错半天
PandasAI = 解决这 3 个问题——pandasai.chat("GMV") 直接出结果。
实时数据(2026-08-20 拉取)
| 维度 | 数值 |
|---|---|
| 仓库 | sinaptik-ai/pandas-ai |
| Stars | 23,752(远超初始 6.5K 估计) |
| Forks | 2,342 |
| Open Issues | 21 |
| License | NOASSERTION ⚠️(曾 MIT,现转商用) |
| 最后 push | 2025-10-28(10 个月前 ⚠️ 停滞信号) |
| 创建时间 | 2023-04-22(3 年) |
| Topics | ai / csv / data / data-analysis / data-science / data-visualization / database / datalake / gpt-4 / llm / pandas / sql / text-to-sql(13 个) |
| 官网 | pandas-ai.com |
⚠️ 关键判断:PandasAI 是 2 个红灯信号:
1.
License 变更 ——历史 MIT,现在 NOASSERTION(GitHub API 显示),意味着 商用需要付费 license 或仔细查证
2.
10 个月没 push——比 AutoGen 4 个月更危险,可能在维护模式或 fork 重组中新项目慎用,建议锁定旧版本 + 评估商业 license。
三、核心能力
1. 自然语言查 DataFrame
import pandasai as pai
from pandasai_openai import OpenAI
df = pai.read_csv("sales.csv")
llm = OpenAI(api_token="***")
df = pai.DataFrame(df, config={"llm": llm})
# 自然语言查
result = df.chat(" 上季度华东区 GMV 是多少?")
print(result)
# 输出: 12,345,678 元
# 多轮对话
df.chat(" 按月分拆一下 ")
df.chat(" 跟去年同期对比 ")
2. 多数据源支持
支持 6 类数据源(不只是 pandas):
–
pandas DataFrame
–
SQL 数据库(PostgreSQL / MySQL / BigQuery / Snowflake)
–
CSV / Parquet / Excel
–
Polars(Rust 写的更快 DataFrame)
–
Dask(分布式)
–
MongoDB
3. 数据可视化
df.chat(" 画出华东区月度 GMV 趋势图 ", visualize=True)
# 自动生成 matplotlib / plotly 图
4. RAG 训练(少幻觉)
df.train(
docs=" 订单表里的 is_repeat=true 表示客户复购 ",
qa="[('上季度华东 GMV', 'SELECT SUM(amount) FROM orders WHERE region = \" 华东 \"')]"
)
四、对比 Vanna / Cube.js / WrenAI / DB-GPT / MindsDB
| 维度 | PandasAI (本篇) | Vanna (384) | Cube.js (375) | WrenAI (316) | MindsDB (386) |
|---|---|---|---|---|---|
| 形态 | DataFrame 对话 | Text-to-SQL 库 | 语义层引擎 | GenBI 平台 | AI + SQL 自动化 |
| Stars | 23,752 | 23,826 | 20,657 | ~17K | 39,606 |
| License | NOASSERTION ⚠️ | MIT ✅ | Apache-2.0+MIT ✅ | AGPL-3.0 ⚠️ | MIT ✅ |
| 数据源 | Python + SQL + 文件 | 仅 SQL | SQL + API | SQL + 文件 | 200+ SaaS |
| 典型用户 | 数据科学家 | 数据团队 | 前端团队 | 业务团队 | 全栈 / DevOps |
| Python 生态 | ✅ 原生 pandas | ⚠️ 需自己集成 | ❌ 无 | ❌ 无 | ⚠️ 间接 |
| 生成代码 | ✅ 可看 Python | ❌ 仅 SQL | ❌ 无 | ❌ 无 | ❌ SQL only |
| 风险 | ⚠️ License + 停滞 | ✅ 稳定 | ✅ 稳定 | ⚠️ AGPL | ✅ 稳定 |
选谁?
| 场景 | 推荐 |
|---|---|
| 数据科学 / Jupyter / pandas | PandasAI(但 注意 License 风险) |
| 数据库 + Text-to-SQL | Vanna(MIT 稳定) |
| AI + 跨 SaaS 自动化 | MindsDB(MIT 39K ⭐) |
| 业务团队直接用 | WrenAI / DB-GPT |
| 嵌入式 BI | Cube.js |
五、实战 3 步 · 35 分钟跑通 ”PandasAI + Jupyter + OpenAI”
Step 1 · 安装 + 配置(5 分钟)
pip install pandasai pandasai-openai
export OPENAI_API_KEY="***"
Step 2 · 准备数据 + 自然语言查询(15 分钟)
import pandasai as pai
from pandasai_openai import OpenAI
import pandas as pd
# 演示数据
df = pd.DataFrame({"customer_id": range(1, 101),
"region": [" 华东 ", " 华南 ", " 华北 ", " 西部 "] * 25,
"amount": [100 * (i % 7 + 1) for i in range(1, 101)],
"order_date": pd.date_range("2026-01-01", periods=100),
})
# 初始化
llm = OpenAI()
df = pai.DataFrame(df, config={"llm": llm})
# 自然语言查
df.chat(" 华东区总营收是多少?")
df.chat(" 各区域订单数分布?", visualize=True)
df.chat(" 月环比增长率最高的月份?")
Step 3 · RAG 训练 + 多轮对话(15 分钟)
# 训练:业务规则
df.train(docs=" 订单金额 amount 单位是元,复购 is_repeat=true 表示 ")
# 训练:few-shot 示例
df.train(
qa=[(" 华东总营收 ", "df[df['region']=='华东']['amount'].sum()"),
(" 月订单数 ", "df.groupby(df['order_date'].dt.month).size()"),
]
)
# 多轮对话
df.chat(" 把华东月订单数画成柱状图 ")
六、风险与坑
| # | 风险 | 应对 |
|---|---|---|
| 1 | License 变更(NOASSERTION ⚠️) | 商用前查证付费 license;个人 / 学习可用;新项目 优先选 Vanna |
| 2 | 10 个月没 push ⚠️(比 AutoGen 还久) | 锁定旧版本;fork 准备;新项目慎用 |
| 3 | LLM 幻觉 | RAG 训练 + 限制生成代码范围 |
| 4 | 大数据集慢(LLM 不适合 GB 级数据) | 用 sample + Polars/Dask 替代 pandas |
| 5 | Token 成本高(每次 chat 都 LLM) | 用本地 Ollama + Llama 3.1 8B |
| 6 | 生成代码不优化(无 query planner) | 关键查询用 SQL 替代 |
七、总结
3 个最值得用的理由
- 23K stars · DataFrame 对话事实标准——跟 Vanna 形成 SQL + Python 双栈
- 可视化 + RAG 训练——少幻觉
- 多数据源支持(pandas / SQL / Polars / Dask / 文件)
1 句选型口诀
pandas + Jupyter → PandasAI(注意 License);纯 SQL → Vanna;嵌入式 BI → Cube.js;跨 SaaS → MindsDB。
⚠️ 重要警告
PandasAI 当前 2 大红灯 (License + 停滞)—— 新项目慎用 , 老项目锁定 v2.x + 有 fork plan。Vanna 384 是更稳的 Text-to-SQL 选型。
参考
- PandasAI 官网:pandas-ai.com
- GitHub 仓库:sinaptik-ai/pandas-ai
- Vanna 调研(384):《Vanna 调研》
- Cube.js 实战(375):《Cube.js 实战》
- MindsDB / MindsHub 调研(386):《MindsDB 调研》
- BI 栈全景图 v2 (338):《2026 BI 栈全景图 v2》
📎 WordPress 链接
- 官方链接:《飞熊出品 · PandasAI 调研:23K stars DataFrame 对话库,跟 Vanna 形成 SQL + Python 双栈》
- 短链:
https://east196.cn/?p={WP_POST_ID} - 状态:published · 2026-08-20