如何获取pandas DataFrame执行value_counts()后返回的每个独立统计值
解决方案
你可以直接遍历value_counts()返回的多级索引Series对象,直接获取每一组的取值和对应统计量,不需要嵌套循环遍历唯一值,实现方式更简洁效率也更高。
批量统计所有列的实现代码
for col in edu_data[class_haric].columns: # 直接对当前列+Class列做值计数 count_res = edu_data[[col, "Class"]].value_counts() # 遍历每条结果输出 for (col_val, class_val), count_num in count_res.items(): print(f"{col_val} -> {count_num}") # 不同列的输出之间加空行分隔 print()
单个列统计的实现代码(以gender列筛选男性为例)
count_res = edu_data.loc[edu_data.gender == 'M', ["gender", "Class"]].value_counts() for (gender_val, class_val), count_num in count_res.items(): print(f"{gender_val} -> {count_num}")
原理说明
pandas.DataFrame.value_counts()返回的结果本质是一个Series对象,它的索引是由你传入的统计列的取值组合成的元组,值就是对应组合的出现次数,直接遍历这个Series的键值对就能拿到所有你需要的统计结果。
内容的提问来源于stack exchange,提问作者Tugrul Gokce
相关产品推荐
相关产品推荐

