大模型 活跃维护

pandas-ai

sinaptik-ai/pandas-ai

与您的数据库或数据湖( SQL、CSV、parquet )聊天。PandasAI使用LLM和RAG使数据分析对话化。

23798
Stars 标星
2341
Forks 分支
169
Watchers 关注
23
Open Issues
Python
主要语言
Other
开源协议
56.1 MB
仓库大小
10 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:sinaptik-ai/pandas-ai
git clone https://github.com/sinaptik-ai/pandas-ai.git
git clone git@github.com:sinaptik-ai/pandas-ai.git
README.md main

PandasAI 是一个 Python 库,可以让你轻松地用自然语言向数据提问。它帮助非技术用户以更自然的方式与数据互动,同时帮助技术用户在处理数据时节省时间和精力。

🔧 入门

你可以在这里找到 PandasAI 的完整文档。

📚 使用该库

Python 需求

Python 版本 3.8+ <=3.11

📦 安装

你可以使用 pip 或 poetry 安装 PandasAI 库。

Using pip:

pip install pandasai
pip install pandasai-litellm

用诗歌:

poetry add pandasai
poetry add pandasai-litellm

💻 使用方法

提问

import pandasai as pai
from pandasai_litellm.litellm import LiteLLM

# Initialize LiteLLM with your OpenAI model
llm = LiteLLM(model="gpt-4.1-mini", api_key="YOUR_OPENAI_API_KEY")

# Configure PandasAI to use this LLM
pai.config.set({
    "llm": llm
})

# Load your data
df = pai.read_csv("data/companies.csv")

response = df.chat("What is the average revenue by region?")
print(response)

或者你可以问更复杂的问题:

df.chat(
    "What is the total sales for the top 3 countries by sales?"
)
The total sales for the top 3 countries by sales is 16500.

可视化图表

您还可以让 PandasAI 为您生成图表:

df.chat(
    "Plot the histogram of countries showing for each one the gdp. Use different colors for each bar",
)

多个数据框

你也可以向 PandasAI 提供多个数据框,并提出与它们相关的问题。

import pandasai as pai
from pandasai_litellm.litellm import LiteLLM

# Initialize LiteLLM with your OpenAI model
llm = LiteLLM(model="gpt-4.1-mini", api_key="YOUR_OPENAI_API_KEY")

# Configure PandasAI to use this LLM
pai.config.set({
    "llm": llm
})

employees_data = {
    'EmployeeID': [1, 2, 3, 4, 5],
    'Name': ['John', 'Emma', 'Liam', 'Olivia', 'William'],
    'Department': ['HR', 'Sales', 'IT', 'Marketing', 'Finance']
}

salaries_data = {
    'EmployeeID': [1, 2, 3, 4, 5],
    'Salary': [5000, 6000, 4500, 7000, 5500]
}

employees_df = pai.DataFrame(employees_data)
salaries_df = pai.DataFrame(salaries_data)

pai.chat("Who gets paid the most?", employees_df, salaries_df)
Olivia gets paid the most.

Docker 沙箱

您可以在 Docker 沙箱中运行 PandasAI,提供一个安全、隔离的环境,以安全执行代码并降低恶意攻击的风险。

Python 要求
pip install "pandasai-docker"
使用
import pandasai as pai
from pandasai_docker import DockerSandbox
from pandasai_litellm.litellm import LiteLLM

# Initialize LiteLLM with your OpenAI model
llm = LiteLLM(model="gpt-4.1-mini", api_key="YOUR_OPENAI_API_KEY")

# Configure PandasAI to use this LLM
pai.config.set({
    "llm": llm
})

# Initialize the sandbox
sandbox = DockerSandbox()
sandbox.start()

employees_data = {
    'EmployeeID': [1, 2, 3, 4, 5],
    'Name': ['John', 'Emma', 'Liam', 'Olivia', 'William'],
    'Department': ['HR', 'Sales', 'IT', 'Marketing', 'Finance']
}

salaries_data = {
    'EmployeeID': [1, 2, 3, 4, 5],
    'Salary': [5000, 6000, 4500, 7000, 5500]
}

employees_df = pai.DataFrame(employees_data)
salaries_df = pai.DataFrame(salaries_data)

pai.chat("Who gets paid the most?", employees_df, salaries_df, sandbox=sandbox)

# Don't forget to stop the sandbox when done
sandbox.stop()
Olivia gets paid the most.

您可以在 examples 目录中找到更多示例。

📜 许可证

PandasAI 的使用遵循 MIT Expat 许可证,但本仓库的 pandasai/ee 目录除外,其 许可证在此

如果您对托管的 PandasAI 云或自托管企业版感兴趣,请 联系我们

资源

  • 文档 提供完整文档
  • 示例 提供示例笔记本
  • Discord 可与社区和 PandasAI 团队讨论

🤝 贡献

欢迎贡献!请查看现有问题,并随时提出拉取请求。更多信息,请查阅贡献指南

谢谢!

本站来源与版权声明
  • 本文标题: pandas-ai - 与您的数据库或数据湖( SQL
  • 本文链接: https://cn121.com/llm/sinaptik-ai-pandas-ai.html
  • 站点出处: 本文首发于 OneTwoOne,收录自 GitHub 开源项目 sinaptik-ai/pandas-ai。
  • 引用声明: 商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处及本文永久链接。