借助ChatGPT的「代码解释器」,菜鸟玩下数据分析

大家好,我是Yuan,这篇文章主要是介绍,借助ChatGPT的「代码解释器」,如何进行数据分析。

概述

代码解释器对于经常使用代码和数据的专业人士和爱好者都非常有用,这是一个多功能的工具,可以用于分析数据、创建图表、编辑文件、执行数学运算等等。

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

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

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

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

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

您需要先启用它

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

alt

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

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

任务

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

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

您可以轻松地在线找到这些数据集。如果没有,我将它们放在我的数据集存储库中。

开始

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

alt

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

alt 使用 + 上传数据集

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

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

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

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

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

alt

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

alt
# 由代码解释器生成的代码
# 加载国家坐标数据
country_coordinates = pd.read_csv( '/mnt/data/country_coordinates.csv' ) 

# 显示前几行
country_coordinates.head()

数据清洗和预处理

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

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

alt

上面代码片段中的代码:

# 由代码解释器生成的代码
# 检查两个数据帧中的国家/地区名称是否一致
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',
    'Congo, Dem. Rep.''Congo [DRC]',
    'Congo, Rep.''Congo [Republic]',
    "Cote d'Ivoire""Côte d'Ivoire",
    'Czechia''Czech Republic',
    'Egypt, Arab Rep.''Egypt',
    'Gambia, The''Gambia',
    'Hong Kong SAR, China''Hong Kong',
    'Iran, Islamic Rep.''Iran',
    "Korea, Dem. People's Rep."'North Korea',
    'Korea, Rep.''South Korea',
    'Kyrgyz Republic''Kyrgyzstan',
    'Lao PDR''Laos',
    'Macao SAR, China''Macau',
    'Micronesia, Fed. Sts.''Micronesia',
    'Myanmar''Myanmar [Burma]',
    'North Macedonia''Macedonia [FYROM]',
    'Russian Federation''Russia',
    'Sao Tome and Principe''São Tomé and Príncipe',
    'Slovak Republic''Slovakia',
    'Syrian Arab Republic''Syria',
    'Turkiye''Turkey',
    'Venezuela, RB''Venezuela',
    'Yemen, Rep.''Yemen',
    'Eswatini''Swaziland'
}

