zoukankan      html  css  js  c++  java
  • Python数据分析帮你清晰的了解整理员工们的工作效率和整体满意度

     

    前言

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

    项目背景

    2018年,被称为互联网的寒冬之年。无论大小公司,纷纷走上了裁员之路,还有一些比较惨的,直接关门大吉。2019年上半年,甲骨文裁掉大量35岁左右的程序员,谁也没想到,IT界退休年龄这么早!而内心OS:我的房贷还没还清。。。。

    假设你是人力资源总监,你该向谁开刀呢?先回答一下下面的问题。

    • 各部门有多少名员工?
    • 员工总体流失率是多少?
    • 员工平均薪资是多少?
    • 员工平均工作年限是多少?
    • 公司任职时间最久的3名员工是谁?
    • 员工整体满意度如何?

     

    数据处理

    import pandas as pd
    data = pd.read_excel(r'c:UsersAdministratorDesktop英雄联盟员工信息表.xlsx',index_col = u'工号')
    # 访问columns属性,查看列字段
    data.columns
    # 访问index属性,查看行标记
    data.index
    # 访问values属性,查看数据集
    data.values

     

    # 对元数据集增加一列奖金列,数额为薪资的20%
    data[u'奖金'] = data[u'薪资']*0.2
    data[u'奖金'].head()
    # loc方法,根据索引列访问数据集
    idx = ['lol-1','lol-2','lol-3','lol-7']
    data.loc[idx]

     

    # 对元数据集增加一列奖金列,数额为薪资的20%
    data[u'奖金'] = data[u'薪资']*0.2
    data[u'奖金'].head()
    # loc方法,根据索引列访问数据集
    idx = ['lol-1','lol-2','lol-3','lol-7']
    data.loc[idx]

     

    此时,我们在上述结果中发现:寒冰、盖伦是重复数据条,在数据分析过程中,一定要注意重复数据带来的影响,所以我们要进行去重操作。

    # 查看重复数据条(bool结果为True代表重复)
    data.duplicated()
    # 查看有多少条重复数据
    data.duplicated().sum()    # 结果:2 
    # 查看重复数据
    data[data.duplicated()]
    # 删除重复数据条,inplace参数代表是否在元数据集进行删除,True表示是
    data.drop_duplicates(inplace=True)
    # 再次查看是否全部去重
    data.duplicated().sum()    # 结果:0,说明数据已经唯一

     

    数据分析

    1.各部门有多少名员工?

    # 频数统计
    data[u'部门'].value_counts()
    # ascending = True代表升序展示
    data[u'部门'].value_counts(ascending = True)

     

    2.员工总体流失率是多少?

    # 频数统计
    data[u'状态'].value_counts()
    # normalize = True 获得标准化计数结果
    data[u'状态'].value_counts(normalize = True)
    # 展示出员工总体流失率
    rate = data[u'状态'].value_counts(normalize = True)[u'离职']
    rate

     

    3.员工平均薪资是多少?

     

    由上图的结果可以看出,平均薪资在16800元,你达到了吗?!允许你去哭一会o(╥﹏╥)o!

    4.公司任职时间最久的3名员工是谁?

    # describe方法也是常用的一种方法,而且结果更全面。
    data[u'工龄'].describe()
    # 通过降序排序、切片操作,找到待的最久的三名员工
    data[u'工龄'].sort_values(ascending = False)[:3]
    ID = data[u'工龄'].sort_values(ascending = False)[:3].index
    data.loc[ID]

     

    6.员工整体满意度如何?

    data[u'满意度'].head()
    # 通过查看满意度前五行发现,不太直观,我们可以用map进行映射,先建立一个映射字典
    JobSatisfaction_cat = {
        1:'非常满意',
        2:'一般般吧',
        3:'劳资不爽'
    }
    data[u'满意度'].map(JobSatisfaction_cat)
    # 对元数据集进行满意度映射
    data[u'满意度'] = data[u'满意度'].map(JobSatisfaction_cat)
    data[u'满意度'].head()

     

    接下来,进行员工整体满意度分析。通过计算可以得出:70%员工都比较认可公司,但仍有30%员工对公司不满意。人力主管以及部门主管需要进一步探究清楚这30%员工的情况,因为不满意是否已经离职?还是存在隐患?是否处于核心岗位等等问题值得我们进一步探究。

    data.head()
    # 频数统计
    data[u'满意度'].value_counts()
    # 获得标准化计数结果,考虑到百分比更能说明满意度情况,所以乘100展示
    100*data[u'满意度'].value_counts(normalize = True)
  • 相关阅读:
    android 75 新闻列表页面
    android 74 下载文本
    android 73 下载图片
    android 72 确定取消对话框,单选对话框,多选对话框
    android 71 ArrayAdapter和SimpleAdapter
    android 70 使用ListView把数据显示至屏幕
    maven如何将本地jar安装到本地仓库
    Centos6.7搭建ISCSI存储服务器
    解决maven打包编译出现File encoding has not been set问题
    MySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
  • 原文地址:https://www.cnblogs.com/hhh188764/p/13207784.html
Copyright © 2011-2022 走看看