通过PandasAI使用自然语言进行数据分析

news2024/11/23 23:55:57

通过PandasAI使用自然语言进行数据分析


介绍

​ PandasAI是一个Python库,可以很容易地用自然语言向数据提问。它可以帮助您使用生成人工智能来探索、清理和分析数据。

使用PandasAI

这里使用Anaconda和Jupyter使用PandasAI

进入一个文件目录 创建一个 Notebook

image-20240326170853332

安装PandasAI库

  • 使用清华的镜像源提升安装速度
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandasai

image-20240326171343162

  • 验证是否安装pip list | grep pandasai

image-20240326171628085

使用本地模型

官方对于使用本地模型的说明

LM Studio

LM Studio是一个跨平台桌面应用程序,用于实验本地和开源的大型语言模型,它还提供了简单易用的界面,让用户可以轻松地探索和使用这些语言模型

image-20240326182438561

  • 使用LM Studio加载一个本地模型之后,开启Start Server

image-20240326184201877

使用PandasAI

  • 代码整理
import pandas as pd
from pandasai import SmartDataframe
from pandasai.llm.local_llm import LocalLLM

llm = LocalLLM(api_base= "http://localhost:1234/v1")
df_llm = SmartDataframe(df, config={"llm": llm})

df = pd.DataFrame({
    "country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
    "gdp": [19294482071552, 2891615567872, 2411255037952, 3435817336832, 1745433788416, 1181205135360, 1607402389504, 1490967855104, 4380756541440, 14631844184064],
    "happiness_index": [6.94, 7.16, 6.66, 7.07, 6.38, 6.4, 7.23, 7.22, 5.87, 5.12]
})

df_llm.chat('最幸福的5个国家有哪些?')

返回 'The 5 happiest countries are: United States, United Kingdom, France, Germany, Italy'

  • 注意: 较小的模型通常性能不佳

image-20240326190408095

image-20240326191012447

使用streamlit生成一个chat ui页面

image-20240328150103831
image-20240328150749437

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

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

相关文章

31.Python从入门到精通—Python数据压缩 性能度量 测试模块

31.从入门到精通:Python数据压缩 性能度量 测试模块 个人简介数据压缩性能度量测试模块 个人简介 🏘️🏘️个人主页:以山河作礼。 🎖️🎖️:Python领域新星创作者,CSDN实力新星认证&#xff0c…

【3D-GS】Gaussian Splatting SLAM——基于3D Gaussian Splatting的全网最详细的解析

【3D-GS】Gaussian Splatting SLAM——基于3D Gaussian Splatting的定SLAM 3D-GS 与 Nerf 和 Gaussian Splatting1. 开山之作 Nerf2. 扛鼎之作 3D Gaussian Splatting2.1 什么是3D高斯?高斯由1D推广到3D的数学推导2.2 什么是光栅化?2.3 什么是Splatting?2.4 什么是交叉优化?…

QT中的文件操作QFile、QDataStream、QTextStream、QBuffer

文件操作概述 1、Qt中IO操作的处理方式 (1)、Qt通过统一的接口简化了文件与外部设备的操作方式 (2)、Qt中的文件被看做是一种特殊的外部设备 (3)、Qt中的文件操作与外部设备操作相同 2、IO操作中的关键…

YOLOv9改进策略 :主干篇 | 南开大学提出LSKNet,遥感旋转目标检测新SOTA ,ICCV 2023

💡💡💡本文改进内容: 动态调整特征提取骨干的感受野,以便更有效地处理被检测大小物体的不同的检测能力,也就是说可以有效提升检测数据集当中存在大小目标的检测能力 改进结构图如下: 《YOLOv9魔术师专栏》将从以下各个方向进行创新: 【原创自研模块】【多组合点优…

二维码门楼牌管理应用平台建设:采集成果预处理与标准化

文章目录 前言一、采集成果预处理的重要性二、预处理操作流程三、结论与展望 前言 在数字化时代,二维码门楼牌管理应用平台的建设成为了城市管理的重要一环。通过采集门楼牌信息,并对其进行预处理,我们可以实现数据的规范化、去重等操作&…

39.HarmonyOS鸿蒙系统 App(ArkUI)线性布局结合弹性布局

弹性布局(Flex) 弹性布局(Flex)提供更加有效的方式对容器中的子元素进行排列、对齐和分配剩余空间。容器默认存在主轴与交叉轴,子元素默认沿主轴排列,子元素在主轴方向的尺寸称为主轴尺寸,在交叉…

debian12,linux-image-6.6.13+bpo-amd64内核nvidia显卡驱动失效

问题 更新linux内核linux-image-6.6.13bpo-amd64和linux-headers-6.6.13bpo-common后无法进入图形化界面,nvidia驱动版本535.154.05,nvidia官方驱动 日志 /var/log/Xorg.1.log [ 3.834] (--) Log file renamed from "/var/log/Xorg.pid-11…

