IMAU计算机学院综测计算Python实现

大一下学期计算综测时候非常痛苦,所以写了一个针对本校计算机院的综测计算脚本(Python),现在马上毕业了,送给计算机院各位班长团支书

1. 数据预处理

由于无法保证学办发的文件格式的不变,我们做出约定:

  1. 输入文件必须为excel(.xlsx)表格

  2. 主要数据需集中在 Sheet1 工作表内(且该表索引顺序第一)

  3. 首行应直接为列名,比如: 姓名 班级 学号

  4. 用到的列为:班级、姓名、学分、成绩,如果对应列名发生了变化,需要同步更改脚本

2. 脚本

使用该脚本时,将下面使用()占位的部分根据自身情况进行修改

import pandas as pd
​
# file 需要进行操作的表格路径
file = r'(学办发文件路径,准确到文件名.xlsx)'
data = pandas.read_excel(file, sheet_name=0, skiprows=0)
​
# 查找指定班级的所有学生成绩
jk3data = data[data['班级'] == '(这是班级)']
​
# 按姓名分组
group_data = jk3data.groupby(['姓名'])
​
# 定义一个字典
smart_score_dict = dict()
​
# 对表中的成绩进行遍历
for item in group_data:
​
    stuName, each = item
    # 计算总学分
    total_study_score = each['学分'].sum()
    # 定义学上的智育成绩变量
    person_total_study_score = 0
    # 计算智育成绩 成绩*学分/总学分
    for row in each.itertuples():
        person_total_study_score += float(getattr(row, '成绩')) * float(getattr(row, '学分')) / total_study_score
    # 将计算完的成绩存到字典中
    smart_score_dict[stuName] = person_total_study_score
​
# 将字典中的数据遍历一下,准备保存到表格
res_list = []
for key, value in smart_score_dict.items():
    res_list.append({
        "姓名": key,
        "成绩": value
    })
​
# 导出表格
df = pd.DataFrame(res_list)
# 结果输出位置路径
df.to_excel(r"(结果文件路径,准确到文件名.xlsx)")
print(df)

特别感谢:okfang616-CSDN博客

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值