pandas-ai-自然语言数据分析平台- AI 的数据分析工具


这个仓库 pandas-ai 是一个 Python 平台,它的核心功能是让用户能够以自然语言的方式与数据进行交互,帮助非技术用户更自然地使用数据,也能帮助技术用户在处理数据时节省时间和精力。以下是对该仓库的详细介绍:

主要功能模块

  1. Vector Stores(向量存储)
    • 抽象接口:定义了 VectorStore 抽象基类,其中包含了一系列抽象方法,如 add_question_answeradd_docsdelete_question_and_answers 等,用于添加、更新、删除和查询问题答案以及文档等操作。
    • 具体实现:实现了 LanceDB 类,该类继承自 VectorStore,用于与 LanceDB 数据库进行交互。它可以创建表、添加问题答案和文档、更新和删除数据,并且能够根据问题或 ID 获取相关的问题答案和文档。
  2. Sandbox(沙箱)
    • 抽象基类:定义了 Sandbox 抽象基类,包含了启动、停止、执行代码和传输文件等抽象方法。
    • 具体实现:实现了 DockerSandbox 类,该类继承自 Sandbox,用于在 Docker 容器中执行 Python 代码。它可以构建 Docker 镜像、启动和停止容器、执行代码并返回结果。
  3. Extensions(扩展)
    • LanceDB 扩展:提供了 pandasai-lancedb 扩展,用于集成 LanceDB 数据库。该扩展包含了 LanceDB 类的实现,以及相关的配置文件 pyproject.toml
    • Docker 沙箱扩展:提供了 pandasai_docker 扩展,用于在 Docker 容器中执行代码。该扩展包含了 DockerSandbox 类的实现。

代码结构

.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)

文档和社区

  • 文档:可以在 这里 找到完整的文档。
  • 社区:可以通过 Discord 加入社区,与其他开发者交流。

持续集成和部署

仓库中包含了持续集成(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技术,将数据库转化为可交互的分析平台,支持实时生成报告和可视化图表。其核心目标是简化数据分析流程,降低技术门槛,适用于数据分析师、业务团队及企业级用户。

核心功能

  1. 自然语言查询
  2. 用户可通过对话式提问(如“分析性别与心脏病的关系”)直接获取分析结果。
  3. 文本转SQL
  4. 自动将自然语言指令转化为SQL语句,连接数据库并执行查询。
  5. 可视化报告生成
  6. 支持生成柱状图饼图摘要统计等图表,例如“公司规模分布”“区域平均收入”。
  7. 团队协作
  8. 共享数据片段、协作编辑,支持多成员权限管理。

技术优势

  • 低代码部署:通过pip install pandasai快速安装,API密钥配置仅需两行代码。
  • 多数据源支持:兼容CSV文件及主流数据库(如MySQL、PostgreSQL)。
  • 智能分析能力:自动识别数据类型(如将“gender”转为分类数据),生成统计指标(如卡方检验)。

使用流程

  1. 安装与配置
    python pip install "pandasai>=3.0.0b2" import pandasai as pai pai.api_key.set("your-key")
  2. 数据导入
  3. 通过pai.read_csv("filepath")加载本地文件,或连接数据库。
  4. 生成报告
  5. 提问示例:“分析性别、吸烟状态与心脏病的关系”,工具自动输出统计表格和图表。

示例数据集分析

heart-strokes数据集为例:
| 字段 | 描述 | 示例数据 |
|----------------|-------------------------------|------------------------|
| gender | 性别 | Male/Female |
| age | 年龄 | 67/61/80... |
| heart_disease| 是否患心脏病(Yes/No) | Yes/No |
| avg_gl | 平均血糖值 | 228.69/202.21... |

分析步骤
1. 转换gendersmoking_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查询和缓存机制提升处理效率,适合中、小规模数据集的实时分析。

github

docs

docs