如何统计DataFrame每列中出现重复的唯一值数量
实现代码
import pandas as pd # 构造原始DataFrame df = pd.DataFrame(data = {'A': [1,2,3,3,2,4,5,3], 'B': [9,6,7,9,2,5,3,3], 'C': [4,4,4,5,9,3,2,1]}) # 统计每列重复出现的唯一值个数,输出为DataFrame res_df = df.apply(lambda col: (col.value_counts() >= 2).sum()).to_frame(name='重复唯一值计数') print(res_df)
逻辑说明
- 对DataFrame逐列调用
value_counts(),得到该列每个值的出现频次 - 筛选出频次≥2(即出现过重复)的值,对符合条件的值计数即为该列的统计结果
- 最后通过
to_frame()将输出的Series转为需求要求的DataFrame格式
输出结果
重复唯一值计数 A 2 B 2 C 1
结果验证:A列重复的唯一值为2、3,共2个;B列重复的唯一值为9、3,共2个;C列重复的唯一值仅为4,共1个,符合需求预期。
内容的提问来源于stack exchange,提问作者Giannis
相关产品推荐
相关产品推荐

