Loading

pandas判断和删除重复——duplicated()、drop_duplicates()

1.函数

DataFrame.duplicated(subset=None, keep=‘first’)
  功能:指定列数据重复项判断;
  返回:指定列,每行如果重复则为True,否则为False
df.drop_duplicates(subset=None, keep=‘first’, inplace=False)
  功能:删除重复行
  返回:DataFrame的副本或直接在源数据上修改

参数:
  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)

            posted @ 2022-05-23 17:36  Lowell_liu  阅读(1489)  评论(0编辑  收藏  举报