Объединение месяцев в кварталы
Ранее мы рассмотрели, как разбивать кварталы на месяцы для получения детальной информации. Но что делать в обратной ситуации, когда нужно объединить данные в меньшее количество столбцов? Это типично при работе с историческими данными, когда помесячные детали не нужны или требуется максимально сжатое представление для отчёта.
Ключевая идея — создать индекс и прибавлять значения к квартальному итогу quarter циклами по 3 или до конца списка. Для этого используется следующий код:
if index % 3 == 0 or index == len(months):
Этот код проверяет, равен ли остаток от деления индекса на три нулю, или достигнут ли конец списка months. Таким образом, в цикле указанный код будет выполняться каждые три месяца или при достижении конца списка.
Ежемесячные данные о продажах уже заданы в коде в переменной months: она содержит продажи за первые два квартала и первый месяц Q3. Ваша задача — сформировать новый список quarters с квартальными итогами за первые три квартала (включая частичный итог Q3).
Это упражнение является частью курса
Финансовое прогнозирование в Python
Инструкции к упражнению
Инициализируйте пустой список
quartersдля хранения квартальных значений и переменную-индексindex, равную1.Создайте цикл
forдля перебора ежемесячных продажsalesиз спискаmonths:- Прибавьте ежемесячные продажи к
quarter. - Если достигнут конец квартала или конец списка
months, добавьте квартальный итог вquarters. - Сбросьте квартальный итог
quarterдо 0 и увеличьте индекс на 1 (это уже сделано за вас).
- Прибавьте ежемесячные продажи к
Выведите квартальные итоги.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create a months list, as well as an index, and set the quarter to 0
months = [100, 100, 150, 250, 300, 10, 20]
quarter = 0
____ = ____
____ = ____
# Create for loop for quarter, print result, and increment the index
for sales in months:
quarter += ____
if index % ____ == ____ or index == len(____):
____.append(____)
quarter = 0
index = index + 1
print("The quarter totals are Q1: {}, Q2: {}, Q3: {}".format(quarters[0], ____, ____))