Skip to main content
 首页 » 编程设计

python之如何删除所有重复出现或在 Pandas 数据框中获取唯一值

2025年05月04日21dyllove98

我有一个多次出现特定值的 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')