Python中如何将相同id的分数相加并校验课程测试权重总和是否为100
Python 读取CSV实现分数求和与权重校验方案
前置准备
- 依赖
pandas库完成结构化数据处理,安装命令:pip install pandas - 请确认你的CSV包含以下核心字段,若字段命名有差异可在代码中对应替换:
id(学生/条目唯一标识)、score(分数)、course(课程名称)、weight(测试项权重)
实现代码
import pandas as pd # 读取本地CSV文件,替换为你的实际文件路径 df = pd.read_csv("score_data.csv") # 功能1:按id分组求和所有分数 id_total = df.groupby("id", as_index=False)["score"].sum() print("===== 各id总分数 =====") print(id_total) # 功能2:校验指定课程下所有测试项权重之和是否为100 course_weight_total = df.groupby("course", as_index=False)["weight"].sum() print("\n===== 权重校验结果 =====") for _, item in course_weight_total.iterrows(): if item["weight"] != 100: print(f"错误:课程「{item['course']}」权重总和为{item['weight']},不符合100的要求")
补充说明
- 若只需校验某几门指定课程,可在分组前先过滤数据:
df = df[df["course"].isin(["高等数学", "大学物理"])] - 若CSV中存在空值,可提前添加清洗逻辑:
df = df.dropna(subset=["id", "score", "course", "weight"])
内容的提问来源于stack exchange,提问作者sree
相关产品推荐
相关产品推荐

