在当今数据驱动的世界中,数据分析工具的效率和易用性变得尤为重要。传统的数据分析方法往往需要专业的编程知识和对特定库语法的熟悉,这对非技术用户构成了障碍。PandasAI 应运而生,它将自然语言处理与数据分析完美结合,使得与数据的交互变得像日常对话一样简单。本文将深入探讨这个由 Sinaptik AI 团队开发的开源项目,分析其核心功能、技术原理及实际应用价值,帮助读者了解如何利用 PandasAI 提升数据分析效率。
PandasAI 是一个基于 Python 的开源平台,旨在通过自然语言处理技术使数据分析变得更加直观和会话化。截至目前,该项目在 GitHub 上已获得约 19.9K 的 Star 和 1.9K 的 Fork,显示出其在开发者社区中的受欢迎程度。
PandasAI 的架构设计围绕着将用户的自然语言查询转换为对数据的操作。该项目最新的稳定版本为 v2.4.2(v3.0.0还处于Beta 版本),项目团队正在持续更新和改进功能。项目的核心理念是让数据分析变得会话化,让无论是技术还是非技术用户都能以自然语言与数据进行交互。
PandasAI 的核心优势在于它能够理解并执行自然语言形式的数据查询。用户只需用日常语言提出问题,如"哪些国家的销售额最高?"或"计算前三名国家的总销售额",PandasAI 便能解析这些指令,将其转换为相应的数据操作,并返回结果。
这一功能背后是先进的 LLM 技术。PandasAI 默认使用 BambooLLM(由 PandasAI 团队开发的专为数据分析设计的语言模型),但也支持集成其他大语言模型。系统能够理解复杂的查询意图,进行上下文推理,并生成精确的 Python 代码来执行相应操作。
import pandasai as pai
# 创建示例 DataFrame
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]
})
# 设置 API 密钥
pai.api_key.set("your-pai-api-key")
# 提问
df.chat('Which are the top 5 countries by sales?')
# 输出:
# country revenue
#0 China 7000
#1 United States 5000
#2 Japan 4500
#3 Germany 4100
#4 United Kingdom 3200
# 提出更复杂的问题
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 还能根据自然语言指令生成数据可视化图表。用户只需描述所需的图表类型和要展示的数据,PandasAI 便会自动生成相应的可视化结果。这一功能大大简化了数据可视化过程,让用户无需编写复杂的绘图代码。
# 生成可视化图表
df.chat(
"Plot the histogram of countries showing for each one the revenue. Use different colors for each bar",
)
# 系统会生成一个彩色柱状图,展示各国收入情况
PandasAI 支持同时分析多个数据帧,并能够理解它们之间的关系。这使得用户可以提出跨数据集的复杂问题,而无需手动执行数据合并或关联操作。
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.
考虑到数据安全问题,PandasAI 提供了 Docker 沙箱执行环境,可以在隔离的环境中安全地执行代码,有效防止恶意代码攻击。这一功能特别适合企业环境或需要处理敏感数据的场景。
import pandasai as pai
from pandasai_docker import DockerSandbox
# 初始化沙箱
sandbox = DockerSandbox()
sandbox.start()
# 使用沙箱执行查询
pai.chat("Who gets paid the most?", employees_df, salaries_df, sandbox=sandbox)
# 使用完毕后停止沙箱
sandbox.stop()
PandasAI 提供了云平台功能,支持团队协作分析数据。用户可以将数据集上传到平台,团队成员可以通过自然语言查询访问这些数据,这大大促进了数据分析的民主化和团队协作效率。
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()
PandasAI 可以通过 pip 或 poetry 进行安装:
使用 pip:
# 注意可能与matplotlib不兼容,可提前卸载
pip install "pandasai>=3.0.0b2"
使用 poetry:
poetry add "pandasai>=3.0.0b2"
对于需要安全沙箱的用户,还需安装 Docker 包:
pip install "pandasai-docker"
导入库并设置 API 密钥:
import pandasai as pai
# 设置 API 密钥(可在 https://app.pandabi.ai 注册获取)
pai.api_key.set("your-pai-api-key")
注册账号之后,每月有免费使用次数。
创建或加载数据:
# 创建示例数据
df = pai.DataFrame({
"name": ["John", "Mary", "Bob", "Alice"],
"age": [25, 30, 35, 40],
"salary": [50000, 60000, 70000, 80000]
})
# 或从文件加载数据
df = pai.read_csv("your_data.csv")
使用自然语言提问:
result = df.chat("What is the average salary of people over 30?")
print(result)
生成可视化:
df.chat("Create a bar chart showing the salary of each person")
可在 exports\charts\
目录下查看生成的图表:
安装 Pandasai-litellm 扩展:
# Using poetry
poetry add pandasai-litellm
# Using pip
pip install pandasai-litellm
LiteLLM 支持但不限于以下 LLM,详情见https://docs.litellm.ai/docs/providers:
只需要代码中添加几行代码设置 LLM 即可切换 deepseek 大模型:
import os
import pandasai as pai
from pandasai_litellm import LiteLLM
# Set your API keys as environment variables
os.environ["OPENAI_API_KEY"] = "your-openai-api-key"
# Example with deepseek
llm = LiteLLM(model="deepseek/deepseek-chat")
# Set your LLM configuration
pai.config.set({"llm": llm})
相比传统的数据分析工具,PandasAI 具有以下优势:
PandasAI 代表了数据分析工具的重要发展方向——会话式数据分析。通过将先进的 LLM 技术与传统数据分析工具相结合,PandasAI 不仅提高了数据分析的效率,还显著降低了数据分析的技术门槛,让各行各业的用户都能轻松与数据对话。
在数据爆炸的时代,PandasAI 这类工具的价值在于它们能够帮助我们更民主、更高效地从数据中提取洞察。随着项目的不断发展和完善,我们可以期待 PandasAI 在未来为更多数据分析场景提供强大支持,进一步推动数据分析的民主化和智能化进程。
对于想要探索 PandasAI 的开发者和数据分析师,这是一个值得学习和关注的项目,它不仅可以提升工作效率,还能启发我们思考人工智能与数据分析结合的更多可能性。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有