python分析人口出生率代码_国家统计局居然也能用的上Python?人口数据Python脚本了解一下?…[通俗易懂]

python分析人口出生率代码_国家统计局居然也能用的上Python?人口数据Python脚本了解一下?…[通俗易懂]原标题:国家统计局居然也能用的上Python?人口数据Python脚本了解一下?通过采集国家统计局“国家数据”网站中提供的中国历年人口数据,并对数据进行可视化的探索,发现了一些有意思和令人深思的现象和趋势。有一些小伙伴后台留言希望公布一下采集“国家数据”网站人口数据的代码,在这里,就将总人口、人口出生率、人口年龄结构和人口平均寿命4项数据的代码公布出来,方便大家学习和使用。文章目录涉及到的模块在这…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

原标题:国家统计局居然也能用的上Python?人口数据Python脚本了解一下?

通过采集国家统计局“国家数据”网站中提供的中国历年人口数据,并对数据进行可视化的探索,发现了一些有意思和令人深思的现象和趋势。

有一些小伙伴后台留言希望公布一下采集“国家数据”网站人口数据的代码,在这里,就将总人口、人口出生率、人口年龄结构和人口平均寿命4项数据的代码公布出来,方便大家学习和使用。

文章目录

涉及到的模块

在这里使用到的第三方库有requests,通过pip命令即可直接安装:

pip install requests

使用到的内置库有:

json:用于解析接口返回的数据;

csv:用于将数据写入到CSV文件中;

同时使用到的header请求头为:

