这个仓库 pandas-ai
是一个 Python 平台,它的核心功能是让用户能够以自然语言的方式与数据进行交互,帮助非技术用户更自然地使用数据,也能帮助技术用户在处理数据时节省时间和精力。以下是对该仓库的详细介绍:
主要功能模块
- Vector Stores(向量存储)
- 抽象接口:定义了
VectorStore
抽象基类,其中包含了一系列抽象方法,如add_question_answer
、add_docs
、delete_question_and_answers
等,用于添加、更新、删除和查询问题答案以及文档等操作。 - 具体实现:实现了
LanceDB
类,该类继承自VectorStore
,用于与 LanceDB 数据库进行交互。它可以创建表、添加问题答案和文档、更新和删除数据,并且能够根据问题或 ID 获取相关的问题答案和文档。
- 抽象接口:定义了
- Sandbox(沙箱)
- 抽象基类:定义了
Sandbox
抽象基类,包含了启动、停止、执行代码和传输文件等抽象方法。 - 具体实现:实现了
DockerSandbox
类,该类继承自Sandbox
,用于在 Docker 容器中执行 Python 代码。它可以构建 Docker 镜像、启动和停止容器、执行代码并返回结果。
- 抽象基类:定义了
- Extensions(扩展)
- LanceDB 扩展:提供了
pandasai-lancedb
扩展,用于集成 LanceDB 数据库。该扩展包含了LanceDB
类的实现,以及相关的配置文件pyproject.toml
。 - Docker 沙箱扩展:提供了
pandasai_docker
扩展,用于在 Docker 容器中执行代码。该扩展包含了DockerSandbox
类的实现。
- LanceDB 扩展:提供了
代码结构
.env.example
.gitignore
.pre-commit-config.yaml
.sourcery.yaml
CITATION.cff
CONTRIBUTING.md
LICENSE
MANIFEST.in
Makefile
README.md
docker-compose.yml
ignore-words.txt
poetry.lock
poetry.toml
pyproject.toml
pytest.ini
extensions/
connectors/
ee/
llms/
sandbox/
examples/
data/
data_platform_guide.ipynb
docker_sandbox.ipynb
quickstart.ipynb
semantic_layer_csv.ipynb
use_openai_llm.ipynb
ee/
LICENSE
tests/
__init__.py
integration_tests/
unit_tests/
assets/
...
docs/
...
.github/
...
pandasai/
...
安装和使用
安装
可以使用 pip 或 poetry 进行安装:
# 使用 pip 安装
pip install "pandasai>=3.0.0b2"
# 使用 poetry 安装
poetry add "pandasai>=3.0.0b2"
使用示例
以下是一个简单的使用示例,展示了如何使用 pandas-ai
库来询问数据问题:
import pandasai as pai
# 示例 DataFrame
df = pai.DataFrame({
"country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
"revenue": [5000, 3200, 2900, 4100, 2300, 2100, 2500, 2600, 4500, 7000]
})
# 设置 API 密钥
pai.api_key.set("your-pai-api-key")
# 询问问题
result = df.chat('Which are the top 5 countries by sales?')
print(result)
文档和社区
持续集成和部署
仓库中包含了持续集成(CI)和持续部署(CD)的配置文件,通过 GitHub Actions 来确保代码的质量和稳定性。
测试
仓库中包含了单元测试和集成测试,使用 pytest
作为测试框架。可以通过以下命令运行测试:
pytest
贡献
仓库中包含了贡献指南 CONTRIBUTING.md
,鼓励开发者参与项目的开发和贡献。
1. 一段话总结
PandaAI是一款基于AI的数据分析工具,支持自然语言查询和文本转SQL,可将数据库转化为智能报告,帮助用户快速生成可视化分析结果。其核心功能包括实时数据查询、团队协作、自动生成统计图表,并支持CSV/数据库文件直接导入。工具已被Alibaba.com、NVIDIA、Microsoft等企业使用,用户可通过简单安装步骤(pip install pandasai
)快速部署,通过API密钥配置实现数据分析自动化。
2. 思维导图
PandaAI
├─ 核心功能
│ ├─ 自然语言查询
│ ├─ 文本转SQL
│ ├─ 自动生成报告
│ └─ 可视化分析
├─ 优势
│ ├─ 快速连接数据库
│ ├─ 团队协作(数据片段共享)
│ ├─ 支持多数据源(CSV/DB)
│ └─ 集成AI分析能力
├─ 使用流程
│ ├─ 安装库(pip install pandasai)
│ ├─ 配置API密钥
│ ├─ 导入数据集
│ └─ 提问生成报告
├─ 适用场景
│ ├─ 数据分析师
│ ├─ 业务团队协作
│ └─ 数据库自动化分析
└─ 客户案例
├─ Alibaba.com
├─ NVIDIA
├─ Microsoft
├─ Google
└─ IBM
3. 详细总结
产品概述
PandaAI是一个AI驱动的数据工具,通过自然语言处理和文本转SQL技术,将数据库转化为可交互的分析平台,支持实时生成报告和可视化图表。其核心目标是简化数据分析流程,降低技术门槛,适用于数据分析师、业务团队及企业级用户。
核心功能
- 自然语言查询
- 用户可通过对话式提问(如“分析性别与心脏病的关系”)直接获取分析结果。
- 文本转SQL
- 自动将自然语言指令转化为SQL语句,连接数据库并执行查询。
- 可视化报告生成
- 支持生成柱状图、饼图、摘要统计等图表,例如“公司规模分布”“区域平均收入”。
- 团队协作
- 共享数据片段、协作编辑,支持多成员权限管理。
技术优势
- 低代码部署:通过
pip install pandasai
快速安装,API密钥配置仅需两行代码。 - 多数据源支持:兼容CSV文件及主流数据库(如MySQL、PostgreSQL)。
- 智能分析能力:自动识别数据类型(如将“gender”转为分类数据),生成统计指标(如卡方检验)。
使用流程
- 安装与配置
python pip install "pandasai>=3.0.0b2" import pandasai as pai pai.api_key.set("your-key")
- 数据导入
- 通过
pai.read_csv("filepath")
加载本地文件,或连接数据库。 - 生成报告
- 提问示例:“分析性别、吸烟状态与心脏病的关系”,工具自动输出统计表格和图表。
示例数据集分析
以heart-strokes
数据集为例:
| 字段 | 描述 | 示例数据 |
|----------------|-------------------------------|------------------------|
| gender
| 性别 | Male/Female |
| age
| 年龄 | 67/61/80... |
| heart_disease
| 是否患心脏病(Yes/No) | Yes/No |
| avg_gl
| 平均血糖值 | 228.69/202.21... |
分析步骤:
1. 转换gender
和smoking_status
为分类类型。
2. 生成列联表,统计不同性别、吸烟状态下的心脏病患病率。
3. 计算卡方统计量和p值,验证变量间相关性。
4. 通过堆叠条形图可视化结果。
客户案例
- 合作企业:Alibaba.com、NVIDIA、Microsoft、Google、IBM。
- 应用场景:企业级数据分析、数据库自动化报告、跨团队协作。
4. 关键问题
Q1:PandaAI与传统数据分析工具的区别是什么?
A1:PandaAI通过自然语言交互和AI驱动的文本转SQL技术,无需编写复杂代码即可生成分析报告,降低了技术门槛。同时支持实时协作和多数据源集成,适用于非技术人员快速获取数据洞察。
Q2:如何确保数据安全?
A2:PandaAI通过API密钥认证和权限管理保障数据安全,用户需配置API密钥才能访问工具。数据存储在用户本地或私有数据库中,云端仅保留分析结果片段(需用户主动推送)。
Q3:PandaAI能否处理大规模数据集?
A3:支持处理5,110条记录(示例数据集),但实际性能取决于用户硬件配置和数据库连接。工具通过优化SQL查询和缓存机制提升处理效率,适合中、小规模数据集的实时分析。