1.查看2015-2017年每年幸福指数Happiness Rank排名前5和后5的国家

所用的数据集2015、2016、2017.csv文件可以去百度,3个文件存放在4个代码所在目录code的同级目录data下

import pandas as pd
import numpy as np
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus']=False#1.查看2015-2017年每年幸福指数Happiness Rank排名前5和后5的国家
def Happiness_Rank_5(year):if (2017==year):#2017年指标命名不同于其他2年columns=['Country','Happiness.Rank','Happiness.Score']load_data=pd.read_csv("../data/{}.csv".format(year))[columns]y1=load_data['Happiness.Score'][:5]y2=load_data['Happiness.Score'][-5:]else:#2015年和2016年columns=['Country','Happiness Rank','Happiness Score']load_data=pd.read_csv("../data/{}.csv".format(year))[columns]y1=load_data['Happiness Score'][:5]y2=load_data['Happiness Score'][-5:]data1_5=load_data[:5]data5_1=load_data[-5:]#可视化:幸福指数排名前5国家数据plt.figure(figsize=(15,6))ax=plt.subplot(1,2,1)plt.xlabel('Country',fontsize=20)plt.ylabel('Happiness Score',fontsize=20)plt.xticks(range(5),data1_5.Country,fontsize=15)plt.yticks(fontsize=15)plt.ylim((6,7.6))plt.bar(range(5),y1,width=0.5)plt.title('{}年幸福指数排名前5国家'.format(year),color='red',fontsize=20)plt.show()print("{}年幸福指数排名前5国家数据:\n".format(year),data1_5)#可视化:幸福指数排名后5国家数据p=plt.figure(figsize=(15,6))ax=plt.subplot(1,2,2)plt.xlabel('Country',fontsize=20)plt.ylabel('Happiness Score',fontsize=20)plt.xticks(range(5),data5_1.Country,fontsize=15)plt.yticks(fontsize=15)plt.ylim((2,3.6))plt.bar(range(5),y2,width=0.5,color='red')plt.title('{}年幸福指数排名后5国家'.format(year),color='green',fontsize=20)plt.show()print("{}年幸福指数排名后5国家数据:\n".format(year),data5_1)#2015年前5和后5国家
Happiness_Rank_5(2015)
#2016年前5和后5国家
Happiness_Rank_5(2016)
#2017年前5和后5国家
Happiness_Rank_5(2017)






2.统计2015-2016年某区域区域幸福指标数据(可以传各个列名参数进行统计,不只限于幸福指数)

#2.统计2015-2016年某区域区域幸福指标数据(可以传各个列名参数进行统计,不只限于幸福指数)
def region_Happiness(year,name,area):if (2017==year):#2017年没有分区域,用国家先与2016年数据关联,这样就有了区域columns=['Country','Happiness.Score','Economy..GDP.per.Capita.','Family',\'Health..Life.Expectancy.','Freedom','Trust..Government.Corruption.','Generosity']data=pd.read_csv('../data/{}.csv'.format(year))[columns]columns2=['Country','Region','Happiness Score','Economy (GDP per Capita)','Family',\'Health (Life Expectancy)','Freedom','Trust (Government Corruption)','Generosity']data2=pd.read_csv('../data/2016.csv')[columns2]#将2017年与2016年合并,data2为2016年,相同列名会变成column_x和column_ydata=pd.merge(data2,data,how='left',on='Country')#更改2017年的column_y为columndata=data.rename(columns={'Family_y':'Family','Freedom_y':'Freedom','Generosity_y':'Generosity'})else:columns=['Country','Region','Happiness Score','Economy (GDP per Capita)','Family',\'Health (Life Expectancy)','Freedom','Trust (Government Corruption)','Generosity']data=pd.read_csv('../data/{}.csv'.format(year))[columns]#可视化:某区域幸福指标数据    plt.figure(figsize=(45,15))data=data[data['Region']==area]plt.xlabel('Country',fontsize=50)plt.ylabel(name,fontsize=50)plt.xticks(range(data.shape[0]),data.Country,fontsize=40,rotation='vertical')#让横轴的国家名竖着显示plt.yticks(fontsize=40)#这个y轴取值范围只针对Happiness Score,对于其他列不合适plt.ylim((4.5,7.75))plt.bar(range(data.shape[0]),data[name],width=0.5)plt.title('{}年{}的{}指标统计图'.format(year,area,name),color='red',fontsize=50)plt.show()#文字只输出国家、区域、指标数据columns3=['Country','Region',name]data=data[columns3]print("{}年{}的{}指标数据为:\n".format(year,area,name),data)       #统计2015年某区域幸福指标数据
year=2015
area='Western Europe'
region_Happiness(year,'Happiness Score',area)
#region_Happiness(year,'Economy (GDP per Capita)',area)
#region_Happiness(year,'Family',area)
#region_Happiness(year,'Health (Life Expectancy)',area)
#region_Happiness(year,'Freedom',area)
#region_Happiness(year,'Trust (Government Corruption)',area)
#region_Happiness(year,'Generosity',area)#统计2016年某区域幸福指标数据
year=2016
area='Western Europe'
region_Happiness(year,'Happiness Score',area)
#region_Happiness(year,'Economy (GDP per Capita)',area)
#region_Happiness(year,'Family',area)
#region_Happiness(year,'Health (Life Expectancy)',area)
#region_Happiness(year,'Freedom',area)
#region_Happiness(year,'Trust (Government Corruption)',area)
#region_Happiness(year,'Generosity',area)#统计2017年某区域幸福指标数据
year=2017
area='Western Europe'
region_Happiness(year,'Happiness.Score',area)
#region_Happiness(year,'Economy..GDP.per.Capita.',area)
#region_Happiness(year,'Family',area)
#region_Happiness(year,'Health..Life.Expectancy.',area)
#region_Happiness(year,'Freedom',area)
#region_Happiness(year,'Trust..Government.Corruption.',area)
#region_Happiness(year,'Generosity',area)






