С помощью pandas и seaborn постройте тепловую карту, по оси X которой будут отложены сгруппированные значения характеристики avg_session_time, а по оси Y — сгруппированные значения характеристики age. В ячейках тепловой карты должно храниться количество учеников, попавших в пересечение соответствующих групп.
Группы по характеристике avg_session_time предполагаются следующие:
- Значения из диапазона [0; 10].
- Значения из диапазона (10; 40].
- Значения из диапазона (40; +∞).
Группы по характеристике age предполагаются следующие:
- Значения из диапазона [0; 20].
- Значения из диапазона (20; 35].
- Значения из диапазона (35; +∞).
Рекомендации по решению
В pandas есть функция cut, которая позволяет создать новую колонку, полученную в результате разбиения заданной колонки на некоторые диапазоны значений.
Ниже приведён пример кода, который создаст в таблице user_data колонку age_bin. В колонке для каждого пользователя хранится информация о том, к какой возрастной группе из перечисленных выше он относится:
user_data['age_bin'] = (pd.cut(
# Колонка, значения в которой необходимо разбить на диапазоны.
user_data['age'],
# Задание диапазонов. Запись [a, b, c] соответствует диапазонам (a; b], (b; c].
[0, 20, 35, float('inf')],
# Флаг, который означает, что в первый диапазон будет включена левая граница.
include_lowest=True,
# Названия диапазонов в том виде, в котором они будут записаны в новую колонку.
labels=['0–20', '20–35', '> 35'])
# Приведение названий диапазонов к строковому виду.
.astype('str'))