用 Python 带你看各国 GDP 变迁
前言
文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者: 周萝卜 源自:萝卜大杂烩
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef
数据文件分析
先来看下我们拿到的文件,都有什么数据,哪些是我们可以利用起来的。
1、GDP 总量数据,这是我们研究的重点数据文件,里面囊括了世界各个国家和地区的历史 GDP 数据,我把它命名为“GDP_data.csv”。 
2、GDP 增长率数据,这个同样是非常重要的数据文件,记录了各国 GDP 的增长率情况,我把它命名为“growth_data.csv”。

3、国家收入分类数据,该数据文件把各个国家分类成不同等级的收入阶层,比如有“高收入国家”,“低收入国家”等等,我把它命名为“Country_data.csv”。

4、国家 Code 对照表,这是一个国家英文名称和 Country Code 的对照表,我们后面在绘制地图时会使用到。

各个收入等级分析
各个收入等级分布
首先我们先来看下世界各国分布在不同收入等级的情况

可以看到,处于“高等收入”和“低收入”的国家比例差距还是很大的,在二十一世纪的今天,还有太多的人过着食不果腹、衣不保暖的生活。
下面我们再具体看下不同收入等级中各个国家具体的 GDP 总量
高收入国家
首先是高收入国家 top10 的 GDP 总量
我们首先拿到高等收入的国家信息,再与 gdp 信息数据合并,最后得到 top10 数据
# 高收入国家2018年的GDP
high = country_data[country_data['Income_Group'] == '高收入国家']
high_gdp = pd.merge(high, gdp, how='inner')
high_gdp['2018'] = high_gdp['2018'].apply(lambda x: x/1000000000000)
high_gdp_top10 = high_gdp[['Country Name', 'Country Code', '2018']].sort_values(by='2018', ascending=False)[:10]

可以看到,美国是一骑绝尘,排在后面的小弟们,总量加一起也没法和美国相提并论。而在前十名当中,几乎清一色的欧美发达国家。
我们再把榜单扩展到 top20,能看到,欧洲国家还是居多的,而中东的两个土豪也成功上榜了。

最后再来看下美国占据全世界 GDP 总量的百分比情况

看图不说话。
中等收入国家
接下来看看中等收入国家的 top10 情况

基本上都是发展中大国,其中还不乏南非、阿根廷等即将成为发达国家的选手。而我国则以13.6万亿的总量,成为美国之后另一个巨无霸般的存在。
来看看中美两个总体上占据世界 GDP 的比例情况

毫无疑问,这两个 GDP 总量占去世界 GDP 总量40%的国家,绝对是世界经济的命脉,相互合作,携手共赢才是世界经济的未来!
再来看下 top20 的情况

中低等收入国家
下面就是中低等收入的国家了,还是有很多熟悉的面孔啊

在这个级别当中,亚洲国家占据了大多数,但是 GDP 的总量却不是很低,尤其是印度,有2.7万亿的数量。这也能反映出,亚洲作为世界上人口最多的大洲,要走向发达国家的行列,还是任重道远啊!
top20 情况

低收入国家
最后就是低收入国家了,可以看到,在这些国家中,要不就是战乱频仍的国度,要不就是资源匮乏的小国,他们的经济建设之路还很漫长呢。 
top20 的情况

GDP 总体排行
2018年 GDP 排行
先来看看2018年 GDP 总体排行的 top10 吧

可以看到,除了欧美诸强之外,中国、印度和巴西也纷纷上榜,发展中大国的实力不容小觑啊。
那么再来看看 GDP 总量倒数的10个国家呢 都是一些不大的国家,差距还是太大了!
历年各国 GDP 走势
我们先来看一下 GDP 总量排行前五的国家,历年 GDP 总量的走势情况
美国

中国
 日本 
德国

英国

可以看出,除了中美两国外,其他的国家 GDP 总量都出现过大幅度的波动情况,而持续增长的中美两国,则一骑绝尘,遥遥领先于世界了!
世界 GDP 地图
下面我们通过世界地图的方式来看看 GDP 的分布情况
我们先进行数据处理,把国家代码和 GDP 数据相结合
country_code = pd.read_json('countries.json')
country_code.rename(columns={'iso3': 'Country Code'}, inplace=True)
conutry_code_name = country_code[['name', 'Country Code']]
country_gdp_code = pd.merge(country_gdp, conutry_code_name, on='Country Code', how='inner')
由此,我们可以做出一张 GDP 总量的地图分布图

在这张 GDP 地图中,可以清晰的看出,美国和中国地盘大,颜色深,非常明显,隐隐有东西两强的趋势。
我们再去掉中美两国,看看剩余国家的 GDP 情况

在这张图中,可以看到日本、西欧和印度是一个级别的存在,而俄罗斯、加拿大、澳大利亚和巴西等是另外的一组,其余大部分的第三世界国家,则是第三组!
GDP 增长率
下面我们再来看看 GDP 增长率的情况,有的国家 GDP 本来总量就高,而且增长率还非常不错,那么未来的经济形式一定前途无量;而有的国家则举步维艰,低 GDP 总量再加上惨淡的增长率,未来的日子很难啊。
增长率 top10

在这份增长率 top10 榜单中,大部分的国家都是 GDP 较低的国家,这还是说明低 GDP 的增长空间是更加大的。
而印度则不一样,它本身的 GDP 总量已经非常高了,竟然还有这么高的 GDP 增长率,其未来的经济一片大好啊!
增长率 bottom10
再来看下增长率排名垫底的10个国家,这就比较闹心了

GDP 负增长就是说经济在后退啊,如何振兴经济应该是这些国家的首要任务了!
中美印对比

