Выбор ответа Senior pivot, melt и сводные обновлено

Когортная таблица retention

Вопрос

Есть таблица cohorts: строки это месяц когорты, колонки это номер месяца жизни 0, 1, 2..., значения это число активных. Как получить retention в долях от размера когорты?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: cohorts.div(cohorts[0], axis=0). Нужно разделить каждую строку на её значение в нулевом месяце: div(..., axis=0) выравнивает делитель по индексу строк.

Варианты ответа

  1. cohorts / cohorts[0] поэлементно
  2. cohorts / cohorts.sum(axis=0)
  3. cohorts.div(cohorts[0], axis=0)правильный ответ
  4. cohorts.pct_change(axis=1).fillna(1)

Разбор

Нужно разделить каждую строку на её значение в нулевом месяце: div(..., axis=0) выравнивает делитель по индексу строк. Обычное / с Series выравнивает её по колонкам и даст NaN почти везде. Деление на sum() даст долю от суммы по колонке, а pct_change относительное изменение к предыдущему месяцу, а не к старту.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.