从数据工程师到提示工程师:使用AI解决数据准备任务

news2025/1/12 6:00:59

数据工程占据了数据科学过程的很大一部分。在CRISP-DM中,这个过程阶段被称为“数据准备”。它包括数据摄取、数据转换和数据质量保证等任务。在本文中,我们使用ChatGPT和Python解决了典型的数据工程任务。通过这样做,我们探索了数据工程与新的提示工程学科之间的联系。

介绍

2022年5月,Stephen Wolfram和Lex Fridman发表了一次富有洞见的演讲,题为“编程是否已死?”他们讨论了高级语言在未来是否仍将被开发人员使用的问题。根据Wolfram的说法,许多编程任务可以通过大型语言模型(LLM)自动化。在撰写本文时,这种模型的最显著例子是ChatGPT。自2022年底推出以来,它产生了惊人的结果。指定由LLM执行的操作被称为“提示工程”。如果Wolfram是对的,至少部分软件开发将从编写代码转变为编写提示。

在数据科学中,数据准备可能是一项耗时且繁琐的任务。那么为什么不尝试使用LLM自动化它呢?在接下来的章节中,我们将使用ChatGPT和Python解决不同的数据工程问题。我们没有自己编写Python代码,而是使用提示工程生成了它。以下案例是基于可用ChatGPT中文版本-知否AI问答(GPT-3.5)进行。

创建数据框架

让我们从一个简单的问题开始,从样本数据集创建一个Pandas数据框架。表1包含了例如世界银行提供的国家指标。

为了从上面的样本创建一个数据框架,我们与ChatGPT开始了一次新的对话,并发布了以下提示:

创建一个 Pandas 表格,数据如下:

大洲,国家,年份,类别,变量,值

亚洲,中国,2022,经济,GDP,18.1

亚洲,中国,2022,人口统计,人口,1412

北美洲,美国,2022,经济,GDP,25.5

北美洲,美国,2022,人口统计,人口,333

欧洲,德国,2022,经济,GDP,3.9

欧洲,德国,2022,人口统计,人口,84

作为回应,模型生成了以下Python代码:

当在python运行以上脚本,输出如下:

尽管我们在实验中使用了一个样本,但下面部分生成的代码原则上也可以处理更大的数据集。

数据框架的透视

对于数据科学来说,我们在第一个提示中创建的表格结构并不理想。相反,所谓的“平面表格”会更方便。在表格1中,指标“GDP”和“人口”由名为“变量”和“值”的两列表示。相比之下,平面表格将为每个指标单独包含列,如表格2所示。

将表格1的格式转换为表格2的格式称为“透视”。让我们尝试使用ChatGPT来解决这个任务。为此,在我们的对话中发布了第二个提示:

将表格转换为以下格式:

大陆,国家,年份,GDP,人口

亚洲,中国,2022,18.1,1412

北美洲,美国,2022,25.5,333

欧洲,德国,2022,3.9,84

上述消息基于所需数据格式的示例。或者,我们也可以用纯语言方式表达我们的请求。与经典编程一样,提示工程可以有多种实现目标的替代解决方案。寻找最佳方法将是一个令人兴奋的近期任务。根据我们的提示,ChatGPT中文版-知否AI问答将调整Python代码如下:

运行上述代码将输出所需格式的表格:

丰富数据框架

另一个典型的数据工程任务是通过附加信息来丰富数据集。为此,我们要求ChatGPT通过以下提示将ISO国家代码添加到我们的数据中:

对于上述表格中的每个国家,添加其ISO代码

提示4:添加国家代码

输出结果:

衍生新列

接下来,我们将通过将一个国家的GDP除以其人口数量来衍生出一个新的列"人均GDP"。为此,我发送了以下提示:

通过将一个国家的GDP除以其人口数量来衍生出一个新的列"人均GDP"

提示5: 衍生新列

作为响应,模型调整了代码,如下所示:

输出结果显示脚本产生了预期的结果。

