飞熊出品 · PandasAI 调研:23K stars DataFrame 对话库,跟 Vanna 形成 SQL + Python 双栈

50次阅读
飞熊出品 · PandasAI 调研:23K stars DataFrame 对话库,跟 Vanna 形成 SQL + Python 双栈

副标题 :从 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-2810 个月前 ⚠️ 停滞信号)
创建时间 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 个最值得用的理由

  1. 23K stars · DataFrame 对话事实标准——跟 Vanna 形成 SQL + Python 双栈
  2. 可视化 + RAG 训练——少幻觉
  3. 多数据源支持(pandas / SQL / Polars / Dask / 文件)

1 句选型口诀

pandas + Jupyter → PandasAI(注意 License);纯 SQL → Vanna;嵌入式 BI → Cube.js;跨 SaaS → MindsDB。

⚠️ 重要警告

PandasAI 当前 2 大红灯 (License + 停滞)—— 新项目慎用 老项目锁定 v2.x + 有 fork planVanna 384 是更稳的 Text-to-SQL 选型


参考


📎 WordPress 链接

正文完