『昊明有态度』哪类人才和技能最受热捧?,Python爬取近10万条程序员招聘数据( 三 )
4)工资水平字段的处理
工资水平字段的数据类似于“20-30万/年”、“2.5-3万/月”和“3.5-4.5千/月”这样的格式 。 我们需要做一个统一的变化 , 将数据格式转换为“元/月” , 然后取出这两个数字 , 求一个平均值 。
job_info[''工资''].str[-1].value_counts()job_info[''工资''].str[-3].value_counts()index1=job_info[''工资''].str[-1].isin([''年'',''月''])index2=job_info[''工资''].str[-3].isin([''万'',''千''])job_info=job_info[index1&index2]defget_money_max_min(x):try:ifx[-3]==''万'':z=[float(i)*10000foriinre.findall(''[0-9]+.?[0-9]*'',x)]elifx[-3]==''千'':z=[float(i)*1000foriinre.findall(''[0-9]+.?[0-9]*'',x)]ifx[-1]==''年'':z=[i/12foriinz]returnzexcept:returnxsalary=job_info[''工资''].apply(get_money_max_min)job_info[''最低工资'']=salary.str[0]job_info[''最高工资'']=salary.str[1]job_info[''工资水平'']=job_info[[''最低工资'',''最高工资'']].mean(axis=1)说明:首先我们做了一个数据筛选 , 针对于每一条记录 , 如果最后一个字在“年”和“月”中 , 同时第三个字在“万”和“千”中 , 那么就保留这条记录 , 否则就删除 。 接着定义了一个函数 , 将格式统一转换为“元/月” 。 最后将最低工资和最高工资求平均值 , 得到最终的“工资水平”字段 。
5)工作地点字段的处理
由于整个数据是关于全国的数据 , 涉及到的城市也是特别多 。 我们需要自定义一个常用的目标工作地点字段 , 对数据做一个统一处理 。
#job_info[''工作地点''].value_counts()address_list=['北京','上海','广州','深圳','杭州','苏州','长沙','武汉','天津','成都','西安','东莞','合肥','佛山','宁波','南京','重庆','长春','郑州','常州','福州','沈阳','济南','宁波','厦门','贵州','珠海','青岛','中山','大连','昆山',''惠州'',''哈尔滨'',''昆明'',''南昌'',''无锡'']address_list=np.array(address_list)defrename(x=None,address_list=address_list):index=[iinxforiinaddress_list]ifsum(index)>0:returnaddress_list[index][0]else:returnxjob_info[''工作地点'']=job_info[''工作地点''].apply(rename)说明:首先我们定义了一个目标工作地点列表 , 将其转换为ndarray数组 。 接着定义了一个函数 , 将原始工作地点记录 , 替换为目标工作地点中的城市 。
6)公司类型字段的处理
这个很容易 , 就不详细说明了 。
job_info.loc[job_info[''公司类型''].apply(lambdax:len(x)<6),''公司类型'']=np.nanjob_info[''公司类型'']=job_info[''公司类型''].str[2:-2]7)行业字段的处理
每个公司的行业字段可能会有多个行业标签 , 但是我们默认以第一个作为该公司的行业标签 。
#job_info[''行业''].value_counts()job_info[''行业'']=job_info[''行业''].apply(lambdax:re.sub('','',''/'',x))job_info.loc[job_info[''行业''].apply(lambdax:len(x)<6),''行业'']=np.nanjob_info[''行业'']=job_info[''行业''].str[2:-2].str.split(''/'').str[0]8)经验与学历字段的处理
关于这个字段的数据处理 , 我很是思考了一会儿 , 不太好叙述 , 放上代码自己下去体会 。
job_info[''学历'']=job_info[''经验与学历''].apply(lambdax:re.findall(''本科|大专|应届生|在校生|硕士'',x))deffunc(x):iflen(x)==0:returnnp.naneliflen(x)==1orlen(x)==2:returnx[0]else:returnx[2]job_info[''学历'']=job_info[''学历''].apply(func)9)工作描述字段的处理
对于每一行记录 , 我们去除停用词以后 , 做一个jieba分词 。
withopen(r''G:8泰迪python_project51_jobstopword.txt'',''r'')asf:stopword=f.read()stopword=stopword.split()stopword=stopword+[''任职'',''职位'','''']job_info[''工作描述'']=job_info[''工作描述''].str[2:-2].apply(lambdax:x.lower()).apply(lambdax:''''.join(x)).apply(jieba.lcut).apply(lambdax:[iforiinxifinotinstopword])job_info.loc[job_info[''工作描述''].apply(lambdax:len(x)<6),''工作描述'']=np.nan10)公司规模字段的处理
- 喵喵次元伊朗卫队表明态度,来犯必将击落,美国无人机再遭拦截
- 美国:截至5月10日凌晨6时,特朗普态度变了!美国,最坏的结果来了!
- 『违法』四川法院以零容忍态度查处违纪违法干警150名
- 丁路遥知事表明中方态度,世卫拟派团赴华调查病毒起源?华春莹回应
- 军人驿站国际观察承认精通暗杀和窃听,蓬佩奥对其态度谦卑,普京首次谈特工经历
- 「黄金」美国态度强硬,拒不归还我国600吨黄金,中国打破沉默出手了!
- 龙卷娱表明对蒋凡力挺态度!婚外情算个事吗?,马云无意中一句话
- 态度青岛2020青岛·全球创投风投网络大会莱西推介会举行
- 「美国」美国对华索赔28000亿美元,要求3个月内付清,中方是什么态度?
- 北斗导航▲终于反击!美国撤资400亿也不行,这次我国态度坚决,没有如果