Python pandas库(21) 重复值标记(duplicated)与删除(drop_duplicates)

重复的数据会对统计结果产生影响,误导决策人员。

发现重复值可以用duplicated()。

如果只是df.duplicated(),括号里面什么都不填写,是按照所有列作为依据进行查找的,每一列的值都必须一致才会被标记为重复值。

这里只有第2、6行被标记为重复值,而14、17行只有部分列的重复,并没有被标记为重复值。


如果只需要用某一列作为标记依据,只需要将列名写在括号里就行了。

这个函数返回的是一组bool值,这些bool值能够用于筛选非重复值或者重复值。

A、筛选出重复行

B、筛选出非重复行

.............................................................................................................


在上面这个操作中,是按照‘门店’和‘销售百分比’两列同时作为依据进行筛选重复行的。


如果遇到上面这种情况,我们想保留第17行,而把16行定义为重复行,只需要加参数keep=last就行了。

keep='last'参数就是让系统从后向前开始筛查,这样索引小的重复行会返回 'True'。



平时我们的操作中可能只是简单地将重复的行删除掉,不需要标记再筛选,太麻烦。那就使用drop_duplicates。

这样门店重复的就直接删除了。

跟duplicated一样,将列名放进括号里面可以作为判断重复的依据; 如果要保留后一个重复值,需要加参数keep='last'。

而如果想直接将原数据修改,需要加参数inplace=True。

发布于 2017-11-16 14:18

文章被以下专栏收录