前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >第六次人口普查数据分析

第六次人口普查数据分析

作者头像
用户2145057
发布于 2019-02-25 03:08:48
发布于 2019-02-25 03:08:48
2.2K00
代码可运行
举报
运行总次数:0
代码可运行

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

Figure_1.png

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

绘制图1的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 pd

plt.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代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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代码如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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发现大致规律后就需要深层次的数据挖掘探究可能的影响因子,找到因果关系。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.01.08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
termux安装和配置postgresql和mysql
执行 : yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y 2:安装postgres
QAIU
2023/03/14
2K0
Linux在线安装部署postgresql12+postgis3.1
postgresql中文社区:http://www.postgres.cn/v2/document
静谧星空TEL
2021/04/27
3.3K0
Linux在线安装部署postgresql12+postgis3.1
从零开始学PostgreSQL (一):Centos8 RPM安装PostgreSQL16
DBA实战
2024/09/06
3060
从零开始学PostgreSQL (一):Centos8 RPM安装PostgreSQL16
Linux环境下PG 14的安装部署
https://yum.postgresql.org/14/redhat/rhel-7-x86_64/repoview/postgresqldbserver14.group.html
AiDBA宝典
2022/05/25
3.4K0
Linux环境下PG 14的安装部署
PostgreSql 14 主从负载均衡部署
前些天给个环境部署PostgreSQL 主从负载均衡,这里仅仅简单记录一下命令以备后续使用,至于数据库的更多配置请自行根据需求配置.
星哥玩云
2022/06/06
3.6K1
PostgreSQL基础(二):PostgreSQL的安装与配置
PostgreSQL不推荐使用root管理,在安装成功postgreSQL后,他默认会给你创建一个用户:postgres
Lansonli
2024/09/06
4.4K0
PostgreSQL基础(二):PostgreSQL的安装与配置
制作 PG15 docker 学习镜像
如果为了模拟多实例PG环境,有不想开多个虚拟机,也不想在单机多端口运行的话,docker是一个不错的选择。
保持热爱奔赴山海
2024/01/10
2640
01 . PostgreSQL简介部署
PostgreSQL简介 简介 PostgreSQL在业内通常也简称PG,是一个关系型数据库管理系统,适用于各种Linux操作系统、Windows、Solaris、BSD和Mac OS X。PostgreSQL遵循BSD许可,是一个开源软件,PostgreSQL作为全球第四大关系型数据库服务,正在以飞快的速度发展,目前已经广泛用在各个行业,PostgreSQL本身具有哪些功能特点,请往下看 # 1. PostgreSQL数据库是目前功能最强大的开源数据库,是架构上和Oracle最接近的开源数据库.它基
iginkgo18
2020/09/27
1.2K0
PG主从数据库搭建
1、使用postgres用户登录(PostgresSQL安装后会自动创建postgres用户,无密码)
Karl Du
2020/10/23
1.5K0
PG主从数据库搭建
PostgreSQL主备库搭建
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
雪人
2022/10/13
2.7K0
PostgreSQL 16数据库的各种安装方式汇总(yum、编译、docker等)
详细使用请参考:https://www.xmmup.com/dbbao69zaidockerzhongkuaisushiyonggegebanbendepostgresqlshujuku.html
AiDBA宝典
2023/09/19
7K0
PostgreSQL 16数据库的各种安装方式汇总(yum、编译、docker等)
使用yum来安装PostgreSQL数据库(从PG9.4到PG16各个版本通用)
PG安装方法很多,和MySQL类似,给用户提供很大的选择空间。如:RPM包安装(在线、离线)、源码编译安装、系统自带、二进制、NDB安装等。
AiDBA宝典
2023/09/19
4.2K0
使用yum来安装PostgreSQL数据库(从PG9.4到PG16各个版本通用)
CentOS 7.9 安装 Postgresql 9.6
下面的步骤都是按照 9.6 版本进行安装的,如果时境过迁,9.6 也不支持了,只需要更改下面的版本号即可,将 9.6 版本改为你安装的版本,例如版本 10 ,只需要将下面所有的 9.6 改为 10 。
wsuo
2021/08/31
1.1K0
CentOS 7.9 安装 Postgresql 9.6
centos 安装postgrep
切换到postgres用户。然后执行修改用户密码SQL语句。其中“postgres”为要修改密码的用户,“123456”为用户的密码
东营浪人
2020/10/26
9270
CentOS7安装部署PostgreSQL 12数据库
PostgreSQL是一个基于POSTGRES 4.2的对象关系数据库管理系统。PostgreSQL项目为最常见的发行版提供了所有受支持版本的软件包的存储库。支持的发行版包括所有Red Hat系列,其中包括CentOS,Fedora,Scientific Linux,Oracle Linux和Red Hat Enterprise Linux。
Power
2025/03/03
1540
在CentOS 7上安装&配置PostgreSQL 12
PostgreSQL安装成功之后,会默认创建一个名为postgres的Linux用户,初始化数据库后,会有名为postgres的数据库,来存储数据库的基础信息,例如用户信息等等,相当于MySQL中默认的名为mysql数据库。
KenTalk
2020/03/02
16.4K1
CentOS7 安装PostgreSQL
版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://blog.csdn.net/wh211212/article/details/79627984
shaonbean
2019/05/26
6510
PostgreSQL入门
这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为"postgres=#",表示这时已经进入了数据库控制台。以下的命令都在控制台内完成。
老马
2019/05/25
1.9K0
Postgresql10离线安装
1、在很多时候,服务器不能联网,需要离线安装,下面是Postgresql10离线安装的步骤:
别先生
2021/03/08
1.4K0
Centos7安装Postgresql 13 详细步骤(远程连接)
可以参考官网https://www.postgresql.org/download/linux/redhat/ #安装存储库RPM:
Java架构师必看
2021/06/10
9.1K0
Centos7安装Postgresql 13 详细步骤(远程连接)
相关推荐
termux安装和配置postgresql和mysql
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档