这篇文章用pandas对全球的人口数据做个简单分析。我收集全球各国1960-2019年人口数据,包含男女和不同年龄段,共6个文件。
pop_total.csv: 各国每年总人口
pop_female.csv:各国每年女性人口
pop_male.csv: 各国每年男性人口
pop_0_14.csv: 各国每年0-14岁人口
pop_15_64.csv: 各国每年15-64岁人口
pop_65up.csv:各国每年65岁以上人口
先用pandas读取文件数据
import pandas as pd
pop_total = pd.read_csv('./data/pop_total.csv', skiprows=4)
pop_total.info()
pop_total.csv文件存放各国每年总人口数据,格式如下
pop_total.head(2)
同样的方式,我们读取剩下的5个文件,对应的DataFrame分别是pop_female、pop_male、pop_0_14、pop_15_64、pop_65up。
为了直观观察全球人口分布,我们用pyecharts绘制2019年全球人口分布地图
from pyecharts import options as opts
from pyecharts.charts import Timeline, Map
pop_total_2019 = pop_total[['Country Name', '2019']]
# 修改俄罗斯的英文名以便pyecharts能识别
pop_total_2019.loc[200, 'Country Name'] = 'Russia'
pop_world_map = (
Map()
.add("2019年", pop_total_2019.values, "world", is_map_symbol_show=False)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title="全球人口"),
visualmap_opts=opts.VisualMapOpts(max_=100000000), # 超过1亿人口颜色最深(红色)
)
)
pop_world_map.render_notebook()
因为我们有50年的数据,所以我们还可以绘制一个全球人口分布变化的动图,类似之前写的全球疫情变化趋势图。因为代码跟上面类似,这里就不贴,源码包里能找到。
上面的图里我们只能定性的看到人口分布,下面我们定量地看看2019年全球人口top10的国家。
# 2019年人口top10的国家
pop_total_