ChatGPT 代码解释器:它如何节省我的工作时间

简介: ChatGPT 代码解释器:它如何节省我的工作时间

2023 年 7 月 6 日,OpenAI 宣布 Code Interpreter 将在下周向 ChatGPT Plus 用户提供。它可能是增强 ChatGPT 功能的所有插件中最出色的。

代码解释器运行代码并允许上传数据,因此您可以使用它进行数据清理、分析、可视化和许多其他操作。它就像一个触手可及的数据分析师。

听起来太酷了?让我们继续。

我用它来完成一项任务,这可能需要几个小时才能完成。根据您的任务以及对 Python 库的熟悉程度,此任务甚至可能需要更长时间。

使用 ChatGPT,我只需编写几句话并上传两个 CSV 文件。

我将逐步引导您完成整个过程,以及代码解释器在各种任务(例如理解数据、清理和预处理数据以及创建数据可视化)方面的令人印象深刻的表现。

您需要先启用它

为了在聊天中使用代码解释器,您需要首先通过设置启用它。


如何启用代码解释器(作者提供的图片)


现在,当您开始新的聊天时,它就可用了。

任务

我打算创建一个世界地图可视化,用点的大小指示国家/地区,这些点的大小与国家/地区的人口成正比。

我有两个数据集,一个用于国家人口,另一个用于纬度和经度位置。

您可以轻松地在线找到这些数据集。

开始吧…

由于这是一项简单的任务,我没有花太多时间在即时工程上。这是我向 ChatGPT 请求的第一句话:




您可以使用提示窗口左侧的加号来上传数据集。




它首先读取数据集,这是显而易见的事情。还没有令人印象深刻!

# 由代码解释器生成的代码
import pandas as pd

# 将 CSV 数据加载到 pandas DataFrame中
population_data = pd.read_csv( '/mnt/data/country_population_historic.csv' )

# 显示DataFrame的前几行
population_data.head()

然后,ChatGPT 询问国家/地区位置:




我已经有了数据,所以我上传了它:


(图片由作者提供)


# Code Interpreter 生成的代码
# 加载国家坐标数据
country_coordinates = pd.read_csv( '/mnt/data/country_coordinates.csv' )

# 显示前几行
country_coordinates.head()

数据清洗和预处理

读取数据后的下一步是清理和预处理。我相信您已经听过很多次了,这一步通常需要花费最多的时间。

在创建世界地图可视化之前需要处理一些问题。ChatGPT 检测到它们并在不到一分钟的时间内提供了解决方案。相当令人印象深刻!


(图片由作者提供)


上面代码片段中的代码:

# 由代码解释器生成的代码
# 检查两个数据帧中的国家/地区名称是否一致
population_countries = set (population_data[ 'Country Name' ])
Cocoles_countries = set (country_coordinates[ 'name' ])

# 人口数据中但不在人口数据中的国家坐标数据
missing_in_cooperatives = Population_countries - Cocoles_countries

# 坐标数据中但不在人口数据中的国家
missing_in_population = Cocoles_countries - Population_countries

坐标数据集中缺少一些国家,人口数据集中也缺少一些国家。

ChatGPT 在上面的代码片段中做了什么:

  • 在两个数据集中创建国家/地区名称的 Python 集
  • 单独比较它们以找出集合中的差异

ChatGPT 不到一分钟就解决了这个问题:



上面代码片段中的代码:

# 由代码解释器生成的代码
# 将国家名称从人口数据集映射到坐标数据集
country_name_mapping = { 
    'Bahamas, The' : 'Bahamas' , 
    'Brunei Darussalam' : 'Brunei' , 
    'Cabo Verde' : 'Cape Verde',
    '刚果,民主党。众议员。” : '刚果[刚果民主共和国]' , 
    '刚果共和国' : '刚果[共和国]' , 
    "科特迪瓦" : "科特迪瓦" , 
    '捷克' : '捷克共和国' , 
    '埃及, 阿拉伯代表” :“埃及”,
    “冈比亚”:“冈比亚”、
    “中国香港特别行政区”:“香港”、
    “伊朗伊斯兰共和国” :“伊朗”、
    “韩国、民主党、人民代表” :“朝鲜”、
    “韩国” :“韩国”、
    “吉尔吉斯共和国”:“吉尔吉斯斯坦”、
    “老挝人民民主共和国”:“老挝”、
    “中国澳门特别行政区”:“澳门”、
    “密克罗尼西亚联邦”。圣。' : '密克罗尼西亚' ,
    : '马其顿 [前南斯拉夫马其顿共和国]' , 
    '俄罗斯联邦' : '俄罗斯' , 
    '圣多美和普林西比' : '圣多美和普林西比' , 
    '斯洛伐克共和国' : '斯洛伐克' , 
    '阿拉伯叙利亚共和国' : '叙利亚' , 
    '土耳其' : '土耳其' , 
    '委内瑞拉,RB' : '委内瑞拉' , 
    '也门共和国' : '也门' , 
    '斯威士兰' :
: Country_name_mapping}) 
# 删除坐标数据集中不存在的行
population_data_clean = Population_data_clean[population_data_clean[ 'Country Name' ].isin(coordinates_countries)] 
# 将人口数据与国家坐标数据
合并 merged_data = pd.merge(population_data_clean , Country_coordinates, left_on= 'Country Name' , right_on= 'name' ) 
# 仅保留必要的列
merged_data = merged_data[[ 'Country Name' , '2022' , 'latitude' , 'longitude' ]] 
# 重命名列清晰度
合并数据。列 = [ '国家', '人口' , '纬度' , '经度' ] 
merged_data.head()



