Python 我如何计算作业成绩(值20%)和考试成绩(值30%),并在新栏中显示为最终成绩? 这就是我需要做的: 在df中创建一个名为“最终分数”的新列 这将包含学生所有作业和考试的综合分数 使用这个规则:每项作业价值20%的分数,每项考试价值30%
我尝试将作业分数字符串转换为int,但一直说不能转换。我在计算作业和考试成绩时遇到了问题。错误:无法将字符串和整数相乘 原始df如下所示: 我映射了类似的值并旋转: 这是打印(透视)数据的外观:Python 我如何计算作业成绩(值20%)和考试成绩(值30%),并在新栏中显示为最终成绩? 这就是我需要做的: 在df中创建一个名为“最终分数”的新列 这将包含学生所有作业和考试的综合分数 使用这个规则:每项作业价值20%的分数,每项考试价值30%,python,pivot,pivot-table,Python,Pivot,Pivot Table,我尝试将作业分数字符串转换为int,但一直说不能转换。我在计算作业和考试成绩时遇到了问题。错误:无法将字符串和整数相乘 原始df如下所示: 我映射了类似的值并旋转: 这是打印(透视)数据的外观: """ Assignment Name Assignment 1 Assignment 2 Exam 1 Exam 2 Student ID abcd1234 76.52 79.23 88.46 87.31
"""
Assignment Name Assignment 1 Assignment 2 Exam 1 Exam 2
Student ID
abcd1234 76.52 79.23 88.46 87.31
...
我需要它看起来像这样:
此外,我还不知道如何继续做以下工作:
mapping = {
'exam 1' : 'Exam 1',
'test 1' : 'Exam 1',
'exam 2' : 'Exam 2',
'test #2' : 'Exam 2',
'assignment 1' : 'Assignment 1',
'homework 1' : 'Assignment 1',
'first assignment' : 'Assignment 1',
'assignment 2' : 'Assignment 2',
'assignment #2' : 'Assignment 2',
'HW 2' : 'Assignment 2',
}
def map_value(value):
return mapping[value] if value in mapping else value
x = lambda value: mapping[value] if value in mapping else value
df.loc[:, 'Assignment Name'] = df['Assignment Name'].apply(x)
pivot = df.pivot(index='Student ID', columns='Assignment Name', values='Score')
print (pivot)
"""
Assignment Name Assignment 1 Assignment 2 Exam 1 Exam 2
Student ID
abcd1234 76.52 79.23 88.46 87.31
...
"""
Student ID Assignment 1 Exam 1 Assignment 2 Exam 2
abcd1234 76.52 79.23 88.46 87.31
efgh5678 86.11 67.22 75.45 77.20
...
etc.
"""
"""
Student ID Assignment 1 Exam 1 Assignment 2 Exam 2 Final Score
abcd1234 76.52 79.23 88.46 87.31 82.96
efgh5678 86.11 67.22 75.45 77.20 75.64
...
etc.
"""