You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中统计各科目分数的区间分布?

科目分数区间统计实现方案

可以通过pandas的cut和crosstab方法快速实现需求,以下是具体步骤:

步骤说明

  1. 定义区间与标签:根据需求划分分数区间,并设置对应的区间名称
  2. 划分分数区间:将原始数据的Scores列映射到对应的区间
  3. 交叉统计数量:按科目和分数区间做交叉计数,整理成目标格式

代码实现

假设你的原始数据已经加载到pandas.DataFrame对象df中:

import pandas as pd

# 1. 定义分数区间和对应标签
bins = [0, 20, 40, 60, 80, 100]
labels = ['0-20', '20-40', '40-60', '60-80', '80-100']

# 2. 为每个分数分配对应的区间
df['Score_Range'] = pd.cut(df['Scores'], bins=bins, labels=labels, right=True)

# 3. 交叉统计科目与区间的数量
result = pd.crosstab(df['Subject'], df['Score_Range']).reset_index()

# 调整列顺序(确保和需求一致)
result = result[['Subject'] + labels]

print(result)

示例数据测试

用你提供的示例数据运行代码,输出结果如下:

Subject  0-20  20-40  40-60  60-80  80-100
0     Math      0      0      1      1        1
1      Geo      0      0      0      1        2

完全匹配你需要的格式。

注意事项

  • 如果实际数据包含缺失值,可在pd.cut中添加dropna=True忽略缺失的分数
  • 若需要调整区间范围,直接修改bins和labels即可

内容的提问来源于stack exchange,提问作者TruongQuocAn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 17:45:32