【问题标题】:Duplicated() function as boolean indexing generates different result compares with drop_duplicates与 drop_duplicates 相比,作为布尔索引的 Duplicated() 函数生成不同的结果
【发布时间】:2019-05-28 07:12:05
【问题描述】:

数据框如下所示:

df = pd.DataFrame({'k1':['one']*3 + ['two']*4,'k2':[1,1,2,3,3,4,4]})

当我检查重复项时,我通过做得到布尔索引 df.duplicated(),然后我用它作为过滤器 df[df.duplicated()]df.drop_duplicates() 相比显示不同的结果

在结果中创建了一个额外的行

2 one 2

【问题讨论】:

    标签: python pandas transform


    【解决方案1】:

    drop_duplicate 将删除所有重复的行。 duplicated 将返回 False 为第一项和 True 为另一行重复时,它有重复,所以它们是不同的问题的不同功能目标。

    df.duplicated()
    0    False
    1     True
    2    False
    3    False
    4     True
    5    False
    6     True
    dtype: bool
    
    df.drop_duplicates()
        k1  k2
    0  one   1
    2  one   2
    3  two   3
    5  two   4
    

    如何使输出相同?

    检查唯一值

    df[~df.duplicated(keep=False)]
        k1  k2
    2  one   2
    
    df.drop_duplicates(keep=False)
        k1  k2
    2  one   2
    

    【讨论】:

      猜你喜欢
      • 2015-09-14
      • 1970-01-01
      • 2018-03-27
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多