Код Middle Окна и сдвиги спрашивают часто обновлено
Скользящее среднее за 7 дней с пропусками дат
Условие
Дан список [date, revenue] (даты YYYY-MM-DD, без повторов, порядок любой). Дни без продаж в списке отсутствуют и считаются нулём. Для каждого календарного дня от первой до последней даты верните скользящее среднее за 7 дней, включая текущий (в начале ряда среднее по имеющимся дням), round(..., 2). Результат: словарь {date: value}.
Примеры
moving_avg_7d([["2026-01-01", 7], ["2026-01-02", 7], ["2026-01-04", 14]]) // {"2026-01-01":7,"2026-01-02":7,"2026-01-03":4.67,"2026-01-04":7}
moving_avg_7d([["2026-05-01", 3]]) // {"2026-05-01":3}
moving_avg_7d([["2026-01-01", 1], ["2026-01-09", 9]]) // {"2026-01-01":1,"2026-01-02":0.5,"2026-01-03":0.33,"2026-01-04":0.25,"2026-01-05":0.2,"2026-01-06":0.17,"2026-01-07":0.14,"2026-01-08":0,"2026-01-09":1.29}
Как подойти
Подсказки: 2
- Сначала достройте календарь:
asfreq("D", fill_value=0). rolling(7, min_periods=1).mean()
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.