美文网首页Pandas技巧
Pandas_Select_Data_Duplicated_Dr

Pandas_Select_Data_Duplicated_Dr

作者: Kaspar433 | 来源:发表于2020-03-31 21:28 被阅读0次

    Pandas_Select_Data_Duplicated_Drop_duplicates

    如果要识别和删除DataFrame中的重复行,有两种方法可以提供帮助:duplicated和drop_duplicates。每个都将用于标识重复行的列作为参数。

    duplicated 返回一个布尔向量,其长度为行数,表示行是否重复。

    drop_duplicates 删除重复的行。

    默认情况下,重复集的第一个观察行被认为是唯一的,但每个方法都有一个keep参数来指定要保留的目标。

    • keep='first' (默认值):标记/删除重复项,第一次出现除外。
    • keep='last':标记/删除重复项,除了最后一次出现。
    • keep=False:标记/删除所有重复项。
    data = pd.DataFrame({'a': list('aabbccddeeff'), 'b': list('aaaabbbbcccc'),
                       'c': np.random.randint(5, size=12),
                       'd': np.random.randint(9, size=12)})
    

    duplicated

    subset 参数

    传入单列:

    data.duplicated(subset='a')
    
    out:
    0     False
    1      True
    2     False
    3      True
    4     False
    5      True
    6     False
    7      True
    8     False
    9      True
    10    False
    11     True
    dtype: bool
    

    传入多列

    data.duplicated(subset=['a', 'b'])
    
    out:
    0     False
    1      True
    2     False
    3      True
    4     False
    5      True
    6     False
    7      True
    8     False
    9      True
    10    False
    11     True
    dtype: bool
    

    选择重复数据

    data[data.duplicated(subset='a')]
    
    out:
        a   b   c   d
    1   a   a   4   2
    3   b   a   4   2
    5   c   b   1   6
    7   d   b   2   1
    9   e   c   0   0
    11  f   c   3   4
    
    data[data.duplicated(subset=['a','b'])]
    
    out:
        a   b   c   d
    1   a   a   4   2
    3   b   a   4   2
    5   c   b   1   6
    7   d   b   2   1
    9   e   c   0   0
    11  f   c   3   4
    

    keep参数

    data.duplicated(subset='a', keep='first')
    
    out:
    0     False
    1      True
    2     False
    3      True
    4     False
    5      True
    6     False
    7      True
    8     False
    9      True
    10    False
    11     True
    dtype: bool
    
    data.duplicated(subset='a', keep='last')
    
    out:
    0      True
    1     False
    2      True
    3     False
    4      True
    5     False
    6      True
    7     False
    8      True
    9     False
    10     True
    11    False
    dtype: bool
    
    data.duplicated(subset='a', keep=False)
    0     True
    1     True
    2     True
    3     True
    4     True
    5     True
    6     True
    7     True
    8     True
    9     True
    10    True
    11    True
    dtype: bool
    

    drop_duplicates()

    subset参数

    data.drop_duplicates(subset='a')
    
    out:
        a   b   c   d
    0   a   a   3   3
    2   b   a   3   7
    4   c   b   2   3
    6   d   b   3   3
    8   e   c   4   5
    10  f   c   4   8
    
    data.drop_duplicates(subset=['a','b'])
    
    out:
        a   b   c   d
    0   a   a   3   3
    2   b   a   3   7
    4   c   b   2   3
    6   d   b   3   3
    8   e   c   4   5
    10  f   c   4   8
    

    keep参数

    data.drop_duplicates(subset='a', keep='first')
    
    out:
        a   b   c   d
    0   a   a   3   3
    2   b   a   3   7
    4   c   b   2   3
    6   d   b   3   3
    8   e   c   4   5
    10  f   c   4   8
    
    data.drop_duplicates(subset='b', keep='last')
    
    out:
        a   b   c   d
    3   b   a   4   2
    7   d   b   2   1
    11  f   c   3   4
    
    data.drop_duplicates(subset='a', keep=False)
    
    out:
    a   b   c   d
    

    根据索引值选择重复项

    data.set_index('a', inplace=True)
    data.head()
    
    out:
        b   c   d
    a           
    a   a   3   3
    a   a   4   2
    b   a   3   7
    b   a   4   2
    c   b   2   3
    
    data.index.duplicated()
    
    out:
    array([False,  True, False,  True, False,  True, False,  True, False,
            True, False,  True])
    
    data[data.index.duplicated()]
    
    out:
        b   c   d
    a           
    a   a   4   2
    b   a   4   2
    c   b   1   6
    d   b   2   1
    e   c   0   0
    f   c   3   4

    相关文章

      网友评论

        本文标题:Pandas_Select_Data_Duplicated_Dr

        本文链接:https://www.haomeiwen.com/subject/gpaguhtx.html