Добавить в корзинуПозвонить
Найти в Дзене

День180. Основы анализа данных и Python. Финальный проект.

Изучение данных Задача 1 Серёга передал вам данные о работе службы поддержки. Изучите их — откройте датасет support_data.csv и выведите его на экран. Задача 2 Когда вы работаете с достаточно большим объёмом информации, поверхностного знакомства с данными недостаточно — важно подробно изучить значения в каждом столбце. Это помогает выявить проблемы в данных, а также подготовиться к дальнейшему анализу. Для начала выясните, данные за какие периоды есть в датасете. Для этого выведите на экран список уникальных значений столбца interval. Задача 3 Оценить изменения показателей после внедрения роботов можно только в том случае, если данные распределены более или менее равномерно: если из всех 32 тысяч значений на период «после» приходится всего 100, сделанные выводы нельзя будет считать корректными. Узнайте, сколько строк приходится на каждый период — посчитайте количество значений 'До внедрения роботов' и 'После внедрения роботов' с помощью метода value_counts() и сохраните результат в пере

Изучение данных

Задача 1

Серёга передал вам данные о работе службы поддержки. Изучите их — откройте датасет support_data.csv и выведите его на экран.

-2

Задача 2

Когда вы работаете с достаточно большим объёмом информации, поверхностного знакомства с данными недостаточно — важно подробно изучить значения в каждом столбце. Это помогает выявить проблемы в данных, а также подготовиться к дальнейшему анализу. Для начала выясните, данные за какие периоды есть в датасете. Для этого выведите на экран список уникальных значений столбца interval.

-3

Задача 3

Оценить изменения показателей после внедрения роботов можно только в том случае, если данные распределены более или менее равномерно: если из всех 32 тысяч значений на период «после» приходится всего 100, сделанные выводы нельзя будет считать корректными.

Узнайте, сколько строк приходится на каждый период — посчитайте количество значений 'До внедрения роботов' и 'После внедрения роботов' с помощью метода value_counts() и сохраните результат в переменной interval_count.

-4

Задача 4

Выясните, какие уникальные значения встречаются в столбце segment. Код для вывода списка значений уже написан.

-5

Оценим соотношение значений в датасете по сегментам пользователей. Для этого нужно посчитать строки, которые относятся к каждому сегменту: 'Segment 0', 'Segment 1', 'Segment 2'. Сгруппируем значения по сегментам (один сегмент — одна группа) и в сгруппированных данных выберем столбец с номерами покупателей (customer_id). Затем вызовем метод count(), который посчитает строки в каждой группе.

-6

Сегментация пользователей

Задание 1

Посчитайте общее количество робокотов в каждом сегменте и выведите полученные значения на экран на разных строках по порядку: нулевой сегмент, первый, второй.

Чтобы посчитать робокотов в разных сегментах, последовательно примените несколько инструментов в одной строчке кода:

  • сгруппируйте данные по столбцу со значениями сегментов;
  • выберите столбец с количеством робокотов — значения в нём вы и будете считать;
  • примените метод для расчёта суммы.
-7

Задание 2

Чтобы найти средние показатели, в каждом сегменте разделите количество робокотов на количество обращений. Робокотов вы уже посчитали. Осталось посчитать обращения. Действия похожи: группировка, выбор столбца, подсчёт количества. Только на этот раз выберите столбец segment, а не robocats.

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

-8

Задание 3

В списке names перечислены названия сегментов через запятую: 'Segment 0', 'Segment 1', 'Segment 2'. Вызовите функцию barplot(), передав ей столбец со средними показателями (segment_means) как x и список с названиями сегментов (names) как y.

-9

Роботы и люди: сравнение

-10

Вот за что отвечают новые параметры в скобках heatmap():

  • xticklabels=intervals — для подписей на оси X взять значения из intervals;
  • yticklabels=segments_new — для подписей на оси Y взять значения из segments_new;
  • annot=True — добавить на график аннотации, то есть отображать не только цвета «ячеек» хитмэпа, но также их значения;
  • cmap='RdYlGn' — цветовая схема для числовой шкалы, в варианте 'RdYlGn' красный соответствует минимальным значениям, а зелёный — максимальным.

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

  • сгруппируйте данные по столбцам segment и interval: data.groupby(['segment', 'interval']);
  • выберите столбец score — значения в нём вы будете считать;
  • примените метод sum(), чтобы сложить значения по группам.

Посчитать оценки в группах можно похожим образом. Подумайте, какой метод нужно применить вместо sum().

Задача 1

Найдите сумму и количество оценок по группам. Воспользуйтесь алгоритмом выше. Затем посчитайте среднее: поделите сумму оценок на их количество.

-11

Задача 2

Задача аналогична предыдущей, только вместо столбца score нужно обращаться к столбцу duration.

-12

Теперь построим тепловую карту по длительности ответов.

-13

Задача 3

Найдите количество промокодов и обращений. Чтобы посчитать промокоды, найдите сумму столбца 'promo'. В этом столбце записаны только 1 и 0, поэтому сумма даст количество промокодов. Затем посчитайте среднее количество выданных промокодов.

-14

Задача 4

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

  • найдите уникальные значения оценок из столбца score;
  • посчитайте среднее количество промокодов для каждой оценки.

Учитывайте только данные «до внедрения роботов» — на них роботы обучались. Чтобы построить график, отложите по оси X все возможные значения оценок из переменной scores, а по оси Y — среднее количество промокодов для каждой оценки.

-15