现在我们的数据格式良好且干净。此步骤通常需要花费大量时间和人力。ChatGPT 大约一分钟就完成了。

创建可视化

ChatGPT 首先尝试使用 Matplotlib 库来完成此任务。然而,由于没有世界地图图像,它未能做到这一点:


(图片由作者提供)


然后,我只是要求它使用 Plotly,这也是我一开始的想法。


(图片由作者提供)

(图片由作者提供)


上面代码片段中的代码:

# 由代码解释器生成的代码importplotly.graph_objects 
as go #
创建散点地理图
Fig = go.Figure(data=go.Scattergeo( 
    lon = merged_data[ 'Longitude' ], 
    lat = merged_data[ 'Latitude' ], 
    text = merged_data[ '国家' ] + ': ' + merged_data[ '人口' ].astype( str ), 
    mode = '标记' ,
    标记 = dict (
        大小 = (merged_data[ '人口' ] / 1000000 ) ** 0.5 ,  # 取平方根以更好地可视化差异
        sizemode = 'diameter' , 
        sizeref = 1 , 
        sizemin = 4 , 
        color = merged_data[ 'Population' ], 
        colorscale = 'Viridis' , 
        colorbar_title = "Millions" , 
    ) ) 
) 
# 更新布局
Fig.update_layout( 
    title_text = '2022 年世界人口' , 
    geo = dict ( 
        showframe = False , 
        showcoastlines = True ,
        投影类型 = '等矩形'
     ) 
) 
Fig.show()

最后的话

我们所做的:

  • 读取数据集
  • 清理、预处理并合并它们
  • 创建交互式数据可视化

我们所要做的就是写两个句子(加上告诉 ChatGPT 使用 Plotly)。我认为这非常令人印象深刻!


相关文章
|
4月前
|
人工智能 自然语言处理 搜索推荐
微软开源基于ChatGPT的,超级文本代码智能体
【7月更文挑战第17天】微软的TaskWeaver是开源的LLM框架,聚焦领域特定数据分析与个性化需求。它以代码优先,将用户请求转为可执行代码,增强处理复杂任务的效率和准确性。通过用户定义插件实现定制,适应多种场景。然而,转化请求可能引入复杂性和错误,非技术用户使用插件有难度,且开源带来的安全与隐私问题需关注。[论文链接](https://arxiv.org/abs/2311.17541)**
64 4
|
2月前
|
JavaScript 前端开发 Java
ChatGPT与代码扫描
ChatGPT与代码扫描,感觉英文回答比中文好
28 5
|
3月前
|
数据可视化 Java
使用ChatGPT实现可视化操作扫雷小游戏 【java代码实现】
这篇文章介绍了使用Java语言和Swing框架实现的扫雷小游戏的详细代码和实现过程。
使用ChatGPT实现可视化操作扫雷小游戏 【java代码实现】
|
2月前
|
调度
CPU调度器实现提示:针对特定体系结构代码【ChatGPT】
CPU调度器实现提示:针对特定体系结构代码【ChatGPT】
|
3月前
|
SQL 人工智能 搜索推荐
如何有效利用ChatGPT写代码?
如何有效利用ChatGPT写代码?
|
2月前
|
安全 Linux 调度
保持内核代码的可抢占安全 【ChatGPT】
保持内核代码的可抢占安全 【ChatGPT】
|
2月前
|
存储 Linux 开发工具
提交补丁:将您的代码提交到内核的基本指南 【ChatGPT】
提交补丁:将您的代码提交到内核的基本指南 【ChatGPT】
|
2月前
|
机器学习/深度学习 Linux 开发工具
Linux内核开发流程指南 - 5. 编写正确的代码【ChatGPT】
Linux内核开发流程指南 - 5. 编写正确的代码【ChatGPT】
|
2月前
|
缓存 编译器 Linux
Linux内核开发流程指南 - 4. 编写正确的代码【ChatGPT】
Linux内核开发流程指南 - 4. 编写正确的代码【ChatGPT】
|
3月前
|
数据采集 iOS开发 Python
Chatgpt教你开发iPhone风格计算器,Python代码实现
Chatgpt教你开发iPhone风格计算器,Python代码实现