如何在Pandas中获取布尔类型数据列的.describe()统计结果
解决Pandas中布尔类型列的汇总统计问题
这个问题我之前也踩过坑,确实pandas的describe()默认行为有点反直觉——它默认只统计int、float这类数值型列,指定include=['O']又只针对对象(字符串)列,布尔列就这么被夹在中间漏掉了。给你几个实用的解决方案:
直接指定统计布尔类型
最简单的方式就是在describe()里明确指定要包含布尔类型:df.describe(include=['bool'])这样会生成所有布尔列的专属统计信息:包括计数(count)、唯一值数量(unique)、出现频率最高的布尔值(top)、对应的出现次数(freq),还有很实用的
mean值——这个其实是True值在列中的占比(因为pandas会把True当作1、False当作0来计算均值)。先筛选布尔列再统计
如果需要对布尔列做更灵活的处理(比如排除某几列),可以先把数据框里的布尔列单独挑出来,再调用统计:# 筛选所有布尔类型列 bool_columns = df.select_dtypes(include='bool') # 生成统计信息 bool_columns.describe()一次性查看所有类型列的统计
要是你想同时看到数值型、对象型和布尔型列的统计结果,可以用include='all':df.describe(include='all')不过这种方式会把所有类型的统计混在一起,非对应类型的列会显示NaN,适合需要整体概览数据的时候用。
小提示:如果你的“布尔列”实际是object类型(比如存的是字符串'True'/'False'),记得先转换成真正的布尔类型再用上面的方法,比如:
df['your_column'] = df['your_column'].astype(bool)
内容的提问来源于stack exchange,提问作者aghd
相关产品推荐
相关产品推荐

