用python从一组开卷考的成绩文件中,成绩文件已发至微信群中,统计出每个人成绩最高的三次分数,并将结果保存在一个excel文件中
时间: 2023-11-28 18:47:54 浏览: 167
以下是一个可能的实现方式:
```python
import os
import pandas as pd
# 定义成绩文件所在文件夹路径
folder_path = './scores'
# 获取所有成绩文件的文件名
file_names = os.listdir(folder_path)
# 定义存储所有成绩的DataFrame
all_scores = pd.DataFrame()
# 遍历所有成绩文件,将成绩数据读入all_scores
for file_name in file_names:
file_path = os.path.join(folder_path, file_name)
scores = pd.read_excel(file_path)
all_scores = all_scores.append(scores)
# 按姓名和成绩排序
all_scores = all_scores.sort_values(['姓名', '成绩'], ascending=[True, False])
# 定义存储结果的DataFrame
result = pd.DataFrame(columns=['姓名', '最高分数1', '最高分数2', '最高分数3'])
# 遍历所有姓名,找出每个人的最高三次成绩
for name in all_scores['姓名'].unique():
scores = all_scores[all_scores['姓名'] == name]['成绩'].tolist()
highest_scores = scores[:3]
result = result.append({'姓名': name, '最高分数1': highest_scores[0], '最高分数2': highest_scores[1], '最高分数3': highest_scores[2]}, ignore_index=True)
# 将结果保存为Excel文件
result.to_excel('最高分数.xlsx', index=False)
```
注意,这里假设所有成绩文件都是Excel文件,且成绩文件中包含两列数据:姓名和成绩。如果实际情况有所不同,需要根据实际情况修改代码。
阅读全文