自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言更賺錢

大數(shù)據(jù) 數(shù)據(jù)分析 后端
本文主要用Python爬取拉勾網(wǎng)不同編程語言職位信息,包括:Python崗、Java崗、C++崗、PHP崗、C#崗位(5崗);用R語言對影響薪資的因素進(jìn)行分析。

本文主要用Python爬取拉勾網(wǎng)不同編程語言職位信息,包括:Python崗、Java崗、C++崗、PHP崗、C#崗位(5崗);用R語言對影響薪資的因素進(jìn)行分析。由于拉勾網(wǎng)的職位信息只顯示30頁,一頁15個職位信息,如果單獨爬取一個城市的崗位信息,只有幾頁是匹配的信息,信息量太小,分析沒有說服力。因此,本文爬取拉勾網(wǎng)全國職位信息。主要三部分內(nèi)容:

  1. 爬取拉勾網(wǎng)5崗職位信息--以Python崗為例
  2. 以Python崗位信息為例,分析影響薪資的因素
  3. 5崗之間薪水因素影響比較分析

一、爬取拉勾網(wǎng)5崗職位信息--以Python崗為例

我們抓取的信息包括Python崗位名稱、公司名稱、薪資、工作經(jīng)驗、學(xué)歷、公司規(guī)模、公司福利。

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

  1. ##以python崗位為例,運(yùn)用selenium+Chrome()爬取崗位信息 
  2. # coding=UTF-8 
  3. from lxml import etree 
  4. from selenium import webdriver 
  5. import time 
  6. import csv 
  7.  
  8. browser = webdriver.Chrome() 
  9. browser.get('https://www.lagou.com/jobs/list_PYTHON?px=default&city=%E5%85%A8%E5%9B%BD#filterBox'
  10. browser.implicitly_wait(10) 
  11.  
  12. def get_dates(selector): 
  13.         items = selector.xpath('//*[@id="s_position_list"]/ul/li'
  14.         for item in items: 
  15.             yield { 
  16.                 'Name': item.xpath('div[1]/div[1]/div[1]/a/h3/text()')[0], 
  17.                 'Company': item.xpath('div[1]/div[2]/div[1]/a/text()')[0], 
  18.                 'Salary': item.xpath('div[1]/div[1]/div[2]/div/span/text()')[0], 
  19.                 'Education': item.xpath('div[1]/div[1]/div[2]/div//text()')[3].strip(), 
  20.                 'Size': item.xpath('div[1]/div[2]/div[2]/text()')[0].strip(), 
  21.                 'Welfare': item.xpath('div[2]/div[2]/text()')[0] 
  22.             } 
  23. def main(): 
  24.     i = 0 
  25.     for i in range(30): 
  26.         selector = etree.HTML(browser.page_source) 
  27.         browser.find_element_by_xpath('//*[@id="order"]/li/div[4]/div[2]').click() 
  28.         time.sleep(5) 
  29.         print('第{}頁抓取完畢'.format(i+1)) 
  30.         for item in get_dates(selector): 
  31.             print(item) 
  32.         with open('Py.csv''a', newline=''as csvfile:  ##Py.csv是文件的保存路徑,這里默認(rèn)保存在工作目錄 
  33.             fieldnames = ['Name''Company''Salary''Education''Size''Welfare'
  34.             writer = csv.DictWriter(csvfile, fieldnames=fieldnames) 
  35.             writer.writeheader() 
  36.             for item in get_dates(selector): 
  37.                 writer.writerow(item) 
  38.         time.sleep(5) 
  39.     browser.close() 
  40. if __name__=='__main__'
  41.     main() 

抓取結(jié)果如下:

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

將抓取結(jié)果循環(huán)寫入csv文件:

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

此外還抓取了Java崗、C++崗、PHP崗、C#崗位4崗的信息,代碼和抓取Python崗位信息類似。

二、以Python崗位信息為例,分析影響薪資的因素

這里包括數(shù)據(jù)清洗部分和數(shù)據(jù)分析部分兩部分內(nèi)容。

數(shù)據(jù)清洗部分

  1. data<-read.csv("E://Data For R/RData/Py.csv"
  2. data[sample(1:nrow(data),size=10),] 

 

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

在抓取過程中,由于將python字典循環(huán)寫入csv文件,因此列名也被循環(huán)寫在csv文件中。

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

考慮本文主要分析影響薪資的因素,這里去除Name和Company兩列。

  1. ##去除Name和Company兩列 
  2. DATA<-data[,-c(1,2)] 
  3. ##將python字典循環(huán)寫入csv文件時,標(biāo)題也會被寫入,去除多余的標(biāo)題 
  4. ##查找哪些行是標(biāo)題重復(fù)的行 
  5. which(DATA$Salary %in"Salary"
  6.  [1]  16  32  48  64  80  96 102 118 134 150 166 182 198 214 230 246 262 278 294 310 326 342 358 374 390 406 422 438 454 470 486 502 518 
  7. [34] 534 550 566 
  8. ##去除多余的標(biāo)題所在的行 
  9. DATA<-DATA[-(which(DATA$Salary %in"Salary")),] 
  10. dim(DATA) 
  11. [1] 545   4 

1.變量Salary

變量Salary一般都是范圍值,用“-”連接,但是不排除有XXK以上,例如10k以上這種表示形式,或者其他形式,這里需要處理一下。

  1. ##如果薪資是一個范圍值,都是"-"連接,注意,薪資是一個范圍值,匹配末尾結(jié)束k值需要注意,有大寫K和小寫k兩種形式。 
  2. newdata<-DATA[grep('\\-',DATA$Salary),] 
  3. dim(newdata) 
  4. [1] 544   4 
  5. ##對比前面dim(DATA),說明薪水少了一行,Salary具有其他的表示形式。 
  6. ##這里將范圍薪水的值分成底薪和高薪兩部分,后面取平均值來表示薪水 
  7. library(tidyr) 
  8. library(stringr) 
  9. newdata<-separate(data=newdata,col=Salary,into=c("lowsalary","highsalary"),sep="-"
  10. ##分別去除后面的k值,注意k有大寫和小寫兩種形式 
  11. newdata$lowsalary<-str_replace(newdata$lowsalary,'k|K',"")##  |表示或的關(guān)系 
  12. newdata$highsalary<-str_replace(newdata$highsalary,'k|K',""
  13. newdata$lowsalary<-as.numeric(newdata$lowsalary)##轉(zhuǎn)換數(shù)據(jù)類型 
  14. newdata$highsalary<-as.numeric(newdata$highsalary) 
  15. newdata$salary<-(newdata$lowsalary+newdata$highsalary)/2 
  16. newdadat<-newdata[,-c(1,2)]##去除原有的lowsalary和highsalary 

2.變量Education

  1. ###Education部分 
  2. ##首先將Education中工作經(jīng)驗和學(xué)歷分開 
  3. newdata<-separate(data = newdata,col=Education,into=c("Experience","Graduate"),sep = '/'
  4. table(newdata$Experience) 
  5. 經(jīng)驗1-3年     經(jīng)驗1年以下       經(jīng)驗3-5年      經(jīng)驗5-10年        經(jīng)驗不限  經(jīng)驗應(yīng)屆畢業(yè)生   
  6.  187               6             261              46              37               7  
  7. table(newdata$Graduate) 
  8.  本科  不限  大專  碩士  
  9.   447    27    63     7  

3.變量Size

  1. ##此處以公司人數(shù)作為描述公司規(guī)模的標(biāo)準(zhǔn) 
  2. newdata<-separate(data=newdata,col=Size,into=c('Type','Rong','Number'),sep='/'
  3. table(newdata$Number) 
  4.  
  5.  15-50人   150-500人  2000人以上    50-150人  500-2000人    少于15人  
  6.    76         139         117         119          82          11  
  7. table(newdata$Rong) 
  8. A輪          B輪          C輪    D輪及以上   不需要融資     上市公司       天使輪       未融資   
  9. 86           81           54           30          132           80           33           48  
  10. ##將Type去除    
  11. newdata<-newdata[,-3] 

4.變量Welfare

  1. Welfare<-newdata[,"Welfare"
  2. ##將Welfare去除 
  3. newdata<-newdata[,-5] 
  4. head(newdata) 

 

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

到此,數(shù)據(jù)清洗部分內(nèi)容全部結(jié)束。

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

1.工資與工作年限的關(guān)系

  1. library(ggplot2) 
  2. ggplot(newdata,aes(x=Experience,y=salary))+geom_boxplot(col="red"

 

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

符合大眾的認(rèn)知,從事python的應(yīng)屆畢業(yè)生起始工資平均值在5K左右,且薪資水平跨度最小,經(jīng)驗5-10年,工資水平跨度***,主要可能是因為,有一部分轉(zhuǎn)為技術(shù)管理崗位,工資較低的可能還在繼續(xù)碼代碼,是不是對廣大同胞們的警告啊.......

2.工資與學(xué)歷的關(guān)系(???,本科,研究生,不限)

  1. ggplot(newdata,aes(x=Graduate,y=salary))+geom_boxplot(col="red"

 

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

這里是否能說明學(xué)歷在一定程度上的重要性?學(xué)歷本科的工資跨度比較大,因為工作經(jīng)驗的不同導(dǎo)致了薪資的差異。

3.工資與公司融資的關(guān)系

  1. ggplot(newdata,aes(x=Rong,y=salary))+geom_boxplot(col="red"

 

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

對于這部分知識是盲點,但是可以看出融資公司(上市也是一種融資方式)比沒有融資的公司平均工資要高出不少,這部分是不是可以是以后找工作的一個風(fēng)向標(biāo)。。。

4.工資與公司大小的關(guān)系

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

公司規(guī)模越大,平均的工資也越高。

5.工資與工作時間和學(xué)歷的關(guān)系

  1. library(ggthemes) 
  2. library(scales) 
  3. ggplot(newdata,aes(x=Experience,y=salary,fill=factor(Graduate)))+ 
  4. geom_boxplot()+ 
  5. geom_hline(aes(yintercept=20),color="red",linetype="dashed",lwd=1)+ 
  6. scale_y_continuous(labels=dollar_format())+theme_few() 

 

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

這張圖告訴我們,在大部分情況下,沒(Ren)錢(Chou)就要多讀書。不管是經(jīng)驗經(jīng)驗1年以下、經(jīng)驗3-5年、經(jīng)驗5-10年、經(jīng)驗不限的情況下,擁有碩士學(xué)歷的平均收入都普遍高于本科,本科都高于大專。(這里完全沒有歧視低學(xué)歷之意)

6.公司福利的云圖

  1. ##公司福利的云圖 
  2. library(jiebaR) 
  3. Welfare<-as.character(Welfare) 
  4. wk = worker() 
  5. seg_words<-wk[Welfare] 
  6. library(plyr) 
  7. library(wordcloud) 
  8. tableWord<-count(seg_words) 
  9. windowsFonts(myFont=windowsFont("華文彩云")) ##使用華文彩云字體 
  10. wordcloud(tableWord[,1],tableWord[,2],random.order=F,col= rainbow(100),family="myFont"

 

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

現(xiàn)在公司的福利貼有“彈性工作,氛圍好,團(tuán)隊,大牛,技術(shù),五險一金”等標(biāo)簽來吸引求職者眼球。

三、5崗之間薪水因素影響比較分析

1.Python崗、Java崗、C++崗、PHP崗、C#崗位的平均薪水

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

抓取拉勾網(wǎng)職位信息,可以看出python和java的平均薪資較高,C#的平均工資***。

由此也驗證python近幾年火熱的態(tài)勢,由于AI的火熱,python的需求越來越大,傳統(tǒng)的java也比較強(qiáng)勢,薪資待遇較高。

2.相同工作經(jīng)驗不同職位信息薪水比較

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

對于不同工作經(jīng)驗,不同編程語言平均薪水還是有較大的差異。

3.相同學(xué)歷信息不同職位信息薪水比較

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

通過碩士、本科、大專、不限四種比較,碩士的總體薪資高于本科。

4.同一職位不同學(xué)歷信息薪水比較

Python or Java?大數(shù)據(jù)解讀學(xué)什么語言最賺錢

總的看來,在每個職業(yè),碩士學(xué)歷的平均薪水高于本科,本科的平均薪水高于大專。

責(zé)任編輯:未麗燕 來源: 數(shù)據(jù)森麟
相關(guān)推薦

2018-09-25 16:07:53

大數(shù)據(jù)語言分布式

2012-12-20 13:02:20

2021-01-27 14:10:08

大數(shù)據(jù)年貨網(wǎng)購

2017-08-08 09:18:03

數(shù)據(jù)大數(shù)據(jù)云計算

2020-11-27 14:29:46

大數(shù)據(jù)開發(fā)java

2021-02-09 00:44:10

人工智能大數(shù)據(jù)機(jī)械化

2013-08-08 10:07:43

大數(shù)據(jù)存儲結(jié)構(gòu)化數(shù)據(jù)

2018-04-02 11:22:31

大數(shù)據(jù)Hadoop數(shù)據(jù)處理

2022-08-26 14:53:08

編程語言PythonJava

2015-12-29 17:06:17

大數(shù)據(jù)存儲

2013-01-18 10:16:42

2020-10-12 17:02:42

大數(shù)據(jù)IT技術(shù)

2015-08-04 13:14:20

賺錢虧錢大數(shù)據(jù)

2015-09-21 13:54:01

大數(shù)據(jù)賺錢

2015-08-04 09:22:37

2015-11-04 08:56:55

iosandroid賺錢

2013-08-23 11:06:34

編程語言

2017-09-02 10:03:10

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

2020-06-30 16:33:09

Qlik農(nóng)業(yè)大數(shù)據(jù)

2015-09-11 15:18:32

大數(shù)據(jù)留學(xué)
點贊
收藏

51CTO技術(shù)棧公眾號