我有一个多次出现特定值的 Pandas 数据框。我想删除所有重复的值或替换为 NaN,最后获取具有任意数量的唯一值的列的名称。 Pandas drop_duplicates 函数仅删除具有重复值的行,但我想删除数据框中的值/单元格。有解决办法吗?
根据下面的输入数据框,除了“02”列的第一行之外的所有值在数据框中重复出现,所以“02”列就是我想要的。如果问题不清楚,请告诉我。谢谢。
DF: 02 03:10 03:02 03:02:09 0 6716 45355 45355 45355 1 4047 4047 7411 7411 2 945 2478 2478 945
预期输出: col_with_unique_val = "02"
或
Expected output DF:
02 03:10 03:02 03:02:09
0 6716 NaN NaN NaN
1 NaN NaN NaN NaN
2 NaN NaN NaN NaN
或
Expected output DF:
02
0 6716
请您参考如下方法:
这是一种方式
df.mask(df.apply(pd.Series.duplicated,keep=False,axis=1))
02 03:10 03:02 03:02:09
0 6716.0 NaN NaN NaN
1 NaN NaN NaN NaN
2 NaN NaN NaN NaN
df.mask(df.apply(pd.Series.duplicated,keep=False,axis=1)).stack().index.get_level_values(1)
Index(['02'], dtype='object')
