在把数据读入Python运行环境后,很多时候我们并不能直接对数据进行进一步的分析,而是要对数据进行必要的整理和清洗,使数据形态更加符合我们的分析需求。今天我们就先来看一下数据的行列筛选。

首先我们调用Pandas程序包,把目标EXCEL文件读进来赋值给data并查看以下数据是否正常读入。

import pandas as pddata=pd.read_excel('D:/temp/员工综合绩效分析.xlsx',sheet_name='综合绩效分析')data.head()

python dataframe 过滤 某列 条件 pandas过滤列_pandas 筛选

确认文件读入无误后,我们先来去除一下某一列,比如最后一列“业务考试”:

data=data.drop('业务考试',1)

python dataframe 过滤 某列 条件 pandas过滤列_操作方法_02

这里用到的是drop命令,意思是“丢弃”;第二个参数是坐标轴方向的设定0或默认为纵向,1为横向,意思是告诉drop命令横向丢弃列,不要纵向丢弃行。

那如果我要丢弃多个列呢?这时候我们就需要把所有要丢弃的列放入一个列表。列表是Python的基本数据组织形式之一,以英文状态下的中括号为标记[...],使我们能够对数值或数据文件进行批量操作。

data=data.drop(['性别','居住地'],1)

python dataframe 过滤 某列 条件 pandas过滤列_pandas 筛选_03

以上这种反向操作方法常被用在需要保留大多数列,丢弃少数列的情况下。那么当我们需要抽取少数列,放弃大多数列的时候,还可以采取数据列的直接提取法。比如我们只需要“姓名”、“班组”、“质检成绩”、“平均处理时长”四列,其它的不要。就可以进行如下的操作:

data5=data[['姓名','班组','质检成绩','平均处理时长']]

python dataframe 过滤 某列 条件 pandas过滤列_pandas 筛选_04

除了对列的操作外,对行的筛选操作也是我们的日常数据整理必备。首先我们来看如何提取某一类别的数据,比如班组一的数据。

data1=data[data.班组==1]

data.班组也可以写成data['班组'],python里的等于要用双等于号表示。结果如下:

python dataframe 过滤 某列 条件 pandas过滤列_操作方法_05

那么基于以上规则,我们就可以灵活筛选出班组二、性别女、教育程度大学等等各种分类条件的数据。

那么想得到绩效区间值的数据又该如何筛选呢?其实还是一样的命令,只不过不再是==某个类别,而是变成了大于或小于的区间比较运算符。比如我们想把月度接听量大于3300的员工筛选出来,就可以使用以下命令:

data2=data[data.月度接听量>3300]

python dataframe 过滤 某列 条件 pandas过滤列_数据_06

如果是多条件,我们只需要用相应的运算符把条件连接起来就可以了。比如我们想得到(月度接听量大于3300)且同时(平均处理时长小于200秒)的员工清单,则可以使用如下命令:

data3=data[(data.月度接听量>3300)&(data.平均处理时长<200)]

python dataframe 过滤 某列 条件 pandas过滤列_pandas提取某一列的值_07

同EXCEL一样,Pandas实现某种数据结果的操作方法也可以有多种。以上都是最直观、最容易理解的方法。而除此之外,我们还可以用loc, iloc, apply+lambda表达式等方法实现同样的目的。