如何处理MultiIndex统计至少有1个班学生数超45的学校数量
实现方案(基于Python pandas)
方法1:筛选后去重统计(执行效率更高)
直接筛选出所有班级人数超45的记录,提取对应学校编码去重后统计数量即可,代码如下:res = df[df['MRUN'] > 45]['RBD'].nunique()
方法2:分组聚合判断(逻辑更直观)
按学校编码分组后,逐个判断每个学校是否存在超员班级,最后统计符合条件的学校总数:
# 按学校分组,判断每个学校是否有至少1个班级人数超45 school_over_flag = df.groupby('RBD')['MRUN'].apply(lambda x: (x > 45).any()) # 统计结果为True的数量,即为所求 res = school_over_flag.sum()
注意事项
如果你的
MRUN字段是字符串格式,需要先转换为数值类型再执行上述操作:df['MRUN'] = df['MRUN'].astype(int)
内容的提问来源于stack exchange,提问作者maxi villalobos
相关产品推荐
相关产品推荐

