拉勾网招聘信息分析(三)

作者: 羽恒 | 来源:发表于2018-10-23 18:03 被阅读1次

    关于招聘信息简单分析第三弹,对招聘信息中融资情况、工作经验、学历要求和薪酬之间的关系进行简单分析和数据可视化操作(本例中数据主要集中为Python相关职位分析)

    分析工具

    import pandas as pd
    from pyecharts import Boxplot
    import matplotlib.pyplot as plt
    import seaborn as sns
    df = pd.read_csv("数据文件")
    # matplotlib 中文显示设置
    plt.rcParams['font.sans-serif']=['SimHei']
    # 取平均值为薪酬值
    def avg_salary(salary):
        salary_list = salary.split('-')
        salary_min = salary_list[0][:-1]
        salary_max = salary_list[1][:-1]
        return (int(salary_min)+int(salary_max))/2.0
    

    北京部分区县薪酬比较

    薪酬和区域之间关系数据处理

    df["salary_avg"] = df["工资"].apply(avg_salary).astype(int)
    groupy_by_dist = df.groupby(["区域"])["salary_avg"]
    count_by_dist = df.groupby(['区域'])['区域'].count()
    df_dist =[]
    for group in count_by_dist.index:
        v = groupy_by_dist.get_group(group).values
        df_dist.append(v)
    
    • seaborn工具实现数据展示
    ax = plt.figure(figsize=(10, 6)).add_subplot(111)
    sns.boxplot(data=df_dist)
    ax.set_xticklabels(count_by_dist.index, rotation=-30,fontsize=18)
    ax.set_title('北京部分地区薪酬比较', fontsize=22)
    ax.set_ylabel('薪酬K/月', fontsize=20)
    plt.savefig('北京部分地区薪酬比较', bbox_inches='tight')
    plt.show()
    
    • pycharts工具实现数据展示
    boxplot = Boxplot("北京部分城区薪酬比较")
    boxplot.use_theme("dark")
    _yaxis = boxplot.prepare_data(df_dist)
    boxplot.add("",count_by_dist.index , _yaxis,is_area_show=True,yaxis_name="薪酬(k/月)",is_label_show=True,
                is_axisline_show=True,is_fill=True,mark_point=["max","min","average"])
    boxplot.render()
    
    北京部分地区薪酬比较 北京部分地区薪酬比较

    朝阳区薪酬最高,海淀区紧跟其后。并且北京各区Python职位薪资水平普遍还是较高的,薪酬分布最大值为25k(石景山区)、最小值为2K(海淀区)、平均值为11K(东城区)。

    不同工作经验的薪酬情况

    薪酬和工作经验之间关系数据处理

    count_by_experience = df.groupby(['工作经验'])['工作经验'].count()
    value_by_experience = pd.DataFrame([count_by_experience.index, count_by_experience.values], index = ['experience', 'counts']).T
    sort_by_experience = value_by_experience.copy()
    mappings = {'应届毕业生':1, '1年以下':2, '1-3年':3, '3-5年':4, '5-10年':5, '10年以上':6,'不限':7}
    sort_by_experience['sortby'] = sort_by_experience['experience'].map(mappings)
    sort_by_experience.sort_values(by='sortby', inplace=True)
    
    df["salary_avg"] = df["工资"].apply(avg_salary).astype(int)
    groupy_by_experience = df.groupby(['工作经验'])["salary_avg"]
    df_exper = []
    for group in sort_by_experience["experience"]:
        v = groupy_by_experience.get_group(group).values
        df_exper.append(v)
    
    • seaborn工具实现数据展示
    ax = plt.figure(figsize=(10,6)).add_subplot(111,axisbg='#FFDAB9')
    # add_subplot(111)
    sns.boxplot(data=df_exper)
    ax.set_xticklabels(sort_by_experience["experience"],fontsize=18)
    ax.set_title('不同工作经验的薪酬分布',fontsize=20)
    ax.set_ylabel('薪酬K/月', fontsize=20)
    plt.savefig('不同工作经验的薪酬分布')
    plt.show()
    
    • Pyecharts工具实现数据展示
    from pyecharts import Boxplot
    boxplot = Boxplot("不同工作经验的薪酬分布")
    boxplot.use_theme("dark")
    _yaxis = boxplot.prepare_data(df_exper)
    
    boxplot.add("",sort_by_experience["experience"] , _yaxis,is_area_show=True,yaxis_name="薪酬(k/月)",is_label_show=True,
                is_axisline_show=True,mark_point=["max","min","average"],
                is_geo_effect_show=True)
    boxplot.render("exp_sal.html")
    
    不同工作经验的薪酬分布
    不同工作经验的薪酬分布

    工作经验和薪资呈正相关分布,而3-5年和5-10年工作经验基本代表Python职位薪资普遍薪酬。薪酬分布最大值为40k(10年以上)、最小值为2K(应届毕业生)、平均值为11K(3-5年)。

    不同学历要求的薪酬分布

    学历要求和薪酬之间关系数据处理

    count_by_degree = df.groupby(['学历要求'])['学历要求'].count()
    value_by_degree = pd.DataFrame([count_by_degree.index, count_by_degree.values], index = ['degree', 'counts']).T
    sort_by_degree = value_by_degree.copy()
    degree_mappings = {'不限':1, '大专':2, '本科':3, '硕士':4,'博士':5}
    sort_by_degree['sortby'] = sort_by_degree['degree'].map(degree_mappings)
    sort_by_degree.sort_values(by='sortby', inplace=True)
    df["salary_avg"] = df['工资'].apply(avg_salary).astype(int)
    group_by_degree = df.groupby(['学历要求'])['salary_avg']
    df_deg = []
    for group in sort_by_degree['degree']:
        v = group_by_degree.get_group(group).values
        df_deg.append(v)
    
    • seaborn工具实现数据展示

      ax = plt.figure(figsize=(10, 8)).add_subplot(111,axisbg='#FFDAB9')
      sns.boxplot(data=df_deg)
      ax.set_xticklabels(sort_by_degree['degree'], fontsize=18)
      ax.set_title('不同学历的薪酬分布', fontsize=22)
      ax.set_ylabel('薪酬K/月', fontsize=20)
      plt.savefig('不同学历的薪酬分布')
      plt.show()```
      
    • Pyecharts工具实现数据展示

      from pyecharts import Boxplot
      boxplot = Boxplot("不同学历要求的薪酬分布")
      boxplot.use_theme("dark")
      _yaxis = boxplot.prepare_data(df_deg)
      boxplot.add("",sort_by_degree["degree"] , _yaxis,is_area_show=True,yaxis_name="薪酬(k/月)",is_label_show=True,
                    is_axisline_show=True,mark_point=["max","min","average"],
                    is_geo_effect_show=True)
      boxplot.render("deg_sal.html")
      
    不同学历的薪酬分布 不同学历要求的薪酬分布

    同样学历和薪资呈正相关分布,而大专和本科基本代表Python职位薪资普遍薪酬。薪酬分布最大值为35k(博士)、最小值为2K(硕士)、平均值为7K(不限)。而由于数据样本过于集中导致数据分析结果出现极值,本科占整个数据比例为90%左右。

    公司融资情况和薪酬之间关系

    公司融资情况和薪酬之间关系数据处理

    count_by_financing = df.groupby(['融资阶段'])['融资阶段'].count()
    value_by_financing = pd.DataFrame([count_by_financing.index, count_by_financing.values], index = ['financing', 'counts']).T
    sort_by_financing = value_by_financing.copy()
    mappings = {'未融资':1, '天使轮':2, 'A轮':3, 'B轮':4, 'C轮':5,'D轮及以上':6, '上市公司':7,'不需要融资':8}
    sort_by_financing['sortby'] = sort_by_financing['financing'].map(mappings)
    sort_by_financing.sort_values(by='sortby', inplace=True)
    
    df["salary_avg"] = df["工资"].apply(avg_salary).astype(int)
    groupy_by_financing = df.groupby(['融资阶段'])["salary_avg"]
    df_financing = []
    for group in sort_by_financing["financing"]:
      v = groupy_by_financing.get_group(group).values
      df_financing.append(v)
    
    • seaborn工具实现数据展示
      ax = plt.figure(figsize=(10,6)).add_subplot(111,axisbg='#FFDAB9')
      sns.boxplot(data=df_financing)
      ax.set_xticklabels(sort_by_financing["financing"],rotation=-45,fontsize=18)
      ax.set_title('融资情况和薪酬之间的关系',fontsize=20)
      ax.set_ylabel('薪酬K/月', fontsize=20)
      plt.savefig('融资情况和薪酬之间的关系')
      plt.show()
      
    • Pyecharts工具实现数据展示
      from pyecharts import Boxplot
      boxplot = Boxplot("融资情况和薪酬之间的关系")
      boxplot.use_theme("dark")
      _yaxis = boxplot.prepare_data(df_financing)
      boxplot.add("",sort_by_financing["financing"] , _yaxis,is_area_show=True,yaxis_name="薪酬(k/月)",is_label_show=True,
                    is_axisline_show=True,mark_point=["max","min","average"],
                    is_geo_effect_show=True)
      boxplot.render("financing_sal.html")
      
    融资情况和薪酬之间的关系 融资情况和薪酬之间的关系

    公司融资和薪资关系并不是很紧密,公司获得天使轮投资的Python职位薪资相对较高。薪酬分布最大值为6k(天使轮)、最小值为2K(A轮)、平均值为3K(B轮)。

    相关文章

      网友评论

        本文标题:拉勾网招聘信息分析(三)

        本文链接:https://www.haomeiwen.com/subject/rbpazftx.html