Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PandasAI:让数据分析变得会话化的强大工具

PandasAI:让数据分析变得会话化的强大工具

作者头像
CoderJia
发布于 2025-05-06 05:11:34
发布于 2025-05-06 05:11:34
35500
代码可运行
举报
运行总次数:0
代码可运行

引言

在当今数据驱动的世界中,数据分析工具的效率和易用性变得尤为重要。传统的数据分析方法往往需要专业的编程知识和对特定库语法的熟悉,这对非技术用户构成了障碍。PandasAI 应运而生,它将自然语言处理与数据分析完美结合,使得与数据的交互变得像日常对话一样简单。本文将深入探讨这个由 Sinaptik AI 团队开发的开源项目,分析其核心功能、技术原理及实际应用价值,帮助读者了解如何利用 PandasAI 提升数据分析效率。

pandas-ai-log
pandas-ai-log

项目概述分析

PandasAI 是一个基于 Python 的开源平台,旨在通过自然语言处理技术使数据分析变得更加直观和会话化。截至目前,该项目在 GitHub 上已获得约 19.9K 的 Star 和 1.9K 的 Fork,显示出其在开发者社区中的受欢迎程度。

基本信息

项目主页
项目主页

PandasAI 的架构设计围绕着将用户的自然语言查询转换为对数据的操作。该项目最新的稳定版本为 v2.4.2(v3.0.0还处于Beta 版本),项目团队正在持续更新和改进功能。项目的核心理念是让数据分析变得会话化,让无论是技术还是非技术用户都能以自然语言与数据进行交互。

核心功能详解

1. 自然语言查询处理

PandasAI 的核心优势在于它能够理解并执行自然语言形式的数据查询。用户只需用日常语言提出问题,如"哪些国家的销售额最高?"或"计算前三名国家的总销售额",PandasAI 便能解析这些指令,将其转换为相应的数据操作,并返回结果。

这一功能背后是先进的 LLM 技术。PandasAI 默认使用 BambooLLM(由 PandasAI 团队开发的专为数据分析设计的语言模型),但也支持集成其他大语言模型。系统能够理解复杂的查询意图,进行上下文推理,并生成精确的 Python 代码来执行相应操作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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.

2. 数据可视化生成

除了文本形式的回答,PandasAI 还能根据自然语言指令生成数据可视化图表。用户只需描述所需的图表类型和要展示的数据,PandasAI 便会自动生成相应的可视化结果。这一功能大大简化了数据可视化过程,让用户无需编写复杂的绘图代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 生成可视化图表
df.chat(
    "Plot the histogram of countries showing for each one the revenue. Use different colors for each bar",
)
# 系统会生成一个彩色柱状图,展示各国收入情况

3. 多数据源集成分析

PandasAI 支持同时分析多个数据帧,并能够理解它们之间的关系。这使得用户可以提出跨数据集的复杂问题,而无需手动执行数据合并或关联操作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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.

4. 安全沙箱执行

考虑到数据安全问题,PandasAI 提供了 Docker 沙箱执行环境,可以在隔离的环境中安全地执行代码,有效防止恶意代码攻击。这一功能特别适合企业环境或需要处理敏感数据的场景。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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()

5. 云平台协作功能

PandasAI 提供了云平台功能,支持团队协作分析数据。用户可以将数据集上传到平台,团队成员可以通过自然语言查询访问这些数据,这大大促进了数据分析的民主化和团队协作效率。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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()

安装和使用教程

1.环境要求

  • Python 版本:3.8+ <3.12
  • 依赖库:pandas、相关 LLM 和 NLP 库

2.安装步骤

PandasAI 可以通过 pip 或 poetry 进行安装:

使用 pip:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 注意可能与matplotlib不兼容,可提前卸载
pip install "pandasai>=3.0.0b2"

使用 poetry:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
poetry add "pandasai>=3.0.0b2"

对于需要安全沙箱的用户,还需安装 Docker 包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install "pandasai-docker"

3.基本使用方法

导入库并设置 API 密钥

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandasai as pai

