数据分析简单项目实战
用python对福建省考职位表进行分析
·
下载2023福建省考职位表,每个职位都有自己的信息和条件要求
分析职位所属地区的分布情况
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data=pd.read_excel(r"C:\Users\ChoCoLate\Desktop\2023福建省考职位表fj.xlsx",header=0)
#value_counts()返回值类型是series
#计数单位所属地区
area=data['单位所属地区'].value_counts()
print(area)
# 将序列的名称设置为空字符,否则绘制的饼图左边会出现名称
area.name=''
# 设置画布大小
plt.figure(figsize = (9,9))
# 设置字体和编码格式
plt.rcParams['font.sans-serif'] = 'simhei'
plt.rcParams['axes.unicode_minus'] = False
#plt.title.set_size(10)
area.plot(kind='pie',
title='福建省考职位所属地区分布图',
autopct="%.1f%%",
textprops = {'fontsize':13, 'color':'black'},# 设置文本标签的属性值
wedgeprops = {'linewidth': 0.5,'edgecolor':'black'} # 设置饼图内外边界的属性值
#legend={'loc':'upper left'}
)
#在左上方添加图例
#plt.legend(datas[:, 0], loc="upper left")
plt.show()


做成地图
from pyecharts.charts import Map
from pyecharts import options as opts
x1=['南平市','三明市','漳州市','福州市','泉州市','龙岩市','宁德市','厦门市','莆田市','平潭市']
del area['省直']
x2=area.tolist()
#print(x1,x2)
sequence = list(zip(x1,x2))
print(sequence)
c = (
Map(init_opts=opts.InitOpts(width="1000px",height="600px")) #初始化地图大小
.set_global_opts(
title_opts=opts.TitleOpts(title="福建省考职位所属地区分布地图 单位:人"), #配置标题
visualmap_opts=opts.VisualMapOpts(
#type_ = "scatter" #散点类型
min_=0,
max_=600,
range_text = ['人数区间:', ''], #分区间
is_piecewise=True, #定义图例为分段型,默认为连续的图例
pos_top= "middle", #分段位置
pos_left="left",
orient="vertical",
split_number=6 #分成10个区间
)
)
.add("岗位数",sequence,maptype="福建") #将list传入,地图类型为福建地图
.render("Map1.html")
)

分析招考范围为“全国”的职位及所属地区情况
scope=data['招考范围'].value_counts()
print(scope)
#筛选并计数招考范围为全国的地区
area_1=data.loc[data['招考范围']=='全国']['单位所属地区'].value_counts()
print(area_1)
#计算各地区全国岗位占比并排序
x=area_1/area
x.sort_values(ascending=False)

查看这两个条件的分布情况
educate=data['文化程度要求'].value_counts()
print(educate)
sex=data['性别要求'].value_counts()
print(sex)
sex.sum()


subject=data['所需专业'].value_counts()
all=subject.sum()
print('总招收岗位数:',all)

分析几个网上的热门考公专业招收的职位数,可以看到它们之间的差距
x1=data.loc[data['所需专业'].str.contains('计算机'),:]['所需专业'].value_counts().sum()
x2=data.loc[data['所需专业'].str.contains('法学'),:]['所需专业'].value_counts().sum()
x3=data.loc[data['所需专业'].str.contains('会计'),:]['所需专业'].value_counts().sum()
x4=data.loc[data['所需专业'].str.contains('经济学'),:]['所需专业'].value_counts().sum()
x5=data.loc[data['所需专业'].str.contains('语言文学'),:]['所需专业'].value_counts().sum()
x6=data.loc[data['所需专业'].str.contains('法学'),:]['所需专业'].value_counts().sum()
x7=data.loc[data['所需专业'].str.contains('财政'),:]['所需专业'].value_counts().sum()
x8=data.loc[data['所需专业'].str.contains('金融'),:]['所需专业'].value_counts().sum()
#print('包含[统计]的岗位数及所占比例:',x,x/all)
x9=all-x1-x2-x3-x4-x5-x6-x7-x8
x={'计算机':x1,'法学':x2,'会计':x3,'经济学':x4,'语言文学':x5,'法学':x6,'财政':x7,'金融':x8,'其他':x9}
sub=pd.Series(x)
x=sub.sort_values(ascending=False)
print(x)
x=(sub/all).sort_values(ascending=False)
print(x)

做成柱状图
# 设置画布大小
plt.figure(figsize = (7,7))
sub=sub.sort_values(ascending=False)
print(sub.index.tolist())
#plt.xticks(sub.index.tolist(),rotation=90)
sub.plot(kind='bar',
#x='专业',
#y='岗位数',
title='福建省考职位所需专业分布图',
#textprops = {'fontsize':13, 'color':'black'},# 设置文本标签的属性值
#wedgeprops = {'linewidth': 0.5,'edgecolor':'black'} # 设置饼图内外边界的属性值
#legend={'loc':'upper left'}
)
plt.show()

做得很简单,还有很多地方可以完善

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)