『昊明有态度』哪类人才和技能最受热捧?,Python爬取近10万条程序员招聘数据( 二 )
在一级页面中 , 我们爬取了“岗位名称” , “公司名称” , “工作地点” , “工资” , “发布日期” , “二级网址的url”这几个字段 。
在二级页面中 , 我们爬取了“经验、学历信息” , “岗位描述” , “公司类型” , “公司规模” , “所属行业”这几个字段 。
数据预处理
从爬取到的数据中截取部分做了一个展示 , 可以看出数据很乱 。 杂乱的数据并不利于我们的分析 , 因此需要根据研究的目标做一个数据预处理 , 得到我们最终可以用来做可视化展示的数据 。
1)相关库的导入及数据的读取
df=pd.read_csv(r''G:8泰迪python_project51_jobjob_info1.csv'',engine=''python'',header=None)#为数据框指定行索引df.index=range(len(df))#为数据框指定列索引df.columns=[''岗位名'',''公司名'',''工作地点'',''工资'',''发布日期'',''经验与学历'',''公司类型'',''公司规模'',''行业'',''工2)数据去重
我们认为一个公司的公司名和发布的岗位名一致 , 就看作是重复值 。 因此 , 使用drop_duplicates(subset=[])函数 , 基于“岗位名”和“公司名”做一个重复值的剔除 。
#去重之前的记录数print(''去重之前的记录数'',df.shape)#记录去重df.drop_duplicates(subset=[''公司名'',''岗位名''],inplace=True)#去重之后的记录数print(''去重之后的记录数'',df.shape)3)岗位名字段的处理
①岗位名字段的探索
df[''岗位名''].value_counts()df[''岗位名'']=df[''岗位名''].apply(lambdax:x.lower())说明:首先我们对每个岗位出现的频次做一个统计 , 可以看出“岗位名字段”太杂乱 , 不便于我们做统计分析 。 接着我们将岗位名中的大写英文字母统一转换为小写字母 , 也就是说“AI”和“Ai”属于同一个东西 。
②构造想要分析的目标岗位 , 做一个数据筛选
job_info.shapetarget_job=['算法','开发','分析','工程师','数据','运营','运维']index=[df[''岗位名''].str.count(i)foriintarget_job]index=np.array(index).sum(axis=0)>0job_info=df[index]job_info.shape说明:首先我们构造了如上七个目标岗位的关键字眼 。 然后利用count()函数统计每一条记录中 , 是否包含这七个关键字眼 , 如果包含就保留这个字段 , 不过不包含就删除这个字段 。 最后查看筛选之后还剩余多少条记录 。
③目标岗位标准化处理(由于目标岗位太杂乱 , 我们需要统一一下)
job_list=['数据分析',''数据统计'',''数据专员'','数据挖掘','算法','大数据','开发工程师','运营','软件工程','前端开发','深度学习','ai','数据库','数据库','数据产品','客服','java','.net','andrio','人工智能','c++','数据管理',''测试'',''运维'']job_list=np.array(job_list)defrename(x=None,job_list=job_list):index=[iinxforiinjob_list]ifsum(index)>0:returnjob_list[index][0]else:returnxjob_info[''岗位名'']=job_info[''岗位名''].apply(rename)job_info[''岗位名''].value_counts()#数据统计、数据专员、数据分析统一归为数据分析job_info[''岗位名'']=job_info[''岗位名''].apply(lambdax:re.sub(''数据专员'',''数据分析'',x))job_info[''岗位名'']=job_info[''岗位名''].apply(lambdax:re.sub(''数据统计'',''数据分析'',x))说明:首先我们定义了一个想要替换的目标岗位job_list , 将其转换为ndarray数组 。 然后定义一个函数 , 如果某条记录包含job_list数组中的某个关键词 , 那么就将该条记录替换为这个关键词 , 如果某条记录包含job_list数组中的多个关键词 , 我们只取第一个关键词替换该条记录 。 接着使用value_counts()函数统计一下替换后的各岗位的频次 。 最后 , 我们将“数据专员”、“数据统计”统一归为“数据分析” 。
- 喵喵次元伊朗卫队表明态度,来犯必将击落,美国无人机再遭拦截
- 美国:截至5月10日凌晨6时,特朗普态度变了!美国,最坏的结果来了!
- 『违法』四川法院以零容忍态度查处违纪违法干警150名
- 丁路遥知事表明中方态度,世卫拟派团赴华调查病毒起源?华春莹回应
- 军人驿站国际观察承认精通暗杀和窃听,蓬佩奥对其态度谦卑,普京首次谈特工经历
- 「黄金」美国态度强硬,拒不归还我国600吨黄金,中国打破沉默出手了!
- 龙卷娱表明对蒋凡力挺态度!婚外情算个事吗?,马云无意中一句话
- 态度青岛2020青岛·全球创投风投网络大会莱西推介会举行
- 「美国」美国对华索赔28000亿美元,要求3个月内付清,中方是什么态度?
- 北斗导航▲终于反击!美国撤资400亿也不行,这次我国态度坚决,没有如果