删除一行熊猫数据框中的重复值
问题内容:
我有一个熊猫数据框:
>>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)
和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