Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Initialiseer een lege lijst quarters voor de nieuwe kwartaalwaarden en een indexvariabele index met waarde 1.

  • Maak een for-lus om de maandelijkse sales in months te doorlopen:

    • Tel de maandverkopen op bij quarter.
    • Als het het einde van het kwartaal of het einde van de lijst months is, voeg je je kwartaaltotaal toe aan quarters.
    • Zet het kwartaaltotaal quarter terug op 0, en verhoog de index met 1 (dit is al voor je gedaan).
  • 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], ____, ____))
Code bewerken en uitvoeren