# 设置 API 密钥(可在 https://app.pandabi.ai 注册获取)
pai.api_key.set("your-pai-api-key")

注册账号之后,每月有免费使用次数。

获取api-key
获取api-key

创建或加载数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建示例数据
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")

使用自然语言提问

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
result = df.chat("What is the average salary of people over 30?")
print(result)
What is the average salary of people over 30
What is the average salary of people over 30

生成可视化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.chat("Create a bar chart showing the salary of each person")

可在 exports\charts\ 目录下查看生成的图表:

生成可视化
生成可视化

4.切换其他LLM

安装 Pandasai-litellm 扩展:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Using poetry
poetry add pandasai-litellm

# Using pip
pip install pandasai-litellm

LiteLLM 支持但不限于以下 LLM,详情见https://docs.litellm.ai/docs/providers:

  • OpenAI (gpt-3.5-turbo, gpt-4, etc.)
  • Anthropic (claude-2, claude-instant-1, etc.)
  • Google (gemini-pro, palm2, etc.)
  • Azure OpenAI
  • AWS (Bedrock, SageMaker)
  • Mistral AI
  • Cohere
  • Hugging Face

只需要代码中添加几行代码设置 LLM 即可切换 deepseek 大模型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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})
切换deepseek
切换deepseek

应用场景和实际价值

1.适用业务场景

  1. 数据探索和分析:研究人员和数据分析师可以更快地探索新数据集,通过自然语言提问深入了解数据特征。
  2. 业务报告生成:业务用户可以直接通过自然语言获取关键业务指标,无需掌握复杂的数据查询语言。
  3. 数据可视化:快速生成数据可视化图表,支持决策制定和数据展示。
  4. 团队协作分析:团队成员可以在同一数据集上进行协作分析,共享洞察。
  5. 教育场景:教育工作者可以使用 PandasAI 简化数据科学教学,让学生专注于数据分析思维而非复杂语法。

2.与类似项目的优势对比

相比传统的数据分析工具,PandasAI 具有以下优势:

  1. 降低技术门槛:用户无需掌握复杂的 Pandas 语法和数据操作方法,只需用自然语言表达分析需求。
  2. 提高效率:即使是专业数据分析师,也能通过自然语言快速执行复杂查询,节省编写代码的时间。
  3. 增强数据可访问性:使非技术背景的业务人员能够直接与数据交互,促进数据驱动决策。
  4. 安全性:提供沙箱执行环境,确保代码安全执行,防止恶意攻击。

3.实际应用价值效益

  1. 提高数据分析效率:通过自然语言查询,分析师可以将更多精力集中在数据解释和决策上,而非编写代码。
  2. 促进数据民主化:让更多非技术人员能够参与数据分析过程,打破数据孤岛。
  3. 加速洞察发现:快速生成可视化和统计分析,帮助用户更快地发现数据中的模式和趋势。
  4. 降低学习成本:减少学习专业数据分析语言的时间投入,加速技能获取。

4.局限性与注意事项

  1. 模型回答准确性:尽管 PandasAI 强大,但仍可能存在理解错误或生成不准确结果的情况,用户需要对关键结果进行验证。
  2. 复杂查询处理:对于极其复杂的数据查询,可能仍需要专业人员介入或手动编写代码。
  3. 依赖 API 密钥:默认使用 BambooLLM 需要 API 密钥,这可能对某些用户构成限制。
  4. 处理超大数据:在处理极大规模数据集时,可能面临性能挑战。

结论

PandasAI 代表了数据分析工具的重要发展方向——会话式数据分析。通过将先进的 LLM 技术与传统数据分析工具相结合,PandasAI 不仅提高了数据分析的效率,还显著降低了数据分析的技术门槛,让各行各业的用户都能轻松与数据对话。

在数据爆炸的时代,PandasAI 这类工具的价值在于它们能够帮助我们更民主、更高效地从数据中提取洞察。随着项目的不断发展和完善,我们可以期待 PandasAI 在未来为更多数据分析场景提供强大支持,进一步推动数据分析的民主化和智能化进程。

