最完整PandasAI教程:从安装到多表关联分析,30分钟掌握AI数据交互

最完整PandasAI教程:从安装到多表关联分析,30分钟掌握AI数据交互

【免费下载链接】pandas-ai 该项目扩展了Pandas库的功能,添加了一些面向机器学习和人工智能的数据处理方法,方便AI工程师利用Pandas进行更高效的数据准备和分析。 【免费下载链接】pandas-ai 项目地址: https://gitcode.com/gh_mirrors/pa/pandas-ai

你是否还在为复杂的数据分析代码编写而烦恼?是否希望用自然语言直接与数据对话?PandasAI作为Pandas库的AI增强工具,让这一切成为可能。本文将带你从安装配置开始,逐步掌握单表查询、多表关联分析等核心功能,最终实现零代码完成复杂数据交互任务。读完本文后,你将能够:快速搭建PandasAI环境、使用自然语言进行数据分析、生成可视化图表、处理多表关联查询,以及在安全沙箱中运行AI生成的代码。

关于PandasAI

PandasAI是一个扩展Pandas功能的Python库,它通过集成大型语言模型(LLM),允许用户以自然语言与数据进行交互。这一创新功能极大降低了数据分析的技术门槛,使非技术人员也能轻松完成复杂的数据查询和分析任务。

PandasAI Logo

PandasAI的核心优势在于:

  • 自然语言交互,无需编写复杂代码
  • 支持单表和多表数据分析
  • 内置可视化功能,一键生成图表
  • 提供安全沙箱环境,确保代码执行安全
  • 兼容主流LLM模型,灵活配置

官方文档:docs/v3/getting-started.mdx

环境准备与安装

系统要求

PandasAI需要Python 3.8至3.11版本的支持。在开始安装前,请确保你的系统已满足这一要求。你可以通过以下命令检查Python版本:

python --version

安装步骤

PandasAI提供了pip和poetry两种安装方式,你可以根据自己的开发环境选择合适的方式。

使用pip安装:

pip install pandasai
pip install pandasai-litellm

使用poetry安装:

poetry add pandasai
poetry add pandasai-litellm

注意:pandasai-litellm是用于集成LLM模型的必要组件,确保同时安装。

快速开始:首次数据对话

配置LLM

PandasAI需要配置一个大型语言模型才能正常工作。这里我们使用LiteLLM来集成OpenAI模型:

import pandasai as pai
from pandasai_litellm.litellm import LiteLLM

# 初始化LiteLLM与OpenAI模型
llm = LiteLLM(model="gpt-4.1-mini", api_key="YOUR_OPENAI_API_KEY")

# 配置PandasAI使用此LLM
pai.config.set({
    "llm": llm
})

提示:如果你没有OpenAI API密钥,可以使用其他支持的LLM模型,如Anthropic、Google Gemini等。详细配置方法参见extensions/llms/litellm

加载数据

PandasAI支持多种数据格式,包括CSV、Excel、JSON等。以下是加载CSV文件的示例:

# 加载CSV数据
df = pai.read_csv("examples/data/heart.csv")

你也可以直接使用Python字典创建数据集:

# 从字典创建DataFrame
employees_data = {
    'EmployeeID': [1, 2, 3, 4, 5],
    'Name': ['John', 'Emma', 'Liam', 'Olivia', 'William'],
    'Department': ['HR', 'Sales', 'IT', 'Marketing', 'Finance']
}
employees_df = pai.DataFrame(employees_data)

首次对话

完成上述配置后,你就可以开始与数据对话了。尝试提出第一个问题:

# 简单数据查询
response = df.chat("What is the correlation between age and cholesterol?")
print(response)

PandasAI会分析你的问题,生成相应的分析代码,并返回自然语言结果。这个过程完全不需要你编写任何数据分析代码!

单表数据分析进阶

基本统计分析

PandasAI可以轻松完成各种统计分析任务,如计算平均值、中位数、标准差等。例如,要计算各地区的平均收入:

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不仅能提供数值结果,还可以生成各种可视化图表。例如,创建一个各国GDP的直方图:

df.chat(
    "Plot the histogram of countries showing for each one the gdp. Use different colors for each bar",
)

GDP直方图

支持的图表类型包括:直方图、折线图、散点图、饼图等。你只需用自然语言描述你想要的图表类型和数据维度即可。

数据过滤与转换

你可以通过自然语言指令对数据进行过滤和转换:

# 过滤数据
df.chat("Show me all employees in the Sales department with salary above 5000")

# 数据转换
df.chat("Convert the birth date to age and add it as a new column")

