Tarayıcı, hangi programlama dilinin en karlı olduğunu analiz eder: Python ve Java en yüksek maaşı mı alıyor?

Tarayıcı, hangi programlama dilinin en karlı olduğunu analiz eder: Python ve Java en yüksek maaşlara sahiptir ve C # en düşüktür

Shang Xue Tang

On bin yıllık programlama dili savaşında, bu sefer maaş seviyesi kazananı belirleyecek!

Bu makale, Python işi, Java işi, C ++ işi, PHP işi ve C # işi (5 iş) dahil olmak üzere farklı programlama dillerinde Lagou.com'un iş bilgilerini taramak için ağırlıklı olarak Python kullanır ve ardından maaşı etkileyen faktörleri analiz etmek için R dilini kullanır. Lagou'nun iş bilgileri yalnızca 30 sayfa, sayfa başına 15 iş bilgisi gösterdiğinden, bir şehrin iş bilgilerini ayrı olarak tararsanız, yalnızca birkaç sayfa eşleşen bilgilerdir, bilgi miktarı çok küçüktür ve analiz ikna edici değildir. Bu nedenle, bu makale Lagou.com'un ulusal iş bilgilerini taramaktadır. Esas olarak üç bölümden oluşur:

  • Lagou'daki 5 gönderinin gönderi bilgilerini tarayın.Örnek olarak Python gönderisini alın;
  • Maaşı etkileyen faktörleri analiz etmek için Python iş bilgilerini örnek olarak alın;
  • Maaş faktörlerinin 5 gönderi arasındaki etkisinin karşılaştırmalı analizi.

1

Lagou'nun 5 gönderi konum bilgisini tarayarak Python gönderisini örnek olarak alıyor

Elde ettiğimiz bilgiler arasında Python iş adı, şirket adı, maaş, iş deneyimi, eğitim, şirket büyüklüğü, şirket avantajları bulunur.

## Python gönderisini örnek olarak alın, gönderi bilgilerini taramak için selenyum + Chrome () kullanın

# kodlama = UTF-8

lxml ithalat etree'den

selenyum ithal web sürücüsünden

ithalat zamanı

csv içe aktar

browser = webdriver.Chrome ()

browser.get ('https://www.lagou.com/jobs/list_PYTHON?px=defaultcity=%E5%85%A8%E5%9B%BD#filterBox')

browser.implicitly_wait (10)

def get_dates (seçici):

öğeler = selector.xpath ('// * / ul / li')

öğelerdeki öğe için:

Yol ver {

'Ad': item.xpath ('div / div / div / a / h3 / text ()'),

'Şirket': item.xpath ('div / div / div / a / text ()'),

'Maaş': item.xpath ('div / div / div / div / span / text ()'),

'Eğitim': item.xpath ('div / div / div / div // text ()'). Strip (),

'Boyut': item.xpath ('div / div / div / text ()'). Strip (),

'Refah': item.xpath ('div / div / text ()')

}

def main ():

i = 0

aralıktaki i için (30):

selector = etree.HTML (browser.page_source)

browser.find_element_by_xpath ('// * / li / div / div'). tıklayın ()

zaman.sleep (5)

print ('Sayfa {} yakalandı'.format (i + 1))

get_dates (seçici) içindeki öğe için:

baskı (öğe)

csvfile olarak open ('Py.csv', 'a', newline = '') ile: ## Py.csv, varsayılan olarak çalışma dizinine kaydedilen dosyanın kaydetme yoludur

alan adları =

writer = csv.DictWriter (csvfile, alan adları = alan adları)

writer.writeheader ()

get_dates (seçici) içindeki öğe için:

writer.writerow (öğe)

zaman.sleep (5)

browser.close ()

__name __ == '__ main__' ise:

ana()

Tarama sonuçları aşağıdaki gibidir:

Tarama sonuçlarını bir döngüde csv dosyasına yazın:

