pandas根据列数据的值范围计数

2021-01-07 11:15发布

[图]请教:数据形式我想要统计各班各学科名次在前150名的人数,请问如何解决?

请教:
数据形式

我想要统计各班各学科名次在前150名的人数,请问如何解决?

8条回答
爱煲汤的小王
2021-01-08 09:42

# 创建列表,为提取前3后2人数用
f3_and_e2 = df.columns[3::2]
# 前3计数并创建列
for i in f3_and_e2:
    if i != '总分名次':
        df_all_f3 = df[df[i] <= 148]
        df_average['%s前3' % i] = df_all_f3.groupby('班级')[i].count()

思路:
1、创建需要提取的列标签名
2、for循环,依次筛选列数据(名次)≤148名的数据
3、用groupby对班级进行分组,并用count计数

以此达到分班级统计范围内的学生人数。

案例中是对各科成绩在前148名的学生进行班级人数统计。

一周热门 更多>