当前位置: 首页 > news >正文

北京网站制作人才网站前端和后台

北京网站制作人才,网站前端和后台,网站 网址 域名,中国嘉兴门户网站1. 引言 Pandas是一个数据分析开源组件库,提供了高性能、易用的数据结构和数据分析工具。它的核心的功能是其DataFrame对象,这是一个带有行和列标签的二维表格数据结构,支持缺失数据处理、时间序列功能、灵活的数据输入输出方法、数据对齐和…

1. 引言

Pandas是一个数据分析开源组件库,提供了高性能、易用的数据结构和数据分析工具。它的核心的功能是其DataFrame对象,这是一个带有行和列标签的二维表格数据结构,支持缺失数据处理、时间序列功能、灵活的数据输入输出方法、数据对齐和分组操作等特性。

PandasAI则通过结合Pandas和生成式AI技术,使用户能够以自然语言与数据进行交互,从而简化数据分析流程。它的核心目标是让数据分析变得更直观、高效,甚至无需编写复杂代码即可完成数据查询、清洗、可视化等任务。

2. 详述

Pandas进行数据分析的流程笔者不是很熟练,这里重点关注一个问题就是PandasAI如何连接现有的大模型比如DeepSeek来进行智能数据分析。

由于经验不足,笔者在测试PandasAI的时候,将相关的组件都安装在默认全局的Python环境中了,导致版本有点低,使用的是v2版本。现在普通推荐使用Anaconda这样的工具安装虚拟环境来进行Python的依赖管理。不过根据PandasAI官网文档1提示,PandasAI 3.0仍然是beta版本,并且推荐使用Poetry管理Python依赖。所以这里笔者也就没有想升级到3.0,暂时先用稳定一定的2.X版本。

解决掉PandasAI 2.X的版本依赖问题之后,通过PandasAI连接DeepSeek进行智能数据分析的案例代码实现如下:

import pandas as pd
from pandasai import SmartDataframe
from pandasai.llm.base import LLM
import requests# 自定义DeepSeek大模型
class DeepSeekLLM(LLM):def __init__(self, api_url:str, api_key: str, model: str):super().__init__()self.api_url = api_urlself.api_key = api_keyself.model = model        def call(self, instruction, context: dict = None, **kwargs) -> str:  """PandasAI 用来向 LLM 模型发起请求的接口入口。Args:instruction (str): PandasAI 传入的 prompt,可能是 string 或自定义对象,表示用户的问题。context (dict, optional): 包含上下文信息(例如 DataFrame 元数据等),在部分 LLM 中可用。**kwargs: 保留接口向前兼容(比如未来增加其他参数时也能传入)。Returns:str: 执行指令后的结果输出。"""# 把复杂的 Prompt 对象变成字符串if not isinstance(instruction, str):instruction = str(instruction)# 请求头headers = {"Authorization": f"Bearer {self.api_key}",   # DeepSeek身份验证"Content-Type": "application/json"}# 兼容 OpenAI 的 Chat Completion API的对话消息格式messages = [{"role": "system", # 设定 LLM 的行为"content": "You are a helpful AI assistant for data analysis."},{"role": "user",  # 是实际的问题"content": instruction}]# 请求体payload = {"model": self.model,"messages": messages,"temperature": 0.0 # 值越低,回答的效果越稳定}# 发送post请求response = requests.post(self.api_url, headers=headers, json=payload)# 检查返回状态码,如果不是 200 则报错。if response.status_code != 200:raise Exception(f"DeepSeek API Error: {response.status_code}, {response.text}")# 解析返回结果result = response.json()return result["choices"][0]["message"]["content"]@propertydef type(self):return "deepseek-custom"# Sample DataFrame
sales_by_country = pd.DataFrame({"country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],"sales": [5000, 3200, 2900, 4100, 2300, 2100, 2500, 2600, 4500, 7000]
})# 用自定义的 DeepSeek LLM
llm = DeepSeekLLM(api_url = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",api_key="sk-xxx", model="deepseek-r1")df = SmartDataframe(sales_by_country, config={"llm": llm})result = df.chat('列出销售额最高的3个国家。')print(result)

如代码所示,关键的所在是需要自定义一个继承自LLM的能够连接DeepSeek的类DeepSeekLLM。其实PandasAI 2.X是可以使用提供了支持使用OpenAI的接口的,而连接DeepSeek的接口一般会兼容OpenAI。但是笔者尝试了之后不行,不能传入自定义的LLM地址。没办法只能自己自定义一个继承自LLMDeepSeekLLM类。

DeepSeekLLM类的关键就是call函数的实现,这是PandasAI用来向LLM模型发起请求的接口的入口。在这个函数实现中的关键就是通过兼容OpenAI的Chat API向自定义的DeepSeek服务发起post请求,具体的细节笔者已经在代码中进行注释,另外也可以查阅OpenAI API的相关文档。这里的实现并没有像《连接语言大模型(LLM)服务进行对话》一样使用openai模块或者LangChain框架,而是直接使用requests来发送HTTP请求,显得更加底层一点,不过原理都差不多。

最终运行的结果如下所示:

country  sales
0          China   7000
0          China   7000
1  United States   5000
2          Japan   4500

  1. PandasAI官方文档 ↩︎

http://www.dtcms.com/a/493204.html

相关文章:

  • 网站怎么创建网站备案信息代码在哪里找
  • 高负载php网站开发廊坊网站制作套餐
  • wordpress站点制作网站建设如何增加流量
  • Visual C++2010学习版(考试专用版)安装包下载及详细安装教程(永久使用)
  • 跟男友做网站旅游网页首页
  • 云相册网站怎么做的asp iis设置网站路径
  • 建网站公司哪里好建设银行社保卡网站在哪
  • 怎么看网站有没有被收录免费推广软件工具
  • 网站字体特效珠海网站建设尚古道策略
  • 深圳展览设计网站建设免费wordpress托管服务商
  • 沈阳网站制作 600元阿里云注册网站之后怎么做网站
  • 东莞市官网网站建设企业wordpress的登录
  • 营业执照上有以上除网站制作青浦网站制作su35
  • 做网站写概要设计wordpress转discuz
  • 网站app开发费用关键词分析软件
  • 新网域名网站网站域名注册空间
  • 乐从网站建设东莞网站开发哪家强
  • 大学生课程设计网站宜昌网站设计公司
  • 注册完域名之后怎么找到网站安康市110报警平台
  • 网站如何做关健词收录企业网站设计方式
  • 做网站 嵌入支付网站建设的研究背景
  • 优秀网站设计参考水果商城的设计与实现
  • wordpress为什么很卡如何优化关键词的方法
  • 电子商务运营网站用wordpress建仿站
  • 网站备案后要做什么营销类图片
  • 济南网站建设多少费用wordpress 手动 摘录
  • 网站宣传推广的目的北京知名vi设计公司
  • 十年经验网站开发公司软装设计图效果图
  • 网站如何在360做提交求职网站建设
  • 网站怎样才有流量合肥网站建设工作室