PandaAI 是一个 Python 平台,可以轻松地用自然语言向您的数据提问。它帮助非技术用户以更自然的方式与数据交互,并帮助技术用户在处理数据时节省时间和精力。
您可以在此处找到 PandaAI 的完整文档 here。
您可以选择在 Jupyter 笔记本、Streamlit 应用中使用 PandaAI,或者从仓库中使用客户端和服务器架构。
该库可以与我们的强大数据平台一起使用,只需几行代码即可实现端到端的对话式数据分析。
加载您的数据,将其保存为数据框,并将其推送到平台
import pandasai as pai
pai.api_key.set("your-pai-api-key")
file = pai.read_csv("./filepath.csv")
dataset = pai.create(path="your-organization/dataset-name",
df=file,
name="dataset-name",
description="dataset-description")
dataset.push()
您的团队现在可以通过平台使用自然语言访问和查询这些数据。
Python 版本 3.8+ <3.12
您可以使用 pip 或 poetry 安装 PandaAI 库。
使用 pip:
pip install "pandasai>=3.0.0b2"
使用 poetry:
poetry add "pandasai>=3.0.0b2"
import pandasai as pai
# 示例数据框
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]
})
# 默认情况下,除非您选择其他 LLM,否则它将使用 BambooLLM。
# 您可以在 https://app.pandabi.ai 注册获取免费的 API 密钥(也可以在 .env 文件中配置)
pai.api_key.set("your-pai-api-key")
df.chat('销售额前五的国家是哪些?')
中国, 美国, 日本, 德国, 澳大利亚
或者您可以提出更复杂的问题:
df.chat(
"销售额前三的国家的总销售额是多少?"
)
销售额前三的国家的总销售额为 16500。
您还可以要求 PandaAI 为您生成图表:
df.chat(
"绘制各国的直方图,显示每个国家的 GDP,并为每个条形使用不同的颜色",
)
您还可以将多个数据框传递给 PandaAI,并提出与之相关的问题。
import pandasai as pai
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)
# 默认情况下,除非您选择其他 LLM,否则它将使用 BambooLLM。
# 您可以在 https://app.pandabi.ai 注册获取免费的 API 密钥(也可以在 .env 文件中配置)
pai.api_key.set("your-pai-api-key")
pai.chat("谁的收入最高?", employees_df, salaries_df)
Olivia 的收入最高。
您可以在 Docker 沙盒中运行 PandaAI,提供一个安全、隔离的环境来安全地执行代码,并降低恶意攻击的风险。
pip install "pandasai-docker"
import pandasai as pai
from pandasai_docker import DockerSandbox
# 初始化沙盒
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)
# 默认情况下,除非您选择其他 LLM,否则它将使用 BambooLLM。
# 您可以在 https://app.pandabi.ai 注册获取免费的 API 密钥(也可以在 .env 文件中配置)
pai.api_key.set("your-pai-api-key")
pai.chat("谁的收入最高?", employees_df, salaries_df, sandbox=sandbox)
# 完成后别忘了停止沙盒
sandbox.stop()
Olivia 的收入最高。
您可以在 examples 目录中找到更多示例。
PandaAI 在 MIT expat 许可证下可用,除了此仓库的 pandasai/ee
目录,该目录有其 许可证。
如果您对托管 PandaAI 云或自托管企业版感兴趣,请 联系我们。
Beta 通知
版本 v3 目前处于测试阶段。以下文档和示例反映了正在开发中的功能和特性,可能在最终发布前发生变化。
欢迎贡献!请查看未解决的问题,并随时提交拉取请求。 有关更多信息,请查看 贡献指南。