真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

數(shù)據(jù)分析案例-大數(shù)據(jù)相關(guān)招聘崗位可視化分析-創(chuàng)新互聯(lián)

數(shù)據(jù)集介紹

本次數(shù)據(jù)集來源于xx招聘網(wǎng)共計4223條招聘信息,每條招聘信息字段包括崗位名稱、公司名稱、工作經(jīng)驗要求、學歷要求、工作地點、薪酬、公司規(guī)模、發(fā)布時間、公司福利共9條字段信息。

為梁溪等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及梁溪網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計制作、網(wǎng)站制作、梁溪網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

數(shù)據(jù)預處理

首先導入本次數(shù)據(jù)集,

import pandas as pd
data = pd.read_csv('job_data.csv')
data.head()

查看數(shù)據(jù)缺失值情況,

data.isnull().sum()

通過缺失值情況,我們發(fā)現(xiàn)公司規(guī)模缺失值較多,而這個字段數(shù)據(jù)對于本次分析沒有太大用處,故在這里直接刪除這一列,對于其他少量缺失值,直接刪除就好。

data.drop('公司規(guī)模',axis=1,inplace=True)
data.dropna(inplace=True)
data.shape

接著就是處理數(shù)據(jù)集中的字段信息,便于后面的數(shù)據(jù)可視化

# 處理工作經(jīng)驗要求
data['工作經(jīng)驗要求'] = data['工作經(jīng)驗要求'].replace(to_replace=
{'無需經(jīng)驗':'經(jīng)驗不限','經(jīng)驗在校/應(yīng)屆':'經(jīng)驗不限','1年經(jīng)驗':'1-3年','2年經(jīng)驗':'1-3年','經(jīng)驗1-3年':'1-3年',
'經(jīng)驗1年以下':'1-3年','3-4年經(jīng)驗':'3-5年','經(jīng)驗3-5年':'3-5年','5-7年經(jīng)驗':'5-10年','經(jīng)驗5-10年':'5-10年',
'8-9年經(jīng)驗':'5-10年','10年以上經(jīng)驗':'10年以上','經(jīng)驗10年以上':'10年以上'})
# 處理學歷要求
data['學歷要求'] = data['學歷要求'].replace(to_replace={'大專':'專科及以下','高中':'??萍耙韵?,'不限':'專科及以下','中技/中專':'??萍耙韵?})
# 獲取工作城市
data['工作城市'] = data['工作地點'].apply(lambda x:x.split('-')[0])
data['工作城市'] = data['工作城市'].apply(lambda x:x.split('·')[0])
def avg_salary(x):
    try:
        start = x.split('-')[0]
        end = x.split('-')[1]
        if end[-1] == '千':
            start_salary = float(start)*1000
            end_salary = float(end[:-1])*1000
        elif end[-1] == '萬':
            if start[-1] == '千':
                start_salary = float(start[:-1])*1000
                end_salary = float(end[:-1])*10000
            else:
                start_salary = float(start)*10000
                end_salary = float(end[:-1])*10000
        elif end[-1] == 'k':
            start_salary = float(start[:-1])*1000
            end_salary = float(end[:-1])*1000
        elif end[-1] == '薪':
            salary_number = float(end.split('·')[1][:-1])
            if end.split('·')[0][-1] == '萬':
                if start[-1] == '千':
                    start_salary = float(start[:-1])*1000/12*salary_number
                    end_salary = float(end.split('·')[0][:-1])*10000/12*salary_number
                else:
                    start_salary = float(start)*10000/12*salary_number
                    end_salary =  float(end.split('·')[0][:-1])*10000/12*salary_number
            elif end.split('·')[0][-1] == '千':
                start_salary = float(start)*1000/12*salary_number
                end_salary = float(end.split('·')[0][:-1])*1000/12*salary_number
        elif end[-1] == '年':
            end = end[:-2]
            if end[-1] == '萬':
                if start[-1] == '千':
                    start_salary = float(start[:-1])*1000
                    end_salary = float(end[:-1])*10000
                else:
                    start_salary = float(start)*10000
                    end_salary = float(end[:-1])*10000
        return (start_salary+end_salary)/2
    except:
        return 10000
data['平均薪資'] = data['薪酬'].apply(avg_salary)
data.head()

在這里,我把工作經(jīng)驗和學歷要求進行了清洗整理,劃分為固定的幾個分類,然后提取了工作城市,以及處理了原始薪資數(shù)據(jù)(數(shù)據(jù)是真的很雜,需要花點時間來處理),最后得到平均薪資。

