以下数据基于统计局发布的2010年第六次人口普查工作,所有数据均可在统计局网址上下载。

Figure_1.png

这张图片给读者的第一直观感受就是集体户口男女性别比差距如此之大。(超过100就是男比女多)所谓集体户口,一般都是一些规模较大的学校或企业才有资格办理。可以推测,在我国凡是这种拥有相对封闭环境的大单位男女比例都严重失衡。

绘制图1的代码如下:

import pandas as pd
from matplotlib import pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']data = pd.read_csv('A0101a.csv',encoding='gbk')
frame = [data['地区'], data['性别比'], data['家庭户口性别比'], data['集体户口性别比']]
sex_compare = pd.concat(frame,axis=1)
sex_compare.set_index('地区', inplace=True)
sex_compare.sort_values('性别比', ascending=False,inplace=True)
sex_compare.plot(kind='bar')
plt.show()
Figure_2.png

图1并不能很直观的展示我国各省男女性别比的情况,图2使用热力图的方式很直观得表达了该信息。颜色越深代表性别比例越失衡。从图2可以发现,我国东北华北地区男女比例比较合理,而西北和西南最为严重。结合图1可知,中国男女比例最失衡的地方在天津,最平衡的地方在江苏。

图2代码如下:

import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
from matplotlib.patches import Polygon
from matplotlib.colors import rgb2hex
import numpy as np
import pandas as pdplt.figure(figsize=(16, 8))
map = Basemap(llcrnrlon=77,llcrnrlat=14,urcrnrlon=140,urcrnrlat=51,projection='lcc',lat_1=33,lat_2=45,lon_0=100)
map.drawcountries(linewidth=1.5)
map.drawcoastlines()
map.readshapefile('gadm36_CHN_1', 'states', drawbounds=True)     #读取省份边界数据
df = pd.read_csv('sex_compare.csv', encoding='gbk')                               #读取GDP数据
df.set_index('地区', inplace=True)                                 #将列名为地区这一列设为索引
provinces = map.states_info                                         #读取省份信息
print(provinces)
statenames = []
colors = {}
cmap = plt.cm.YlOrRd                                                #指定色彩映射种类
GDP_max = max(df['2010年'])
GDP_min = min(df['2010年'])
for each_province in provinces:                                    #for循环中是对shapefile格式数据的处理,与主要程序逻辑无关province_name = each_province['NL_NAME_1']p = province_name.split('|')if len(p) > 1:s = p[1]else:s = p[0]s = s[:2]if s == '黑龍':s = '黑龙江'if s == '内蒙':s = '内蒙古'statenames.append(s)GDP = df['2010年'][s]colors[s] = cmap(np.sqrt((GDP - GDP_min) / (GDP_max - GDP_min)))[:3]  #构建色彩和数据的映射关系
ax = plt.gca()
for nshape, seg in enumerate(map.states):color = rgb2hex(colors[statenames[nshape]])                 #将RGB色彩转为HEX色彩poly = Polygon(seg, facecolor=color, edgecolor=color)       #将每个省份对应的颜色进行填充ax.add_patch(poly)
map.readshapefile('gadm36_TWN_0', 'states', drawbounds=True)
for nshape, seg in enumerate(map.states):color = rgb2hex(colors[statenames[nshape]])                 #将RGB色彩转为HEX色彩poly = Polygon(seg, facecolor=color, edgecolor=color)       #将每个省份对应的颜色进行填充ax.add_patch(poly)
ax.set_title('China SEX heatmap')
plt.savefig('image_name', bbox_inches='tight')
plt.show()
Figure_3.png

图3反映的是中国的人口年龄结构。从图中可以发现2010年中国的人口结构有三个高峰,分别是20岁、40岁以及55岁。

图3代码如下:

import pandas as pd
from matplotlib import pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']data = pd.read_csv('A0301a.csv',encoding='gbk')
frame = [data['年龄'], data['人口合计'], data['男'], data['女']]
sex_compare = pd.concat(frame,axis=1)
sex_compare.columns.name = '人口数量'
sex_compare.drop([0],inplace=True)
sex_compare.set_index('年龄', inplace=True)
#sex_compare.sort_values('人口合计', ascending=False,inplace=True)
print(sex_compare)
sex_compare.plot(kind='bar')
plt.show()
Figure_4.png

图4算是对图3数据的进一步挖掘,表现了各年龄节点男女数量差异。规律很奇怪,在0-24这个区间内,男多女少,而且呈现差距缩减趋势,到了24岁,居然女生还比男生多一些。成年后,18-20这个区间男女差距最大,在18岁这个节点,男女数量之差达到75万。在22-30这个适婚年龄阶段,男女数量总差异在一百万左右,男多女少,也就是说,这个年龄段至少有一百万男光棍。

如果再考虑这个阶段的女生会考虑找30+的黄金单身汉,以及女生基本不考虑比自己小的男生,一百万这个数字绝对还要扩大N倍。

另外一个有趣的结论是,70岁往后女生的数量普遍多于男性,而且多的还不是一点。这与男性寿命普遍低于女性有关。因此70岁之后男性容易达到人生巅峰(哈哈哈哈,22-30的光棍不用伤心,能熬到70岁绝对可以脱单。)

