删除一行熊猫数据框中的重复值

发布于 2021-01-29 16:32:51

我有一个熊猫数据框:

>>df_freq = pd.DataFrame([["Z11", "Z11", "X11"], ["Y11","",""], ["Z11","Z11",""]], columns=list('ABC'))

>>df_freq
    A   B   C
0   Z11 Z11 X11
1   Y11     
2   Z11 Z11

我想确保每一行只有唯一的值。因此,它应该变成这样:删除的值可以替换为零或为空

    A   B   C
0   Z11 0   X11
1   Y11     
2   Z11 0

我的数据框很大,有数百列和数千行。目的是计算该数据帧中的唯一值。我通过使用将数据帧转换为矩阵并应用

>>np.unique(mat.astype(str), return_counts=True)

但是在某些行中会出现相同的值,因此我想在应用np.unique()方法之前将其删除。我想在每一行中保留唯一值。

关注者
0
被浏览
84
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用的组合astype(bool)duplicated

    mask = df_freq.apply(pd.Series.duplicated, 1) & df_freq.astype(bool)
    
    df_freq.mask(mask, 0)
    
         A  B    C
    0  Z11  0  X11
    1  Y11        
    2  Z11  0
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看