Python 数据可视化:【拉勾网】职位信息数据分析与可视化绘图

同步 CSDN 博文

Posted by Newyee on June 23, 2019

笔者爬取了【拉勾网】17 个城市的 1600+ 个【数据分析】岗位进行分析并绘图展示,尝试探索该岗位当前市场状况。

ps.目标城市主要挑选的是排名靠前的互联网城市,剔除了个别职位数只有一两个的城市。 新一线城市互联网生态指数

数据摘要

1
2
3
4
import pandas as pd

df_all = pd.read_csv(file, encoding='utf-8')
print(df_all.info())
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1689 entries, 0 to 1688
Data columns (total 20 columns):
position_id             1689 non-null int64
position_name           1689 non-null object
salary                  1689 non-null object
work_year               1689 non-null object
education               1689 non-null object
job_nature              1689 non-null object
city                    1689 non-null object
district                1689 non-null object
work_addr               1689 non-null object
position_advantage      1689 non-null object
position_labels         1679 non-null object
position_description    1689 non-null object
company_short_name      1689 non-null object
company_size            1689 non-null object
industry_field          1689 non-null object
finance_stage           1689 non-null object
investment_agencies     424 non-null object
company_full_name       1689 non-null object
company_homepage        1689 non-null object
company_inLaGou         1689 non-null object
dtypes: int64(1), object(19)
memory usage: 264.0+ KB

职位数量

1
2
city_counts = df_all.city.value_counts()
print(city_counts[:10])
1
2
3
4
5
6
7
8
9
10
11
上海    446
北京    437
深圳    291
广州    182
杭州    150
成都     44
武汉     38
南京     24
长沙     16
西安     14
Name: city, dtype: int64

使用 seaborn[^1] 绘制: [^1]: seaborn 官网

各城市职位数量条形图-seaborn 使用 matplotlib[^2] 绘制: [^2]: matplotlib 官网

各城市职位数量条形图-plt 从条形图上可以很直观地观察到:

  • 北上广深杭对于数据分析岗位的需求量远超其他城市,上海、北京尤甚;
  • 数据分析师如果选错了就业地点可能面临无业可就的风险。 *[北上广深杭]: 北京、上海、广州、深圳、杭州

地图分布

各城市职位数分布

上海各区职位数分布

  • 上海的数据分析岗位主要集中分布在浦东新区徐汇区长宁区,其他区的职位数较少。

    工作经验

    1
    
    print(work_year_sizes)
    

    不限 10.834813 应届毕业生 5.032564 1年以下 2.131439 1-3年 28.478390 3-5年 39.964476 5-10年 13.380699 10年以上 0.177620 Name: work_year, dtype: float64

使用 matplotlib 绘制: 工作经验饼图-plt 使用 pyecharts[^3] 绘制: [^3]: pyecharts 官网

工作经验饼图-pyecharts 由饼图可以看出:

  • 数据分析岗位对于经验的要求主要集中在“1-3年”和“3-5年”;
  • 对于“1年以下”和“10年以上”经验的需求非常小。

薪资分布

取薪资区间的中间值计算,如 10k-14k 记为 12k

1
print(salary_dict)
1
2
3
4
5
{'5k及以下': 104,
 '5k-10k': 231,
 '10k-25k': 1002,
 '25k-50k': 325,
 '50k以上': 27}

使用 matplotlib 绘制: 薪资分布饼图-plt Top10城市-平均月薪分布图 使用 pyecharts 绘制: 薪资分布玫瑰图-pyecharts

Top10城市-平均月薪柱状图 由此可见:

  • 数据分析岗位的月薪多数分布在10-25k范围;
  • 北京、深圳平均月薪以大于20k超过平均水平。

学历要求

1
print(education_pairs)
1
2
3
4
5
[('学历不限', 0.05979869745411486),
 ('大专及以上', 0.06867969212551805),
 ('本科及以上', 0.8158673771462404),
 ('博士及以上', 0.0017761989342806395),
 ('硕士及以上', 0.053878034339846066)]

学历要求饼图-pyecharts

  • 学历要求“本科及以上”占比超过80%!硕士博士占比不足10%。
  • 学历要求没有想象得那么严格。

公司规模

1
print(company_size_pairs)
1
2
3
4
5
6
7
[('2000人以上', 571),
 ('500-2000人', 428),
 ('150-500人', 340),
 ('50-150人', 224),
 ('15-50人', 102),
 ('少于15人', 23),
 ('10-50人', 1)]

公司规模-漏斗图

  • 基本上,规模越大的公司对数据分析师的需求也越大。

行业领域

行业领域

  • 各行各业都设有数据分析岗位,移动互联网领域为最。

职位词云

职位标签

使用 wordcloud[^4] 绘制: [^4]: wordcloud 官网

职位标签词云 职位标签反应出了该岗位的特点:

  • 数据分析岗位的关键词提及最多的自然是“数据分析”啦;
  • 所属的行业领域也多有提及,如“移动互联网”、“金融”、“电商”等;
  • 岗位的技术特点有“大数据”、“数据挖掘”、“数据运营”、“可视化”等;
  • 技术工具则以“SQL”、“MySQL”、“SQLServer”、“BI”、“SPSS”、“Hadoop”等,“Python”也在其中、但频数很小。

职位诱惑

使用 pyecharts 绘制: 职位诱惑词云 职位诱惑多以基本福利频数最高,如“五险一金”、“六险一金”、“带薪年假”、“周末双休”、“年终奖”等。

薪资影响因素

下面的 Boxplot 展示了薪资分别与学历要求工作经验公司规模融资阶段的关系: Salary Boxplot 一般地,

  • 学历越高,薪资越高,硕士的薪资中位数在20k左右;
  • 工作经验越丰富,薪资越高,3-5年经验的薪资基本都有15-25k;
  • 公司规模越大,给的薪水也相对比较高。
  • 未融资及天使轮公司的薪资都比较低,应该是公司刚起步比较缺钱的缘故;经历A、B、C、D轮融资后的公司,给出的薪水依次提高;上市公司的薪资相对较高。

融资阶段

融资阶段 极区图

为这个图调试样式费了不少时间,特在此展示以作纪念。。。