Ayrıca Java postası, C ++ postası, PHP postası ve C # postasının dört postası da ele geçirildi.Kod Python postasına benzer.

1

Maaşı etkileyen faktörleri analiz etmek için Python iş bilgilerini örnek olarak alın

Bu iki bölümden oluşur: veri temizleme ve veri analizi.

  • Veri temizleme bölümü

veri < -read.csv ("E: // R / RData / Py.csv İçin Veriler")

veri

Tarama sürecinde, Python sözlüğü bir döngüde csv dosyasına yazıldığından, sütun adları da bir döngüde csv dosyasına yazılır.

Bu makalenin ağırlıklı olarak maaşı etkileyen faktörleri incelediği düşünülürse, burada İsim ve Şirket'in iki sütunu kaldırılmıştır.

## Ad ve Şirket sütunlarını kaldırın

VERİ < -veri

## Python sözlüğünü bir döngüde csv dosyasına yazarken, başlık da yazılır ve gereksiz başlık kaldırılır

## Yinelenen başlıklara sahip satırların hangileri olduğunu bulun

hangi (DATA $ Maaş% "Maaş" yüzdesi)

16324864809610211813415016218219821984230246262278294310326342358374390406422438454470486502518

534550566

## Gereksiz başlığın bulunduğu satırı kaldırın

VERİ < -VERİ

dim (VERİ)

5454

1. Değişken Maaş

Maaş değişkeni, genellikle "-" ile bağlantılı bir aralık değeridir, ancak burada ele alınması gereken 10k veya daha fazla gibi XXK veya diğer formlar olduğu anlamına gelmez.

## Maaş bir aralık değeriyse, her ikisi de "-" ile bağlantılıdır. Maaşın bir aralık değeri olduğunu unutmayın. Eşleşmenin sonundaki k değerinin not edilmesi gerekir. Büyük K ve küçük k harflerinin iki biçimi vardır.

yeni veri < -VERİ

sönük (yeni veri)

5444

## Önceki dim (DATA) ile karşılaştırıldığında, maaşın bir satır eksik ve Maaş'ın başka temsilleri olduğunu gösterir.

## Burada, maaş aralığının değeri iki kısma ayrılır: temel maaş ve yüksek maaş ve ardından maaşı temsil etmek için ortalama değer alınır

kütüphane (tidyr)

kitaplık (stringr)

yeni veri < -eparate (data = newdata, col = Salary, into = c ("düşük", "yüksek maaş"), sep = "-")

## Aşağıdaki k değerini ayrı ayrı kaldırın, k'nin iki biçimi olduğunu unutmayın: büyük ve küçük

newdata $ lowsalary < -str_replace (newdata $ lowsalary, 'k | K', "") ## | OR'nin ilişkisini temsil eder

newdata $ yüksek maaş < -str_replace (newdata $ highsalary, 'k | K', "")

newdata $ lowsalary < -as.numeric (newdata $ lowsalary) ## Veri türünü dönüştür

newdata $ yüksek maaş < -as.numeric (newdata $ highsalary)

newdata $ maaş < - (newdata $ lowsalary + newdata $ highsalary) / 2

Newdadat < -newdata ## Orijinal düşük maaşı ve yüksek maaşı kaldırın

2. Değişken Eğitim

### Eğitim bölümü

## Öncelikle Eğitimde iş deneyimi ve eğitimi ayırın

yeni veri < -eparate (data = newdata, col = Education, into = c ("Experience", "Graduate"), sep = '/')

tablo (newdata $ Experience)

1-3 yıl deneyim 1 yıldan az deneyim 3-5 yıl deneyim 5-10 yıl Deneyim Sınırsız Deneyim yeni mezunlar

187626146377

tablo (newdata $ Graduate)

Lisans Sınırsız Junior College Master

44727637

3. Değişken Boyut

## Burada, şirketin büyüklüğünü tanımlamak için şirketteki kişi sayısı standart olarak kullanılır

