北京积分落户制是北京市政协建议推行的积分落户政策,以科技贡献、专业技能、在京时间等指标为考核项,计算非京籍人才的“积分”,积分达标即可落户北京。北京市积分落户自2017年1月1日起施行,每年申请一次。
北京积分落户一共有9项积分指标,下面罗列了其中的4项,这4项也是积分分值较多、较容易拉开差距且获得高分的指标。
为了能更直观地反映2018年北京积分落户的情况,下面将对2018年落户成功的人员名单就行分析。
import pandas as pd
from matplotlib import pyplot as plt
from matplotlib import rcParams
luohu_data = pd.read_csv("./beijing_luohu.csv", index_col = "id")
luohu_data.index.name = None
rcParams["font.sans-serif"] = ["KaiTi"]
rcParams['axes.unicode_minus'] = False
查看分值的基本情况:
print("最低分:",luohu_data["score"].min())
print("最高分:",luohu_data["score"].max())
print("平均分:",round(luohu_data["score"].mean(),2))
输出:
最低分: 90.75
最高分: 122.59
平均分: 95.65
由于北京积分落户名单是官方发布的,数据较规范,不过为了确保无误,我们可以执行以下代码:
print(luohu_data.info())
输出:
Int64Index: 6019 entries, 1 to 6019
Data columns (total 4 columns):
name 6019 non-null object
birthday 6019 non-null object
company 6019 non-null object
score 6019 non-null float64
dtypes: float64(1), object(3)
memory usage: 235.1+ KB
显然,这份名单有6019条数据,且各个字段都没有缺失值,因此我们可以直接分析。
# 对公司进行分组
company_gb = luohu_data.groupby(by = "company", as_index = False).count()[["company", "name"]]
company_gb = company_gb.rename(columns = {"name" : "people_num"})
company_gb_sort_data = company_gb.sort_values("people_num")
company_name = company_gb_sort_data.tail(20)["company"]
company_people_count = company_gb_sort_data.tail(20)["people_num"]
# 绘图
plt.figure(figsize = (15,10), dpi = 80)
plt.xticks(size =18)
plt.yticks(size = 15)
# 设置不同柱子不同颜色
color = ["orange"] * 19 + ["red"]
rects = plt.barh(company_name, company_people_count, height = 0.5, color = color)
for rect in rects:
rect_width = rect.get_width() # 获取每组条形图的长度
plt.text(rect_width+1, rect.get_y()+0.1, str(rect_width), size = 18)
plt.title("2018年北京积分落户公司人数排行榜前20名", size = 25)
plt.xlabel("人数", size = 20)
plt.grid(ls = "--", alpha = 0.4)
plt.show()
不难发现,华为是2018年北京积分落户中的突出企业,其中北京华为数字技术有限公司的落户人数最多,为137人;华为技术有限公司北京研究所有27人,位居第10,可谓力压群雄。其次,落户人员所在行业广泛,如金融、制造、科技、通信等,其中IT企业、国企较为集中。
# 对分数进行分桶
bins = [i for i in range(90,126,5)]
score_cut = pd.cut(luohu_data["score"], bins = bins)
# 统计不同区间的人数
score_counts = score_cut.value_counts()
score_counts_values = score_counts.values
# 将条形图画成直方图
plt.figure(figsize = (10,8), dpi = 80)
_x = [i - 0.5 for i in range(len(bins)+1)]
_xticks_label = bins
_xticks_label.insert(0,0)
plt.xticks(_x, _xticks_label, size = 15)
plt.yticks(size = 15)
rects = plt.bar(range(1,8), score_counts_values, width = 1, edgecolor = "c")
for rect in rects:
rect_height = rect.get_height()
plt.text(rect.get_x()+0.3, rect_height+30, str(rect_height), size = 18)
plt.title("2018年北京积分落户人员积分分布直方图", size = 22)
plt.xlabel("积分", size = 20)
plt.ylabel("人数", size = 20)
plt.grid(ls = "--", alpha = 0.4)
plt.show()
从直方图可以看出,落户人员的积分主要集中在90~100分,其中95分及以下的人数占总人数的55.6%。而积分在110以上的只有47人,造成高分段人数较少的原因有:
# 将出生年月转化为时间格式
luohu_data["birthday"] = pd.to_datetime(luohu_data["birthday"])
# 计算每个人的年龄
luohu_data["age"] = (pd.to_datetime("2018-10") - luohu_data["birthday"])//pd.Timedelta("365 days")
bins = [32, 34, 36, 38, 40, 42, 45, 48, 50, 60]
age_cut = pd.cut(luohu_data["age"], bins = bins)
age_cut_value_counts = age_cut.value_counts()
# 取每个区间的左区间值作为索引
age_cut_value_counts.index = [i.left for i in age_cut_value_counts.index]
age_cut_value_counts = age_cut_value_counts.sort_index()
plt.figure(figsize = (10,8), dpi = 80)
plt.yticks(size = 18)
_x = [i-0.5 for i in range(len(age_cut_value_counts.index)+3)]
_xticks_label = list(age_cut_value_counts.index) # 转化为列表方便插入数据
_xticks_label.insert(0,0)
_xticks_label.insert(11,60)
plt.xticks(_x, _xticks_label, size = 18)
rects = plt.bar(range(1,10), age_cut_value_counts.values, width = 1, color = "#6495ED", edgecolor = "#CFCFCF")
for rect in rects:
height = rect.get_height()
plt.text(rect.get_x()+0.3, height+20, str(height), size = 18)
plt.xlabel("年龄段", size = 18)
plt.ylabel("总人数", size = 18)
plt.title("2018年北京积分落户不同年龄段人数分布直方图", size = 20)
plt.grid(ls = "--", alpha = 0.4)
plt.show()
落户人员中,48岁及以下(1970年以后出生)的人员有5990人,占比约99.5%,处于绝对主体地位;其次,落户人员集中在38~45岁,其中42~45岁年龄段的人数最多,为1765人,这个年龄段的人既能满足年龄指标,工作也相对稳定,工作年限较长,体现了长期在京工作的要求。
根据北京积分落户的积分指标以及对2018年结果的分析,为了能以高积分的优势顺利落户北京,满足以下条件是关键: