pandas判断和删除重复duplicated和drop_duplicates

数据清理- 重复数据判断删除

1.函数

df.duplicated(subset=None, keep=‘first’) # 指定列数据重复项判断;
# 返回:指定列重复行boolean Series
df.drop_duplicates(subset=None, keep=‘first’, # 删除重复数据
inplace=False) # 返回:副本或替代

参数:
subset=None:列标签或标签序列,可选# 只考虑某些列来识别重复项;默认使用所有列
keep=‘first’:{‘first’,‘last’,False}
# - first:将第一次出现重复值标记为True
# - last:将最后一次出现重复值标记为True
# - False:将所有重复项标记为True

2.实例

实例1:重复数据判断

df= pd.DataFrame({'k1': [ 's1']* 3 + ['s2']* 5,'k2' : [1, 1, 2, 3, 3, 4, 4,4]})
result1=df.duplicated()
result2=df.duplicated(keep='last')
result3=df.duplicated(keep=False)
result4=df.duplicated('k1')
result5=df.duplicated(['k1','k2'])
# df            result1       result2       result3       result4       result5
#                 first          last         False        ['k1']   ['k1','k2']
   k1  k2                    
0  s1   1    0    False    0     True    0     True    0    False    0    False
1  s1   1    1     True    1    False    1     True    1     True    1     True
2  s1   2    2    False    2    False    2    False    2     True    2    False
3  s2   3    3    False    3     True    3     True    3    False    3    False
4  s2   3    4     True    4    False    4     True    4     True    4     True
5  s2   4    5    False    5     True    5     True    5     True    5    False
6  s2   4    6     True    6     True    6     True    6     True    6     True
7  s2   4    7     True    7    False    7     True    7     True    7     True

实例2.1:重复数据清理- 副本

df.drop_duplicates()             #保留第一个值,返回副本
df.drop_duplicates(keep='last')  #保留最后一个值,返回副本
df.drop_duplicates(keep=False)   #删除所有重复值,返回副本
df.drop_duplicates('k1')         #删除第一列重复值,返回副本
df.drop_duplicates(['k1','k2'])  #删除全部列重复值,返回副本
# df           result1      result2      result3       result4       result5
#                first         last        False        ['k1']   ['k1','k2']
   k1  k2       k1  k2       k1  k2       k1  k2        k1  k2        k1  k2
0  s1   1    0  s1   1    1  s1   1    2  s1   2    0  s1   1      0  s1   1
1  s1   1    2  s1   2    2  s1   2                 3  s2   3      2  s1   2
2  s1   2    3  s2   3    4  s2   3                                3  s2   3
3  s2   3    5  s2   4    7  s2   4                                5  s2   4
4  s2   3                    
5  s2   4                    
6  s2   4                    
7  s2   4

实例2.2:重复数据清理- 就地修改

df.drop_duplicates(inplace=True)#就地修改
df
 
   k1  k2
0  s1   1
2  s1   2
3  s2   3
5  s2   4

原文链接: pandas35 数据清理- 重复数据判断删除duplicated,drop_duplicates( tcy)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值