如何爬取中国近十年的GDP,并写入csv文件,对数据进行处理?

上一链接:https://blog.csdn.net/m0_50628114/article/details/112561146我们讲到如何提取到中国近十年gdp数据,但是数据是不规整的,这节给大家讲一下如何提取我们真正想要的数据。
年份,中国,GDP(美元),占世界%
2019,“14.34万亿 (14,342,902,842,915)”,16.3550%
2018,“13.89万亿 (13,894,817,110,036)”,16.0900%
2017,“12.31万亿 (12,310,408,652,423)”,15.1552%
2016,“11.23万亿 (11,233,277,146,512)”,14.7156%
2015,“11.06万亿 (11,061,552,790,044)”,14.7098%
2014,“10.48万亿 (10,475,682,846,632)”,13.1851%
2013,“9.57万亿 (9,570,405,758,739)”,12.3805%
2012,“8.53万亿 (8,532,230,724,141)”,11.3542%
2011,“7.55万亿 (7,551,500,425,597)”,10.2814%
2010,“6.09万亿 (6,087,164,527,421)”,9.2072%
以上数据,对GDP进行处理,有两种,一种是精确提取,将括号内部的数据提取出来,二是将万亿前面的数据提取出来,可以用正则,也可以用分割,我这里用的是分割。占世界%则是把%去掉,只留下数字,用的是正则。之前的步骤不再赘述,需要可查看上方链接。

数据处理部分

这里是将原来返回的data_header,data_detail进行处理,其中用到了split,正则,以及reversed,zip等函数,不懂得可去官网进行学习。

# 获取年份year = []for i in range(0, len(data_detail), 3):year.append(data_detail[i])year1 = reversed(year)# 获取GDP,并将GDP中的数字提取出来,转化为数值China_GDP = []for i in range(1, len(data_detail), 3):a = (data_detail[i])# 若是想取得括号里的数据则是以下这一步# b = a.split('(')[1]# 取得空格前的数字(这里是提取万亿前面的数据)b = a.split(' ')[0]data = b[0: len(b)-2]China_GDP.append(data)China_GDP1 = reversed(China_GDP)# 获取占世界%China_percentage = []for i in range(2, len(data_detail), 3):remove2 = '%'data2 = re.sub(remove2, '', data_detail[i])China_percentage.append(data2)China_percentage1 = reversed(China_percentage)#zip函数,还原成原来格式的数据zipped_GDP = zip(year1, China_GDP1, China_percentage1)GDP = list(zipped_GDP)# 删除标题中的国家del data_header[1]# 将标题(美元)改为为(万亿美元)data_header[1] = 'GDP(万亿美元)'# 返回值return (GDP, data_header)

对应的写文件函数

def data_write(GDP, header):with open('china_data1_1.csv', mode='w', encoding='utf-8', newline='') as f:# 基于文件对象构建csv写入对象csv_writer = csv.writer(f)# 将头部写入列表csv_writer.writerow(header)# 将具体数值写入csv_writer.writerows(GDP)

这样获取到的数据便是我们想要的,经过处理好的,如下
年份,GDP(万亿美元),占世界%
2010,6.09,9.2072
2011,7.55,10.2814
2012,8.53,11.3542
2013,9.57,12.3805
2014,10.48,13.1851
2015,11.06,14.7098
2016,11.23,14.7156
2017,12.31,15.1552
2018,13.89,16.0900
2019,14.34,16.3550

数据可视化

接下来做出可视化图:柱形图和折线图。

1.柱形图

def bar_view():
# 解决中文无法正确显示的问题plt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = Falsewith open('china_data1_1.csv', mode='r', encoding='utf-8') as f:china_data = pd.read_csv(f)xdata = china_data.loc[:, '年份']ydata = china_data.loc[:, 'GDP(万亿美元)']plt.bar(xdata, ydata)# 添加数据标签# matplotlib.pyplot.text(x, y, s, fontdict=None, withdash=False, **kwargs)for x, y in zip(xdata, ydata):plt.text(x, y+0.2, y,ha='center', va='bottom',backgroundcolor='green',rotation=30,fontsize=8)plt.title('中国2010-2019的GDP')plt.xlabel('年份')plt.ylabel('单位/万亿美元')plt.savefig('china_GDP.png')plt.show()

2. 折线图

def line_view():# 解决中文无法正确显示的问题plt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = Falsewith open('china_data1_1.csv', mode='r', encoding='utf-8') as f:china_data = pd.read_csv(f)xdata = china_data.loc[:, '年份']ydata = china_data.loc[:, '占世界%']plt.plot(xdata, ydata, marker='o',label=u'', color='blue', linewidth=1)for x, y in zip(xdata, ydata):plt.text(x, y, y,ha='center', va='bottom',rotation=30,fontsize=8)plt.title(u'中国近十年GDP占世界百分比', size=10)plt.xlabel(u'年份', size=20)plt.ylabel(u'占世界%', size=10)plt.savefig('china_percentage.png')plt.show()

主函数

url = "https://www.kylc.com/stats/global/yearly_per_country/g_gdp/chn.html"html = exception_handling(url)if html != None:get_data(html)GDP, header = get_data(html)data_write(GDP, header)bar_view()line_view()

总结

