pandas处理实例 - 作业成绩汇总

要求:

data文件夹中存放着某班7次作业成绩,请将7次作业的总分汇总到一个excel文件中,汇总后的excel文件包括学号、姓名、各章作业成绩、总分、平均名和排名,并按学号升序排序,如下图所示。
在这里插入图片描述
7个文件名分别是:
在这里插入图片描述

代码实现:

import pandas as pd

file_paths = [f'{
      
      i}.xlsx' for i in range(1, 8)]
result = pd.DataFrame()
for i, file_path in enumerate(file_paths):
    title = pd.read_excel(file_path, nrows=0).columns[0]
    df = pd.read_excel(file_path, skiprows=2)
    if i in {
    
    6, 7}:
        df['总分'] = df[['单选', '判断', '填空']].sum(axis=1)
    else:
        df['总分'] = df[['单选', '多选', '判断', '填空']].sum(axis=1)
    df = df[['学号', '姓名', '总分']].rename(columns={
    
    '总分': title})
    if result.empty:
        result = df
    else:
        result = pd.merge(result, df, on=['学号', '姓名'], how='outer')
result['总分'] = result.filter(regex='成绩表').sum(axis=1)
result['平均分'] = result['总分'] / 7
result = result.sort_values('总分', ascending=False)
result['排名'] = range(1, len(result) + 1)
result = result.sort_values('学号')
result.to_excel('555.xlsx', index=False)

猜你喜欢

转载自blog.csdn.net/weixin_44893902/article/details/131574121