你幸福嗎?用 Python 分析幸福指數(shù)
點擊上方Python知識圈,設為星標
回復100獲取100題PDF
閱讀文本大概需要 5 分鐘
來源:博客園-huny
https://www.cnblogs.com/huny/p/14146719.html
【導語】:世界上最幸福的國家有哪些?個人幸福和哪些指標相關?你幸福嗎?如果不知道,那就進來看看這篇關于幸福的數(shù)據(jù)分析。
1 前言
民意測驗機構(gòu)蓋洛普從2012年起,每年都會在聯(lián)合國計劃下發(fā)布《世界幸福指數(shù)報告》,報告會綜合兩年內(nèi)150多個國家的國民對其所處社會、城市和自然環(huán)境等因素進行評價后,再根據(jù)他們所感知的幸福程度對國家進行排名。
《世界幸福指數(shù)報告》的編撰主要依賴于對150多個國家的1000多人提出一個簡單的主觀性問題:“如果有一個從0分到10分的階梯,頂層的10分代表你可能得到的最佳生活,底層的0分代表你可能得到的最差生活。你覺得你現(xiàn)在在哪一層?”
最近看到的一個項目,非常的有意思。接下來我將用python帶你來分析一下世界各國的幸福指數(shù)排名,以及和幸福有關系的因素。
2 數(shù)據(jù)解釋

3 數(shù)據(jù)準備

數(shù)據(jù)下載: 鏈接:https://pan.baidu.com/s/1gTrf7lLjiBNra2lPxeI0GA 提取碼:ophj
pip install -r requirement.txt
4 編碼
import numpy as npimport pandas as pdimport os,sysimport matplotlib.pyplot as pltimport seaborn as snsimport plotly as pyimport plotly.graph_objs as goimport plotly.express as pxfrom plotly.offline import init_notebook_mode, iplot, plot#數(shù)列的路徑file_path = os.path.dirname(os.path.abspath(__file__))# 讀入數(shù)據(jù)df_2015 = pd.read_csv(f'{file_path}/2015.csv')df_2016 = pd.read_csv(f'{file_path}/2016.csv')df_2017 = pd.read_csv(f'{file_path}/2017.csv')df_2018 = pd.read_csv(f'{file_path}/2018.csv')df_2019 = pd.read_csv(f'{file_path}/2019.csv')# 新增列-年份df_2015["year"] = str(2015)df_2016["year"] = str(2016)df_2017["year"] = str(2017)df_2018["year"] = str(2018)df_2019["year"] = str(2019)# 合并數(shù)據(jù)df_all = df_2015.append([df_2016, df_2017, df_2018, df_2019], sort=False)df_all.drop('Unnamed: 0', axis=1, inplace=True)df_all.head()data = dict(type='choropleth',locations=df_2019['region'],locationmode='country names',colorscale='RdYlGn',z=df_2019['happiness'],text=df_2019['region'],colorbar={'title': '幸福指數(shù)'})layout = dict(title='2019年世界幸福指數(shù)地圖',geo=dict(showframe=True, projection={'type': 'azimuthal equal area'}))choromap3 = go.Figure(data=[data], layout=layout)plot(choromap3, filename=f'{file_path}/世界幸福地圖.html')

整體來看,北歐的國家幸福指數(shù)較高,如冰島、丹麥、挪威、芬蘭;東非和西非的國家幸福指數(shù)較低,如多哥、布隆迪、盧旺達和坦桑尼亞。
# 合并數(shù)據(jù)rank_top10 = df_2019.head(10)[['rank', 'region', 'happiness']]last_top10 = df_2019.tail(10)[['rank', 'region', 'happiness']]rank_concat = pd.concat([rank_top10, last_top10])# 條形圖fig = px.bar(rank_concat,x="region",y="happiness",color="region",title="2019年全球最幸福和最不幸福的國家")plot(fig, filename=f'{file_path}/2019世界幸福國家排行Top10和Last10.html')

2019年報告,芬蘭連續(xù)兩年被評為“全球最幸福國家”。丹麥、挪威、冰島、荷蘭進入前五名,對比2018年報告,中國從86名下降到93名。
# 散點圖fig = px.scatter(df_all, x='gdp_per_capita',y='happiness',facet_row='year',color='year',trendline='ols')fig.update_layout(height=800, title_text='人均GDP和幸福指數(shù)')plot(fig, filename=f'{file_path}/GDP和幸福得分.html')

人均GDP與幸福得分呈高度線性正相關關系,GDP越高的國家,幸福水平相對越高。
# 散點圖fig = px.scatter(df_all, x='healthy_life_expectancy',y='happiness',facet_row='year',color='year',trendline='ols')fig.update_layout(height=800, title_text='健康預期壽命和幸福指數(shù)')plot(fig, filename=f'{file_path}/健康預期壽命和幸福得分.html')

慷慨程度與幸福得分呈高度線性正相關關系,慷慨程度越高的國家,幸福水平相對越高。
#散點圖fig = px.scatter(df_all, x='social_support',y='happiness',facet_row='year',color='year',trendline='ols')fig.update_layout(height=800, title_text='社會援助和幸福指數(shù)')plot(fig, filename=f'{file_path}/社會援助和幸福得分.html')

5 總結(jié)
我們可以得出以下結(jié)論:
從影響因素相關圖可以看出,在影響幸福得分的因素中,GDP、社會支持、健康預期壽命呈現(xiàn)高度相關,自由權(quán)呈現(xiàn)中度相關,國家的廉政水平呈現(xiàn)低度相關,慷慨程度則呈現(xiàn)極低的相關性;
GDP與健康預期壽命、社會支持之間存在高度相關。說明GDP高的國家,醫(yī)療水平和社會福利較為完善,人民的預期壽命也會越高;
健康預期壽命與社會支持之間存在中度相關性。
往期推薦 01 02 03
↓點擊閱讀原文查看pk哥原創(chuàng)視頻
我就知道你“在看”