#清理人口数据集
population_data_clean = population_data.replace({"Country Name": 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.columns = ['Country''Population''Latitude''Longitude']

merged_data.head()
alt

清理和预处理的数据

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

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

alt

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

alt
alt

上面代码片段中的代码:

# 由代码解释器生成的代码
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 World Population' , 
    geo = dict ( 
        showframe = False , 
        showcoastlines = True ,
        projection_type = 'equirectangular'
     ) 


Fig.show()

它无法在浏览器中显示交互式世界地图,但成功编写了生成它的代码。我所要做的就是将代码复制并粘贴到 Jupyter 笔记本中。

这是最终结果:

alt

各国人口的交互式世界地图

总结

我们所做的:

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

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

我还创建了一个存储库,其中包含一个 Jupyter 笔记本,其中包含所有代码片段和使用的数据集。请随意下载并重新生成可视化效果。这也是数据清理的一个好习惯。

本文由 mdnice 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序云开发———云数据库

1.微信小程序注册 官方注册文档:[https://developers.weixin.qq.com/miniprogram/introduction/] 微信小程序注册地址:[https://mp.weixin.qq.com/] 进去以后点击立即注册 ​​​​​​​ 点击立即注册后会转跳到选择注册的帐号类型 ,在这个页面…

小程序(四):微信登录功能的实现+云开发数据库

目录 好文推荐: 完整代码gitee仓库查看:https://gitee.com/CMD-UROOT/xzyy.git 一、微信登录 1.点击按钮(或其他),获取用户信息(昵称、头像等)。 2.通过微信官方文档搜getUserProfile 3.给点击登录绑定事件 点击登…

微信小程序云开发之云函数的大坑

不知道大家在弄使用云函数的时候有没有看日志的习惯,看这个日志是要钱的,真是无语了,微信开发者工具上面没有任何的提示,我是今天敲代码的时候突然那发现云函数查不出数据了,打开控制台发现说我欠费了,但是…

网页中文翻译成英文简单方法

利用谷歌浏览器的翻译功能可以比较快键的把网页翻译成其他语言。 首先,打开需要翻译的网页。右键一键翻译。 会出现这个选择框,选择选项 改成需要的语言,再按f12。 选择copy 整个html元素,建立一个记事本,复制粘贴。放…

利用python批量将excel中文翻译成英文

目录 操作过程中不断遇到新的问题,思路的转换过程背景第一天 操作过程第二天正则表达式是个好东西第三天第四天第五天遇到的小问题操作过程中不断遇到新的问题,思路的转换过程 背景 今天接到一个任务,需要将EXCEL文件中的中文翻译成英文,由于表格内容非常大,我想着 这要…

用python做一个文本翻译器,自动将中文翻译成英文,超方便的

translate非标准库是python中可以实现对多种语言进行互相翻译的库,使用时只需要设置目标语言(比如:中文、英文)后,会自动将原始文本翻译成我们需要的目标语言。 【阅读全文】 使用pip的方式安装translate非标准库。 …

无手机号注册Outlook邮箱方法

目前,拥有电子邮件地址已成为一项基本需求,因为有必要其他平台上注册,App注册等等。 创建电子邮件帐户很简单,但同时在安全性方面可能会变得有些微妙,因为我们的电子邮件通常包含与我们公开使用的银行数据、家庭数据或…

配置cloudreve邮箱发信用outlook邮箱时的权限异常,做个记录

介绍 之前用163的默认邮箱发信,改用outlook的自定域名后缀发信但是居然后台出现错误,现现以下错误提示 既然发送失败,第一时间就是拉取日志查看异常原因了,异常原因“Caused by: javax.mail.AuthenticationFailedException: 535…

.Net使用163smtp发送邮件时错误:邮箱不可用. has no permission解决方法

C#实现简单邮件发送代码如下 public static void SendAsync(string emailTo, string subject, string mailBody){var msg new MailMessage();msg.To.Add(emailTo);//msg.From new MailAddress(_userNameForEmail, "显示的发件人名称", System.Text.Encoding.UTF8);…

Foxmail登陆报错outlook邮箱报错:foxmail,C4 NO LOGIN failed.

1 事件 Foxmail登陆报错outlook邮箱报错: foxmail,C4 NO LOGIN failed. 2 原因 这是由于outlook邮箱设置了双重验证登陆,foxmail无法弹出验证登陆窗口 3操作方法 方法一:更换邮箱客户端 方法二: (1)网页登陆…

文心一言 VS chatgpt (13)-- 算法导论3.1 8题 3.2 1题

八、可以扩展我们的记号到有两个参数n和m的情形,其中的n和m可以按不同速率独立地趋于无穷。对于给定的函数g(n, m),用O(g(n, m))来表示以下函数集: O(g(n, m)) { f(n, m): 存在正常量c、和,使得对所有n>n0或m>m0&#xff…

Windows中文账户名修改为英文

原理:使用第三者管理员账户对当前中文名管理员账户的名称进行修改。 1、创建新的管理员账户 在Windows开始菜单处点击右键,选择Windows PowerShell(管理员),输入以下命令,创建tempuser管理员用户&#xff…

win10修改用户名||user中文名改英文名

操作可能有系统重装风险,修改需谨慎! 1.修改注册表 winR 打开regedit: 打开路径:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion,双击RegisteredOwner将其值改为要改成的新名字name&#…

chatgpt赋能python:Python聊天机器人:让沟通变得更加智能

Python 聊天机器人:让沟通变得更加智能 随着人工智能的快速发展,聊天机器人正在变得越来越流行。Python 作为一种简单易用的编程语言,也在聊天机器人的开发中得到了广泛应用。本篇文章将介绍 Python 聊天机器人,并探讨它的优势以…

【信息安全】shamir(t,n)密钥共享

一、应用场景 有一个房间,里面放的是某公司的机密文件。如何设计该房间的门钥匙比较合理呢?有以下几种可选方案。 方案一:给其中一个人,只有这个人能够打开该房间。方案二:给n个人,只有这n个人都到齐了&am…

公钥密码体制概述

1976年,Whitefield Diffie和Martin Hellman在论文《密码学的新方向》(New Directions in Cryptography)中提出一个设想:用户A有一对密钥:加密密钥,和解密密钥,公开,保密。若B要给A发送加密信息&…

GPG生成密钥对(Windows)及应用

安装Gpg4win,下载链接:https://download.csdn.net/download/zyhlwzy/11099228 1、生成密钥对 C:\WINDOWS\system32>gpg --gen-key gpg (GnuPG) 2.0.30; Copyright (C) 2015 Free Software Foundation, Inc. This is free software: you are free to…

密钥类型详解大全

0x01 生成随机密钥 随机密钥可以大大增加密钥的安全性,生成随机密钥这里要用到随机数生成器(RNG),是一个用于生成随机数的程序或硬件 随机数在密码学的很多算法中都是必不可少的,如果某些算法的密钥不能采用随机生成的…

hutool国密sm2算法使用, 正确的秘钥生成签名及验签,签名为64字节

hutool工具类: 在糊涂提供的国密算法,需要通过椭圆曲线生成秘钥,且当前业内私钥长度为固定32字节,公用固定长度为64字节。在参考hutool官方文档中的国密算法的例子,发现生成的秘钥非常长,远大于32字节和64…

通信加密和解密,公钥,私钥,CA

监听模式:打开ip和端口=套接字 等待别人来连接 为众所周知的服务--固定的端口<1024 客户端程序都是打开一个大于40&#…