美文网首页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