Вот что мне нужно сделать:
- Создать новый столбец в df под названием «Окончательный счет»
- Это будет содержать комбинированный балл студента от всех заданий и экзаменов
- Используйте это правило: каждое задание стоит 20% от оценки, каждый экзамен стоит 30%
Я пытался преобразовать строку оценки присваивания в int, но продолжает говорить, что не может быть преобразован. У меня возникла проблема с умножением заданий и экзаменационных оценок. Ошибка: не могу умножить строку и int
Оригинальный df выглядит так:
"""
Student ID Assignment Name Score
abcd1234 assignment 1 76.52
efgh5678 exam 1 67.22
abcd1234 assignment 2 88.46
...
etc.
"""
Я сопоставил аналогичные значения и развернул:
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.
"""
Кроме того, я заблудился о том, как продолжать делать следующее:
- Создать новый столбец в df под названием «Окончательный счет»
- Это будет содержать комбинированный балл студента от всех заданий и экзаменов
- Используйте это правило: каждое задание стоит 20% оценки, каждый экзамен стоит 30%
Мне нужно, чтобы мои окончательные данные выглядели так:
"""
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.
"""
Спасибо