根据给出的【统计学类专业成绩单.xlsx(表中列名形同“数学分析(1)必修”)】,用Python完成下列问题: 请添加 2 列,1 列为加权平均成绩,另 1 列为加权平均绩点。加权平均成绩=每科成绩乘以这科的学分再除以总学分。每科的绩点计算方式为:分数在90-100之间,绩点为4.0;分数在86-89之间,绩点为3.7;分数在83-85之间,绩点为3.3;分数在80-82之间,绩点为3.0;分数在76-79之间,绩点为2.7;分数在73-75之间,绩点为2.3;分数在70-72之间,绩点为2.0;分数在66-69之间,绩点为1.7;分数在63-65之间,绩点为1.3,;分数在60-62之间,绩点为1.0;分数小于60,绩点为0。 加权绩点=各科目所得绩点总和除以(科目数*4)
时间: 2024-03-21 20:41:54 浏览: 47
C++操作.xls和.xlsx格式的excel数据表
以下是实现上述功能的Python代码:
```python
import pandas as pd
# 读取Excel文件
df = pd.read_excel('统计学类专业成绩单.xlsx')
# 计算加权平均成绩和加权平均绩点
total_score = 0 # 总成绩
total_gpa = 0 # 总绩点
total_credit = 0 # 总学分
for i in range(len(df)):
score = df.iloc[i]['数学分析(1)必修']
credit = df.iloc[i]['学分']
total_credit += credit
total_score += score * credit
if score >= 90:
gpa = 4.0
elif score >= 86:
gpa = 3.7
elif score >= 83:
gpa = 3.3
elif score >= 80:
gpa = 3.0
elif score >= 76:
gpa = 2.7
elif score >= 73:
gpa = 2.3
elif score >= 70:
gpa = 2.0
elif score >= 66:
gpa = 1.7
elif score >= 63:
gpa = 1.3
elif score >= 60:
gpa = 1.0
else:
gpa = 0
total_gpa += gpa * credit
# 计算加权平均成绩和加权平均绩点并添加到DataFrame中
weighted_average_score = total_score / total_credit
weighted_average_gpa = total_gpa / (len(df) * 4)
df['加权平均成绩'] = weighted_average_score
df['加权平均绩点'] = weighted_average_gpa
# 将DataFrame写入Excel文件
df.to_excel('统计学类专业成绩单_加权平均.xlsx', index=False)
```
该代码会读取名为“统计学类专业成绩单.xlsx”的Excel文件,然后计算加权平均成绩和加权平均绩点,并将这两个新的列添加到DataFrame中。最后,将更新后的DataFrame写入一个新的Excel文件“统计学类专业成绩单_加权平均.xlsx”中。
阅读全文