You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Pandas中所有值均唯一的列(含缺失值场景)

筛选DataFrame中所有值唯一的列

针对含NaN的场景,分两种常见需求给出解决方案:

需求1:列中所有元素(包括NaN)均唯一

如果要求整个列里没有任何重复元素(多个NaN也视为重复),你原来的代码其实已经可以直接处理这种情况:

df.columns[df.nunique(dropna=False) == len(df)]

原理:nunique(dropna=False)会把所有NaN算作同一个独特值,若列中有多个NaN,该列的nunique值会小于行数,自然会被筛选掉。比如某列有2个NaN和3个唯一非NaN值,nunique结果是4,而行数是5,4≠5,因此不会被选中。

需求2:列中非NaN值均唯一,NaN可重复出现

如果允许NaN多次出现,但要求所有非NaN值必须唯一,可以用以下代码:

df.columns[df.apply(lambda col: col.dropna().nunique() == col.dropna().size)]

原理:对每一列先剔除NaN值,再检查剩余元素的唯一值数量是否等于剩余元素的总数量,以此判断非NaN值是否全部唯一。

内容的提问来源于stack exchange,提问作者AndreyF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 15:06:29