这个项目能做什么
# PandasAI
PandasAI 是一个 Python 库,让您能够以自然语言轻松地向数据提问。它帮助非技术用户以更自然的方式与数据交互,同时帮助技术用户节省处理数据的时间和精力。
## 快速开始
完整文档可在 [docs.pandas-ai.com](https://docs.pandas-ai.com/) 查看。
### Python 版本要求
Python 版本 `3.8+ <=3.11`
### 安装
使用 pip 安装:
```bash
pip install pandasai
pip install pandasai-litellm
```
或使用 poetry:
```bash
poetry add pandasai
poetry add pandasai-litellm
```
### 使用说明
#### 提问
```python
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)
```
您可以提出更复杂的问题:
```python
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 可以生成图表:
```python
df.chat(
"Plot the histogram of countries showing for each one the gdp. Use different colors for each bar",
)
```
#### 多个数据框
传递多个数据框并询问它们之间的关系:
```python
import pandasai as pai
from pandasai_litellm.litellm import LiteLLM
llm = LiteLLM(model="gpt-4.1-mini", api_key="YOUR_OPENAI_API_KEY")
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,以实现安全、隔离的代码执行:
```bash
pip install "pandasai-docker"
```
```python
import pandasai as pai
from pandasai_docker import DockerSandbox
from pandasai_litellm.litellm import LiteLLM
llm = LiteLLM(model="gpt-4.1-mini", api_key="YOUR_OPENAI_API_KEY")
pai.config.set({"llm": llm})
sandbox = DockerSandbox()
sandbox.start()
# ... 创建数据框 ...
pai.chat("Who gets paid the most?", employees_df, salaries_df, sandbox=sandbox)
sandbox.stop()
```
更多示例位于 [examples](examples) 目录中。
## 许可证
PandasAI 在 MIT expat 许可证下可用,但 `pandasai/ee` 目录除外,该目录有其自己的许可证。托管式 PandasAI Cloud 或自托管企业版可按需提供。
## 资源
- [文档](https://docs.pandas-ai.com/)
- [示例](examples)
- [Discord](https://discord.gg/KYKj9F2FRH)
## 贡献
欢迎贡献!请查看未解决的问题,并随时提交拉取请求。参见 [贡献指南](CONTRIBUTING.md)。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。