【大数据实训】python石油大数据可视化(八)

2023-12-22 02:15

本文主要是介绍【大数据实训】python石油大数据可视化(八),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2014到2020年石油加工产品产量数据处理分析

一、任务描述

石油是工业的命脉。

一直到2020年,我国原油产量基本处于平稳的状态,大部分原油来自国外进口;中国原油加工产量在华东、东北地区占比较大,华南地区相对较少。原油的加工企业对原油的加工有很大的影响,中国石油营业收入及净利润也十分可观。

本课题的目标是用python编程,抓取有关网站的数据,并将获取数据保存到csv文件和excel文件中,然后使用python对数据进行清洗及处理,利用python可视化,结合数据处理与分析,获得数据的统计分析结果。

img img

图1 2014-2020年中国原油加工产量信息

**二、**数据获取与清洗

1、数据描述

数据来源:2020年中国原油加工产业现状分析、2019年中国原油加工量产量及格局分析(当前网络上暂无2020年数据,故爬取了2019年数据)

数据获取:2014-2020年中国原油产量统计、中国各地区原油加工比例。

2、使用工具

python是一种功能丰富的语言,它拥有一个强大的基本类库和数量众多的第三方扩展。本次报告,使用到的库有:

1)requests库

2)BeautifulSoup4库

3)csv库

4)pandas库

3、数据获取步骤

第一步:从网页上获取HTML内容。

第二步:分析网页内容并提取有用数据

第三步:将获得的数据写入Excel文件。

4、程序代码

  1. 获取数据代码如下

文件夹名称:报告

文件名称: 石油加工产品产量分析

img

图2 爬虫程序及运行结果

  1. 将获得各省原油加工产量以及各种油产量放入csv文件中,使用的函数代码如下:

img

图3 存储函数

5 数据清洗后保存到Excel和csv文件,使用的函数、Excel文件截图,存储位置如图4、5、6、7所示:

imgimg

图4 数据清洗并存储函数

img

图5 各种油的产量的excel文件截图

img

图6 各省油产量的excel文件截图

img

图7 存储位置截图

(默认存储到与py文件同目录的位置)

**、**数据处理和分析

1、数据可视化工具

python是一种功能丰富的语言,它拥有一个强大的基本类库和数量众多的第三方扩展。报告中使用Matplotlib库以及pyecharts库的Map库实现了数据可视化。

2、先用python 对2014-2020年各种油产量以及2019年各省油产量数据进行可视化处理,所用的函数代码以及柱状图如图8、9所示。

img

imgimg

图8 使用函数代码截图

imgimg

图9 各种油加工产量以及各省份加工原油产量

3、统计各种加工油产量以及各省市油产量数据,可视化后,画出折线图、饼状图如图10所示使用的代码如图11所示:

注明:代码本将七种油逐年产量数据均画出饼状图、折线图,因图数量过多,不全予以展示。

img

img

图10 各种油加工产量以及各省份加工原油产量

imgimg图11 使用的函数代码

4、特别地,我们安装pyecharts库将2019年各省油的产量在整个中国地图中呈现出来,观看时只需要将鼠标移到对应的省份,这样观看更加直观和方便。(其中山西、重庆、贵州、西藏、台湾暂无数据)代码及成果如下,结果如图

**、**关键问题及对策

1、*爬取时的问题*

问题描述:找到要爬取的网站,找到网站上目标表格。于是参考了第二次大作业所用的爬取数据的代码,但是出现了爬取数据不完整的问题:

img

图13 用爬虫抓取数据

解决方法:

通过查询网上资料,我发现了问题主要出在fillUnivlist函数中,把tds增加到可以容纳整个列表后问题就可以解决,并且将string改为text以加强函数的稳定性,如图14 :

img

图14

2**、** 实际编写代码时遇到代码过长问题

问题描述:在我编写到输出折线图和饼状图的代码时,由于要输出的图过多,导致代码过长,输出一张图至少需要10行,加上在绘制饼状图时要计算出百分数,计算一系列百分数最少需要5行,那么七个系列至少需要180行含有大量重复的绘图代码,这极易导致错误出现,于是我将绘图代码编成函数,使用函数输出,然而这样还会存在以下重复代码:img

依然存在大量重复代码,但是通过观察发现里面依然存在重复部分,此时我突然想起来“+”还可以链接字符串,于是我立刻拿出了课本,通过查阅课本发现的确可以,于是通过改写就有下列代码:

img

之后根据同样可以将重复部分改编成函数重复调用的方法,我经过压缩,将成品代码压缩到193行,其中函数部分有157行,主体部分有36行,如果将中间用于分割的空行删除,则可以进一步压缩,压缩过的代码不但整洁,还可以迅速发现并改正错误的、需要改正的地方。

五、数据处理与分析结果分析

综合以上分析,自2014-2020年各种油产量数据可以看出:

(1)各种加工油产量中柴油稳居第一,润滑基础油产量最低,表明我国在柴油方面需求较大,汽油相对较少,润滑基础油需求不高。

(2)七种加工油产量中柴油产量在2014年到2017年发展平稳,从2017年到2020年逐年下降;石脑油、润滑基础油、石油沥青的产量逐年上升;汽油在2014到2019年产量逐年上升,但在2020年突然下降,可能受到了疫情的影响;燃料油近些年来产量上下浮动较大,但在2018年到2020年产量一直上升,推测下一年产量还会上升;总体来看,未来除柴油和汽油外,其他油下一年产量可能还会升高,柴油和汽油在经历疫情影响后可能会积极恢复,再次实现增长。

(3)2019年中国原油加工产量65198.1万吨,其中:位于第一的是山东省,原油加工量产量11342.2万吨;第二的是辽宁省,原油加工量产量8186.5万吨;广东省进入第三,原油加工量产量4665.6万吨;其中值得注意的是在其他地区加工的原油占大多数,产量达到10574.8万吨,这些产量有可能来自暂无数据的山西、重庆、贵州、台湾,还有可能是从国外进口的成品油。

(4)最近一年,2020年中国原油加工产量为67440.8万吨,同比增长3.4%,表明虽然我国经历了新冠疫情的影响,但是我国在疫情得到控制后积极恢复,原油加工产量不降反增,原油加工产业受到疫情影响不大。

(5)原油加工产品中,2020年中国石脑油产量为4232万吨,同比增长8.6%;中国润滑基础油产量为875万吨,同比增长14.3%;中国柴油产量为15904.9万吨,同比下降4.4%;中国煤油产量为4049.4万吨,同比下降23.2%;中国汽油产量为13171.7万吨,同比下降6.7%;中国燃料油产量为3406.3万吨,同比增长37.9%;中国石油沥青产量为6279.6万吨,同比增长24.6%;总体来看我国原油加工产业正不断发展。

六、程序代码

**、**学习总结与反思

这篇关于【大数据实训】python石油大数据可视化(八)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/522268

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下