如何在Python中查看DataFrame所有列的唯一值?
获取DataFrame所有列的唯一值方法
针对大DataFrame批量获取各列唯一值,有几种实用方法:
直接批量获取所有列唯一值
用apply()方法结合pd.unique(),一行代码就能返回各列的唯一值集合:import pandas as pd unique_values = df.apply(pd.unique)结果是一个Series,索引为原DataFrame的列名,每个元素对应该列的唯一值数组。如果需要转为字典格式方便查看,可追加
.to_dict():unique_values_dict = df.apply(pd.unique).to_dict()先筛选再查看(适合超大型数据集)
先通过nunique()获取各列唯一值的数量,快速定位需要重点查看的列(比如唯一值数量为1的冗余列,或数量接近行数的高基数列):column_unique_counts = df.nunique()之后再针对感兴趣的列单独用
unique(),比如筛选出唯一值数量在2到10之间的列:target_columns = column_unique_counts[(column_unique_counts >=2) & (column_unique_counts <=10)].index target_unique_values = df[target_columns].apply(pd.unique)这种方式能避免一次性加载所有列的唯一值,节省内存。
获取带频率排序的唯一值
如果想同时看到各唯一值的出现频率,可结合value_counts():unique_values_with_counts = df.apply(lambda x: x.value_counts().reset_index().values.tolist())返回的结果中,每个元素是该列的(值,计数)列表,按计数从高到低排序,能更直观判断列的信息价值。
内容的提问来源于stack exchange,提问作者Floralys
相关产品推荐
相关产品推荐

