Python Pandas去重 - 保留行

3

我想要根据单个列来删除特定列的重复值,同时保留行中的其他内容。

df = pd.DataFrame({'A':[1,2,3,4],'B':[5,5,6,7],'C':['a','a','b',c'], D:['c','d','e','f']})

我希望能够删除列C中的重复值所对应的A和B列中的数值,但是保留所有的D列数值。
预期输出结果:
A B C D
1 5 a c
      d
3 6 b e
4 7 c f
1个回答

5
使用简单的loc
df.loc[df.C.duplicated(), ['A', 'B']] = ''

    A   B   C   D
0   1   5   a   c
1           a   d
2   3   6   b   e
3   4   7   c   f

也可以使用np.nan代替空字符串,以免影响数据类型。


1
没错,在这里使用 np.nan 是更好的选择。 - anky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接