添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

重复值在数据清洗中经常要删除,本文介绍Pandas如何识别重复值以及如何删除重复值。

重复值的识别

df.duplicated(subset=None, keep='first') 可以返回表示重复行的布尔系列,可以指定列。keep参数确定要标记的重复项(如果有),选项有:

  • first:将除第一次出现的重复值标记为True,默认。
  • last:将除最后一次出现的重复值标记为True。
  • False:将所有重复值标记为True。
  • 来实际操作一下:

    df = pd.DataFrame({
        'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
        'style': ['cup', 'cup', 'cup', 'pack', 'pack'],
        'rating': [4, 4, 3.5, 15, 5]
        brand style  rating
    0  Yum Yum   cup     4.0
    1  Yum Yum   cup     4.0
    2  Indomie   cup     3.5
    3  Indomie  pack    15.0
    4  Indomie  pack     5.0
    

    默认情况下,对于每组重复的值,第一次出现都设置为False,所有其他值设置为True。

    df.duplicated()
    0    False
    1     True
    2    False
    3    False
    4    False
    dtype: bool
    

    通过使用“ last”,将每组重复值的最后一次出现设置为False,将所有其他重复值设置为True。

    df.duplicated(keep='last')
    0     True
    1    False
    2    False
    3    False
    4    False
    dtype: bool
    

    通过将keep设置为False,所有重复项都为True。

    df.duplicated(keep=False)
    0     True
    1     True
    2    False
    3    False
    4    False
    dtype: bool
    

    要在特定列上查找重复项,请使用子集。

    df.duplicated(subset=['brand'])
    0    False
    1     True
    2    False
    3     True
    4     True
    dtype: bool
    

    删除重复值

    删除重复值的语法为:

    df.drop_duplicates(subset=None, 
                       keep='first', 
                       inplace=False, 
                       ignore_index=False)
    

    subset指定的标签或标签序列可选,仅删除某些列重复项,默认情况为使用所有列,其他有:

  • keep:确定要保留的重复项(如果有)
  •