<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用Python分析BOSS直聘的薪資數(shù)據(jù),牛年找工作有方向了!

          共 10681字,需瀏覽 22分鐘

           ·

          2021-02-24 13:36

          ↑?關(guān)注 + 星標(biāo)?,每天學(xué)Python新技能

          后臺回復(fù)【大禮包】送你Python自學(xué)大禮包

          新年開始了,不少小伙伴有找新工作的意向,今天我們來看看招聘網(wǎng)站上,關(guān)于Python的工作,薪資狀況是怎樣的呢!

          數(shù)據(jù)來源

          數(shù)據(jù)來源于BOSS直聘,說實(shí)話,現(xiàn)在的招聘網(wǎng)站,做的比較好的還是BOSS直聘,其相關(guān)的數(shù)據(jù)、報(bào)告等都是比較有代表性的。今天我們就來看看相關(guān)的數(shù)據(jù)吧!

          數(shù)據(jù)獲取

          BOSS直聘上有這么一個(gè)接口,可以很好的獲取當(dāng)前不同崗位,不同城市的薪資水平

          https://www.zhipin.com/wapi/zpboss/h5/marketpay/statistics.json

          可以很方便的獲取比較詳細(xì)的薪資數(shù)據(jù)

          import?requests

          headers?=?{'accept':?'application/json,?text/plain,?*/*',
          ??????????'user-agent':?'Mozilla/5.0?(Macintosh;?Intel?Mac?OS?X?11_0_1)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/88.0.4324.96?Safari/537.36'}
          querystring?=?{"positionId":"100109","industryId":"0","cityId":"0","companySize":"0","financingStage":"0","experienceCode":"0"}
          job_statics_url?=?'https://www.zhipin.com/wapi/zpboss/h5/marketpay/statistics.json'

          job_statics_data?=?requests.get(job_statics_url,?params=querystring,?headers=headers)

          這樣,就可以獲取到我們想要的 json 數(shù)據(jù)了

          下面我們就可以簡單的來分析下相關(guān)的薪資數(shù)據(jù)了

          數(shù)據(jù)分析

          薪資分位值

          在我們獲取到的數(shù)據(jù)當(dāng)中,就有分位值的數(shù)據(jù),可以方便的獲取

          job_statics_data_json?=?job_staticis_data.json()
          job_statics_data_json['zpData']['salaryByPoints']

          接下來就可以整理橫縱坐標(biāo)軸了

          statics_x?=?[]
          statics_y?=?[]
          for?i?in?job_statics_data_json['zpData']['salaryByPoints']:
          ????statics_x.append(i['name']?+?'\n'?+?i['title'])
          ????statics_y.append(i['salary'])

          下面開始作圖

          import?pyecharts.options?as?opts
          from?pyecharts.charts?import?Line,?Bar,?Pie,?Calendar,?WordCloud
          from?pyecharts.commons.utils?import?JsCode
          from?pyecharts.globals?import?SymbolType

          x_data?=?statics_x
          y_data?=?statics_y

          background_color_js?=?(
          ????"new?echarts.graphic.LinearGradient(0,?0,?0,?1,?"
          ????"[{offset:?0,?color:?'#c86589'},?{offset:?1,?color:?'#06a7ff'}],?false)"
          )
          area_color_js?=?(
          ????"new?echarts.graphic.LinearGradient(0,?0,?0,?1,?"
          ????"[{offset:?0,?color:?'#eb64fb'},?{offset:?1,?color:?'#3fbbff0d'}],?false)"
          )

          c_line?=?(
          ????Line(init_opts=opts.InitOpts(bg_color=JsCode(background_color_js)))
          ????.add_xaxis(xaxis_data=x_data)
          ????.add_yaxis(
          ????????series_name="薪資",
          ????????y_axis=y_data,
          ????????is_smooth=True,
          ????????is_symbol_show=True,
          ????????symbol="circle",
          ????????symbol_size=6,
          ????????linestyle_opts=opts.LineStyleOpts(color="#fff"),
          ????????label_opts=opts.LabelOpts(is_show=True,?position="top",?color="white"),
          ????????itemstyle_opts=opts.ItemStyleOpts(
          ????????????color="red",?border_color="#fff",?border_width=3
          ????????),
          ????????tooltip_opts=opts.TooltipOpts(is_show=False),
          ????????areastyle_opts=opts.AreaStyleOpts(color=JsCode(area_color_js),?opacity=1),
          ????)
          ????.set_global_opts(
          ????????title_opts=opts.TitleOpts(
          ????????????title="收入分位",
          ????????????pos_bottom="5%",
          ????????????pos_left="center",
          ????????????title_textstyle_opts=opts.TextStyleOpts(color="#fff",?font_size=16),
          ????????),
          ????????xaxis_opts=opts.AxisOpts(
          ????????????type_="category",
          ????????????boundary_gap=False,
          ????????????axislabel_opts=opts.LabelOpts(margin=30,?color="#ffffff63"),
          ????????????axisline_opts=opts.AxisLineOpts(is_show=False),
          ????????????axistick_opts=opts.AxisTickOpts(
          ????????????????is_show=True,
          ????????????????length=25,
          ????????????????linestyle_opts=opts.LineStyleOpts(color="#ffffff1f"),
          ????????????),
          ????????????splitline_opts=opts.SplitLineOpts(
          ????????????????is_show=True,?linestyle_opts=opts.LineStyleOpts(color="#ffffff1f")
          ????????????),
          ????????),
          ????????yaxis_opts=opts.AxisOpts(
          ????????????type_="value",
          ????????????position="right",
          ????????????axislabel_opts=opts.LabelOpts(margin=20,?color="#ffffff63"),
          ????????????axisline_opts=opts.AxisLineOpts(
          ????????????????linestyle_opts=opts.LineStyleOpts(width=2,?color="#fff")
          ????????????),
          ????????????axistick_opts=opts.AxisTickOpts(
          ????????????????is_show=True,
          ????????????????length=15,
          ????????????????linestyle_opts=opts.LineStyleOpts(color="#ffffff1f"),
          ????????????),
          ????????????splitline_opts=opts.SplitLineOpts(
          ????????????????is_show=True,?linestyle_opts=opts.LineStyleOpts(color="#ffffff1f")
          ????????????),
          ????????),
          ????????legend_opts=opts.LegendOpts(is_show=False),
          ????)
          )

          可以得到一個(gè)還不錯(cuò)的折線圖

          可以看到,業(yè)內(nèi)Python的薪資水平,大部分應(yīng)該都處于1萬左右,這個(gè)薪資水平其實(shí)并不太高,看來純的Python崗位并不太吃香,要想獲得更高的薪資,還是需要有更多的技能傍身!

          薪資區(qū)間分布

          下面再來看看薪資的分布情況

          statics_x?=?[]
          statics_y?=?[]
          for?i?in?job_statics_data_json['zpData']['salaryByDistributed']:
          ????statics_y.append(i['percent'])
          ????statics_x.append(i['salaryRange'])

          def?bar_chart(x,?y)?->?Bar:
          ????background_color_js?=?(
          ????????"new?echarts.graphic.LinearGradient(0,?0,?0,?1,?"
          ????????"[{offset:?0,?color:?'#c86589'},?{offset:?1,?color:?'#06a7ff'}],?false)"
          ????)
          ????c?=?(
          ????????Bar(init_opts=opts.InitOpts(bg_color=JsCode(background_color_js)))
          ????????#Bar()
          ????????.add_xaxis(x)
          ????????#?.add_xaxis(searchcount.index.tolist()[:10])
          ????????.reversal_axis()
          ????????.add_yaxis("",?y,?
          ???????????????????label_opts=opts.LabelOpts(position='inside',?formatter="{c}%"),
          ??????????????????color='plum',?category_gap="60%"
          ??????????????????)
          ????????.set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-30,?formatter="{value}%"),
          ?????????????????????????????????????????????????axisline_opts=opts.AxisLineOpts(is_show=False),),
          ????????????????????????yaxis_opts=opts.AxisOpts(
          ????????????????????????????axislabel_opts=opts.LabelOpts(is_show=True),
          ????????????????????????axisline_opts=opts.AxisLineOpts(is_show=False),
          ????????????????????????axistick_opts=opts.AxisTickOpts(
          ????????????????????????is_show=True,
          ????????????????????????length=25,
          ????????????????????????linestyle_opts=opts.LineStyleOpts(color="#ffffff1f"),
          ????????????????????),)
          ????????????????????????)
          ????????.set_series_opts(
          ????????????itemstyle_opts={
          ????????????"normal":?{
          ????????????????"color":?JsCode("""new?echarts.graphic.LinearGradient(0,?0,?0,?1,?[{
          ????????????????????offset:?0,
          ????????????????????color:?'rgba(255,100,97,.5)'
          ????????????????},?{
          ????????????????????offset:?1,
          ????????????????????color:?'rgba(221,160,221)'
          ????????????????}],?false)"""
          ),
          ????????????????"barBorderRadius":?[30,?30,?30,?30],
          ????????????????"shadowColor":?'rgb(0,?160,?221)',
          ????????????}}
          ????????)
          ????)
          ????return?c

          來看看薪資分布情況

          可以看到,15K以上的薪資還是占了16%以上,而占比最大的薪資區(qū)間則是7-9K

          工作年限薪資分布

          下面我們繼續(xù)來看看薪資水平和工作年限之間的關(guān)系

          statics_x?=?[]
          statics_y?=?[]
          for?i?in?job_statics_data_json['zpData']['salaryByWorkExp']:
          ????statics_y.append(i['percent'])
          ????statics_x.append(i['workExp']?+?':'?+?str(i['aveSalary']))

          background_color_js?=?(
          ????"new?echarts.graphic.LinearGradient(0,?0,?0,?1,?"
          ????"[{offset:?0,?color:?'#c86589'},?{offset:?1,?color:?'#06a7ff'}],?false)"
          )
          c?=?(
          ????Pie(init_opts=opts.InitOpts(bg_color=JsCode(background_color_js)))
          ????.add(
          ????????"",
          ????????list(zip(statics_x,?statics_y)),
          ????????radius=["40%",?"55%"],
          ????????label_opts=opts.LabelOpts(
          ????????????position="outside",
          ????????????formatter="{a|job}{abg|}\n{hr|}\n?{b|:?}{per|go7utgvlrp%}??",
          ????????????background_color="#eee",
          ????????????border_color="#aaa",
          ????????????border_width=1,
          ????????????border_radius=4,
          ????????????rich={
          ????????????????"a":?{"color":?"#999",?"lineHeight":?22,?"align":?"center"},
          ????????????????"abg":?{
          ????????????????????"backgroundColor":?"#e3e3e3",
          ????????????????????"width":?"100%",
          ????????????????????"align":?"right",
          ????????????????????"height":?22,
          ????????????????????"borderRadius":?[4,?4,?0,?0],
          ????????????????},
          ????????????????"hr":?{
          ????????????????????"borderColor":?"#aaa",
          ????????????????????"width":?"100%",
          ????????????????????"borderWidth":?0.5,
          ????????????????????"height":?0,
          ????????????????},
          ????????????????"b":?{"fontSize":?16,?"lineHeight":?33},
          ????????????????"per":?{
          ????????????????????"color":?"#eee",
          ????????????????????"backgroundColor":?"#334455",
          ????????????????????"padding":?[2,?4],
          ????????????????????"borderRadius":?2,
          ????????????????},
          ????????????},
          ????????),
          ????)
          ????.set_global_opts(title_opts=opts.TitleOpts(title=""))
          )

          可以看到,下面的圖片還是比較直觀的

          1-3年的應(yīng)聘者還是最多的,占比達(dá)到了50%+,這個(gè)經(jīng)驗(yàn)段,確實(shí)是職場的主力軍了!

          任職年齡分布

          職場的年齡也是一個(gè)熱點(diǎn)話題,35+歲的程序員們,總是一言難盡啊

          statics_x?=?[]
          statics_y?=?[]
          for?i?in?job_statics_data_json['zpData']['salaryByAge']:
          ????statics_x.append(i['ageRange'])
          ????statics_y.append(i['people'])

          def?bar_chart_age(x,?y)?->?Bar:
          ????background_color_js?=?(
          ????????"new?echarts.graphic.LinearGradient(0,?0,?0,?1,?"
          ????????"[{offset:?0,?color:?'#c86589'},?{offset:?1,?color:?'#06a7ff'}],?false)"
          ????)
          ????c?=?(
          ????????Bar(init_opts=opts.InitOpts(bg_color=JsCode(background_color_js)))
          ????????#Bar()
          ????????.add_xaxis(x)
          ????????#?.add_xaxis(searchcount.index.tolist()[:10])
          ????????#?.reversal_axis()
          ????????.add_yaxis("",?y,?
          ???????????????????label_opts=opts.LabelOpts(position='inside',?formatter="{c}"),
          ??????????????????color='plum',?category_gap="60%"
          ??????????????????)
          ????????.set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-30,?formatter="{value}"),
          ?????????????????????????????????????????????????axisline_opts=opts.AxisLineOpts(is_show=False),),
          ????????????????????????yaxis_opts=opts.AxisOpts(
          ????????????????????????????axislabel_opts=opts.LabelOpts(is_show=True),
          ????????????????????????axisline_opts=opts.AxisLineOpts(is_show=False),
          ????????????????????????axistick_opts=opts.AxisTickOpts(
          ????????????????????????is_show=True,
          ????????????????????????length=25,
          ????????????????????????linestyle_opts=opts.LineStyleOpts(color="#ffffff1f"),
          ????????????????????),)
          ????????????????????????)
          ????????.set_series_opts(
          ????????????itemstyle_opts={
          ????????????"normal":?{
          ????????????????"color":?JsCode("""new?echarts.graphic.LinearGradient(0,?0,?0,?1,?[{
          ????????????????????offset:?0,
          ????????????????????color:?'rgba(255,100,97,.5)'
          ????????????????},?{
          ????????????????????offset:?1,
          ????????????????????color:?'rgba(221,160,221)'
          ????????????????}],?false)"""
          ),
          ????????????????"barBorderRadius":?[30,?30,?30,?30],
          ????????????????"shadowColor":?'rgb(0,?160,?221)',
          ????????????}}
          ????????)
          ????)
          ????return?c

          數(shù)據(jù)很能說明問題

          可以看到,35歲以下的占據(jù)了絕大多數(shù),可想而知,35+的程序員生存狀況是多么的糟糕!

          月薪環(huán)比變化

          我們通過每個(gè)月的薪資變化,來看看哪個(gè)月找工作比較有機(jī)會獲得更高的薪資呢

          statics_x?=?[]
          statics_y?=?[]
          for?i?in?job_statics_data_json['zpData']['salaryByMonth']:
          ????statics_x.append(i['year']?+?'-'?+?i['month'])
          ????statics_y.append(i['monthAveSalary'])
          x_data?=?statics_x
          y_data?=?statics_y

          每月薪資變化

          可以看到,去年2月份的薪資水平是最高的,之后一路下滑,再之后就基本趨于穩(wěn)定了,7-8K這個(gè)平均水平

          薪資城市分布

          通過Pycharts畫地圖還是蠻方便的

          statics_x?=?[]
          statics_y?=?[]
          for?i?in?job_statics_data_json['zpData']['salaryByCity']:
          ????if?i['cityList']:
          ????????statics_x.append(i['cityList'][0]['cityAveMonthSalary'])
          ????statics_y.append(i['provinceName'])
          c?=?(
          ????Map()
          ????.add("全國薪資",?[list(z)?for?z?in?zip(statics_y,?statics_x)],?"china")
          ????.set_global_opts(
          ????????title_opts=opts.TitleOpts(title=""),
          ????????visualmap_opts=opts.VisualMapOpts(max_=15000,?min_=6000),
          ????)
          )

          全國薪資分布

          好了,今天的分享就到這里了,希望對大家有所幫助!



          源碼獲取


          如果大家對本文完整代碼感興趣,點(diǎn)擊以下公眾號,后臺回復(fù)Boss直聘” ,獲取完整代碼。


          注:所有代碼僅供學(xué)習(xí)交流,禁止商用。


          推薦閱讀

          1. 用Python分析《你好,李煥英》 為什么能逆襲《唐探3》

          2. 叼炸天!微軟 Win 10X 系統(tǒng)的深度體驗(yàn)

          3. 華為正式宣布養(yǎng)豬,網(wǎng)友沸騰:支持華為自救!

          4. 這款神器,完美解決了手機(jī)投屏的問題

          5. 再見!馬賽克


          掃碼回復(fù)「大禮包」后獲取大禮

          瀏覽 43
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕五码在线 | 99精品视频在线观看免费播放 | 欧美操逼手机视频 | 操逼视频91 | 中日韩成人 |