代码之家  ›  专栏  ›  技术社区  ›  shadowtalker

删除重复行,但保留其数据的并集

  •  2
  • shadowtalker  · 技术社区  · 6 年前

    pd.DataFrame([
        [1, None, 'a'],
        [1, 3.3, None],
        [2, 1.7, 'c']
    ], columns=['unique_id', 'x', 'target'])
    

    我想把其中一排放在 unique_id 1 ,但以他们价值观的结合为例。也就是说,我想制作这个:

    pd.DataFrame([
        [1, 3.3, 'a'],
        [2, 1.7, 'c']
    ], columns=['unique_id', 'x', 'target'])
    

    假设这个数据帧的行数在10k到100k之间,可能有10%是我想消除的重复行。每个只有2或3个副本 唯一id .

    编辑:当两行都有不一致的条目时,在我的情况下,只取第一行就可以了。但我对解决方案持开放态度,例如,两个值都收集在一个列表中。

    2 回复  |  直到 6 年前
        1
  •  4
  •   Rohith    6 年前

    这为您的示例提供了结果。它为每个组中的每个列获取第一个非Nan值。

    df.groupby("unique_id", as_index=False).first()
    
        2
  •  1
  •   Lev Zakharov Riss    6 年前

    使用 groupby first

    df.groupby('unique_id').first()