这些操作背后,PandasAI会自动生成相应的Pandas代码并执行,大大简化了数据预处理流程。

多表关联分析

在实际数据分析中,我们经常需要处理多个相关数据集。PandasAI支持多表关联分析,让你轻松回答跨数据集的复杂问题。

准备多表数据

首先,我们创建两个相关的DataFrame:

# 员工信息数据
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]
}

# 创建PandasAI DataFrame
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.

PandasAI会自动识别表之间的关联字段(这里是EmployeeID),执行表连接操作,并进行必要的计算,最终返回自然语言结果。

复杂多表分析

对于更复杂的多表分析需求,你可以提供更详细的指令:

pai.chat("Which department has the highest average salary? Show the result as a bar chart.", employees_df, salaries_df)

这将生成一个部门平均薪资的柱状图,直观展示各部门的薪资水平对比。

安全与高级配置

Docker安全沙箱

为了确保AI生成代码的安全执行,PandasAI提供了Docker沙箱环境。这在处理不可信数据或在公共环境中运行时尤为重要。

安装Docker沙箱组件
pip install "pandasai-docker"
使用Docker沙箱
import pandasai as pai
from pandasai_docker import DockerSandbox
from pandasai_litellm.litellm import LiteLLM

# 初始化LLM
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()

Docker沙箱的实现细节可参考:extensions/sandbox/docker

自定义配置

PandasAI提供了丰富的配置选项,允许你根据需求自定义其行为。例如,你可以配置缓存策略、输出格式、日志级别等:

# 高级配置示例
pai.config.set({
    "llm": llm,
    "cache": True,
    "cache_path": "./cache",
    "log_level": "INFO",
    "output_format": "markdown"
})

更多配置选项详见:pandasai/config.py

实战案例:员工薪资分析

让我们通过一个完整的案例来巩固所学知识。假设我们是HR部门的分析师,需要回答以下问题:

  1. 各部门的平均薪资是多少?
  2. 薪资最高的前三名员工是谁?
  3. 部门薪资分布情况如何?

数据准备

# 创建员工和薪资数据
employees_data = {
    'EmployeeID': [1, 2, 3, 4, 5, 6, 7, 8],
    'Name': ['John', 'Emma', 'Liam', 'Olivia', 'William', 'Ava', 'Noah', 'Sophia'],
    'Department': ['HR', 'Sales', 'IT', 'Marketing', 'Finance', 'IT', 'Sales', 'Marketing']
}

salaries_data = {
    'EmployeeID': [1, 2, 3, 4, 5, 6, 7, 8],
    'Salary': [5000, 6000, 4500, 7000, 5500, 8000, 6500, 7500]
}

employees_df = pai.DataFrame(employees_data)
salaries_df = pai.DataFrame(salaries_data)

问题1:各部门平均薪资

response = pai.chat("What is the average salary by department?", employees_df, salaries_df)
print(response)

问题2:薪资最高的前三名员工

response = pai.chat("Who are the top 3 employees with the highest salaries?", employees_df, salaries_df)
print(response)

问题3:部门薪资分布可视化

pai.chat("Create a bar chart showing the salary distribution by department, with each bar representing a department and showing the minimum, average, and maximum salary", employees_df, salaries_df)

通过这三个简单的自然语言查询,我们就能完成原本需要编写大量代码才能实现的分析任务。这就是PandasAI带来的效率提升!

总结与进阶学习

通过本文的学习,你已经掌握了PandasAI的基本使用方法,包括环境配置、单表查询、多表关联分析和数据可视化等核心功能。PandasAI大大降低了数据分析的技术门槛,让你能够专注于业务问题而非代码实现。

进阶学习资源

后续学习路径

  1. 探索PandasAI的高级功能,如语义层、自定义技能等
  2. 尝试集成不同的LLM模型,比较其性能差异
  3. 开发自定义插件,扩展PandasAI的功能
  4. 参与开源贡献,为PandasAI社区添砖加瓦

PandasAI正在快速发展,新功能不断推出。保持关注官方更新,持续学习,你将能够更高效地利用AI能力处理数据分析任务。

希望本文对你有所帮助!如果你有任何问题或建议,欢迎通过项目的GitHub仓库与我们交流。

【免费下载链接】pandas-ai 该项目扩展了Pandas库的功能,添加了一些面向机器学习和人工智能的数据处理方法,方便AI工程师利用Pandas进行更高效的数据准备和分析。 【免费下载链接】pandas-ai 项目地址: https://gitcode.com/gh_mirrors/pa/pandas-ai

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值