数据科学手把手:碳中和下的二氧化碳排放分析 ⛵

简介: 气候是全球性的话题,本文基于owid co2数据集,分析了世界各地的二氧化碳排放量,并将二氧化碳排放的主要国家以及二氧化碳排放来源进行了可视化。

💡 作者: 韩信子@ ShowMeAI
📘 数据分析实战系列https://www.showmeai.tech/tutorials/40
📘 本文地址https://www.showmeai.tech/article-detail/322
📢 声明:版权所有,转载请联系平台与作者并注明出处
📢 收藏 ShowMeAI查看更多精彩内容

ShowMeAI在本篇内容中整理了一个数据科学学习的基本项目,我们会分析世界各地的二氧化碳排放量,我们可以看到二氧化碳排放的主要国家以及导致二氧化碳排放的不同来源。这也是『碳中和』大环境下大家关心的主题之一。

大家可以使用本地的jupyter notebook来运行我们下述代码,也可以使用 Google Colab 或 Kaggle notebook来运行。本项目使用的 🏆owid co2 data数据集,大家可以通过ShowMeAI的百度网盘下载获取。

🏆 实战数据集下载(百度网盘):公众号『ShowMeAI研究中心』回复『 实战』,或者点击 这里 获取本文 [[23]碳中和背景下的二氧化碳排放数据分析]( https://www.showmeai.tech/article-detail/322)owid co2 data数据集

ShowMeAI官方GitHubhttps://github.com/ShowMeAI-Hub

💡 数据处理

数据分析处理涉及的工具和技能,欢迎大家查阅ShowMeAI对应的教程和工具速查表,快学快用。

首先,我们将导入库:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import plotly.express as px

读取数据:

dataset = pd.read_csv('owid-co2-data.csv')

查看数据:

有两个核心的函数可以帮助我们查看数据基本形态:

dataset.head() :显示数据集的前5行。 如果您想查看更多行,调整括号中数字即可。例如dataset.head(10)查看前10行 
dataset.shape :显示数据集的行数和列数 

我们本次分析的数据集有 25204 行和 58 列。

删除列:

我们可以做一些数据处理,比如删除一些数据分析中不适用的字段/列。

df = dataset.drop(columns=[ 'consumption co2','co2 growth _prect','co2 growth_abs' ])
df.head()

熟悉pandas的同学也知道,我们也可以直接通过字段名选择需要分析的字段,如下代码所示:

df1 = df[['country', 'year','co2','coal_co2','cement _co2', 'flaring_co2','gas_co2','oil _co2', 'other industry co2','methane', 'nitrous_oxide', 'population' ]]
df1

我们可以通过pandas的条件选择来选取数据子集:

final df = df1[df1['year' ]>1995]
final df

可以通过isin等函数来框定类别型字段的取值,例如下述代码:

final_df = final_df[(final_df['country'].isin(['United States', 'Africa', 'Antartica','South Korea', 'Bangladesh', 'Canada', 'Germany', 'Brazil', 'Argentina','Japan', 'India', 'United Kingdom', 'Saudi Arabia', 'China', 'Australia','Russia']) & (final_df['co2'] > 0))]
final_df

检查缺失值:

final_df.isnull().sum()

💡 数据分析&可视化

我们将根据我们的数据集绘制图表并分析一些结果。 我们绘制一下随时间线的co2排放趋势图:

px.line(dataset, x = 'year', y = 'co2', color='country')

我们按照co2排放量为大小绘制散点图,如下

px.scatter(dataset[dataset['year']==2019], x="co2_per_capita", y="energy_per_capita", size="co2", color="country", hover_name="country", log_x=True, size_max=60)

选出各大洲的数据

continent_data =  dataset[(dataset['country'].isin(['Europe', 'Africa', 'North America', 'South America', 'Oceania', 'Asia'])) & (dataset['co2'] > 0)]
continent_data

从各大洲来看的占比情况如下

px.pie(continent_data, names='country', values='co2')

下面,我们将根据国家和 Co2 列绘制饼图,看看哪些国家的 Co2 排放量最高。

px.pie(final_df, names='country', values='co2')

我们可以看到中国、美国、印度都是主要的co2排放大国。如果我们根据二氧化碳的来源进一步分析并仅看 2020 年,那么我们将得到以下结果:

final df 2020 = final _df[(final_df[ 'year' ]==2020) ]
final df 2020
final df 2020[['country','coal_co2','cement_co2','flaring _co2','gas_co2', 'oil _co2','other_ industry co2']].plot(x='country', kind='bar',figsize=(9,5),width=0.9)
plt.title(‘'2020 CO2 consumption')
plt.xlabel('Countries' )
plt.ylabel('CO2 measured in million tonnes')

上面的结果中,我们可以看到,三个主要的 Co2 来源是 coal_co2、oil_co2 和 gas_co2。 我们针对这三个主要来源做一点绘图分析,结果会更清晰:

final_df_2020[(['country','coal_co2','gas_co2','o0il_co2')].plot(x='country', kind='bar' ,figsize=(9,5),width=0.9)
plt.title('2020 CO2 consumption')
plt.xlabel('Countries')
plt.ylabel('CO2 measured in million tonnes')

如果我们选定美国进行进一步分析:

final_df_US = final_df[(final_df['country']=='United States']

final_df_US[['year','coal_co2','gas_co2','0il_co2']].plot(x='year', kind='bar',figsize=(10,6),width=0.9)
plt.title('1996 onwards CO2 emission in United States')

plt.xlabel('Year' )
plt.ylabel(‘'CO2 measured in million tonnes')

图例显示,在美国,coal_co2 和 oil_co2 随着时间的推移而减少,但 gas_co2 多年来一直在增加。

💡 总结

全球气候是全世界都很关心的主题,本篇内容是 Co2 排放的一些简单分析和可视化,大家可以基于上述数据与字段做进一步分析。全球变暖是一个大问题,每个国家都在共同努力,营造更好的环境。

参考资料

目录
相关文章
|
编解码 前端开发 UED
前端开发中的跨平台适配解决方案探讨
【2月更文挑战第8天】 在当今多样化的设备和屏幕尺寸下,前端开发人员面临着跨平台适配的挑战。本文将深入探讨目前常见的跨平台适配解决方案,并对比它们的优缺点,帮助开发者更好地选择适合自己项目的方案。
|
缓存 安全 网络安全
解锁网站速度与安全:CDN 使用指南及免费平台推荐
在互联网时代,网站的速度和安全性至关重要。CDN(内容分发网络)通过全球缓存节点提升访问速度、降低延迟,并提供安全防护。本文详解CDN的作用与适用场景,推荐几款免费CDN平台,如阿里云、鸟盾安全CDN等,助您选择合适的CDN服务,保障网站性能与安全。
1360 94
|
11月前
|
数据采集 监控 API
淘宝淘口令 API 接口全攻略
### 淘口令 API 及相关服务简介 **一、淘口令 API(item_password)** - **功能**:将淘口令转换为商品链接或获取商品信息,支持生成自定义淘口令。 - **申请流程**:注册账号、创建应用、获取凭证、申请权限。 - **调用示例(Python)**:通过签名和请求参数调用接口,生成淘口令。 **二、第三方 API 服务** - **适用场景**:简化开发流程,支持高佣转链、淘口令解析等功能。 - **推荐接口**:万能淘口令生成、淘口令解析真实 URL。
|
人工智能 Linux iOS开发
本地部署大模型DeepSeek并通过Infortress App远程访问
本地部署DeepSeek大模型后,如何在外网用手机随时随地访问?无需复杂设置,通过Infortress App即可轻松实现!只需三步:安装Infortress服务端、一键部署DeepSeek大模型、安装手机/电脑客户端。Infortress支持纯图形化操作,适合新手,还自带内网穿透功能,跨网络访问无忧。让本地AI随身携带,数据掌控在手,随时随地使用!
|
机器学习/深度学习 数据采集 算法
基于机器学习预测未来的二氧化碳排放量(随机森林和XGBoost)
基于机器学习预测未来的二氧化碳排放量(随机森林和XGBoost)
932 3
|
SQL 安全 Java
Burpsuite Extender拓展功能实战
Burpsuite Extender拓展功能实战
2022 如何删除GitHub上的代码仓库(详细图解过程 对英文初学者友好)
这篇文章提供了一个对英文初学者友好的删除GitHub代码仓库的详细图解过程,但实际内容似乎与标题不符,主要是介绍了如何在GitHub上创建代码仓库的步骤,包括注册账号、创建新仓库、填写仓库信息、设置仓库可见性以及添加README文件等,并提供了相关操作的引用链接。
2022 如何删除GitHub上的代码仓库(详细图解过程 对英文初学者友好)
|
边缘计算 安全 物联网
未来互联网架构的演变
【8月更文挑战第16天】随着科技的不断进步,互联网作为现代社会不可或缺的基础设施,其架构也在不断地发展与演变。本文将探讨未来互联网架构可能的变化方向,包括边缘计算、软件定义网络(SDN)、网络功能虚拟化(NFV)等技术趋势,以及这些技术如何影响互联网的稳定性、安全性和效率。同时,文章还将讨论这些变革对用户隐私保护和数据治理的潜在影响,并展望互联网架构的未来发展趋势。
|
传感器 监控 数据挖掘
基于STM32的智能城市环境监测系统设计与实现
基于STM32的智能城市环境监测系统设计与实现
817 0
|
JavaScript
封装echarts china map geo实现dispatch触发geoSelect事件高亮显示某个省份和城市,并定义复杂样式
封装echarts china map geo实现dispatch触发geoSelect事件高亮显示某个省份和城市,并定义复杂样式