PandasAI的应用与实战解析(一):环境安装、运行demo

news2024/11/24 4:35:51

文章目录

    • 1.源码包下载、明确依赖版本
    • 2.安装python依赖
    • 3.运行demo

  • 本博客源码仓库地址:gitlab,本篇博客对应01分支
  • python版本为3.10.x

什么是PandasAI?一句话总结的话,PandasAI就是一个结合了Pandas和AI的开源工具,更详细地说,PandasAI 是一款强大的Python库,它使得用户能够以自然语言轻松向各类数据源(如CSV、XLSX、PostgreSQL、MySQL、BigQuery、Databricks及Snowflake等)提出问题。该库借助生成式人工智能技术,助力用户实现对数据的深度探索、清洗与分析工作。

不仅如此,PandasAI 还提供了丰富的可视化功能,可通过图表形式展示数据;同时,它能有效处理缺失值问题以净化数据集,并通过特征生成进一步提升数据质量。因此,无论是对于数据科学家还是数据分析师而言,PandasAI 都是一款全方位的数据处理工具。

官方文档:https://docs.pandas-ai.com/en/latest/
github仓库:https://github.com/Sinaptik-AI/pandas-ai

  • 特点:提升效率,节省开发人员的时间和精力
    自然语言查询:以自然语言向数据提问。
    数据可视化:生成图形和图表以可视化数据。
    数据清理:通过解决缺失值来清理数据集。
    特征生成:通过特征生成提高数据质量。
    数据连接器:连接到各种数据源,如 CSV、XLSX、PostgreSQL、MySQL、BigQuery、Databrick、Snowflake 等。

  • 工作原理简述:
    PandasAI 使用生成式 AI 模型来理解和解释自然语言查询,并将其转换为 python 代码和 SQL 查询。然后,它使用代码与数据进行交互,并将结果返回给用户。


要想使用PandasAI,首先需要把demo跑起来,下面我将演示整个过程的详细步骤。

1.源码包下载、明确依赖版本

  • 进入PandasAI的github仓库https://github.com/Sinaptik-AI/pandas-ai,点击页面上的Releases:

在这里插入图片描述

  • 选择版本,我选择的是v2.0.29,下载source code.zip:

在这里插入图片描述

  • 然后,我将下载的源码包放到了我的项目文件夹根目录下并解压了,查看pandas-ai-2.0.29文件夹下的.readthedocs.yaml文件,里面有关于python版本和依赖安装文件的说明:python版本为3.10,requirements文件为pandas-ai-2.0.29/docs/requirements.txt
    在这里插入图片描述

2.安装python依赖

  • 为了更便于管理环境,我创建了一个conda虚拟环境:
conda create -n pandasai python=3.10
  • 然后进入环境:
conda activate pandasai
  • 在项目根目录下安装requirement文件依赖:
pip install -r ./pandas-ai-2.0.29/docs/requirements.txt
  • 另外还需要安装pandasai这个依赖:
pip install pandasai==2.0.29

到这里环境就安装好了。

3.运行demo

官网提供的demo有bug(使用BambooLLM大语言模型会报错,但是使用OpenAI不会),已经有其他人遇到了和我一样的问题,并给该开源作者提了issue,但是目前这个bug还没有修复,因此需要修改一下demo的代码。

  • 首先我生成了一个包含23条数据的csv数据集(dataset.csv,存放在了pandas-ai-2.0.29/examples/data目录中),用于测试PandasAI是否可以成功地运行:
countries,gdp
United States,10001
Canada,10002
Mexico,10003
Guatemala,10004
Belize,10005
El Salvador,10006
Honduras,10007
Panama,10008
Bahamas,10009
Cuba,10011
Jamaica,10012
Haiti,10013
Dominican Republic,10014
Costa Rica,10015
Saint Kitts and Nevis,10016
Antigua and Barbuda,10017
Dominica,10018
Saint Lucia,10019
Saint Vincent and the Grenadines,10021
Barbados,10022
Grenada,10023
Trinidad and Tobago,10024
Nicaragua,10025
  • 然后,我修改了pandas-ai-2.0.29/examples目录下的from_csv.py的代码:
"""Example of using PandasAI with a pandas dataframe"""

from pandasai import SmartDataframe
from pandasai.llm import OpenAI
from pandasai.helpers.openai_info import get_openai_callback


llm = OpenAI(api_token="你的OpenAI Token")

df = SmartDataframe("./data/data.csv", config={"llm": llm, "conversational": False})

with get_openai_callback() as cb:
    response = df.chat("Calculate the sum of the gdp of north american countries")

    print(response)
    print(cb)
  • 进入examples目录:
cd pandas-ai-2.0.29\examples
  • 运行from_csv.py:

注意,调用OpenAI需要开代理,否则会报网络异常

python from_csv.py

执行成功:

在这里插入图片描述

至此,PandasAI的demo就成功运行起来了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1589044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录阅读笔记-回溯【组合总和II】

题目 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。解集不能包含重复的组…

Pytest精通指南(06)Fixture scope作用域详解

文章目录 前言Scope 作用域写在测试用例函数文件写在conftest.py文件作用域总结验证默认作用域验证执行顺序遵循验证类中的fixture作用域验证重名fixture作用域 前言 从前文中,我们已经知道固件(fixture)的概念、原理、作用域,并且…

TMS320F280049 EPWM模块--PC子模块(5)

下图是PC子模块和其他子模块的联系图。可以看出,PC接收DB的输出,然后处理后给到TZ。 下图是PC子模块的内部框图。可以看到: 1)PC子模块功能可以被bypass; 2)one shot和divider的时钟是epwm时钟的8分频&am…

