微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 删除pandas dataframe行中的重复值

我有一个熊猫数据框:

>>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()方法之前将其删除.我想在每一行中保留唯一值.

解决方法:

使用astype(bool)和重复的组合

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     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