• 全部
  • 互动交流
  • 文章分享

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

spiritgs 2021-01-06 04:34:04
请教:
数据形式

我想要统计各班各学科名次在前150名的人数,请问如何解决?
...全文
253 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bryce__LY 01-07
先筛选出来各班在前150名的 ,比如统计1班语文的人数 df1=df[(df["班级"]==1)&(df["语文名次"]<=150)] count = len(df1)
回复
spiritgs 01-07
# 创建列表,为提取前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名的学生进行班级人数统计。
回复
相关推荐
发帖
脚本语言
创建于2007-08-27

3.7w+

社区成员

JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
申请成为版主
帖子事件
创建了帖子
2021-01-06 04:34
社区公告

CSDN 脚本语言社区接受专栏投稿(专栏会在顶部创建专属你的栏目),投稿需满足以下要求:

  • 脚本语言技术相关;
  • 文章持续更新,保持活跃;
  • 内容清晰明了,干货为主;
  • 文章排版有序,有条有理。

本社区开通招聘专栏,发布招聘信息请联系版主,发布者需要保证招聘信息真实有效,CSDN 平台和版主不对招聘内容负责!

联系方式:私聊版主、发送邮件、QQ联系等均可: