在把数据读入Python运行环境后,很多时候我们并不能直接对数据进行进一步的分析,而是要对数据进行必要的整理和清洗,使数据形态更加符合我们的分析需求。今天我们就先来看一下数据的行列筛选。
首先我们调用Pandas程序包,把目标EXCEL文件读进来赋值给>
import pandas as pd
data=pd.read_excel("D:/temp/员工综合绩效分析.xlsx",sheet_name="综合绩效分析")
data.head()
确认文件读入无误后,我们先来去除一下某一列,比如最后一列“业务考试”:
data=data.drop("业务考试",1)
这里用到的是drop命令,意思是“丢弃”;第二个参数是坐标轴方向的设定0或默认为纵向,1为横向,意思是告诉drop命令横向丢弃列,不要纵向丢弃行。
那如果我要丢弃多个列呢?这时候我们就需要把所有要丢弃的列放入一个列表。列表是Python的基本数据组织形式之一,以英文状态下的中括号为标记[...],使我们能够对数值或数据文件进行批量操作。
data=data.drop(["性别","居住地"],1)
以上这种反向操作方法常被用在需要保留大多数列,丢弃少数列的情况下。那么当我们需要抽取少数列,放弃大多数列的时候,还可以采取数据列的直接提取法。比如我们只需要“姓名”、“班组”、“质检成绩”、“平均处理时长”四列,其它的不要。就可以进行如下的操作:
data5=data[["姓名","班组","质检成绩","平均处理时长"]]
除了对列的操作外,对行的筛选操作也是我们的日常数据整理必备。首先我们来看如何提取某一类别的数据,比如班组一的数据。
data1=data[data.班组==1]
data.班组也可以写成data["班组"],python里的等于要用双等于号表示。结果如下:
那么基于以上规则,我们就可以灵活筛选出班组二、性别女、教育程度大学等等各种分类条件的数据。
那么想得到绩效区间值的数据又该如何筛选呢?其实还是一样的命令,只不过不再是==某个类别,而是变成了大于或小于的区间比较运算符。比如我们想把月度接听量大于3300的员工筛选出来,就可以使用以下命令:
data2=data[data.月度接听量>3300]
如果是多条件,我们只需要用相应的运算符把条件连接起来就可以了。比如我们想得到(月度接听量大于3300)且同时(平均处理时长小于200秒)的员工清单,则可以使用如下命令:
data3=data[(data.月度接听量>3300)&(data.平均处理时长<200)]
同EXCEL一样,Pandas实现某种数据结果的操作方法也可以有多种。以上都是最直观、最容易理解的方法。而除此之外,我们还可以用loc,iloc,apply+lambda表达式等方法实现同样的目的。