3.2015-2016年幸福指数上升最快和下降最快的国家

#3.2015-2016年幸福指数上升最快和下降最快的国家
columns=['Country','Region','Happiness Rank','Happiness Score','Economy (GDP per Capita)','Family',\'Health (Life Expectancy)','Freedom','Trust (Government Corruption)','Generosity']
data_2015=pd.read_csv('../data/2015.csv')[columns]
data_2016=pd.read_csv('../data/2016.csv')[columns]
#将2015年与2016年合并,相同列名会变成column_x和column_y
data=pd.merge(data_2015,data_2016,how='left',on='Country')
#将2年的排名差放在Happiness Rank_x
data['Happiness Rank_x']=data['Happiness Rank_y']-data['Happiness Rank_x']
#找到差最大和最小的行
data1=data[data['Happiness Rank_x']==max(data['Happiness Rank_x'])]
data2=data[data['Happiness Rank_x']==min(data['Happiness Rank_x'])]
#输出国家、排名差
print("2015-2016年上升最快的是:\n{}\n上升了{}名".format(data1['Country'],max(data['Happiness Rank_x'])))
print("2015-2016年下降最快的是:\n{}\n下降了{}名".format(data2['Country'],min(data['Happiness Rank_x'])))#可视化:2015-2016年所有国家排名差数据
name='Happiness Rank_x'
plt.figure(figsize=(40,15))
plt.xlabel('Country',fontsize=50)
plt.ylabel(name,fontsize=50)
plt.xticks(range(data.shape[0]),data.Country,fontsize=20,rotation='vertical')
plt.yticks(fontsize=40)
plt.bar(range(data.shape[0]),data[name],width=0.5,color='red')
plt.title('2015-2016年幸福指数排名差图(以2015年索引为准)',color='green',fontsize=50)
plt.show()
#可视化:2015-2016年所有区域排名差
columns3=['Country','Region_x','Happiness Rank_x']
data2= data[columns3]
areas=set(data2['Region_x'])
for area in areas:plt.figure(figsize=(20,8))data3=data2[data2['Region_x'] == area]plt.bar(data3['Country'],data3['Happiness Rank_x'])plt.xticks(fontsize=15,rotation='vertical')plt.yticks(fontsize=15)plt.ylabel("Happiness Rank_x",fontsize=20)plt.xlabel("Country",fontsize=20)plt.title('2015-2016年{}的国家幸福指数排名差图'.format(area),color='red',fontsize=20)plt.show()#2016-2017幸福指数上升最快和下降最快的国家
columns2=['Country','Happiness.Rank','Happiness.Score','Economy..GDP.per.Capita.','Family',\'Health..Life.Expectancy.','Freedom','Trust..Government.Corruption.','Generosity']
data_2017=pd.read_csv('../data/2017.csv')[columns2]
#将2016年与2017年合并,相同列名会变成column_x和column_y
data=pd.merge(data_2016,data_2017,how='left',on='Country')
#将2年的排名差放在Happiness Rank
data['Happiness Rank']=data['Happiness.Rank']-data['Happiness Rank']
#找到差最大和最小的行
data1=data[data['Happiness Rank']==max(data['Happiness Rank'])]
data2=data[data['Happiness Rank']==min(data['Happiness Rank'])]
#输出国家、排名差
print("\n2016-2017年上升最快的是:\n{}\n上升了{}名".format(data1['Country'],max(data['Happiness Rank'])))
print("2016-2017年下降最快的是:\n{}\n下降了{}名".format(data2['Country'],min(data['Happiness Rank'])))#可视化:2016-2017年所有国家排名差数据
name='Happiness Rank'
plt.figure(figsize=(40,15))
plt.xlabel('Country',fontsize=50)
plt.ylabel(name,fontsize=50)
plt.xticks(range(data.shape[0]),data.Country,fontsize=20,rotation='vertical')
plt.yticks(fontsize=40)
plt.bar(range(data.shape[0]),data[name],width=0.5,color='red')
plt.title('2016-2017年幸福指数排名差图(以2016年索引为准)',color='green',fontsize=50)
plt.show()
#可视化:2016-2017年所有区域排名差
columns3=['Country','Region','Happiness Rank']
data2= data[columns3]
areas=set(data2['Region'])
for area in areas:plt.figure(figsize=(20,8))data3=data2[data2['Region'] == area]plt.bar(data3['Country'],data3['Happiness Rank'])plt.xticks(fontsize=15,rotation='vertical')plt.yticks(fontsize=15)plt.ylabel("Happiness Rank",fontsize=20)plt.xlabel("Country",fontsize=20)plt.title('2016-2017年{}的国家幸福指数排名差图'.format(area),color='red',fontsize=20)plt.show()