对于想要探索 PandasAI 的开发者和数据分析师,这是一个值得学习和关注的项目,它不仅可以提升工作效率,还能启发我们思考人工智能与数据分析结合的更多可能性。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一个程序员才能看懂的母亲节礼物
母亲,节日快乐,今天周日,这会我正在屏幕前写代码,借用这个公众号,向您说声:我爱你。祝天下所有的母亲节日快乐! Make Your Mama Proud 在这个伟大的节日里,我们要更好的学会使用jav
ImportSource
2018/04/03
8670
一个程序员才能看懂的母亲节礼物
web前端工程师眼中的母亲节
很多人的眼中都认为程序员很闷骚,很无聊。其实在我们程序员眼中不仅仅只有代码,还有爱,因为我们也是一个正常的人! 我们在代码中也可以彰显对父母的爱:
用户1272076
2019/03/26
4500
web前端工程师眼中的母亲节
明天母亲节,用这款小程序,给妈妈送一张贺卡吧!
现在,「知晓程序」就给你推荐一款贺卡小程序「小小贺卡」,快用它给母亲送上你最真挚的祝福吧。
知晓君
2018/08/01
1.2K0
明天母亲节,用这款小程序,给妈妈送一张贺卡吧!
母亲节来了送啥礼物好?全网数据告诉你!
深挚的母爱,无时无刻不在沐浴着儿女们。5月的第2个周日就是母亲节了,这是一个全世界感谢母亲的节日。这个节日最早出现在古希腊,而现代的母亲节起源于美国,现在我国也遍地开花了。
1480
2020/05/12
5790
数据解读母亲节:每1次唠叨背后是1.2次想念
5月的第二个周末,朋友圈再一次被母亲节刷屏。不过C君觉得,比起这样临时抱佛脚式的晒,平日的陪伴更重要(而且可能你妈并不会玩朋友圈好吗)。 别说自己远离家乡鞭长莫及,既然能用尽心思随时随地撩妹,当然
CDA数据分析师
2018/02/24
5010
数据解读母亲节:每1次唠叨背后是1.2次想念
创意满分!Pornhub推出可折叠成VR眼镜的母亲节贺卡
Pornhub推出了一款可以折叠成VR眼镜的母亲节贺卡,并附带私密的链接。 5月份第2个周日是母亲节,你可能还没有开始为母亲准备礼物,而Pornhub为此设计了一款可以折叠成VR眼镜的母亲节贺卡。 P
镁客网
2018/05/29
1.4K0
你还是从前那个少年没有一丝丝改变,可是你妈妈呢?
母亲节,是一个感谢母亲的节日。母亲们在这一天通常会收到礼物,康乃馨被视为献给母亲的花,而中国的母亲花是萱草花,又叫忘忧草。
陈学谦
2020/05/12
5680
JCJC句子改写在线工具上线-202305
田春峰-JCJC错别字检测
2023/10/16
2380
JCJC句子改写在线工具上线-202305
母亲节除了扫地机器人,还有什么?
自从五月的第二个周日被定为母亲节,在母亲节当天为辛劳一年的母亲送上礼物就成为了一个比较流行的做法。我们在淘宝指数搜索“母亲节”后可以发现,这个关键词最近一周的搜索指数明显上升,看来不少消费者都考虑到了快递运输时间,特意提前选好心仪的礼物并且下单。 那么,到底该选什么礼物好呢?虽然科技日益发达,出现在我们周围的新鲜事物越来越多,但许多消费者为母亲挑选的礼物简直万年不变。不是一束在父母辈眼里代表着不实用的鲜花,就是已经收到腻的衣裙,自诩贴心一点的也就是去商场选购几款不知道母亲愿不愿意用的化妆品。小编忍不住吐槽
机器人网
2018/04/13
9120
母亲节除了扫地机器人,还有什么?
用 Python 送上特殊的母亲节祝福
今天是母亲节,做儿女的自然要为母亲送上节日的祝福,如果自己在母亲身边的话,可以直接说几句祝福的话以及送一些小礼物什么的,要是不在母亲身边的话,可以打个电话问候一下。
Python小二
2020/08/18
6120
用 Python 送上特殊的母亲节祝福
大数据告诉你,送妈妈什么礼物会让她更开心
导读:又到母亲节,据说,“母亲节给妈妈送什么礼物”是世界第2大难题,仅次于第1难的“今天吃什么?”
IT阅读排行榜
2018/08/17
5730
这是他们给奶奶最好的母亲节礼物(爷爷也有份)
垃圾分类后,我奶奶总是拿不准怎么分。如果拍张照片,就能识别手上的废弃物是哪类垃圾就好了。
腾讯云开发TCB
2021/05/10
7980
这是他们给奶奶最好的母亲节礼物(爷爷也有份)
程序员是这样祝母亲节日快乐的
母亲,节日快乐,今天周日,这会我正在屏幕前写代码,借用这个公众号,向您说声:我爱你。祝天下所有的母亲节日快乐
程序员小饭
2021/05/13
5140
程序员是这样祝母亲节日快乐的
母亲节到了,大爱VR的你想给她送上一份怎样的礼物呢?
每年五月的第二个星期日,我们在这一天里为妈妈送上最真挚的祝福。作为最亲最爱的人,妈妈总是包容着我们的所有缺点,承受着我们给予的伤害,却在我们悲伤哭泣时为我们提供最安稳的港湾。 有时,我们会嫌弃妈妈太啰
VRPinea
2018/05/16
6750
母亲节TALK:“鸡娃”之外的启蒙教育之路
母亲节到来,首先要祝各位妈妈们节日快乐! 如今当妈的可谓是一届比一届辛苦,尤其是当“鸡娃”狂卷倒逼“虎妈”,生活就被迫变成了:孩子烧脑,妈妈烧心、烧钱、烧时间…… 孩子不光要上通天文下知地理,英语想必妈妈们也没少给自家小孩儿下功夫,但“鸡娃”真的是有效的英语启蒙模式吗? 先不急,各位妈妈们不如来看看 “未来启蒙教育:游戏化学习的价值与应用”专家沙龙 由腾讯开心鼠联合中国教育在线举办 或许可以给你们一些不一样的教育思路 先来介绍一下沙龙的专家阵容: 中国教育战略发展学会副会长 李志民 腾讯教育副总裁、腾讯在
鹅老师
2021/05/10
4070
你妈提的需求,这个功能希望能帮你解决
刚过去的母亲节,大概每个人的朋友圈都被花式晒妈了吧? 不过,很多人没有晒出来的是——妈的需求: 1、女儿,对象找得怎样了? 2、儿子,隔壁老王三胎了,你呢? 3、我这手机P图不会弄,你教教我 1、2是听天由命的了,3让我有些无奈: “我妈非要在自拍上p时间地点,打了几个电话问我,我从车站一路讲回家硬是没教会,急死我了说了她两句,她就可委屈了觉得我嫌弃她。” 虽然妈妈经常拿着手机跟我们发信息,但其实很多软件和功能,妈妈都找不到、不会用、甚至不敢用。 “为什么你还是听不懂”、“我说了不是这样”、“等我回来直接
腾讯大讲堂
2018/05/29
5180
母亲节祝福网页制作
杨校
2025/05/10
4220
母亲节祝福网页制作
母亲节是哪一天?一个公式直接算出来!
实际上,要计算每年母亲节的具体日期,在Excel里很简单,公式如下:
大海Power
2021/08/31
1.6K0
JSR310-新日期API(完结篇)-生产实战
前面通过五篇文章基本介绍完JSR-310常用的日期时间API以及一些工具类,这篇博文主要说说笔者在生产实战中使用JSR-310日期时间API的一些经验。
Throwable
2020/06/23
7090
母亲节祝福的网页
杨校
2025/05/11
1480
推荐阅读
相关推荐
一个程序员才能看懂的母亲节礼物
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验