yeni veri < -eparate (data = newdata, col = Size, into = c ('Type', 'Rong', 'Number'), sep = '/')

tablo (yeni veri $ Number)

15-50 kişi 150-500 kişi 2000 kişi üzeri 50-150 kişi 500-2000 kişi 15 kişiden az

761391171198211

tablo (yeni veri $ Rong)

A yuvarlak B yuvarlak C yuvarlak D ve üstü Finansman gerekli değil Listelenen şirket Melek tur Finansman yok

86815430132803348

## Türü Kaldır

yeni veri < -yeni veri

4. Değişken Refah

Refah < -yeni veri

## Refahı Kaldır

yeni veri < -yeni veri

kafa (yeni veri)

Bu noktada veri temizleme kısmı her yerde bitmiştir.

  • Veri analizi bölümü

1. Ücretler ve çalışma yılları arasındaki ilişki

kütüphane (ggplot2)

ggplot (newdata, aes (x = Experience, y = maaş)) + geom_boxplot (col = "red")

Popüler algı doğrultusunda, Python ile uğraşan yeni mezunların ortalama başlangıç maaşı 5K civarında ve maaş seviyesi aralığı en küçük olanıdır. 5-10 yıllık deneyime sahip maaş seviyesi en geniş aralığa sahiptir, çünkü bazıları teknik yönetim pozisyonlarına aktarılır ve daha düşük maaşlı olanlar kodlamaya devam edebilir.Bu, yurttaşların çoğunluğuna bir uyarı mı ... .

2. Maaş ve akademik nitelikler arasındaki ilişki (kolej, lisans, yüksek lisans, sınırlı değil)

ggplot (newdata, aes (x = Lisansüstü, y = maaş)) + geom_boxplot (col = "kırmızı")

Bu, akademik yeterliliklerin önemini bir dereceye kadar açıklayabilir mi? Lisans derecesinin maaş süresi nispeten geniştir, çünkü iş deneyimindeki fark maaş farkına yol açar.

3. Ücretler ve şirket finansmanı arasındaki ilişki

ggplot (newdata, aes (x = Rong, y = maaş)) + geom_boxplot (col = "kırmızı")

Bilginin bu kısmı kör bir noktadır, ancak finansman şirketlerinin ortalama maaşının (listeleme aynı zamanda bir finansman yöntemidir) finansmanı olmayan şirketlerden çok daha yüksek olduğu görülebilir.Bu kısım gelecekteki iş avı için bir rüzgar gülü olabilir mi ... ..

4. Maaş ve şirket büyüklüğü arasındaki ilişki

Şirket ne kadar büyükse, ortalama maaş o kadar yüksek olur.

5. Ücretler ve çalışma saatleri ile akademik nitelikler arasındaki ilişki

kütüphane (ggthemes)

kütüphane (ölçekler)

ggplot (newdata, aes (x = Deneyim, y = maaş, dolgu = faktör (Mezun))) +

geom_boxplot () +

geom_hline (aes (yintercept = 20), renk = "kırmızı", çizgi tipi = "kesikli", lwd = 1) +

scale_y_continuous (etiketler = dolar_format ()) + theme_few ()

Bu resim bize çoğu durumda (Ren) parası (Chou) olmadan daha fazla çalışmamız gerektiğini söylüyor. 1 yıldan az tecrübe, 3-5 yıllık tecrübe, 5-10 yıllık tecrübe veya sınırsız tecrübe olmasına bakılmaksızın, bir yüksek lisans derecesinin ortalama geliri genellikle bir lisans derecesinden daha yüksektir ve bir lisans derecesi, bir ortaokuldan daha yüksektir (burada ayrımcılık yoktur. Akademik niteliklerin anlamı).

6. Şirket refahının bulut haritası

## Şirket Refah Bulut Haritası

kütüphane (jiebaR)

Refah < -as.character (Refah)

wk = işçi ()

seg_words < -hafta

kütüphane (plyr)

