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

Python(含Pandas)如何统计数据集多列的唯一值数量

统计Pandas DataFrame所有列的唯一值数量

嘿,我懂你想一次性搞定DataFrame里所有列的唯一值统计需求,其实不用绕弯路,Pandas本身就有很直接的方法,咱们来拆解一下:

方法1:直接调用DataFrame的nunique()方法(最简便)

这是最高效的方式,因为Pandas的DataFrame对象原生支持nunique(),调用后会直接返回一个Series,索引是列名,值就是对应列的唯一值数量:

# 对整个DataFrame执行唯一值统计
unique_value_counts = DF.nunique()
print(unique_value_counts)

输出示例(假设你的DF有var1、var2、var3三列):

var1    5
var2    10
var3    3
dtype: int64

如果你想要和你之前单列输出完全一致的格式(比如Number of unique values in Var1= X),可以结合循环遍历列名:

# 遍历所有列,格式化输出
for column_name in DF.columns:
    print(f"Number of unique values in {column_name} = {DF[column_name].nunique()}")

方法2:使用apply函数(兼容自定义逻辑)

如果你偏好使用apply,其实也能实现,只要对每一列应用pd.Series.nunique即可:

# 用apply对每列执行nunique统计
unique_value_counts = DF.apply(pd.Series.nunique)
print(unique_value_counts)

不过要注意:直接调用DF.nunique()比apply更高效,因为前者是Pandas内部优化的向量化操作,而apply本质是循环执行函数,数据量大的时候差异会更明显。

小提示:包含缺失值的统计

默认情况下nunique()会忽略缺失值(dropna=True),如果你想把NaN也当作一个唯一值统计,只需要设置参数dropna=False:

# 统计包含缺失值的唯一值数量
unique_value_counts_with_na = DF.nunique(dropna=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:37:13