秋招数据库学习2(20240408-20240412共10道)

由于感觉数据库难度可能暂时面试用不到,就先不刷啦 20240408 1.从不订购的客户 SELECT Name AS Customers FROM Customers C LEFT JOIN Orders O ON C.Id O.CustomerId WHERE CustomerId is nullselect customers.name as Customers from Customers wher…

购物车实现

目录 1.购物车常见的实现方式 2.购物车数据结构介绍 3.实例分析 1.controller层 2.service层 1.购物车常见的实现方式 方式一:存储到数据库 性能存在瓶颈方式二:前端本地存储 localstorage在浏览器中存储 key/value 对,没有过期时间。s…

什么是电子巡查系统?

电子巡检系统,通常又被叫做设备巡检系统,一种利用现代化技术进行设备管理和维护的系统。 通过结合软件应用程序、移动设备和云端服务,设备巡检系统能够实现对设备的全面监测、定位和记录。它使得设备管理人员能够轻松地安排、执行和跟踪设备…

通讯录项目(用c语言实现)

一.什么是通讯录 通讯录是一种用于存储联系人信息的工具或应用程序。它是一种电子化的地址簿,用于记录和管理个人、机构或组织的联系方式,如姓名、电话号码、电子邮件地址和邮寄地址等。通讯录的目的是方便用户在需要时查找和联系他人。 通讯录通常以列…

数据结构(算法)

总结,建议看EXCEL的《算法》页签,不然感觉有点乱 备注原理/步骤时间复杂度空间复杂度串的应用模式匹配简单/暴力O(mn) KMP  O(mn) 树的应用树哈夫曼树1、带权路径长度WPL 2、外部排序-最佳归并树1、哈夫曼树的度,只有0和m(m叉…

Linux——十个槽位,RWX

Linux——RWX 十个槽位 - 表示文件 d 表示文件夹 l 表示软链接 r权,针对文件可以查看文件内容 针对文件夹,可以查看文件夹内容,如ls命令 w权,针对表示可以修改此文件 针对文件夹,可以在文件夹内&#…

深入理解k8s kube-proxy

1、概述 我觉得只要大家知道kube-proxy是用来配置网络规则的而不是转发流量的,真正的流量由iptables/ipvs来转发就可以了。 网络是k8s的一个关键部分。理解k8s中网络组件如何工作可以帮助更好的设计和配置我们的应用。 kube-proxy就是K8s网络的核心组件。它把我们…

C++11 数据结构1 线性表的概念,线性表的顺序存储,实现,测试

一 线性表的概念 线性结构是一种最简单且常用的数据结构。 线性结构的基本特点是节点之间满足线性关系。 本章讨论的动态数组、链表、栈、队列都属于线性结构。 他们的共同之处,是节点中有且只有一个开始节点和终端节点。按这种关系,可以把它们的所有…

选择正确的Go Module Path

最近我在查看项目代码时,注意到有人在go.mod文件中将module path写为com.example.foo了。根据这个写法,相信屏幕前的读者也可以推断出这位开发人员可能是从Java阵营转到Go的。实际开发中可能有很多开发者会使用类似的内容作为module path,但这…

使用快捷回复软件的好处

在现代的客服工作中,尤其是店铺大促期间,咨询量的激增往往让客服人员应接不暇。即使打字速度再快,也难以跟上源源不断的客流。想应对这样的情况,快捷回复软件就非常适合客服人员了。 以我个人正在使用的客服宝为例,我想…

(Java)数据结构——图(第五节)Kruskal的实现最小生成树(MST)

前言 本博客是博主用于复习数据结构以及算法的博客,如果疏忽出现错误,还望各位指正。 Kruskal算法(Kruskal的实现原理) Kruskal算法的原理: 就是每次取最小的边,看看是不是与已经选择的构成回路&#x…

面向对象设计原则实验“依赖倒置原则”

高层模块不应该依赖于低层模块。二者都应该依赖于抽象。抽象不应该依赖于细节。细节应该依赖于抽象。 (开闭原则、里氏代换原则和依赖倒转原则的三个实例很相似,原因是它之间的关系很紧密,在实现很多重构时通常需要同时使用这三个原则。开闭…

计算机网络-TCP断开连接阶段错误应对机制

连接断开阶段 四次挥手机制:TCP连接的断开需要四次挥手,这是因为双方都需要独立地关闭数据传输。第二次和第三次挥手不能合并,因为在回复第二次挥手的时候,可能还有数据没有接收完成,所以需要先回复ACK报文&#xff0c…

css面试题---场景应用

1、实现一个三角形 css一般用border属性实现三角形。 div {width: 0;height: 0;border: 100px solid;border-color: orange blue red green; } // 三角形一 div {width: 0;height: 0;border-top: 50px solid red;border-right: 50px solid transparent;border-left: 50px soli…

竞赛 图像识别-人脸识别与疲劳检测 - python opencv

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是…

免费HTTPS证书在线申请

申请HTTPS证书的流程如下: 1. 确定证书类型: - 根据你的网站用途(如个人博客、企业官网、电商、金融等)和信任级别要求,选择适合的证书类型,如DV(域名验证)、OV(组织验证…

[论文笔记] Pai-megatron Qwen1.5-14B-CT 后预训练 踩坑记录

1. 模型权重转换报错 hf2mcore_1.5_v2.py 报错为: /mnt/cpfs/kexin/dlc_code/qwen1.5/PAI-Megatron-Patch/toolkits/model_checkpoints_convertor/qwen/hf2mcore_1.5_v2.py 正确文件替换如下,更改了477行,删除了 args.hidden_size 这个维度,在tp>1时也支持转换: eli…