數(shù)據(jù)可視化?

先導入數(shù)據(jù)可視化需要用到的第三方包,

import pandas as pd
import matplotlib.pyplot as plt
from pyecharts.charts import *
from pyecharts import options as  opts 
from pyecharts.globals import ThemeType
import warnings
warnings.filterwarnings('ignore')
plt.rcParams['font.sans-serif']=['SimHei'] #顯示中文標簽
plt.rcParams['axes.unicode_minus']=False

分析各工作經(jīng)驗要求占比

# 工作經(jīng)驗要求
df1 = data['工作經(jīng)驗要求'].value_counts()
a1 = Pie(init_opts=opts.InitOpts(theme = ThemeType.DARK))
a1.add(series_name='工作經(jīng)驗要求',
        data_pair=[list(z) for z in zip(df1.index.to_list(),df1.values.tolist())],
        radius='70%',
        )
a1.set_global_opts(title_opts=opts.TitleOpts(title="工作經(jīng)驗要求占比",
                    pos_left='center',
                    pos_top=30))
a1.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter='{a}
:{c} (squ6kqw%)')) a1.render_notebook()

通過圖表我們發(fā)現(xiàn),除了10年以上,其他區(qū)間的經(jīng)驗要求占比相差不大,說明各個區(qū)間的經(jīng)驗要求需求崗位量大體相似。

分析不同工作經(jīng)驗的崗位數(shù)量和薪資變化

x = ['經(jīng)驗不限','1-3年','3-5年','5-10年','10年以上']
bar =Bar()
bar.add_xaxis(x)
bar.add_yaxis('崗位數(shù)量',[399,724,870,535,27],label_opts=opts.LabelOpts(is_show=False))

bar.set_global_opts(
    title_opts=opts.TitleOpts('不同工作經(jīng)驗的崗位數(shù)量和薪資變化'),
    tooltip_opts=opts.TooltipOpts(is_show=True,trigger='axis',axis_pointer_type='cross'),
    xaxis_opts= opts.AxisOpts(type_='category',axispointer_opts=opts.AxisPointerOpts(is_show=True,type_='shadow'))
    )
bar.extend_axis(yaxis=opts.AxisOpts(
    name='月薪',min_=0,max_= 110000,
    interval = 10000
))
line = Line()
line.add_xaxis(x)
line.add_yaxis('平均薪資',[18468,17011,32701,40371,101429],yaxis_index=1,label_opts=opts.LabelOpts(is_show=False))
bar.overlap(line) # 合并圖
bar.render_notebook()

通過圖表,我們發(fā)現(xiàn)經(jīng)驗要求的需求量大體呈正態(tài)分布,薪酬是隨著經(jīng)驗?zāi)晗薜脑鲩L而逐漸遞增。

分析不同學歷要求占比

# 學歷要求
df2 = data['學歷要求'].value_counts()
a2 = Pie(init_opts=opts.InitOpts(theme = ThemeType.DARK))
a2.add(series_name='學歷要求',
        data_pair=[list(z) for z in zip(df2.index.to_list(),df2.values.tolist())],
        radius='70%',
        )
a2.set_global_opts(title_opts=opts.TitleOpts(title="學歷要求占比",
                    pos_left='center',
                    pos_top=30))
a2.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter='{a}
:{c} (squ6kqw%)')) a2.render_notebook()

通過圖表我們發(fā)現(xiàn),本科學歷占據(jù)了65%,本科及以下共高達95%,對于學歷這塊,要求似乎要求不是很高。

分析不同學歷要求的崗位數(shù)量和薪酬變化

x = ['專科及以下','本科','碩士','博士']
bar =Bar()
bar.add_xaxis(x)
bar.add_yaxis('崗位數(shù)量',[684,1753,109,9],label_opts=opts.LabelOpts(is_show=False))

bar.set_global_opts(
    title_opts=opts.TitleOpts('不同學歷要求的崗位數(shù)量和薪資變化'),
    tooltip_opts=opts.TooltipOpts(is_show=True,trigger='axis',axis_pointer_type='cross'),
    xaxis_opts= opts.AxisOpts(type_='category',axispointer_opts=opts.AxisPointerOpts(is_show=True,type_='shadow'))
    )
bar.extend_axis(yaxis=opts.AxisOpts(
    name='月薪',min_=0,max_= 45000
))
line = Line()
line.add_xaxis(x)
line.add_yaxis('平均薪資',[11888,33784,44118,34148],yaxis_index=1,label_opts=opts.LabelOpts(is_show=False))
bar.overlap(line) # 合并圖
bar.render_notebook()

