2020年世界各国总人口数据分析(python)
学习python尝试的第一个分析项目,分析思路还是有些初级,重点在对工具的练习上吧~
练习了数据分析维度的思考,熟悉了数据清洗方法、数据分析方法及可视化等内容。
一、项目背景
1、数据集为“2020年世界各国总人口”(来源:https://www.kesci.com/home/dataset/5e85a19195b029002ca7c437/document)
源数据中的数据说明如下:
●Country (or dependency)-包含其他国家/地区的名称(235个国家/地区)
●Population (2020)-包含不同国家的人口
●Yearly Change-每年的人口变化
●Net Change-人口的净变化
●Density (P/Km²)-人口密度
●Land Area (Km²)-以平方公里为单位的土地面积
●Migrants (net)-表国家的移民
●Fert. Rate-各个国家的生育率或增长率
●Med. Age-该国家的平均年龄(中年或平均年龄)寿命
●Urban Pop %-城市人口比例
●World Share-各个国家对世界份额贡献的人口
2、提供分析思路如下:

二、分析过程
1、数据导入和清洗

观察到列标签名比较乱(包括一些小括号、空格、百分号),重命名调整下~

--》查看字段属性


根据info和describe方法返回的结果,意识到很多数据列没有返回结果,原因是字段类型不为数值型,且存在“脏数据”,需解决的脏数据问题如下:
①字段值中的“%”及“N.A.”符号需去掉;
②Migrants列存在值缺失;
④“YearlyChange” 、“Fert.Rate ”、“Med.Age”、“UrbanPop”、“WorldShare”字段属性均不为数值型,需要转换;
--》处理百分号:

查看含有“N.A.”的列,这里利用“df==“N.A.”返回一个值都为bool类型的dataframe,用describe方法可以观察出包含特定值字段的列标签;

通过观察得出,“Fert.Rate ”、“Med.Age”、“UrbanPop” 三列值中含有“N.A.”字符;
此案例中的的“N.A.”字符串均考虑用0替换;
--》处理“N.A.”字符:

检查结果显示清洗成功;
--》接下来处理“Migrants”列的缺失值(用0值填充):

--》完成数据类型转换:

至此数据清洗完成~
2、人口基本情况分析
按照三部分展开:
①人口总数分析
分析方向:考察国家人口总数前10名及倒数10名的国家排名情况,考察前十名国家人口和国土面积与各自全球总数的占比情况
--》绘图准备

--》准备人口总数前10及倒数10名国家的数据,并分别绘制条形图


生成的排名结果如上图;
可以看到前10名国家中:有5个(China、India、Indonesia、Bangladesh、Pakistan)来自亚洲,2个(United States、Mexico)来自北美,1个(Brazil)来自南美,一个(Russia)来自欧洲,一个(Nigeria)来自非洲
针对人口总数前10名的国家,分别统计人口总数和陆地总面积占全球总数的比例

绘图结果如下:

●由此可见,这10个国家的陆地总面积占总数的40%,却居住着世界60%的人口;
②人口变化率分析
分析方向:观察各国人口增长率分布情况,以及人口增长率前5名及倒数5名的国家分布情况
--》先观察下各国人口增长率的分布

●绝大部分国家的人口增长率在0~3%之间,少数国家的人口增长率属于负值;
--》接下来提取人口增长率前5名和倒数5名的国家,绘制条形图:

●可以看到人口增长率最高的5个国家里,有4个属于非洲,另外1个在亚洲;人口增长率最低的5个国家,有3个在欧洲地区,另外2个则处于大洋洲和美洲地区;
③各国人口密度分析
分析方向:考察各国人口密度前10名的国家,并且按照人口密度划分等级,考察不同等级的分布情况;
--》绘制人口密度前10名的国家如下:

●上图可知,人口密度国家最高的国家为摩纳哥,其次为中国澳门、新加坡;
把人口密度划分为4个等级:
level_1 人口密集区 >100人/平方千米
level_2 人口中等区 25~100人/平方千米
level_3 人口稀少区 1~25人/平方千米
level_4 人口极稀区 <1人/平方千米
--》按照以上等级规则对人口密度数据进行分区,并新增人口密度等级标签,完成后绘制柱形图;

●由上图可知,绝大部分国家处于人口中等区和人口密集区;
3、移民情况分析
分析方向:考察净移民总数最多的5名国家
--》绘制净移民总数前5名的国家如下:

●前五个国家除了土耳其,都是高度发达的国家;由于美国强大的综合实力,毫无悬念地成为了人们心目中移民的第一选择。
4、老龄化情况分析
分析方向:
①老龄化程度通常可以用年龄中位数来衡量,考察老龄化程度最高的5个国家
②分析老龄化和城市人口比例的相关性
--》绘制老龄化程度最高的5个国家如下:

●日本、马提尼克、意大利、葡萄牙、希腊为老龄化程度最高的五个国家;
-》接下来考察国家的城市人口比例和年龄中位数的相关性,这里采用一元回归模型进行分析;
-》绘制出来的线性关系如下:

●可以看出国家城市人口比例与老龄化程度存在一定的正相关;
三、分析总结
由以上一些简单的分析,可总结出以下结论:
①相比较其他地区,亚非地区的人口数量更多,整体来看人口数量的国家分布非常不平衡,人口数量前10名的国家已经占了全球总人数的60%;
②80%以上国家人口的增长率在0~3%之间,大约10%的国家的人口增长率为负;亚非地区的人口增长率整体偏高;
③80%以上国家均属于人口中等区和人口密集区,即人口密度大于25人/平方千米;
④移民群众倾向于选择美国和其他一些欧洲的发达国家作为移民对象;
⑤国家城市人口比例与老龄化程度存在一定的正相关;
网友评论