最后的图太多了,就不复制了

4.中国3年的幸福指数变化

#4.中国3年的幸福指数变化
def China_Happiness():columns=['Country','Region','Happiness Score','Economy (GDP per Capita)','Family',\'Health (Life Expectancy)','Freedom','Trust (Government Corruption)','Generosity']columns2=['Country','Happiness.Score','Economy..GDP.per.Capita.','Family',\'Health..Life.Expectancy.','Freedom','Trust..Government.Corruption.','Generosity']data_2015=pd.read_csv("../data/2015.csv")[columns]data_2016=pd.read_csv("../data/2016.csv")[columns]data_2017=pd.read_csv("../data/2017.csv")[columns2]data_2015=data_2015[data_2015['Country']=='China']data_2016=data_2016[data_2016['Country']=='China']data_2017=data_2017[data_2017['Country']=='China']#将Happiness.Score改为Happiness Score,方便之后的数据堆叠data_2017=data_2017.rename(columns={'Happiness.Score':'Happiness Score'})columns=[ 'Country','Happiness Score' ]data_2015=data_2015[columns]data_2016=data_2016[columns]data_2017=data_2017[columns]#将3年China的数据堆叠data=pd.concat([data_2015,data_2016,data_2017])print("2015-2017年China的幸福指数:\n",data)plt.figure(figsize=(10,7))plt.xlabel('Happiness Score',fontsize=20)plt.ylabel('China',fontsize=20)plt.ylim((4.5,5.5))plt.xticks(range(data.shape[0]),['2015','2016','2017'],fontsize=15)plt.yticks(fontsize=15)plt.bar(range(data.shape[0]),data['Happiness Score'],width=0.3,color='red')plt.title('2015-2017年China幸福指数变化图',fontsize=20,color='green')plt.show()China_Happiness()