在图中可以看出,虽然近些年印度保持着很高的增长率,但是 GDP 总量增长并没有中美两国明显。
而美国的增长率常年在2%和1%之间震荡,好像还蛮有规律的。
对于我国来说,增长率已经从以前恐怖的10%慢慢回落了,但是经济增长的趋势是没法阻挡的!
增长率地图
最后还是在世界地图中整体看看 GDP 增长率的分布情况

总体来说,大部分国家的增长率都处于1%-4%的水平之间,而中亚和东南亚的部分国家可以保持增长率在4%-7%之间,只有极少部分国家能够达到7%以上的增长率,不过对于阿根廷来说,刺眼的负增长还是惊心的,这么多年了,经济还没有复苏的迹象吗?
用 Python 带你看各国 GDP 变迁的更多相关文章
- 让Python带你看一场唯美的横飘雪!
		
“北国风光,千里冰封,万里雪飘”,这句诗描写了一句美丽肃静的风光图,恰逢昨天笔者这边也下了一场比较大的雪,要不今天就用Python带大家也来领略一次美丽的雪景? 开发环境 版本:Python3.6 系 ...
 - 用 Python 带你看《我不是药神》
		
我们都是小人物,我们都得了同一种病,我们都穷.——<我不是药神> 我不是程序员 我就是想求求你们,别动不动就拿篇10W+的文章来吓唬人好吗?说点有用的东西好吗?我们需要精神粮食不需要腐蚀精 ...
 - 51ak带你看MYSQL5.7源码3:修改代码实现你的第一个Mysql版本
		
从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 目录: 51ak带你看MYSQL5.7源码1:main入口函数 51ak带你看MYSQL5.7源码2:编译 ...
 - 51ak带你看MYSQL5.7源码2:编译现有的代码
		
从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 目录: 51ak带你看MYSQL5.7源码1:main入口函数 51ak带你看MYSQL5.7源码2:编译 ...
 - 51ak带你看MYSQL5.7源码1:main入口函数
		
从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 目录: 51ak带你看MYSQL5.7源码1:main入口函数 51ak带你看MYSQL5.7源码2:编译 ...
 - 世界各国GDP动态排名可视化实现(基于d3.js)
		
一.说明 之前在抖音上看到GDP等各种排名的可视化,一直想知道是怎么实现的.之前也有研究过一次,但觉得太麻烦放弃了,昨天又心痒难耐研究了一翻. 先是看到这篇文章说是有人基于d3.js实现:https: ...
 - 51ak带你看MYSQL5.7源码4:实现SQL黑名单功能
		
博客迁移至: https://www.dboop.com/ 从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 申明:个人Python编程很溜,但是C++还停 ...
 - Python带你来一次说走就走的环球旅行
		
image 1.目 标 场 景 十一长假,相信大部分的朋友这会应该是在全国各地浪或者是在浪的路上,朋友圈成为你们表演的场所. 当然,也有一小戳朋友是选择家里蹲,你们是否感觉到无聊?是否想出去浪,参 ...
 - 一文带你看遍 JDK9~14 的重要新特性!
		
Java9 发布于 2017 年 9 月 21 日 .作为 Java8 之后 3 年半才发布的新版本,Java 9 带 来了很多重大的变化其中最重要的改动是 Java 平台模块系统的引入,其他还有诸如 ...
 
随机推荐
- 什么是面向对象编程(OOP)?
			
Java 程序员第一个要了解的基础概念就是:什么是面向对象编程(OOP)? 玩过 DOTA2 (一款推塔杀人的游戏)吗?里面有个齐天大圣的角色,欧洲战队玩的很溜,国内战队却不怎么会玩,自家人不会玩自家 ...
 - PAT 1010 Radix 进制转换+二分法
			
Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The an ...
 - (五十七)c#Winform自定义控件-传送带(工业)-HZHControls
			
官网 http://www.hzhcontrols.com 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kww ...
 - [转]UiPath: How to Capture a Mouse Event on Hover Menus?
			
本文转自:https://www.uipath.com/kb-articles/how-to-capture-mouse-event-on-hover-menus he Knowledgebase a ...
 - flutter全栈开发学习资料大全 免费flutter学习视频 文字教程!
			
flutter今年特别火,google推出flutter就是为了一次开发全平台应用,包括PC端,手机wap端,android,ios直接生成APP应用,如果真的能像谷歌说的,那我们开发人员就真的好好学 ...
 - 基于opencv -python--银行卡识别
			
import cv2 def sort_contours(cnts, method="left-to-right"): reverse = False i = 0 if metho ...
 - 25个JavaScript数组方法代码示例
			
摘要: 通过代码掌握数组方法. 原文:通过实现25个数组方法来理解及高效使用数组方法(长文,建议收藏) 译者:前端小智 Fundebug经授权转载,版权归原作者所有. 要在给定数组上使用方法,只需要通 ...
 - mysql主从配置实现一主一从读写分离
			
主从介绍Mysql主从又叫Replication.AB复制.简单讲就是A与B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,实现数据实时同步mysql主从是基于binlog,主上需开启bin ...
 - Django-xadmin后台配置富文本编辑器(方法一)
			
1.https://github.com/twz915/DjangoUeditor3下载包,进入包文件夹,找到DjangoUeditor包拷贝到项目下,和xadmin同级目录 2.找到项目的setti ...
 - 漫长的 windows caffe编译过程 (OnlyCpu)
			
在windows下 编译caffe代码. 官方推荐是vs2013 而我手头只有VS2017 .准备开始下载代码开始编译. 1 代码下载 windows版本的代码有两份,一份是官方的编译的windows ...