要准备找工作了,我需要找到一个合适于自己的城市,于是使用所学的数据分析方法来研究一下
结论:
1、工作择城可选择初级岗较多、并且每月工资扣除吃饭租房成本后剩余较多的南京、杭州、成都三地,其中南京、杭州每天上班通行距离相对较低。
2、目前自己还缺少SQL技能需要继续学习
3、这次分析的问题可能在于各大网站可以爬取到的数据不够多,分布不均匀,会导致结果与实际相比有些偏差。
——————————————————————
一、思路:
1、爬取数据:
获取招聘数据
智联招聘、前程无忧、拉勾网下数据分析师岗位,所需经验3年以下岗位的所有所需数据
(58同城无此类岗位、BOSS直聘仅显示十页数据量太少)获取生活数据
除一线外各主要城市美团、链家网餐饮租房数据
(美团为单人餐类目下数据,实际计算时使用中位数/3即可大约估计实际每顿消费,租房为1500元/月以下月付的数据,因为链家口碑上比较可靠,很少虚标价格所以使用这家)获取地理数据
没有经纬度坐标的地址另外补充爬取对应地址的经纬度坐标。
2、清洗数据创造特征
清洗数据
过滤垃圾数据
删除介绍中带有'金融'、‘开发’,和一线城市
(带有金融的门槛较高,较低的为骗局、开发不是我的方向、一线城市租房价格过高出行不便)分离特征
从职位描述特征中,分离出几个软件技能要求,有需要可以再加软技能
3、分析数据及结论可视化
筛选主要城市并输出各特征统计量
根据各城市招聘岗位的初级岗数量来筛选出主要城市
输出各列统计量寻找有意义的量计算生活指数
计算主要城市的餐饮、租房数据统计量,使用中位数来输出以代表该城市有50%的人在这个价格以下
计算城市餐饮、租房占该城市中位数工资占比,来并入加权城市生活指数计算通行距离
提取出生活指数前X的城市,分城市载入经纬度数据
以不同颜色的点做图查看住宿与公司距离情况,计算平均直线距离、密集程度
使用聚类对城市所有坐标进行处理,分为X块,计算每个城市中各地区的平均生活指数,密集度做出结论
按各城市性价比做四象限图,生活指数/招聘岗位数量
前X城市各地区的四象限图、分布情况,以及文字描述
——————————————————————
二、处理部分:
1、爬取数据:
获取招聘、餐饮、租房数据并且补全经纬度坐标
使用selenium+pyppeteer,现在的selenium都会被反爬检测到所以查找学习了新的库来爬美团等数据
不过实在太慢了,需要sleep模拟反爬,于是挂了好几天
这里共获取4000+条招聘数据,9400+美团数据,18000+租房数据,只爬了需要的字段
2、清洗数据及创建特征:
删除不需要的和错误数据
统一数据格式等等
3、分析数据及结论可视化
- 筛选主要城市并输出各特征统计量
其他可能有意义的统计量
工资特征的平均工资6.4K,标准差2.9K,最小工资为2K,有一半的人工资在6K以下
经验要求无要求和1~3年经验占一半左右
学历要求 大专占30%+,本科占50%+
硬技能要求
这里没有用字云,字云不太好用,这里主要看相对情况
- 计算生活指数
生活指数计算公式(以下均为50%中位数)
预期净月工资 = 工资 - ( 餐饮单次消费*30 + 房月租金)
生活指数 = 预期净月工资 * (0.7+(总招聘人数/2000))
美团人均日常餐饮基本上偏高,实际单次消费按照我当前住的城市/3差不多是每顿消费价格
-
计算通行距离
在处理时,发现爬取的数据量不太够,没法进一步细分分地区,但是工作和租房分布凑合还能计算距离
举几个城市例子
#计算两个坐标之间的距离
def geodistance(lng1,lat1,lng2,lat2):
#lng1,lat1,lng2,lat2 = (120.12802999999997,30.28708,115.86572000000001,28.7427)
lng1, lat1, lng2, lat2 = map(radians, [float(lng1), float(lat1), float(lng2), float(lat2)]) # 经纬度转换成弧度
dlon=lng2-lng1
dlat=lat2-lat1
a=sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
distance=2*asin(sqrt(a))*6371*1000 # 地球平均半径,6371km
distance=round(distance/1000,3)
return distance#返回千米
计算好的数据,计算方法是每个招聘坐标与每个租房地址的距离,汇总起来求平均
平均通行距离使用了平均这个指标,如果租房和工作的点集中在一起的越多,平均值就越低
- 结论可视化
可选工作地址为南京、杭州、成都,如果目的仅仅为找工作还可以选择西安这个招聘岗位多的地方,在数据里西安的工资不如其他城市
分为四个象限
X轴为岗位数量
Y轴为调整后的每月工资剩余
点的大小为通行距离,居住公司距离越集中点越大