图4代码如下:

import pandas as pd
from matplotlib import pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']data = pd.read_csv('A0301a.csv',encoding='gbk')
gap = data['男'] - data['女']
frame = [data['年龄'], gap]
gap_compare = pd.concat(frame,axis=1)
gap_compare.drop([0],inplace=True)
gap_compare.set_index('年龄', inplace=True)
gap_compare.columns = ['人口数量差距']
gap_compare.plot(kind='bar')
print(gap_compare)
plt.show()
Figure_5.png

图5展示各年龄节点的死亡数量。我国2010年死亡742万人,其中男生429万,女生313万,也就是说该年男生比女生多死了一百万多点。死亡数量基本随着年龄递增,在75-79区间内达到顶峰,这也是由于更高年龄人数量比较少导致的。

图5代码如下所示:

import pandas as pd
from matplotlib import pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']data = pd.read_csv('death1.csv',encoding='gbk')
data.set_index('年龄段',inplace=True)
data.plot(kind='bar')
plt.show()
Figure_6.png

图6算是对图5的归一化,消除了各年龄段数量不一的干扰,直观得体现各年龄段的死亡率,基本是依次提高的。

图6代码如下:

import pandas as pd
from matplotlib import pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']data1 = pd.read_csv('death1.csv',encoding='gbk')
data2 = pd.read_csv('population.csv',encoding='gbk')
frame = [data1['年龄段'],data1['死亡合计']/data2['合计'], data1['死亡男']/data2['男'], data1['死亡女']/data2['女']]
death = pd.concat(frame,axis=1)
death.set_index('年龄段',inplace=True)
death.columns = ['死亡率合计','男死亡率','女死亡率']
death.plot(kind='bar')
plt.show()
Figure_7.png

图7表现了各省的死亡率。图7不够直观。下面画个热力图,与图2的套路一样,不再展示图8的代码,换个文件就行。

图7代码如下:

import pandas as pd
from matplotlib import pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']data1 = pd.read_csv('death2.csv',encoding='gbk')
data2 = pd.read_csv('A0101a.csv',encoding='gbk')
frame = [data1['地区'],data1['合计']/data2['合计'], data1['男']/data2['男'], data1['女']/data2['女']]
death = pd.concat(frame,axis=1)
death.drop([0],inplace=True)
death.set_index('地区',inplace=True)
death.sort_values('合计', ascending=False,inplace=True)
death.plot(kind='bar')
plt.show()
Figure_8.png

从这张图可以看出,华北西南地区死亡率较高,但是华北地区的北京、天津出淤泥而不染,死亡率相当低,尤其是北京,是全国死亡率最低的地方。看来尽管北京的雾霾严重,但是其较好的医疗环境以及完善的居住配套设置还是提高了首都的生存率。

Figure_9.png

图9表现的是我国截止2010年人口受教育情况。可以发现我国的高中以下包括高中教育普及工作不错,但是高等教育仍然有很大发展空间。我国截止到2010年培养的研究生现存413万,数量虽然不少但是相比于我国庞大的人口基数还是不多,而且这个数量是40年高等教育发展积累的人数。

图9代码如下:

import pandas as pd
from matplotlib import pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']data = pd.read_csv('education.csv', encoding='gbk')
data.set_index('受教育程度',inplace=True)
data.plot(kind='bar')
plt.show()
Figure_10.png

图10反映了我国各行各业中婚姻现状比例情况。人数选自16岁以上,目前正在工作的群体,总人数七千多万。也就是说在2010年,全国总人数13亿3千多万人中,去掉年龄不合适的,选入该职业分类的只有七千多万。

因为都是正在工作的壮年,所以无论男女,已婚比例都很高。

但是也可以发现一些有趣的现象。比如,在专业技术人员分类中,女性单身人数居然高于男生。除了商业服务类男女单身人数相等外,其他大类中都是男性人数高于女性。另外,单身女生数量比较多专业技术人员分类中,女性已婚人数同样高于男性。

Figure_11.png

该图以婚姻状况为横坐标,反映了同一婚姻状况下不同工作的比例。

可以发现一些信息。在政府工作的已婚男最多,稳定啊。相反在女性中不是这样,在政府工作的女性已婚比例竟然最低!最多的是从事一些农业、渔业等行业的基础生产人员,并且服务业的女性已婚比例也相当高,不过,服务业女性的离婚率也是最高的。

还有一点比较突出的是,从事农、牧、渔等生产行业,比较容易丧偶。

先简单的分析到这里,这是最简单的EDA(探索性数据分析)。通过EDA发现大致规律后就需要深层次的数据挖掘探究可能的影响因子,找到因果关系。

