coding: utf-8
Google招聘需求分析
Google是技术人员梦寐以求的工作圣地,想进入Google,需要什么样的条件?Google在哪些地区有招聘机会?我们一起探索。
这个项目中,我们将处理以csv文件格式存储的数据。数据为从https://careers.google.com/ 爬取的google招聘职位需求。
载入文件
我们尝试使用Pandas的read_csv载入数据,并查看前面的几行内容。
In[1]:
import pandas as pd
file = "./data/job_skills.csv"
df = pd.read_csv(file)
df.head()
1.读取数据.png
从天气数据样本中,我们可以看到数据的一些特征
- Company:公司名字,这里绝大部分是Google
- Title:工作头衔
- Category:职位类别
- Location:工作地点
- Responsibilities: 职责
- Minimum Qualifications:最低要求
- Preferred Qualifications:加分项
技能语言排名
尝试在Minimum Qualifications中,查找各编程语言出现的次数。
我们考察的语言包括python、java、c++、php、javascript、object-C、ruby、perl、c、c#、sql、swift、scala、r。
In[2]:
import re
# 定义语言列表
lang_list = ['python', 'java', 'c++', 'php', 'javascript', 'objective-c',
'ruby', 'perl', 'c', 'c#', 'sql', 'swift', 'scala', 'r']
# 定义统计函数,输入字符串,从中提取包含的‘python’、'java'等语言单词的次数
def lang_count(miniumum_qualifications_string, lang_dict):
'''该函数被以下all_lang_count调用,统计lang_dict中已经有的key在miniumum_qualifications_string中出现的次数。
输入:
miniumum_qualifications_string:str类型,被查询的字符串()
'''
# 从miniumum_qualifications_string中提取单词(可以参考Python正则表达式文档: https://docs.python.org/3/library/re.html)
# 将如下re.sqlit中的第一个参数修改为正确的表达式,split 方法按照能够匹配的子串将字符串分割后返回列表
"""
"+?" 重复1次或更多次,但尽可能少重复
\.| 匹配文本中的“.”
| | 匹配空格
|\s| 匹配空白,即空格,tab
|\n| 匹配换行
|\/| 匹配斜杠
|\r| 匹配回车
|\(| 匹配左括号
|\) 匹配右括号
|\v| 匹配纵向制表符 |
"""
for w in re.split(r'[\.| |,|;|\s|\n|\/|\r|\(|\)]+?', miniumum_qualifications_string):
# 如果单词为lang_list中的某一种语言(注意单词大小写问题),将字典lang_dict对应项累加
for lang in lang_list:
if w.lower() == lang:
lang_dict[lang] += 1
def all_lang_count(df):
'''统计Minimum Qualifications列的内容中,语言出现的次数
输入:
df:DataFrame,其中包含Minimum Qualifications列。
输出:
字典类型,其中key为语言名字如'python'、'java'等,value为单词在Minimum Qualifications中出现的次数。
'''
# 初始化字典变量lang_dict, 以l