读取小红小明成绩,将表格数据中的小明改成自己的名字,如:刘凯旋。 (1)已知平时成绩取20%,作业成绩取20%,考试成绩取60%。计算折算后的成绩:折分。添加“折分”列。 当apply中axis=1时,数据框是取的横向序列。所以可以根据某列的判断,处理另外一列。 (2)计算分数等级,添加“等级”列;0-59不及格,60-69差,70-79中,80-89良,90-100优。打印表。 (3)使用数据透视图,要求学号和类型为索引,子列名(columns)是小红和刘凯旋(自己的名字),聚合函数使用求和,显示汇总栏。
时间: 2024-02-16 09:00:34 浏览: 118
好的,下面是你需要的代码:
```python
import pandas as pd
# 读取 CSV 文件
df = pd.read_csv('成绩表格.csv')
# 将小明改成自己的名字
df['姓名'] = df['姓名'].replace('小明', '刘凯旋')
# 计算折分
df['折分'] = df.apply(lambda x: x['平时成绩'] * 0.2 + x['作业成绩'] * 0.2 + x['考试成绩'] * 0.6, axis=1)
# 计算等级
def get_grade(score):
if score < 60:
return '不及格'
elif score < 70:
return '差'
elif score < 80:
return '中'
elif score < 90:
return '良'
else:
return '优'
df['等级'] = df['折分'].apply(get_grade)
# 使用数据透视表
pivot_table = pd.pivot_table(df, index=['学号', '类型'], columns='姓名', values='折分', aggfunc='sum', margins=True)
# 打印表
print(pivot_table)
```
代码中,首先读取 CSV 文件,并将小明改成自己的名字。然后,使用 `apply` 方法计算折分和等级。计算折分时,使用 `apply` 方法和匿名函数对每一行进行计算;计算等级时,使用 `apply` 方法和自定义函数对每一个折分进行计算。最后,使用 `pd.pivot_table` 方法生成数据透视表,并打印出来。
希望这个代码能够帮到你。如果你有其他问题,欢迎随时提出。
阅读全文