Код Junior Окна и сдвиги спрашивают часто обновлено
Дней с предыдущего заказа клиента
Условие
Дан список заказов [order_id, user, ts], ts строка YYYY-MM-DD, порядок произвольный. Для каждого заказа посчитайте, сколько дней прошло с предыдущего заказа того же клиента (по времени; при одинаковой дате раньше идёт меньший order_id). Верните [[order_id, days], ...], отсортированный по order_id; для первого заказа клиента days = None.
Примеры
days_since_prev([[1, "a", "2026-01-01"], [2, "b", "2026-01-03"], [3, "a", "2026-01-10"], [4, "b", "2026-01-04"]]) // [[1, null], [2, null], [3, 9], [4, 1]]
days_since_prev([[1, "a", "2026-03-05"]]) // [[1, null]]
days_since_prev([[3, "x", "2026-02-10"], [2, "x", "2026-02-01"], [1, "x", "2026-01-31"]]) // [[1, null], [2, 1], [3, 9]]
Как подойти
Подсказки: 2
groupby("user")["ts"].diff()- Не забудьте
pd.to_datetimeи сортировку.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.