如果整行已重复,如何删除重复项?

时间:2021-01-21 11:27:09

标签: python pandas dataframe

我有一个数据框有一些重复的行。我只想在整行重复时删除。

df.loc[df.duplicated(keep='first')]

我正在使用上面的一列,但如果一列重复,它会删除所有内容。 如下图

  Column1   Column2 Column3
0   'cat'     'bat'   'xyz'
1   'toy'  'flower'   'abc'
2   'cat'     'bat'   'lmn'
3   'cat'     'bat'   'xyz'

**output**
  Column1   Column2 Column3
0   'cat'     'bat'   'xyz'
1   'toy'  'flower'   'abc'

我想要这样的输出

  Column1   Column2 Column3
0   'cat'     'bat'   'xyz'
1   'toy'  'flower'   'abc'
2   'cat'     'bat'   'lmn'

2 个答案:

答案 0 :(得分:2)

您可以使用 drop_duplicates:

df.drop_duplicates(keep='first')

答案 1 :(得分:2)

df.duplicated() 按预期工作。您的 df.loc 仅过滤重复的而不是删除它们。除了使用 df.loc,您可以简单地根据 df.duplicated() 返回的布尔系列进行索引,方法是将其与 ~

取反
df[~df.duplicated()]
  Column1   Column2 Column3
0   'cat'     'bat'   'xyz'
1   'toy'  'flower'   'abc'
2   'cat'     'bat'   'lmn'

您也可以直接使用 df.drop_duplicates()

相关问题