headers = {

‘Host’: ‘data.stats.gov.cn’,

‘Connection’: ‘keep-alive’,

‘Accept’: ‘application/json, text/java, */*; q=0.01’,

‘X-Requested-With’: ”,

‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36’,

‘Referer’: ‘http://data.stats.gov.cn/easyquery.htm?cn=C01’,

‘Accept-Encoding’: ‘gzip, deflate’,

‘Accept-Language’: ‘zh-CN,zh;q=0.9’,

}

生成年份列表

# 获取年份列表

def get_year_list():

year_list = []

for i in range(1949,2017):

year_list.append(str(i))

return year_list

总人口

总人口数据中包含年份、总人口、男性人口、女性人口、城镇人口、乡村人口5项,保存为总人口.csv文件:

# 总人口

def get_total_population():

year_list = get_year_list()

with open(‘总人口.csv’, ‘a+’, encoding=’utf-8′, newline=”) as files:

fieldnames = [‘年份’, ‘年末总人口(万人)’, ‘男性人口(万人)’, ‘女性人口(万人)’, ‘城镇人口(万人)’, ‘乡村人口(万人)’]

writer = csv.DictWriter(files, fieldnames=fieldnames)

writer.writeheader()

for year in year_list:

url = ‘http://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=hgnd&rowcode=zb&colcode=sj&wds=%5B%5D&dfwds=%5B%7B%22wdcode%22%3A%22sj%22%2C%22valuecode%22%3A%22{year}%22%7D%5D’.format(

year=year)

wbdata = requests.get(url, headers=headers)

jsdata = json.loads(wbdata.text)

data = jsdata[‘returndata’][‘datanodes’]

item = {

‘年份’: year + ‘年’,

‘年末总人口(万人)’: data[0][‘data’][‘data’], # 年末总人口(万人)

‘男性人口(万人)’: data[1][‘data’][‘data’], # 男性人口(万人)

‘女性人口(万人)’: data[2][‘data’][‘data’], # 女性人口(万人)

‘城镇人口(万人)’: data[3][‘data’][‘data’], # 城镇人口(万人)

‘乡村人口(万人)’: data[4][‘data’][‘data’], # 乡村人口(万人)

}

print(item)

writer.writerow(item)

人口出生率、死亡率和自然增长率

包含年份、出生率、死亡率、自然增长率4项数据,数据保存为出生死亡及自然增长率.csv文件:

# 人口出生率、死亡率和自然增长率

def get_birth_death_rate():

year_list = get_year_list()

with open(‘出生死亡及自然增长率.csv’,’a+’,encoding=’utf-8′,newline=”) as files:

fieldnames = [‘年份’, ‘出生率’, ‘死亡率’, ‘自然增长率’]

writer = csv.DictWriter(files, fieldnames=fieldnames)

writer.writeheader()

for year in year_list:

url = ‘http://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=hgnd&rowcode=zb&colcode=sj&wds=%5B%5D&dfwds=%5B%7B%22wdcode%22%3A%22sj%22%2C%22valuecode%22%3A%22{year}%22%7D%5D’.format(year=year)

wbdata = requests.get(url,headers=headers)

jsdata = json.loads(wbdata.text)

data = jsdata[‘returndata’][‘datanodes’]

item = {

‘年份’ : year+’年’,

‘出生率’ : data[0][‘data’][‘data’], # 人口出生率

‘死亡率’ : data[1][‘data’][‘data’], # 人口死亡率

‘自然增长率’ : data[2][‘data’][‘data’], # 人口自然增长率

}

print(item)

writer.writerow(item)

人口年龄结构及抚养比

包含年份、年末总人口、0-14岁人口、15-64岁人口、65岁及以上人口、总抚养比、少儿抚养比、老年抚养比8项数据,数据保存为人口年龄结构及抚养比.csv文件:

def get_age_structure():

year_list = get_year_list()

with open(‘人口年龄结构及抚养比.csv’, ‘a+’, encoding=’utf-8′, newline=”) as files:

fieldnames = [‘年份’, ‘年末总人口(万人)’, ‘0-14岁人口(万人)’, ’15-64岁人口(万人)’, ’65岁及以上人口(万人)’, ‘总抚养比(%)’, ‘少儿抚养比(%)’, ‘老年抚养比(%)’]

writer = csv.DictWriter(files, fieldnames=fieldnames)

writer.writeheader()

for year in year_list:

url = ‘http://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=hgnd&rowcode=zb&colcode=sj&wds=%5B%5D&dfwds=%5B%7B%22wdcode%22%3A%22sj%22%2C%22valuecode%22%3A%22{year}%22%7D%5D’.format(

year=year)

wbdata = requests.get(url, headers=headers)

jsdata = json.loads(wbdata.text)

data = jsdata[‘returndata’][‘datanodes’]

item = {

‘年份’: year + ‘年’,

‘年末总人口(万人)’: data[0][‘data’][‘data’], # 年末总人口(万人)

‘0-14岁人口(万人)’: data[1][‘data’][‘data’], # 0-14岁人口(万人)

’15-64岁人口(万人)’: data[2][‘data’][‘data’], # 15-64岁人口(万人)

’65岁及以上人口(万人)’: data[3][‘data’][‘data’], # 65岁及以上人口(万人)

‘总抚养比(%)’: data[4][‘data’][‘data’], # 总抚养比(%)

‘少儿抚养比(%)’: data[5][‘data’][‘data’], # 少儿抚养比(%)

‘老年抚养比(%)’: data[6][‘data’][‘data’], # 老年抚养比(%)

}

print(item)

writer.writerow(item)

人口平均预期寿命

包含年份、平均预期寿命、男性平均预期寿命、女性平均预期寿命4项数据,数据保存为人口平均预期寿命.csv文件:

def get_avg_life():

year_list = get_year_list()

with open(‘人口平均预期寿命.csv’, ‘a+’, encoding=’utf-8′, newline=”) as files:

fieldnames = [‘年份’, ‘平均预期寿命(岁)’, ‘男性平均预期寿命(岁)’, ‘女性平均预期寿命(岁)’]

writer = csv.DictWriter(files, fieldnames=fieldnames)

writer.writeheader()

for year in year_list:

url = ‘http://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=hgnd&rowcode=zb&colcode=sj&wds=%5B%5D&dfwds=%5B%7B%22wdcode%22%3A%22sj%22%2C%22valuecode%22%3A%22{year}%22%7D%5D’.format(

year=year)

wbdata = requests.get(url, headers=headers)

jsdata = json.loads(wbdata.text)

data = jsdata[‘returndata’][‘datanodes’]

item = {

‘年份’: year + ‘年’,

‘平均预期寿命(岁)’: data[0][‘data’][‘data’], # 男性平均预期寿命(岁)

‘男性平均预期寿命(岁)’: data[1][‘data’][‘data’], # 人口死亡率

‘女性平均预期寿命(岁)’: data[2][‘data’][‘data’], # 人口自然增长率

}

print(item)

writer.writerow(item)

打包

加我微信:Python654472766 人口统计即可获取源码哦!

责任编辑:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/197638.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • jetbrains激活码【2021.10最新】[通俗易懂]

    (jetbrains激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • linux的进程调度指的是系统对进程调用_Linux进程调度实验

    linux的进程调度指的是系统对进程调用_Linux进程调度实验进程状态进程调度就是让进程从一种状态切换到另一种状态。Linux中进程的主要状态如下,值状态缩写含义0TASK_RUNNINGR正在运行或可运行1TASK_INTERRUPTIBLES可中断的休眠2TASK_UNINTERRUPTIBLED不可中断的休眠4__TASK_STOPPEDT停止状态,当进程接收到SIGSTOP等signal信息8__TASK_TRACEDt跟踪状态,进程被debugge…

  • maven 项目打jar包 并包含所有依赖「建议收藏」

    maven 项目打jar包 并包含所有依赖「建议收藏」背景:基于最近项目部署,需要打jar包,然后涉及接口调用,反复测试,出现了各种问题,最后找到合理方案,特做以下总结:一、延伸知识:Springboot打jar包命令1.把之前打过的包通通干掉mvnpackageclean-Dmaven.test.skip=true2.重新打包mvnpackage-Dmaven.test.skip=true3.Springboot的打包插件<build><plugins>&

  • Zigbee协议栈ZStack构架

    Zigbee协议栈ZStack构架协议栈版本信息:ZigBee2006\ZStack-1.4.3-1.2.11、ZStack协议栈构架  Zigbee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些应用层API,供用户调用。协议栈体系分层架构与协议栈代码文件夹对应表如下:   整个协议栈的构架,如图所示APP:应用层目录,这是用户创建各种不同工程的区域,在这个目录

  • Scrapy 爬虫完整案例—从小白到大神(银行网点信息为例)

    Scrapy 爬虫完整案例—从小白到大神(银行网点信息为例)采用selenium界面抓取信息,需要渲染界面,并且也是单线程操作,效率极低,一晚上只爬去了一个工行的数据。突然想到了分布式爬虫安装Scrapypip版本过于老旧不能使用,需要升级pip版本,输入python-mpipinstall–upgradepip,升级成功安装scrapy命令:pipinstallScrapy因为scrapy框架基于Twisted,所以先要下载其whl包安装地址:http://www.lfd.uci.edu/~gohlke/pythonl..

  • EFI shell操作

    EFI shell操作进入EFIshell后,切换盘符使用fs0:(注意冒号不能丢)

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号