【问题标题】:How to delete duplicates pandas如何删除重复的熊猫
【发布时间】:2021-08-31 11:44:16
【问题描述】:

我需要使用 Pandas 检查数据框的一列中是否有重复值,如果有重复值,请删除整行。 我只需要检查第一列。

例子:

object    type

apple     fruit
ball      toy
banana    fruit
xbox      videogame
banana    fruit
apple     fruit

我需要的是:

object    type

apple     fruit
ball      toy
banana    fruit
xbox      videogame

我可以使用以下代码删除“对象”重复项,但我无法删除包含重复项的整行,因为不会删除第二列。


df = pd.read_csv(directory, header=None,)

objects= df[0]

for object in df[0]:
   

【问题讨论】:

标签: python pandas list dataframe


【解决方案1】:

通过重复的掩码选择并取反

df = df[~df["object"].duplicated()]

这给了

   object       type
0   apple      fruit
1    ball        toy
2  banana      fruit
3    xbox  videogame

【讨论】:

    【解决方案2】:

    使用drop_duplicates方法

    d = pd.DataFrame(
        {'object': ['apple', 'ball', 'banana', 'xbox', 'banana', 'apple'],
        'type': ['fruit', 'toy', 'fruit', 'videogame', 'fruit', 'fruit']}
    )
    d.drop_duplicates()
    

    有几个关键字参数。这可能会派上用场(比如inplace=True,如果你想更新你的数据框d)

    【讨论】:

      【解决方案3】:

      您可以使用.drop_duplicates() 和参数subset='object' 选择要检查的列,如下:

      df_out = df.drop_duplicates(subset='object')
      

      结果:

      print(df_out)
      
         object       type
      0   apple      fruit
      1    ball        toy
      2  banana      fruit
      3    xbox  videogame
      

      【讨论】:

        猜你喜欢
        • 2016-01-30
        • 2016-02-11
        • 2013-10-28
        • 1970-01-01
        • 1970-01-01
        • 2018-12-20
        • 2020-06-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多