结论

不可否认,我们的实验是基于一个简单的数据集。尽管如此,结果仍然令人瞩目。我们在不编写一行代码的情况下完成了几个数据工程任务。ChatGPT能够在大多数情况下正确实现我们的提示。即使模型犯了错误,它也能够反思并进行修正。和软件开发一样,生成的代码必须经过测试。此外,它可能需要重构和优化。在人工智能时代,仍然建议使用pylint。总结起来,我们必须同意沃尔夫勒姆的观点:未来,数据工程的重要部分将从编码转向提示工程。这种新的方法不会取代数据工程师,而是使他们更加高效。

以上的截图均来源于我们的AI助手: 知否AI问答,一个基于OpenAI的GPT-3.5版本的平台,它提供专业、高速、稳定的文案生成与问答功能。微信扫码一键登录,无需其他复杂验证,新用户可免费试用3天。

欢迎体验ChatGPT中文版-知否AI问答,为您提供专业、高速、稳定的文案生成与问答服务!

产品支持60余个应用场景,包括论文助手、公司文案、营销文案、多语言翻译、行政公文、科研课题、招投标书、辅助编程、学习与教育、生活娱乐等各个领域。

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

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

相关文章

Redis集群安装之分片集群

1.为什么使用分片集群 主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决: 海量数据存储问题高并发写的问题 哨兵模式本质是依旧是主从模式,在主从模式下我们可以增加slave节点来拓展读并发能力,但是没办法扩展写能力…

项目笔记-瑞吉外卖(全)

文章目录 1.业务开发day011.软件开发整体介绍2.项目整体介绍:star:3.开发环境搭建4.登录功能:star:4.1代码实现 5.退出功能6.页面效果出现 day021.完善登录功能2.新增员工功能3.启用禁用员工信息:star:(自定义消息转换器使用)4.编辑员工信息 day031.公共字段自动填充2.新增分类…

第11届蓝桥杯Scratch国赛真题集锦

编程题 第 1题 问答题 3D打印小猫 题目说明 背景信息:3D打印技术,它与普通打印工作原理基本相同,打印机内装有液体或粉未等“打印材料”,与电脑连接后,通过电脑控制把“打印材料”一层层叠加起来,最终把计算机上的蓝图变成实物。 编程实现:通过滑杆控制小猫造型变化,按下…

聚类算法以及聚类算法模型评估的介绍

一、聚类算法的介绍 1.什么是聚类算法 聚类算法是一类无监督学习算法,用于将数据集中的对象分组(或聚类)成具有相似性的集合。聚类算法不依赖于预定义的类别标签,而是根据数据的内在特点将相似的数据点聚集在一起。聚类算法的目…

分布式网络通信框架(三)——protobuf使用案例

例子1 test.proto文件如下: syntax "proto3"; // 声明了protobuf版本package fixbug; // 声明了代码所在的包(生成C代码后就是namespace 名字)// 定义登录消息类型 message LoginRequest {string name 1; // 1 代表name是这个m…

详解uni-app项目运行在安卓真机调试

详解uni-app项目运行在安卓真机调试 uni-app项目运行在安卓真机调试 文章目录 详解uni-app项目运行在安卓真机调试前言为什么要用真机调试?真机调试操作步骤总结 前言 UNI-APP学习系列之详解uni-app项目运行在安卓真机调试 为什么要用真机调试? 因为安…

mybatis-plus实现非法sql拦截(防止全表更新与删除)

文章目录 什么是非法sql:拦截的意义是:使用:1、在pom文件中添加依赖2、注入MybatisPlusInterceptor类,并配置BlockAttackInnerInterceptor拦截器 测试: 什么是非法sql: 不带where子句的delete和update&…

C++反向迭代器

C反向迭代器 📟作者主页:慢热的陕西人 🌴专栏链接:C 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容介绍反向迭代器的概念和模拟实现一个通用的反向…

HTB-Escape

