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。