Выбор ответа Senior Даты и время обновлено

Номер месяца жизни для когорт

Вопрос

Как надёжнее всего посчитать номер месяца жизни: события в ts, месяц первого события пользователя в first_ts?

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

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

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

Коротко

Правильный ответ: Разность периодов toperiod("M") у ts и firstts, её .n. Календарная разность месяцев это разность периодов M: событие 31 января и 1 февраля дадут 0 и 1, как и должно быть в когортном анализе.

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

  1. (ts - first_ts).dt.days // 30, целочисленное деление дней
  2. Разность периодов to_period("M") у ts и first_ts, её .nправильный ответ
  3. ts.dt.month - first_ts.dt.month по номерам месяцев
  4. (ts - first_ts).dt.days / 30.44 с округлением вниз

Разбор

Календарная разность месяцев это разность периодов M: событие 31 января и 1 февраля дадут 0 и 1, как и должно быть в когортном анализе. Деление дней на 30 сдвигает границы месяцев. Разность month ломается на смене года (январь минус декабрь даст -11). Деление на 30.44 тоже считает по дням, а не по календарным месяцам.

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

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

Термины по теме