Выбор ответа Senior Даты и время обновлено
Номер месяца жизни для когорт
Вопрос
Как надёжнее всего посчитать номер месяца жизни: события в ts, месяц первого события пользователя в first_ts?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Разность периодов toperiod("M") у ts и firstts, её .n. Календарная разность месяцев это разность периодов M: событие 31 января и 1 февраля дадут 0 и 1, как и должно быть в когортном анализе.
Варианты ответа
(ts - first_ts).dt.days // 30, целочисленное деление дней- Разность периодов
to_period("M")уtsиfirst_ts, её.nправильный ответ ts.dt.month - first_ts.dt.monthпо номерам месяцев(ts - first_ts).dt.days / 30.44с округлением вниз
Разбор
Календарная разность месяцев это разность периодов M: событие 31 января и 1 февраля дадут 0 и 1, как и должно быть в когортном анализе. Деление дней на 30 сдвигает границы месяцев. Разность month ломается на смене года (январь минус декабрь даст -11). Деление на 30.44 тоже считает по дням, а не по календарным месяцам.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.