Pandas多列筛选后统计Yes数量异常,返回布尔值而非目标计数
统计符合条件的"Yes"数量
你的代码生成的是布尔类型的掩码(每行对应是否满足条件),要得到具体计数,只需要对这个掩码求和即可——布尔值中True等价于1,False等价于0,求和结果就是符合条件的行数。
修改后的代码:
answers = ['Yes'] # 生成判断条件的布尔掩码 mask = (df['Are you okay?'] == 'No') & (df['Are yu sad?'].isin(answers)) # 统计符合条件的数量 yes_count = mask.sum() # 输出目标格式的结果 print(f"Yes {yes_count}")
说明
mask是布尔类型的Series,记录每一行是否同时满足两个条件:「Are you okay?」列值为"No",且「Are yu sad?」列值为"Yes"- 调用
.sum()方法对布尔Series求和,直接得到符合条件的记录总数 - 最后用格式化字符串输出「Yes 数字」的格式,方便后续用于生成饼图
注意:列名「Are yu sad?」疑似拼写错误(应为Are you sad?),如果实际数据中的列名是正确拼写,可忽略此提示;若为笔误,需修正列名才能正确匹配数据。
内容的提问来源于stack exchange,提问作者user16239103
相关产品推荐
相关产品推荐