第六次人口普查数据分析相关推荐

  1. 2010年第六次人口普查微观数据库

    2010年第六次人口普查微观数据库为中国2010年人口普查原始个体样本数据.2010年人口普查采用了长.短两种普查表,短表包括反映人口基本状况的项目,长表包括所有短表项目和人口的经济活动.婚姻家庭.生 ...

  2. 【五六七人口普查】我国省市两级各行业门类人口及三次产业人口比重

    人口数据是我们在各项研究中最常使用的数据!之前我们分享过第七次人口普查(简称七普)的数据!很多小伙伴拿到数据后都反馈数据非常好用,同时很多小伙伴咨询有没有前面几次人口普查的数据,这样方便做人口变化分析 ...

  3. 【五六七人口普查】省市两级分年龄、性别的人口

    人口数据常用于各项研究中!之前我们介绍过第七次人口普查(简称七普)的人口数据!很多小伙伴咨询有没有前面几次人口普查指标数据的介绍,这样方便做人口变化分析!本次我们特地整理了五普.六普的人口数据指标,加 ...

  4. 【五六七人口普查】省市两级人口受教育情况

    人口数据是我们在各项研究中最常使用的数据!之前我们分享过第七次人口普查(简称七普)的数据!很多小伙伴拿到数据后都反馈数据非常好用,同时很多小伙伴咨询有没有前面几次人口普查的数据,这样方便做人口变化分析 ...

  5. 【五六七人口普查】我国区县级人口基本情况

    人口数据是我们在各项研究中最常使用的数据!之前我们介绍过基于第五六七次人口普查整理的全国省市两级的人口基本情况(可查看之前推送的文章),本次我们向大家介绍基于第五六七次人口普查整理的区县级人口基本情况 ...

  6. 【五六七人口普查】我国省市两级人口基本情况

    人口数据常用于各项研究中!之前我们介绍过第七次人口普查(简称七普)的人口数据!很多小伙伴咨询有没有前面几次人口普查指标数据的介绍,这样方便做人口变化分析!本次我们特地整理了五普.六普的人口数据指标,加 ...

  7. 【五六七人口普查】省市两级有老年人的户数、人口自然变动和迁入人口

    人口数据常用于各项研究中!之前我们介绍过第七次人口普查(简称七普)的人口数据!很多小伙伴咨询有没有前面几次人口普查指标数据的介绍,这样方便做人口变化分析!本次我们特地整理了五普.六普的人口数据指标,加 ...

  8. 【五六七人口普查】我国省市两级人口婚姻状况和妇女生育状况

    人口数据是我们在各项研究中最常使用的数据!之前我们分享过第七次人口普查(简称七普)的数据!很多小伙伴拿到数据后都反馈数据非常好用,同时很多小伙伴咨询有没有前面几次人口普查的数据,这样方便做人口变化分析 ...

  9. 【五六七人口普查】我国省市两级家庭户住房状况

    人口数据是我们在各项研究中最常使用的数据!之前我们分享过第七次人口普查(简称七普)的数据!很多小伙伴拿到数据后都反馈数据非常好用,同时很多小伙伴咨询有没有前面几次人口普查的数据,这样方便做人口变化分析 ...

  10. 基于可视化 BI 工具 DataEase 制作第七次人口普查数据分析大屏

    一.制作第七次人口普查数据大屏的背景介绍: 第七次人口普查刚刚结束,想要制作一个大屏,能够直观的看到人口总数.出生人数.死亡人数等的情况: 希望能够直观的看到人口分布的情况.各种比例.年龄结构等有一定 ...

最新文章

  1. 几个简化算法理解的网站,进来收藏!
  2. 使用Kickstart+Apache+Dhcp+Pxe无人值守安装操作系统
  3. Velodyne收购高清地图公司 将研发更安全的ADAS系统
  4. SAP Cloud for Customer Business Configuration的权限控制
  5. 【flink】RocksDB介绍以及Flink对RocksDB的支持
  6. 运营商缺的是应用还是想法--广州晨皓
  7. C++11中0与 NULL与nullptr之间的关系
  8. grep搜索字串包含特殊字符怎么办
  9. ps新手秒变大师必备的Ps插件全在这!(mac版本)
  10. Can I insert a countdown timer in a Powerpoint presentation?
  11. linux内存硬件检测工具下载,极品内存检测工具(Memtest86)
  12. 史上最全三维建模软件汇总
  13. python微信自动发消息_python实现给微信指定好友定时发消息
  14. 华为设备推送syslog到日志服务器配置
  15. 博客之星:我去,你竟然还不会用 synchronized
  16. 基于单片机的智能台灯设计
  17. 微信小程序解密encryptedData 报错:pad block corrupted 解决方法
  18. python day46
  19. Linux系统配置及服务管理_02章_文件和用户管理
  20. CSP-J2020复赛题解

热门文章

  1. 微信公众号H5游戏平台完整源码放送给大家
  2. 幸运抽奖游戏系统带后台源码
  3. 【正点原子MP157连载】第四十四章Linux SPI总线框架-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
  4. linux入门命令总结
  5. 中国工业经济数据库数据整理
  6. Java class反编译工具
  7. “舒尔特表”训练法:产生1-25随机数,并打印到一个表格中
  8. python课程预告_Python3编程预告
  9. ASCII码对照表(二进制、十进制、十六进制)
  10. 小程序毕设作品之微信小程序点餐系统毕业设计(5)任务书