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 云或自托管企业版感兴趣,请 联系我们。
资源
🤝 贡献
欢迎贡献!请查看现有问题,并随时提出拉取请求。更多信息,请查阅贡献指南。