HTB-Escape 信息收集立足sql_svc -> RyanRyan -> Administrator扩展NTLM简单介绍 信息收集 可以从中获取两个域名。 看看 rpc服务是否有可以收集的信息。 看看samba。 rpc的Public共享文件有一个关于SQL Server的pdf。 阅读它! 从中能得到几个用户名…

unix环境高级编程 第一章 UNIX基础知识 Go实现代码

ls命令的Go语言实现 package mainimport ("fmt""os" )func main() {if len(os.Args) ! 2 {panic("参数数量不足")}targetPath : os.Args[1]if dirList, err : os.ReadDir(targetPath); err nil {for _, dirInfo : range dirList {fmt.Println(…

SpringBoot集成ElasticSearch

文章目录 前言一、ElasticSearch本地环境搭建二、SpringBoot整合ElasticSearch1.pom中引入ES依赖2.application.yaml配置elasticsearch3.ElasticSearchClientConnect连接ES客户端工具类4.ElasticSearchResult封装响应结果5.Person实体类6.Person实体类7.ElasticsearchControlle…

OS之磁盘调度算法

目录 一、先来先服务(FCFS) 基本思想 案例 二、最短寻道时间优先(SSTF) 基本思想 案例 饥饿现象 三、扫描算法(SCAN) 基本思想 案例 四、循环扫描算法(CSCAN) 基本思想 案例 一、先来先服务(FCFS) 基本思想 根据进程请求访问磁盘的先后次序来进行调度 案例 二、…

数据结构与算法04:队列

目录 什么是队列? 循环队列 双端队列 阻塞队列 队列的应用场景 每日一练 什么是队列? 在 上一篇文章 中讲述了栈:先进后出就是栈,队列刚好相反,先进先出的数据结构就是队列,还是拿纸箱子来举例&…

《数据库应用系统实践》------ 校友会信息系统

系列文章 《数据库应用系统实践》------ 校友会信息系统 文章目录 系列文章一、需求分析1、系统背景2、 系统功能结构(需包含功能结构框图和模块说明)3.系统功能简介 二、概念模型设计1.基本要素(符号介绍说明&#x…

DJ6-6/7 文件共享和访问控制、文件保护

目录 6.6 文件共享和访问控制 1、同时存取 2、存取权限 3、文件共享的实现 6.6.1 基于索引结点的共享方式 1、基本思想 2、具体操作 6.6.2 利用符号链接实现文件共享 6.6.3 利用 URL 实现文件共享 6.7 文件保护 6.6 文件共享和访问控制 文件共享的有效控制涉及…

腾讯云服务器可用区是什么?怎么选择随机吗?

腾讯云服务器可用区什么意思?可用区(Zone)是指腾讯云在同一地域内电力和网络互相独立的物理数据中心,一个可用区故障不会影响另一个可用区的正常运行,所以可用区用于构建高容灾、高可靠性应用。腾讯云服务器网来详细说…

如何在华为OD机试中获得满分?Java实现【截取字符串】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

PCA主成分分析 | 机器学习

1、概述(Principal componet analysis,PCA) 是一种无监督学习方法,是为了降低特征的维度。将原始高维数据转化为低维度的数据,高维数据指的是数据的特征维度较多,找到一个坐标系,使得这些数据特征映射到一个二维或三维的坐标系中…

Python爬虫教程:如何爬取教育漏洞报告平台中的漏洞报告?

部分数据来源:ChatGPT 引用 在本教程中,我们将使用 Python 语言和 requests、lxml 库来分析和爬取教育漏洞报告平台的数据。 1. 爬取网站数据 首先,我们需要从教育漏洞报告平台上获取需要的数据。我们可以通过 requests 库向特定网址发送请求,获取响应内容。 import req…

路径规划算法:基于布谷鸟优化的路径规划算法- 附代码

路径规划算法:基于布谷鸟优化的路径规划算法- 附代码 文章目录 路径规划算法:基于布谷鸟优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法…