kütüphane (wordcloud)

tableWord < -count (seg_words)

windowsFonts (myFont = windowsFont (" ")) ## Çince renkli bulut yazı tipini kullanın

wordcloud (tableWord, tableWord, random.order = F, col = rainbow (100), family = "myFont") Artık şirketin sosyal yardım etiketleri "esnek çalışma, iyi atmosfer, ekip, büyük inek, teknoloji, beş sosyal sigorta ve bir konut fonu" İş arayanların dikkatini çekmek için etiketlerin gelmesini bekleyin.

3

5 gönderi arasında maaş faktörlerinin etkisinin karşılaştırmalı analizi

1. Python gönderisi, Java gönderisi, C ++ gönderisi, PHP gönderisi, C # gönderisi için ortalama maaş

Lagou.com'un iş bilgilerini aldığımızda, Python ve Java'nın daha yüksek ortalama maaşlara sahip olduğunu ve C #'ın en düşük ortalama maaşa sahip olduğunu görebiliriz.

Bu aynı zamanda Python'un son yıllardaki sıcak eğilimini de doğrular. AI'nın sıcaklığından dolayı Python'a olan talep artıyor.Geleneksel Java da nispeten güçlü ve maaş daha yüksek.

2. Aynı iş tecrübesine sahip farklı pozisyonlar için maaş karşılaştırması

Farklı iş deneyimleri için, farklı programlama dillerinin ortalama maaşı hala oldukça farklıdır.

3. Aynı akademik bilgi ile farklı pozisyonlar için maaş bilgilerinin karşılaştırılması

Yüksek lisans, lisans, ortaokul ve sınırsız olmak üzere dört karşılaştırmaya göre, genel yüksek lisans maaşı lisans öğreniminden daha yüksektir.

4. Aynı pozisyon için farklı akademik yeterliliklere ait maaş bilgilerinin karşılaştırılması

Genel olarak, her meslekte, bir yüksek lisans derecesinin ortalama maaşı, bir lisans derecesinden daha yüksektir ve bir lisans derecesinin ortalama maaşı, bir ortaokulun ortalama maaşıdır.

Wu Yifan'ın Weibo'sundan veri ileten 102.118 veri taranıyor ve trafiğin doğru mu yanlış mı?
önceki
Kritik derecede hasta olan yaşlı, doktora bir not doldurdu: Ben vücut bağışçısıyım, unutma
Sonraki
"Mikro haklara" bir "elektronik göz" ekleyin ve Xin'an Caddesi'nde üç seviyeli temiz bir hükümet denetim sistemi oluşturun
Çin Ulusal Kongre Merkezi, "Kuşak ve Yol" Zirve Forumu için "hareket eden bulutlar ve akan su" ile "Çin hizmetleri" sunmaktadır.
Ağır Ceza! 5,71 milyon kişi başı yüksek hızlı tren bileti satın almakla sınırlıdır
Fikri mülkiyet koruması, Çin'in gereksinimleri ve eylemleri vardır
Çin Donanması'nın "Aegis Tiantuan" askeri geçit töreninde göründü.Yıldız gemilerinin hepsi hazır!
numpy advanced tutorial np.where ve np.piecewise
Gelişmiş matplotlib çiziminin ayrıntılı açıklaması
Koleksiyonda 5.000'den fazla antik kitapla, Zhongshan'ın gizli topluluğundaki halka açık kitap dükkanının hikayesi nedir?
Makine öğrenimi hakkında bilmeniz gereken 3 popüler profesyonel terim
GitHub'da yüz teknolojisi ile ilgili kaynakların tanınması, tespiti, kalibrasyonu, yeniden yapılandırılması, oluşturulması vb.
Pazarın başı dertte değil, insanların kalbinde
Öğretmen tarafından özenle seçilmiş 8 iyi kitap, herkes dikkatlice okuyabilir (ayrıca bir PDF e-kitap hediyesi de vardır)
To Top