智慧公厕产品的特点、应用场景

随着城市化进程的加速和智能科技的不断发展,智慧公厕作为城市管理的重要组成部分,逐渐成为了现代城市的一道靓丽风景线。它的特点和应用场景备受人们关注和喜爱。 智慧公厕的特点有哪些呢?首先,它智能化的设备和感应技术为其特点…

Collection与数据结构 链表与LinkedList (一):链表概述与单向无头非循环链表实现

1.ArrayList的缺点 上篇文章我们已经对顺序表进行了实现,并且对ArrayList进行了使用,我们知道ArrayList底层是使用数组实现的. 由于其底层是一段连续空间,当在ArrayList任意位置插入或者删除元素时,就需要将后序元素整体往前或者往后搬移,时…

unity内存优化Texture2D优化

作为unity开发者,我们使用memory Profiler来查看内存,本期我们项目中Texture2D的内存占有比较高,为了对这块做优化我们先看下内存的占有情况。 step1 使用memory Profiler对手机应用程序截图 打开截取后的内存页面,选择顶部Unit…

stitcher类实现多图自动拼接

效果展示 第一组: 第二组: 第三组: 第四组: 运行代码 import os import sys import cv2 import numpy as npdef Stitch(imgs,savePath): stitcher cv2.Stitcher.create(cv2.Stitcher_PANORAMA)(result, pano) stitcher.st…

NVIDIA Jetson Xavier NX入门-镜像为jetpack5(1)——镜像烧写

NVIDIA Jetson Xavier NX入门-镜像为jetpack5(1)——镜像烧录 0.博主曾经撰写了关于 NVIDIA Jetson Xavier NX入门-镜像为jetpack4系列的文章。但是升级镜像到jetpack5时出现诸多问题,之前的文章已不再适用。如果想安装jetpack4请参照下面三…

[技术笔记] Flash选型之基础知识芯片分类

1、按照接口分类 分为 Serial串口Flash 和 Parallel并口Flash; 市场大量使用Serial Flash;价格便宜;已满足系统对数据读写速度的要求; Serial Flash已经可以代表 NOR Flash; 小知识: 1)在…

Vue3 使用 v-bind 动态绑定 CSS 样式

在 Vue3 中&#xff0c;可以通过 v-bind 动态绑定 CSS 样式。 语法格式&#xff1a; color: v-bind(数据); 基础使用&#xff1a; <template><h3 class"title">我是父组件</h3><button click"state !state">按钮</button>…

应用程序open如何调用到驱动程序的open函数,inode和file的理解

基础知识&#xff1a; 1. struct inode 每创建一个文件&#xff0c;都会生成一个设备节点inode&#xff1b;可以通过inode找到设备号&#xff0c;然后找到cdv; 驱动只有一份&#xff0c;存在多个同类字符设备的时候&#xff0c;得由驱动来区分不同的设备&#xff0c;怎么区别呢…

SEH异常之编译器原理探究(2)

_try_finally原理 无论try结构体中是什么代码&#xff0c;都会执行finally里面的代码 局部展开 当try里面没有异常&#xff0c;而是return、continue、break等语句时&#xff0c;就不会走_except_handle3这个函数&#xff0c;而是调用_local_unwind2进行展开 然后调用[ebx e…

鸿蒙OS开发问题:(ArkTS) 【解决中文乱码 string2Uint8Array、uint8Array2String】

在进行base64编码中&#xff0c;遇到中文如果不进行处理一定会出现乱码 let result1: string CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse((一二三四五六七八九十123)))LogUtils.i("result1 " result1);let result2: string CryptoJS.enc.Base64.par…

Java:抽象类相关

引言&#xff1a; 在Java编程语言中&#xff0c;抽象类是一种不能被实例化的重要类型&#xff0c;它为类的层次结构提供了一个基础框架。抽象类可以包含抽象方法和具体方法&#xff0c;它们通常用作其他类的父类或基类。本文将详细探讨Java中抽象类的概念、如何使用它们以及在设…

C++类基础5——拷贝构造函数,拷贝赋值运算符(复制构造函数,复制赋值运算符)

拷贝控制操作 当定义一个类时&#xff0c;我们显式地或隐式地指定在此类望的对象拷贝&#xff0c;移动、赋值和销毁时做什么。 一个类通定义五种特殊的成员函数来控制这些操作&#xff0c;包括&#xff1a;拷贝构造函数(copy consinuctor)、拷贝赋值运算符(copy-assignment op…

某国投集团知识竞赛活动方案

一、抽签分组办法 1.抽签&#xff1a;参赛队伍赛前进行抽签分组。 2.分组&#xff1a;全部报名参赛队伍按照抽签顺序分为4组&#xff0c;每组7支队伍进行预赛&#xff0c;9月16日上午1、2组进行初赛&#xff0c;9月16日下午3、4组进行初赛。每组决出的前三名进入决赛。 二、初…