
作者:俊欣
來源:關(guān)于數(shù)據(jù)分析與可視化
隨著各行各業(yè)都在進(jìn)行數(shù)字化轉(zhuǎn)型,數(shù)據(jù)方面的人才也成為了各家企業(yè)招聘的重點(diǎn)對象,不同數(shù)據(jù)類型的崗位提供的薪資待遇又是如何的?哪個(gè)城市最需要數(shù)據(jù)方面的人才、未來的發(fā)展前景與錢途又是怎么樣的?今天小編抓取了某互聯(lián)網(wǎng)招聘平臺上面的招聘信息,來為大家分析分析。我們大致會講
我們用Python當(dāng)中的requests模塊來發(fā)送與接收請求,然后用BeautifulSoup模塊也解析返回的數(shù)據(jù),代碼如下
@retry(stop=stop_after_attempt(7)) def make_requests(url):
response = requests.get(url=url, headers=headers)
response_1 = BeautifulSoup(response.text, "lxml") return response_1
解析數(shù)據(jù)的代碼如下
def process_data(index, job_title, response_text):
response_2 = response_text.select("div.list__YibNq") for resp in response_2[0]: if resp.select("div.p-top__1F7CL a"):
job_titles = resp.select("div.p-top__1F7CL a")[0].get_text() else:
job_titles = "" if resp.select("span.money__3Lkgq"):
payments = resp.select("span.money__3Lkgq")[0].get_text() else:
payments = "" .........
然后最后將收集到的數(shù)據(jù)導(dǎo)出到excel當(dāng)中,代碼如下
df = pd.DataFrame(
{"職位名稱": job_titles_list, "薪資待遇": payments_list, "工作年限": work_years_list, "公司名稱": company_name_list, "所處行業(yè)": industry_list, "崗位簡介": job_title_description_list}) path = "job_files/" if not os.path.exists(path): os.makedirs(path)
df.to_excel("./job_files/{}_{}.xlsx".format(job_title, index), index = False)
小編這次所抓取的崗位分別有“數(shù)據(jù)分析師”、“數(shù)據(jù)挖掘工程師”、“數(shù)據(jù)產(chǎn)品經(jīng)理”、“大數(shù)據(jù)開發(fā)工程師”以及“數(shù)據(jù)運(yùn)營助理”等等,接下來我們就針對所收集到的數(shù)據(jù)進(jìn)行清洗與進(jìn)一步的處理吧
我們用到的是Pandas模塊,首先先導(dǎo)入所有收集到的數(shù)據(jù)
import pandas as pd import os
df_all = pd.DataFrame(columns=["職位名稱", "薪資待遇", "工作年限", "公司名稱", "所處行業(yè)", "崗位簡介"]) for file in os.listdir("./job_files"):
df = pd.read_excel("./job_files/" + file)
df_all = df_all.append(df, ignore_index=True)
我們來看一下最終的數(shù)據(jù)集長什么樣子
print(df_all.info())
output
<class 'pandas.core.frame.DataFrame'> RangeIndex: 2238 entries, 0 to 2237 Data columns (total 6 columns):
# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 職位名稱 2238 non-null object 1 薪資待遇 2238 non-null object 2 工作年限 2238 non-null object 3 公司名稱 2238 non-null object 4 所處行業(yè) 2234 non-null object 5 崗位簡介 2238 non-null object dtypes: object(6)
memory usage: 105.0+ KB
數(shù)據(jù)集當(dāng)中或許存在重復(fù)的內(nèi)容,我們用drop_duplicates()方法來進(jìn)行重復(fù)項(xiàng)的去除
df_all_1 = df_all.drop_duplicates()
df_all_1.info()
output
<class 'pandas.core.frame.DataFrame'> Int64Index: 2207 entries, 0 to 2237 Data columns (total 6 columns):
# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 職位名稱 2207 non-null object 1 薪資待遇 2207 non-null object 2 工作年限 2207 non-null object 3 公司名稱 2207 non-null object 4 所處行業(yè) 2203 non-null object 5 崗位簡介 2207 non-null object dtypes: object(6)
memory usage: 120.7+ KB
df_all_1 = df_all_1.dropna(axis = 0, how = "any")
df_all_1.info()
output
<class 'pandas.core.frame.DataFrame'> Int64Index: 2203 entries, 0 to 2237 Data columns (total 6 columns):
# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 職位名稱 2203 non-null object 1 薪資待遇 2203 non-null object 2 工作年限 2203 non-null object 3 公司名稱 2203 non-null object 4 所處行業(yè) 2203 non-null object 5 崗位簡介 2203 non-null object dtypes: object(6)
memory usage: 120.5+ KB
接下來為了方便對薪資數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,我們對此也需要進(jìn)行相對應(yīng)的處理
df_all_1["薪資待遇"] = df_all_1["薪資待遇"].str.replace("k", "000")
我們先來看薪資上面的差距,根據(jù)不同的職位名稱來看,例如我們來看“數(shù)據(jù)產(chǎn)品經(jīng)理”這個(gè)崗位
df_all_1[df_all_1["職位名稱"].str.contains("產(chǎn)品經(jīng)理")]['薪資待遇'].value_counts().head(5)
output
20000-40000 66 15000-30000 48 15000-25000 46 20000-30000 27 25000-50000 26 Name: 薪資待遇, dtype: int64
較多的是集中在20K-40K這個(gè)范圍當(dāng)中,具體我們可以通過下面這個(gè)可視化的結(jié)果來看
我們可以發(fā)現(xiàn)的是整體的市場中“數(shù)據(jù)產(chǎn)品經(jīng)理”這個(gè)崗位的整體待遇是相對更好一點(diǎn)的,其次便是“數(shù)據(jù)挖掘工程師”這個(gè)崗位,薪資一般也比較容易達(dá)到20K-40K之間的區(qū)間
接下來我們來看一下哪些城市對數(shù)據(jù)方面的人才需求是最多的,
df_all_1["城市分布"] = df_all_1["職位名稱"].apply(lambda x: x.split("[")[1].split("·")[0])
df_all_1["城市分布"].value_counts().head(10)
output
北京 702 上海 446 深圳 404 杭州 194 廣州 190 成都 68 武漢 57 西安 23 南京 18 蘇州 15 Name: 城市分布, dtype: int64
可以看到的是對于數(shù)據(jù)方面的人才需求最旺盛的仍然是北京,上海排在第二,與此同時(shí)呢,杭州在這方面的需求上面已經(jīng)超過了廣州,位列第四,同時(shí)在前十名當(dāng)中成都、南京以及武漢與西安都紛紛上榜
接下來我們來看一下哪個(gè)行業(yè)所需要的數(shù)據(jù)方面的人才最多,
df_all_1["行業(yè)"] = df_all_1["所處行業(yè)"].apply(lambda x: x.split("|")[0].split("/")[0])
df_all_1["行業(yè)"].value_counts().head(10)
output
數(shù)據(jù)服務(wù) 175 內(nèi)容資訊,短視頻 155 軟件服務(wù) 141 科技金融 114 電商平臺 84 IT技術(shù)服務(wù) 68 企業(yè)服務(wù) 61 游戲 55 專業(yè)服務(wù) 52 消費(fèi)生活 52 Name: 行業(yè), dtype: int64
從上面的結(jié)果中看到,除了“數(shù)據(jù)服務(wù)”行業(yè)之外,還有“內(nèi)容咨詢、短視頻”領(lǐng)域、“軟件服務(wù)”、“科技金融”、“電商平臺”、“IT技術(shù)服務(wù)”等領(lǐng)域?qū)τ跀?shù)據(jù)方面的人才都有著相當(dāng)旺盛的需求
我們來看一下各家公司對于數(shù)據(jù)方面的人才,在學(xué)歷上又有何種要求呢?
df_all_1["學(xué)歷要求"] = df_all_1["工作年限"].apply(lambda x: x.split("/")[-1])
df_all_1["學(xué)歷要求"].value_counts()
output
本科 1922 碩士 119 不限 77 大專 73 博士 12 Name: 學(xué)歷要求, dtype: int64
一般來說僅僅是“本科”的學(xué)歷就可以了,當(dāng)然還有少數(shù)的公司對于學(xué)歷的要求是局限在碩士之上
各家公司為了吸引越來越多的人才前往加入公司,也打出了各色各樣的標(biāo)語,小編做了匯總,并且做成詞云圖,首先我們用jieba模塊對文本數(shù)據(jù)進(jìn)行分詞
word_num = jieba.lcut(text, cut_all = False)
rule = re.compile(r"^[u4e00-u9fa5]+$")
word_num_selected = [word for word in word_num if word not in stop_words and re.search(rule, word) and len(word) >= 2]
接著我們使用stylecloud模塊來進(jìn)行詞云圖的繪制
stylecloud.gen_stylecloud(text=" ".join(review_list), max_words=100, collocations=False,
font_path="KAITI.ttf", icon_name="fab fa-apple", size=653,
output_name="4.png")
output
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營問題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10