Combinar meses en trimestres
Ya vimos qué hacer cuando queríamos dividir trimestres en meses para obtener información mensual más detallada. Pero ¿qué ocurre cuando pasa lo contrario y queremos agrupar datos en menos columnas? Esto es típico al trabajar con datos históricos, cuando los detalles mensuales pueden no ser necesarios, o cuando necesitamos una versión muy consolidada de los datos para un informe.
La clave aquí es crear un índice y sumar al total del trimestre quarter solo en ciclos de 3, o hasta la longitud de la lista. Podemos hacerlo con el siguiente código:
if index % 3 == 0 or index == len(months):
Este código comprueba si el índice dividido entre tres da un resto de 0, o si el índice está al final de la lista months. Así, en un bucle, ejecutará el código indicado cada tres meses o cuando llegue al final de la lista.
Las ventas mensuales ya están disponibles en el código como months, que contiene las ventas de los dos primeros trimestres y el primer mes de Q3. Tu tarea es generar una nueva lista llamada quarters que contenga los totales trimestrales a partir de los tres primeros meses (lo que incluye el total parcial de Q3).
Este ejercicio forma parte del curso
Financial Forecasting in Python
Instrucciones del ejercicio
Inicializa una lista vacía
quarterspara contener los nuevos valores trimestrales y una variable de índiceindexcon valor1.Crea un bucle for para obtener las
salesmensuales enmonths:- Suma las ventas mensuales a
quarter. - Si es el final del trimestre o el final de la lista
months, añade tu total trimestral aquarters. - Restablece el total trimestral
quartera 0, e incrementa el índice en 1 (esto ya está hecho por ti).
- Suma las ventas mensuales a
Imprime los totales trimestrales.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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], ____, ____))