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

数据工程占据了数据科学过程的很大一部分。在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余个应用场景,包括论文助手、公司文案、营销文案、多语言翻译、行政公文、科研课题、招投标书、辅助编程、学习与教育、生活娱乐等各个领域。

猜你喜欢

转载自blog.csdn.net/cloudwizdom/article/details/130915866