以上便是全部内容,下一链接我们将会讲述,如何用不同得方式获取世界各地数据。感谢大家阅读菜鸟远远的博客。喜欢的小伙伴收藏加点赞叭。

如何爬取中国近十年的GDP,对数据进行处理,并写入csv文件?相关推荐

  1. 数据可视化(python)----中国近十年就业GDP对比

    前言必读 读者手册(必读)_云边的快乐猫的博客-CSDN博客 中国近十年就业GDP的发展状况 一 二 三 四 总分 一.选题的背景介绍(15分) 为什么要选择该主题?要达到的数据分析目标是什么?从社会 ...

  2. 爬取全国未来十五天的天气数据(python3)

    爬取全国未来十五天的天气数据 一.网页分析 (一)请求分析(url) 1.观察 2.分析 3.结论 (二)行政区域分析 1.观察 2.分析 3.结论 (三)未来15日 天气数据分析 1.观察 2.分析 ...

  3. python爬取中国空气质量在线监测平台分析数据【已更新】

    **本文介绍如何爬取诸如北京等城市的空气污染物浓度数据,并附有完整代码,统统解决你们找不到数据的科研问题!干货满满!!! 2021年1月12日更新 看了很多小伙伴的评论,发现我的代码被官方给" ...

  4. 利用 Python 爬取了近 3000 条单身女生的数据,究竟她们理想的择偶标准是什么?

    灵感来源与学习:利用 Python 爬取了 13966 条运维招聘信息,我得出了哪些结论? 本文原创作者:壹加柒 本文来源链接:https://blog.csdn.net/yu1300000363/a ...

  5. 【Python】爬取了近3000条单身女生的数据,究竟她们理想的择偶标准是什么?

    灵感来源与学习:<利用 Python 爬取了 13966 条运维招聘信息,我得出了哪些结论?> 本文原创作者:壹加柒 前几天手机上CSDN推荐了一篇文章<利用 Python 爬取了 ...

  6. 【附上解释】爬取A股所有上市公司的信息并存储到数据库或者是csv文件中

    文章目录 输入到mysql版 输出到csv文件版本 输入到mysql版 输出会有警告,但是不影响. 附上了详细的解释~ import pandas as pd import requests impo ...

  7. R语言爬取中国天气网单个城市实时天气预报数据

    在传统零售行业,雨天天气大概会影响晴天30%-40%的销售业绩,所以从网上获取天气数据来作分析,并根据天气数据作出预测,提前做好预防措施和提醒业务人员,把损失减少到最低就显得十分重要,用R语言的rve ...

  8. python爬取本地天气信息_用Python写一个爬取中国天气网的终端版天气预报爬虫

    导语 前几篇文章介绍了爬取静态网站的主要方法.今天写一个小项目实践一下.本项目可以在终端窗口查询全国3400多个区县的当日天气信息和近七天天气信息. 实现效果 [Python爬虫]写一个爬取中国天气网 ...

  9. 爬虫爬取中国大学排名top100并简单可视化分析

    爬虫爬取中国大学排名top100并简单可视化分析. 目标链接 http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html 实践环境 pycharm201 ...

  10. Python实战案例:爬取中国执行信息公开网

    从面试题谈起 谈到这个项目的爬虫,就要从一道面试题谈起了. 这道面试题是: 请写一个爬虫从网址 http://zxgk.court.gov.cn/shixin/,检索被执行人姓名:"阿里&q ...

最新文章

  1. Java堆和栈的基本理解
  2. zookeeper watches
  3. Android+NDK+OpenGLES开发环境配置
  4. 趣味图解+源码分析,轻松吃透Linux
  5. java什么时候可能产生内存溢出_哪些场景会产生OOM?怎么解决?
  6. centos7.3 安装 mysql-5.7.13
  7. VS2010 + VS2008 快捷键
  8. 手机群控系统OpenSTF
  9. pdfobject div中预览pdf
  10. 诗歌赏析 - 兰花草
  11. java:mysql基础语法
  12. Delphi之API函数
  13. 纯CSS 毛玻璃效果
  14. 财政部、税务总局:集成电路设计和软件企业免两年所得税
  15. CStdioFile 一些基本用法
  16. 【MySQL】MyCAT三大配置文件详解(MySQL专栏启动)
  17. 用python画皇冠_用python做数字油画或者从一幅画学习风格,去画另一幅画
  18. C++ 科学计数法和精度问题
  19. 去哪儿网机票搜索系统的高并发架构设计(要点节选)
  20. 计算机cpu 二级缓存,Windowsxp系统开启cpu二级缓存的两种方法

热门文章

  1. 计算机重做系统 d盘,重装系统后c盘变成d盘怎么办|pe装系统c盘变d盘解决方法
  2. Odoo12功能增强模块
  3. 转载:PostgreSQL 读懂执行计划
  4. 技术负责人如何带领好团队
  5. 证照之星下载证件照制作软件ps及使用教程,附序列号秘钥激活码
  6. 数据分析三大神器之一:Numpy
  7. TCP长连接和短连接的区别(好文章!)
  8. GreeDAO 使用
  9. 落网民谣期刊推荐,给你整个排行榜!
  10. 代理xp组件已作为此服务器安全配置的一部分被关闭