????????????????本項(xiàng)目的數(shù)據(jù)來(lái)源是2019年拉勾網(wǎng)——上海的數(shù)據(jù)分析崗位的信息
首先第一步:爬取數(shù)據(jù)
爬取的代碼就不貼上來(lái)了,有很多種脓斩,本人的爬蟲(chóng)水平僅限于BeautifulSoup庫(kù)和requests庫(kù),更深入的scrapy等并沒(méi)掌握碍岔;注意用requests爬取的話畏线,請(qǐng)求方式是post,get是無(wú)法得到頁(yè)碼的
貼上最后爬取到的2019上海拉勾網(wǎng)數(shù)據(jù)分析崗位的csv文件鏈接:鏈接:https://pan.baidu.com/s/1jqYAs1HsBtHVM1BiRiHHqQ椭坚;提取碼:nfoh
第二步:數(shù)據(jù)的清洗和重構(gòu)
先正常導(dǎo)入數(shù)據(jù)分析需要的庫(kù)予跌,設(shè)置畫圖可顯示中文和負(fù)號(hào)以及seaborn的主題
讀取文件,爬取后的源數(shù)據(jù)是這樣的
然后是去重善茎,inplace=True直接將去重后的結(jié)果保存下來(lái)券册。
df.drop_duplicates(subset=['公司全稱','職位名稱','技能標(biāo)簽'], keep='first', inplace=True)
接下來(lái)要判斷是否有缺失值,有的話需要處理缺失值
從上圖可以看到還是有不少公司地址是帶缺失的垂涯,我們這里可以填補(bǔ)成“未知”烁焙,再用布爾值索引方法看是否處理成功
df[df.fillna('未知').isna().values == True]
看數(shù)據(jù)發(fā)現(xiàn),我們需要再添加一列薪資列耕赘,取薪資范圍的中間值骄蝇,方便之后做數(shù)據(jù)分析
tmp = df['薪資范圍'].str.split('-', expand=True)
def drop_k(x):?
? ?? return re.search('\d+', x).group()
tmp = tmp.applymap(drop_k)
tmp = tmp.apply(pd.to_numeric)
def average_s(x):
????return (x[0] + x[1]) / 2
tmp['平均薪資'] = tmp.apply(average_s, axis=1)
tmp
上述處理過(guò)后,可以發(fā)現(xiàn)操骡,平均薪資已經(jīng)出來(lái)了九火,就是薪資范圍下限和薪資范圍上限的均值
把列的名字改一下赚窃,可讀性更強(qiáng)
tmp = tmp.rename({0:'最低薪資 單位:k',1:'最高薪資 單位:k','平均薪資':'平均薪資 單位:k'}, axis=1)
然后我們把做好的平均薪資表和原表合并一下
df = df.join(tmp)
現(xiàn)在,我們基本的數(shù)據(jù)清洗和重構(gòu)已經(jīng)完成了吃既,后續(xù)就是根據(jù)具體要分析的內(nèi)容來(lái)做可視化了
第三步:數(shù)據(jù)分析
我們先來(lái)分析下不同工作經(jīng)驗(yàn)的崗位數(shù)量情況考榨,并用直方圖和餅圖來(lái)可視化
首先去除“不限”這個(gè)不確定因素,然后將目前的“所需資歷”按照從少到多來(lái)排序鹦倚,增加可讀性
tmp = df[df['所需資歷'] != '不限']
result = tmp.groupby('所需資歷')?
tmp2 = result.size()?
list_custom = ['應(yīng)屆畢業(yè)生', '1年以下', '1-3年', '3-5年', '5-10年', '10年以上']
下面自定義兩個(gè)函數(shù)河质,一個(gè)專門進(jìn)行排序,一個(gè)專門獲取索引值和列值震叙,后續(xù)也會(huì)用到
先用seaborn來(lái)畫Bar狀圖
可以直觀看到掀鹅,工作經(jīng)驗(yàn)要求3-5年的最多,1-3年其次媒楼,剛畢業(yè)或1年以下的經(jīng)驗(yàn)是比較少的乐尊,我們換個(gè)餅圖來(lái)看一下:
from pyecharts import Pie
pie = Pie('上海拉勾網(wǎng)數(shù)據(jù)分析 工作經(jīng)驗(yàn)統(tǒng)計(jì)')
pie.add('', xindex, vals, is_label_show=True, legend_top='bottom',
? ??????????????radius=[20,75], rosetype='area')
pie
未完待續(xù),后續(xù)繼續(xù)分析教育背景和薪資間的關(guān)系划址,工作經(jīng)驗(yàn)和薪資之間的關(guān)系扔嵌,公司行業(yè)的分布情況,工作標(biāo)簽分布情況等等