ZBLOG

import numpy as np import pandas as pd import json courses = json.load(open('courses.json', 'r', encoding='utf-8')) scores = {'优': 90.0, '良': 80.0, '中': 70.0, '及格': 60.0, '不及格': 0.0, '未考': 0.0} def main(): data = pd.read_excel(r'data.xlsx')...

根据你提供的代码,以下是修改后的代码:

import numpy as np
import pandas as pd
import json

courses = json.load(open('courses.json', 'r', encoding='utf-8'))
scores = {'优': 90.0, '良': 80.0, '中': 70.0, '及格': 60.0, '不及格': 0.0, '未考': 0.0}


def main():
    data = pd.read_excel(r'data.xlsx')
    data = data[['学号', '姓名', '课程代码', '课程名称', '行政班', '学分', '总评成绩']]
    data = data.dropna()
    data = data[data['学号'].apply(lambda x: str(x).isnumeric())]
    data['成绩'] = data['总评成绩']
    data['总评成绩'] = data['总评成绩'].apply(lambda val: float(scores[val] if val in scores.keys() else val))
    data['学分'] = data['学分'].apply(lambda val: float(val))
    data = data[data['课程代码'].isin(courses.keys())]
    
    fail = data[data['总评成绩'] < 60].sort_values(by='姓名').reset_index(drop=True)
    
    del fail['总评成绩'], data['成绩']
    
    rank_columns = ['学号', '姓名', '行政班', '排名', '均分'] + list(courses.values())
    rank_data = []
    
    for id_ in data['学号'].unique():
        stu = data[data['学号'] == id_]
        stu['学分加权成绩'] = stu['学分'] * stu['总评成绩']
        score = format(stu['学分加权成绩'].sum() / stu['学分'].sum(), '.4f')
        
        new_stu = [stu.iloc[0]['学号'], stu.iloc[0]['姓名'], stu.iloc[0]['行政班'], score]
        rank_data.append(new_stu)
        
        new_row = dict(stu[['课程名称', '总评成绩']].values)
        new_row.update({'排名': '', '均分': ''})
        rank_data.append(new_row)
    
    rank = pd.DataFrame(rank_data, columns=rank_columns)
    rank = rank.sort_values(by='均分', ascending=False).reset_index(drop=True)
    rank['排名'] = np.arange(1, len(rank) + 1)
    
    rank.to_excel('成绩表.xlsx', index=False, na_rep='未选', freeze_panes=(1, 5))
    fail.to_excel('不及格信息.xlsx', index=False, freeze_panes=(1, 0))
    

if __name__ == '__main__':
    main()

在修改后的代码中,我修正了一些语法错误,并对部分逻辑进行调整。请注意,修改仅根据代码逻辑进行,可能还需要根据实际需求进行进一步调整。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=4850

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?