隨著學歷的增長,薪資也在增長,這里博士學歷應(yīng)該是數(shù)據(jù)量太少導致出現(xiàn)了下滑異常,總體趨勢肯定還是學歷越高,薪資越高。

分析崗位需求量最高的前五名公司?

data['公司名稱'].value_counts().head().plot(kind='barh')
plt.title('崗位需求量最高的前五名公司')
plt.show()

崗位需求量大的公司貌似都集中在深圳北京等一線城市。

詞云圖可視化

先定義一個制作詞云圖的函數(shù)?

import jieba
import collections
import re
import stylecloud
from PIL import Image

# 封裝一個畫詞云圖的函數(shù)
def draw_WorldCloud(df,pic_name,color='black'):
    data =  ''.join([item for item in df])
    # 文本預處理 :去除一些無用的字符只提取出中文出來
    new_data = re.findall('[\u4e00-\u9fa5]+', data, re.S)
    new_data = "".join(new_data)
    # 文本分詞
    seg_list_exact = jieba.cut(new_data, cut_all=True)
    result_list = []
    with open('停用詞庫.txt', encoding='utf-8') as f: #可根據(jù)需要打開停用詞庫,然后加上不想顯示的詞語
        con = f.readlines()
        stop_words = set()
        for i in con:
            i = i.replace("\n", "")   # 去掉讀取每一行數(shù)據(jù)的\n
            stop_words.add(i)

    for word in seg_list_exact:
        if word not in stop_words and len(word) >1:
            result_list.append(word)
    word_counts = collections.Counter(result_list)

    # 詞頻統(tǒng)計:獲取前100最高頻的詞
    word_counts_top = word_counts.most_common(100)
    print(word_counts_top)

    # 繪制詞云圖
    stylecloud.gen_stylecloud(text=' '.join(result_list), 
                            collocations=False, # 是否包括兩個單詞的搭配(二字組)
                            font_path=r'C:\Windows\Fonts\msyh.ttc', #設(shè)置字體
                            size=800, # stylecloud 的大小
                            palette='cartocolors.qualitative.Bold_7', # 調(diào)色板
                            background_color=color, # 背景顏色
                            icon_name='fas fa-circle', # 形狀的圖標名稱 
                            gradient='horizontal', # 梯度方向
                            max_words=2000, # stylecloud 可包含的大單詞數(shù)
                            max_font_size=150, # stylecloud 中的大字號
                            stopwords=True, # 布爾值,用于篩除常見禁用詞
                            output_name=f'{pic_name}.png') # 輸出圖片
    # 打開圖片展示
    img=Image.open(f'{pic_name}.png')
    img.show()

接著使用崗位名稱數(shù)據(jù)來進行詞云圖可視化,看看大數(shù)據(jù)相關(guān)崗位的情況

draw_WorldCloud(data['職位名稱'],'大數(shù)據(jù)職位名稱詞云圖')

通過詞云圖發(fā)現(xiàn),大數(shù)據(jù)相關(guān)崗位大體主要分為數(shù)據(jù)分析、大數(shù)據(jù)開發(fā)、架構(gòu)師等。

使用公司福利數(shù)據(jù)來詞云圖分析一下

draw_WorldCloud(data['公司福利'],'公司福利詞云圖')

通過詞云圖看出,大數(shù)據(jù)相關(guān)崗位福利主要為各種獎金、補貼、培訓等等。

通過熱力地圖分析各城市崗位分布

# 各城市崗位數(shù)量分布熱力地圖
df3 = data['工作城市'].value_counts()
city_data = city_data = [[x,y] if x[-3:] != '自治州' else [x,y] for x,y in zip(df3.index.to_list(),df3.values.tolist())]
map = Map()
map.add('地區(qū)',city_data,
    maptype='china-cities',
    label_opts=opts.LabelOpts(is_show=False))
map.set_global_opts(
    title_opts=opts.TitleOpts('各城市崗位數(shù)量分布'),
    visualmap_opts=opts.VisualMapOpts(max_=500,min_=1)
)
map.render(path='各城市崗位數(shù)量分布.html')
map.render_notebook()

通過熱力地圖我們看出,大數(shù)據(jù)崗位在上海,北京、深圳等城市需求量較高?。(熱力地圖如在手機端無法查看可用PC端打開查看)

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


當前標題:數(shù)據(jù)分析案例-大數(shù)據(jù)相關(guān)招聘崗位可視化分析-創(chuàng)新互聯(lián)
當前地址:http://weahome.cn/article/cojcie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部