大家好,我是Yuan,这篇文章次要是介绍,借助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 询问国家/地区地位:
我曾经有了数据,所以我上传了它:
# 由代码解释器生成的代码# 加载国家坐标数据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', '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()
清理和预处理的数据
当初咱们的数据格式良好且洁净。此步骤通常须要破费大量工夫和人力。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()
它无奈在浏览器中显示交互式世界地图,但胜利编写了生成它的代码。我所要做的就是将代码复制并粘贴到 Jupyter 笔记本中。
这是最终后果:
各国人口的交互式世界地图
总结
咱们所做的:
- 读取数据集
- 清理、预处理并合并它们
- 创立交互式数据可视化
咱们所要做的就是写两个句子(加上通知 ChatGPT 应用 Plotly)。我认为这十分令人印象粗浅!
我还创立了一个存储库,其中蕴含一个 Jupyter 笔记本,其中蕴含所有代码片段和应用的数据集。请随便下载并从新生成可视化成果。这也是数据清理的一个好习惯。
本文由mdnice多平台公布