PandasAI 是一个 Python 平台,使用户能够以自然语言向数据提问。它帮助非技术用户更自然地与数据互动,并为技术用户在处理数据时节省时间和精力。
🚀 部署 PandasAI
PandasAI 可以以多种方式使用。你可以轻松地在 Jupyter notebooks 或 streamlit 应用中使用它,或者将其部署为 REST API,如 FastAPI 或 Flask。
如果你对 PandasAI 云托管服务或我们的企业自托管解决方案感兴趣,请联系我们。
🔧 入门指南
你可以在 这里找到 PandasAI 的完整文档。
你可以选择在 Jupyter notebooks、streamlit 应用中使用 PandasAI,或者从仓库中使用客户端和服务器架构。
☁️ 使用平台
📦 安装
PandasAI 平台使用 docker 化的客户端-服务器架构。你需要在你的机器上安装 Docker。
git clone https://github.com/sinaptik-ai/pandas-ai/
cd pandas-ai
docker-compose build
🚀 运行平台
一旦你构建了平台,你可以使用以下命令运行它:
docker-compose up
这将启动客户端和服务器,你可以在 http://localhost:3000
访问客户端。
📚 使用库
📦 安装
你可以使用 pip 或 poetry 安装 PandasAI 库。
使用 pip:
pip install pandasai
使用 poetry:
poetry add pandasai
🔍 演示
你可以在浏览器中自己试用 PandasAI 库:
💻 使用方法
提问
import os
import pandas as pd
from pandasai import Agent
# 示例 DataFrame
sales_by_country = pd.DataFrame({
"country": ["美国", "英国", "法国", "德国", "意大利", "西班牙", "加拿大", "澳大利亚", "日本", "中国"],
"revenue": [5000, 3200, 2900, 4100, 2300, 2100, 2500, 2600, 4500, 7000]
})
# 默认情况下,除非你选择不同的 LLM,否则它将使用 BambooLLM。
# 你可以在 https://pandabi.ai 注册获取免费的 API 密钥(你也可以在 .env 文件中进行配置)
os.environ["PANDASAI_API_KEY"] = "YOUR_API_KEY"
agent = Agent(sales_by_country)
agent.chat('销售额前五的国家是哪些?')
中国、美国、日本、德国、澳大利亚
或者你可以提出更复杂的问题:
agent.chat(
"销售额排名前三的国家的总销售额是多少?"
)
销售额排名前三的国家的总销售额是 16500。
可视化图表
你还可以要求 PandasAI 为你生成图表:
agent.chat(
"绘制各个国家的直方图,并为每个柱状条使用不同的颜色。",
)
多个 DataFrame
你还可以向 PandasAI 传入多个 DataFrame 并提出涉及它们的问题。
import os
import pandas as pd
from pandasai import Agent
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 = pd.DataFrame(employees_data)
salaries_df = pd.DataFrame(salaries_data)
# 默认情况下,除非你选择不同的 LLM,否则它将使用 BambooLLM。
# 你可以在 https://pandabi.ai 注册获取免费的 API 密钥(你也可以在 .env 文件中进行配置)
os.environ["PANDASAI_API_KEY"] = "YOUR_API_KEY"
agent = Agent([employees_df, salaries_df])
agent.chat("谁的工资最高?")
Olivia 的工资最高。
你可以在 examples 目录中找到更多示例。
🔒 隐私与安全
为了生成要运行的 Python 代码,我们从数据框中抽取一些随机样本,进行随机化处理(对于敏感数据使用随机生成,对于非敏感数据进行打乱),并仅将随机化后的头部数据发送到 LLM。
如果你想进一步加强隐私保护,你可以通过 enforce_privacy = True
实例化 PandasAI,这样将不会将头部数据发送(只发送列名)到 LLM。
📜 许可协议
PandasAI 采用 MIT 许可协议,除了 pandasai/ee
目录(如适用,其许可协议在此)。
如果你对托管的 PandasAI 云服务或自托管企业解决方案感兴趣,请联系我们。