关于作者:程序猿石头(ID: tangleithu),现任阿里巴巴技术专家,清华学渣,前大疆后端 Leader。欢迎关注,交流和指导!
本文首发于微信公众号,原文链接,转载请全文保留。后台回复关键字 “1024” 获取程序员大厂面试指南。
背景
就在昨天,一年一度的北京积分落户结果出来了,我们照旧来看看今年(2020年)的数据情况。
在看这篇文章之前,你可以通过如下文章来得到石头是如何快速拿到这些数据分析结果的:
数据可以通过北京市人力资源和社会保障局官方网站下载获取,关于2020年积分落户公示及落户办理有关工作的通告。公示名单 形如:
点击每一项明细可以获得积分具体数值,以最高分为例:
然后,稍微动点小技巧即可获取完整的 6032 条记录。若你想获取石头初步处理后的 excel 数据,可直接后台回复 “2020积分落户” 取得。
数据分析
输入就是下载处理后的 csv,每行分别为“姓名、出生年月、单位名称、积分分值”。
本文将从 积分分数分布、公司分布、年龄分布 等几个方面做简单分析。
分数分布
我们来看看积分分布情况,大部分人积分分布在 97~102 分之间。这个分数虽然没有高考相差那么夸张,但一个 0.01 也能相差不少人,比如有 98 人都得了 97.5 分。98.17 有 39 人,少 0.01 的 98.16 有 21 人。
➜ 积分落户2020数据分析 git:(master) ✗ awk '{print $5}' 10000.csv |sort | uniq -c | sort -nr -k 1 | head -n 10 |
按照上次首批积分落户数据分析 的老规矩,拿到这个文件,比如希望你用最快的方法获得以下信息,你将会怎么做?
- 获取取得户口名额最多的top10公司
- 获取取得户口名额的人中姓氏最多的
- 获取年龄分布
当然,方法有很多,比如熟悉各种编程语言的,例如 python, php, java
等等写个简单的脚本程序,也能比较快获取答案。或者把相应的数据提取出来,放到 excel 中也可以。
如果你对 Shell 很熟悉,那真的是分分钟,应该是秒秒钟就能获取答案。本文不对 Shell 具体每个命令做过多的解释,不熟悉的同学可以直接 man $cmd
或者 $cmd --help
等等查看。
之前我也写过一篇名叫 Shell 助力开发效率提升 的文章,算是给常用的命令的常用参数做了一个解释和示例,有兴趣的同学可以前往查阅。 显然这次的输入数据比上次 首批的 json 数据 更简单。
获取取得户口名额最多的top10公司
直接awk
得到公司名字,对结果进行sort
排序进行去重uniq
统计得到重复次数,次时结果为重复次数 公司名
,再对第一列-k 1
重复数字进行按照数字排序逆序-nr
即 sort -nr -k 1
,最后取结果的前10行 head -n 10
。
➜ 首批积分落户 > grep 'unit' jifenluohu.json| cut -f2 -d: | sort | uniq -c | sort -nr -k 1 | head -n 10 |
对比上次的结果看, “华为” 又是榜首,中央电视台又位列第二,百度下去了,腾讯起来了。(“北京外企人力资源服务有限公司”)挂靠在 FESCO 下的外企,仍然挤进前 10 了。
以下是有户口指标前 50 的公司分布,快看看你的公司是否在榜(完整公司排名名单请后台回复“2020积分落户”获取)。
获取取得户口名额的人中姓氏最多的
看看想通过积分落户,最好是姓啥,哈哈。
看结果还是姓 “张, 王” 之类的最有戏。 😁➜ 首批积分落户 > grep '"name":' jifenluohu.json| sed 's|"name": "||g' | sed 's| ||g' | cut -c 1 | sort | uniq -c | sort -nr -k 1 | head -n 10
541 张
531 王
462 李
376 刘
205 陈
193 杨
166 赵
132 孙
95 郭
95 徐
➜ 积分落户2020数据分析 git:(master) ✗ awk '{print $2}' 10000.csv |cut -c 1 | sort | uniq -c | sort -nr -k 1 | head -n 10
553 王
477 李
457 张
369 刘
173 陈
168 杨
165 赵
126 孙
114 周
100 吴
对比这个数据,才发现真的是很牛 X,前 10 名的姓氏中,只有两个不一样。估计这是否也符合整个中国的姓氏?哪里能拿到这部分数据?可以验证一下。
为了把石头的姓氏“唐”找出来,取了前 50 个,发现像平时不怎么常见的姓氏还能入围前 50,还是很有意思的呢。比如“于”、“丁”等。
获取户口名字中叫啥名最流行
这个数据没啥意思就不给了,看看重名的数据吧。
➜ 积分落户2020数据分析 git:(master) ✗ awk '{print $2}' 10000.csv | sort | uniq -c | sort -nr -k 1 | head -n 10 |
作为码农,必须得养成对自己得到结果进行自测的习惯,所以如果对自己的结果不够自信,可以正向去计算一下最终的结果。
例如可以简单grep
一下进行验证,叫 “王鹏” 的是不是9个。
➜ 积分落户2020数据分析 git:(master) ✗ grep '王鹏' 10000.csv |
获取年龄分布
# 拿到出生年后, 直接通过 awk 计算结果输出 |
上次数据最大 61 岁,最小 34 岁,今年最新的数据最小 32 岁,最大 59 岁。这个 32 岁的看来很牛 X。 看看是谁?1988年出生。
➜ 积分落户2020数据分析 git:(master) ✗ grep '1988' 10000.csv |
这位 XX 磊同学确实优秀,(太具体了不太好,隐藏部分吧),看详细得分,因为有荣誉表彰 20 加分,查了下荣誉表彰指标里的“省部级及以上劳模”分为四类:全国劳模、享受全国劳模待遇人员、省部级劳模、享受省部级劳模待遇人员。
年龄分布如下所示,主要还是集中在 38 ~ 47 岁之间。
其他
这次的数据就先分享到这里,如果你有兴趣,可以到网站上采集更多数据(例如各项分数的明细,例如教育背景、合法稳定就业住所等)进行分析。
另外,如果你想计算一下自己能获得多少分,可以直接到官网网站进行计算,地址为:http://fuwu.rsj.beijing.gov.cn/integraltool/tool/simulation
关于作者:程序猿石头(ID: tangleithu),现任阿里巴巴技术专家,清华学渣,前大疆后端 Leader,欢迎关注,交流和指导!
欢迎扫码加入互联网大厂内推群 & 技术交流群,一起学习、共同进步。后台回复关键字 “0” 送阿里技术大礼包。