Slå ihop månader till kvartal
Vi har sett hur man delar upp kvartal i månader för mer detaljerad månadsdata. Men vad händer när det omvända gäller och vi vill slå ihop data till färre kolumner? Det är vanligt när man arbetar med historiska data, där månadsdetaljer kanske inte behövs, eller när en mer komprimerad version av datan krävs för en rapport.
Nyckeln här är att skapa ett index och sedan bara lägga till kvartalstotalen quarter i cykler om 3, eller tills listan är slut. Det kan vi göra med följande kod:
if index % 3 == 0 or index == len(months):
Den här koden kontrollerar om indexet dividerat med tre ger resten 0, eller om indexet är i slutet av listan months. I en loop körs därmed den angivna koden var tredje månad eller när slutet av listan nås.
Månadssiffrorna finns redan i koden som months, och innehåller försäljningen för de två första kvartalen samt den första månaden av Q3. Din uppgift är att generera en ny lista med namnet quarters som innehåller kvartalstotalerna för de första tre kvartalen (inklusive delsumman för Q3).
Den här övningen är en del av kursen
Finansiell prognosmodellering i Python
Övningsinstruktioner
Initiera en tom lista
quartersför de nya kvartalsvärden, samt en indexvariabelindexsatt till1.Skapa en for-loop för att hitta den månatliga
salesimonths:- Lägg till månadsförsäljningen i
quarter. - Om det är slutet på kvartalet eller slutet på listan
months, lägg till kvartalstotalen iquarters. - Återställ kvartalstotalen
quartertill 0 och öka indexet med 1 (det här har redan gjorts åt dig).
- Lägg till månadsförsäljningen i
Skriv ut kvartalstotalerna.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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], ____, ____))