
PandasAI 是一个 Python 库,让你能够用自然语言轻松地向你的数据提问。它帮助非技术用户以更自然的方式与数据交互,同时也帮助技术用户在处理数据时节省时间和精力。
你可以在这里找到 PandasAI 的完整文档。
Python 版本 3.8+ <=3.11
你可以使用 pip 或 poetry 安装 PandasAI 库。
使用 pip:
pip install pandasai
pip install pandasai-litellm
使用 poetry:
poetry add pandasai
poetry add pandasai-litellm
import pandasai as pai
from pandasai_litellm.litellm import LiteLLM
# 使用你的 OpenAI 模型初始化 LiteLLM
llm = LiteLLM(model="gpt-4.1-mini", api_key="YOUR_OPENAI_API_KEY")
# 配置 PandasAI 使用此 LLM
pai.config.set({
"llm": llm
})
# 加载你的数据
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",
)

你也可以传入多个 DataFrame 给 PandasAI,并询问与它们相关的问题。
import pandasai as pai
from pandasai_litellm.litellm import LiteLLM
# 使用你的 OpenAI 模型初始化 LiteLLM
llm = LiteLLM(model="gpt-4.1-mini", api_key="YOUR_OPENAI_API_KEY")
# 配置 PandasAI 使用此 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 沙盒中运行 PandasAI,提供一个安全、隔离的环境来安全地执行代码,并降低恶意攻击的风险。
pip install "pandasai-docker"
import pandasai as pai
from pandasai_docker import DockerSandbox
from pandasai_litellm.litellm import LiteLLM
# 使用你的 OpenAI 模型初始化 LiteLLM
llm = LiteLLM(model="gpt-4.1-mini", api_key="YOUR_OPENAI_API_KEY")
# 配置 PandasAI 使用此 LLM
pai.config.set({
"llm": llm
})
# 初始化沙盒
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)
# 完成后别忘了停止沙盒
sandbox.stop()
Olivia gets paid the most.
你可以在 examples 目录中找到更多示例。
PandasAI 在 MIT expat 许可证下可用,但本仓库的 pandasai/ee 目录除外,其许可证见此处。
如果你对托管的 PandasAI Cloud 或自托管的企业版感兴趣,请联系我们。
欢迎贡献!请查看待解决的问题,并随时提交拉取请求。
更多信息,请查看贡献指南。