Maanden samenvoegen tot kwartalen
We hebben gezien wat je moet doen als je kwartalen wilt opsplitsen in maanden voor meer gedetailleerde maandinformatie. Maar wat als het omgekeerde geldt en je gegevens wilt samenvoegen tot minder kolommen? Dit is typisch bij historische gegevens, wanneer maanddetails niet nodig zijn, of wanneer we een sterk geconsolideerde versie van de gegevens voor een rapport nodig hebben.
De truc is om een index te maken en dan alleen toe te voegen aan het kwartaaltotaal quarter in cycli van 3, of tot de lengte van de lijst. Dat kan met de volgende code:
if index % 3 == 0 or index == len(months):
Deze code controleert of het delen van de index door drie een rest van 0 oplevert, of dat de index aan het einde van de lijst months is. In een lus zal de opgegeven code dus elke drie maanden worden uitgevoerd of wanneer het einde van de lijst is bereikt.
De maandverkopen zijn al beschikbaar in de code als months, met de verkopen van de eerste twee kwartalen en de eerste maand van Q3. Jouw taak is om een nieuwe lijst quarters te maken met de kwartaaltotalen van de eerste drie maanden (inclusief het gedeeltelijke totaal van Q3).
Deze oefening maakt deel uit van de cursus
Financiële forecasting in Python
Oefeninstructies
Initialiseer een lege lijst
quartersvoor de nieuwe kwartaalwaarden en een indexvariabeleindexmet waarde1.Maak een for-lus om de maandelijkse
salesinmonthste doorlopen:- Tel de maandverkopen op bij
quarter. - Als het het einde van het kwartaal of het einde van de lijst
monthsis, voeg je je kwartaaltotaal toe aanquarters. - Zet het kwartaaltotaal
quarterterug op 0, en verhoog de index met 1 (dit is al voor je gedaan).
- Tel de maandverkopen op bij
Print de kwartaaltotalen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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], ____, ____))