数据可视化分析2015-2017年世界幸福指数相关推荐

  1. 数据可视化--世界幸福指数报告

    世界幸福指数报告可视化 数据集描述 Kaggle提供的数据集包括2015.2016.2017的报告.每年的报告的形式为CSV文件:2015.csv, 2016.csv.由于2017报告的格式与之前两年 ...

  2. GDP越高就越幸福吗?用Python分析《世界幸福指数报告》后我们发现…

    公众号后台回复"图书",了解更多号主新书内容 作者:CDA数据分析师 来源:CDA数据分析师  CDA数据分析师 出品   作者:真达.Mika 数据:真达   [导读] 今天教大 ...

  3. Tableau数据分析数据可视化分析平台

    Tableau数据分析&数据可视化分析平台 ​ 本文章内涉及的资源包以及素材均来自于互联网,仅供大家用来交流学习与研究使用,努力提升自己的一篇文章.各类安装包以及素材版权归属原版权方所有,版权 ...

  4. Kaggle Lending Club Loan Data数据可视化分析与不良贷款预测

    文章目录 数据集介绍 数据可视化分析前的数据预处理 引入包和数据集 对特征缺失值的处理 保存处理好的数据集 数据可视化分析 申请贷款金额和实际贷款金额的数据分布 每年贷款笔数直方图与每年贷款总金额直方 ...

  5. 数据可视化分析教学课件——FineBI实验册节选====资产负债分析

      数据可视化分析课程教学,0基础也能掌握,本节讲述的是金融经济类专业的数据可视化分析案例:资产负债分析 a.实验背景   1.资产负债信息不透明,不能及时了解到风险所在.   2.数据反馈不及时,存 ...

  6. 使用R语言分析世界幸福指数

    使用R语言分析世界幸福指数 本文中的数据为2019年的世界幸福指数报告,数据来源于kaggle. 数据详情 数据包含9个字段: Rank: 排名 Country or Region: 国家或地区 Sc ...

  7. 金州勇士4年3冠的成功秘诀!数据可视化分析告诉你答案

    作者 | wLsq 来源 | Python数据科学 ▍前言 2015年6月,记得那时候我正在忙着研究生毕业,也是在那个时候,NBA总决赛的开始了.当时,金州勇士队作为一匹黑马收到很多人看好,果然不负所 ...

  8. vs2017数据可视化建模_介绍数据可视化社区调查2017

    vs2017数据可视化建模 by lars verspohl 由拉斯·韦斯波尔 介绍数据可视化社区调查2017 (Introducing the Data Visualization Communit ...

  9. 数据可视化分析票房数据报告_票房收入分析和可视化

    数据可视化分析票房数据报告 Welcome back to my 100 Days of Data Science Challenge Journey. On day 4 and 5, I work ...

  10. 网易云音乐爬虫 数据可视化分析

    网易云音乐爬虫 & 数据可视化分析 1. 数据爬取 1.1 评论爬取 1.2 用户信息爬取 2 数据清洗 & 可视化 歌评文本分析 个人博客:Archiew's blog 源码:htt ...

最新文章

  1. 这可能是2018年IT界规模最大的裁员事件了
  2. Scikit-learn 核心开发人员专访:建立机器学习工作流最容易犯这2点错误
  3. 人工智能和机器学习的基本实现过程总结
  4. Google邮局可以实时开通了
  5. 华为rh5885服务器oid_华为RH5885H v3机架服务器RAID配置实例
  6. 有关C语言中有符号/无符号数混合运算的小问题
  7. Android如果对APK进行加密,提高反编译难度(思路)
  8. visio常用快捷键_visio2003常用快捷键有哪些
  9. Unity Shader入门精要--第4 章 学习Shader 所需的数学基础:矩阵
  10. excel求回归直线方程的公式_求回归直线方程的三种方法
  11. 查询名字重复但不是相同的人的记录
  12. chrome视频无法播放的解决方法(Solve the problem of Google player cannot be played normally)
  13. HTML中的span是什么意思
  14. Flutter——Flutter初探与Dart基础
  15. 7 RRC Measurement -- 测量报告
  16. high-performance server architecture
  17. JG-OJ记录56:10:今夕是何年
  18. python商品打折问题_利用Python“解剖”双11商家打折套路
  19. Android聊天软件的开发--聊天通信
  20. 怎样既快又省地搞好仪表采购

热门文章

  1. 菜鸟要飞向ARM城堡——MDK中对基于S3C2440工程的配置
  2. 固态硬盘对游戏运行的帮助有多少
  3. VS2017环境下配置OpenGL的简单方法(glut,glew,freeglut,gltools)
  4. 在互联网卷不动了,还能做什么?
  5. java计算机毕业设计基于springboo+vue的幼儿园管理系统
  6. EasyPoi导入导出(一)
  7. 一个电子发票开票平台的系统架构设计(02)
  8. ROS回顾学习(11): TF之static_transform_publisher
  9. 中国-8月两轮车市场加速增长(+7%)
  10. 【Unity植物大战僵尸】UI点击太阳花的拖拽和放置实现(七)