Модуль: Работа с таблицами в Pandas


18. Pands_Обработка dataset USER - Серии-20-25

Описание datasets 

Относительным прогрессом будем называть отношение суммарного числа баллов, которые ученик набрал за курс (колонка progress в таблице user_course_progress), к максимальному количеству баллов, которые ученик в принципе мог набрать за данный курс (колонка max_progress в таблице course).

С помощью представленных данных найдите ответ на следующий вопрос: на курсах какого предмета больше всего учеников, чей относительный прогресс не меньше 0.8?

В рамках следующих заданий вам будет предложено, действуя поэтапно, ответить на поставленный вопрос.

№ задания Описание задания
1

Произведите соединение таблиц course и user_course_progress.

В качестве ответа укажите количество строчек итоговой таблицы, в которых представлены ученики курсов по химии.

2

Обратите внимание, что у части курсов нет значения в колонке max_score. Уберите из полученной в предыдущем задании таблицы все строчки, в которых пропущено значение колонки max_score.

В качестве ответа укажите количество строчек в итоговой таблице.

3

Добавьте в полученную в предыдущем задании таблицу колонку relative_progress, в которой для каждого ученика будет храниться значение его относительного прогресса на конкретном курсе.

В качестве ответа укажите среднее значение относительного прогресса  в таблице.
Полученное значение округлите до двух знаков после запятой с помощью функции round, которая встроена в Series и умножьте на 100
(то есть в ответе должно быть целое число).

4

Оставьте в полученной в предыдущем задании таблице только те строчки, в которых значение относительного прогресса не меньше 0.8.

В качестве ответа укажите число строчек в получившейся таблице.

5

Произведите группировку строчек таблицы по предметам и посчитайте, сколько учеников с относительным прогрессом не меньше 0.8 оказалось в каждом из предметов.

В качестве ответа приведите 4 числа (в строчку, через пробел), в которой сопоставлено число таких учеников предметам
Биология, Математика, Физика, Химия.

Если один и тот же ученик учился на разных курсах одного и того же предмета и в каждом из этих курсов достиг относительного прогресса не менее 0.8, при подсчёте учтите его несколько раз.

6 В курсах какого предмета больше всего учеников, достигших относительного прогресса не менее 0.8?
Укажите номер этого предмета
1 - Биологияж           2 - /Математикаж            3 - Физикаж                  4 - Химия
 
Рекомендации к заданию 3
При добавлении новой колонки в таблицу pandas может вывести следующее предупреждение:





Предупреждение не является сообщением об ошибке, то есть ваш код будет работать. Однако предупреждение свидетельствует о том, что вы добавляете колонку в таблицу, которая получена в результате фильтрации другой таблицы. Изменение таблицы, которая получена с помощью фильтрации, не всегда работает оптимально.

Чтобы избежать предупреждения, можно воспользоваться встроенной в pandas функцией copy и предварительно произвести копирование таблицы, в которую вы добавляете новую колонку:

data = pd.DataFrame({'col': [5, 3, 4], 'other_col': [3, 2, 1]})
a = data[data['col'] > 3]

a['new_col'] = [1, 2]  # приведёт к появлению предупреждения

b = a.copy(deep=True)  # аргумент deep показывает, что мы хотим
                       # произвести полное копирование данных
b['new_col'] = [1, 2]  # не повлечёт возникновения предупреждения

Ваш ответ Для проверки решения задачи необходимо зарегистрироваться или авторизоваться!

Скрыть/Показать редактор кода (Python) time 10000 ms
  

Выберите правильный ответ, либо введите его в поле ввода

Комментарий учителя