1. 程式人生 > >拉鉤網 資料分析與視覺化

拉鉤網 資料分析與視覺化

前端時間爬取了拉鉤網的某一職位的相關資訊,於是就有了分析一下這些資料的想法,爬取的方式可以看我的另一篇部落格,

csv檔案的資料主要是以下的這些

在csv中儲存的格式為


第一列為職位名稱,第二,三列為薪水的範圍,第四列為工作城市,第五、六列為工作經驗年限,第七列為最低學歷,第八列為全職或是實習

首先通過pandas載入資料,將資料讀入記憶體

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import re

path = r'C:\Users\cy\Desktop\lagou'
filePath = path+r'\info.csv'
column = ['jobName','lowSalary','highSalary','city','lowYear','highYear','education','workTime']
df = pd.read_csv(filePath,names = column)

先觀察不同城市的崗位需求數量

count_by_city = df['city'].value_counts()  #對城市對應的職位數量進行統計
X = count_by_city.index  #獲取對應的城市
Y = list(count_by_city)  #獲取對應城市的職位
plt.rcParams['font.sans-serif'] = ['SimHei']  #設定可現實中文
for x,y in zip(X,Y):
    plt.text(x, y+0.05, '%d' % y, ha='center', va= 'bottom')  #繪製條形圖上的數字
plt.bar(X,Y)  #繪製圖形
plt.savefig(path+r'\jobNum.png') #儲存圖片
plt.show()  #顯示圖片

可是很清晰的看到背景的職位數量遙遙領先,我們熟知的北上廣深穩做前五,而杭州也拿到了第四的位置,將他轉化為餅圖看看,

count_by_city = df['city'].value_counts() #對城市對應的職位數量進行統計
X = list(count_by_city.index) #獲取對應的城市
Y = list(count_by_city)  #獲取對應城市的職位
sum = count_by_city.sum()  #獲取職位總數
add = 0 
n = 0  #移除的城市數量
print(len(X),len(Y))
for i in range(len(Y)):
    if (Y[i-n]<5):
        print(X[i-n],Y[i-n])
        add += Y[i-n]
        X.remove(X[i - n])
        Y.remove(Y[i-n])
        n += 1
X.append('其他')
Y.append(add)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.pie(Y/sum,labels=X,autopct='%1.1f')
plt.axis('equal')
plt.savefig(path+r'\jobNumPie.png')
plt.show()

這裡可以更清晰的看到北京吸引力一半多的人才,由於後面的城市人數很少,在餅圖中文字顯示會重疊,所以這裡合成了一個其他,再來看看不同城市的薪水情況

city = df.groupby('city')  #按城市進行分組
group = city.groups  #獲取城市的分組
salary = []
city_list = []
for key in group:  #取不同城市的最高薪水的均值和最低薪水的均值的和除以二代表其薪水水平
    city_list.append(key)
    salary.append((city.get_group(key)['lowSalary'].mean()+city.get_group(key)['lowSalary'].mean())/2)

print(salary)
plt.rcParams['font.sans-serif'] = ['SimHei']
for x,y in zip(city_list,salary):
    plt.text(x, y+0.05, '%d' % y, ha='center', va= 'bottom')
plt.bar(city_list,salary)
plt.savefig(path+r'\citySalary.png')
plt.show()

可以看到北京依舊是遙遙領先,上深杭則並列第二,而天津和無錫由於資料量單薄,而且還是實習生,所以墊底了,東莞則是招收的是大專學歷起步,所以工資 也不高

再看看工作經驗對工資的影響,程式碼就不貼了,都差不多,改改引數就好了

這裡去的工作經驗是職位資訊提供的最高和最低的均值,而零則代表無工作經驗或工作經驗不限,可以很明顯的看到工資隨時間的增長在增加,但增長的幅度貌似不怎麼大

接下來在看看學歷對工資的影響,

本科生和碩士的差別為1k元,而本科生和大專生則達到了10k,可見高考對人生的影響還是相當重要的。

以上就是我對這些資料的簡單分析,如果有什麼錯誤的話,歡迎大家指正。