I disse oppgavene skal du jobbe med store datasett og med grafiske framstillinger av slike datasett.
Før du prøver deg på oppgavene, bør du gå gjennom fagstoffsiden som hører til denne artikkelen:
AP-101 Kommandoen transpose()
Når vi jobber med en dataframe i Python, har vi av og til bruk for kommandoen transpose().
a) Hva gjør kommandoen transpose()?
Løsning
Kommandoen transpose() får rader til å bli kolonner, og motsatt.
b) Vi har en dataframe som ser ut som tabellen nedenfor dersom du skriver den ut:
Ski | Sykler | Skøyter | |
---|---|---|---|
2018 | 1 | 2 | 3 |
2019 | 4 | 5 | 6 |
2020 | 7 | 8 | 9 |
Hvordan ser denne dataframen ut dersom du bruker transpose() på den?
Løsning
2018 | 2019 | 2020 | |
---|---|---|---|
Ski | 1 | 4 | 7 |
Sykler | 2 | 5 | 8 |
Skøyter | 3 | 6 | 9 |
c) Gir tabellen i løsningsforslaget til oppgave b) den samme informasjonen som tabellen i oppgaveteksten?
Løsning
Ja, tabellen har det samme innholdet selv om rader har blitt til kolonner og omvendt.
AP-102 Reising
Koronaviruset påvirket nordmenns reisevaner i stor grad. I denne oppgaven skal vi se på hvordan reisevanene våre har endret seg fra perioden like før koronaviruset begynte å spre seg, og fram til i dag.
I fila "Reiser" nedenfor finner du en oversikt over ulike reiser nordmenn har gjennomført mellom juli 2018 og juni 2020. I oppgaven kan du bruke fila vi har lagt ut, eller hente tallene selv fra Statistisk sentralbyrå, ssb.no. (Pass på at du ikke velger noen av variablene som handler om kjønn, da kan du få problemer med å lage diagrammer.)
a) Last ned datafila. Den har et kryptisk navn, så døp om filnavnet til "Reiser" og pass på at filetternavnet er "csv". Importer fila i programmet ditt. Bruk print()-funksjonen for å se hvordan den ser ut.
Filer
Løsningsforslag
Python
1import pandas as pd
2data = pd.read_csv("reiser.csv", index_col = 0, skiprows = (0,1), sep = ";", encoding = "latin-1")
3print(data)
b) Lag ei grafisk framstilling som viser hvordan nordmenns reisevirksomhet har endret seg i denne perioden.
Løsningsforslag
Python
1import pandas as pd
2data = pd.read_csv("reiser.csv", index_col = 0, skiprows = (0,1), sep = ";", encoding = "latin-1")
3data = data.transpose()
4data.plot()
Tips dersom teksten langs -aksen blir for tett:
- Importer matplotlib.pyplot ("
as plt
"). - Skriv nederst i koden:
plt.xticks(fontsize=8)
.
Prøv eventuelt med en annen skriftstørrelse (fontstørrelse) enn 8.
Dersom du vil ha forklaringen utenfor selve diagrammet, erstatt data.plot()
med data.plot().legend(bbox_to_anchor = (1,1))
Dersom du ønsker kortere kategorinavn, lag en liste med nye navn (feks kun 2018K3 osv) og bruk data.columns =
c) Kommenter utviklingen av reiser.
Tips
Hva tror du er årsaken til at reisevirksomheten går ned i første og andre kvartal 2020?
Er det noen typer av reiser som går opp?
Hva kan være årsaken til det?
AP-103 Kulturskoleutgifter
Fila Kulturskoleutgifter.csv gir en oversikt over netto driftsutgifter til kommunale kulturskoler for noen tilfeldig utvalgte kommuner i Norge. Både store og små kommuner er med i utvalget. Tallene viser utgiftene per innbygger mellom 6 og 15 år i tidsrommet 2015 til 2019. Fila er hentet fra SSB (https://www.ssb.no/statbank/table/12061/).
Filer
a) Les fila inn i Python.
Tips
Husk å hoppe over linjer med overskrift!
Løsningsforslag
Python
1import pandas as pd
2data = pd.read_csv("kulturskoleutgifter.csv", index_col = 0, skiprows = (0,1), sep = ";", encoding = "latin-1")
b) Endre overskriftene slik at de bare inneholder årstallene.
Løsningsforslag
Python
1K=[]
2K.append(2015)
3
4for i in range(1, 5):
5 K.append(K[i-1] + 1)
6data.columns = K
c) Finn ut hvor mye de utvalgte kommunene bruker i snitt per innbygger.
Tips
Bruk transpose() og mean().
d) Lag en grafisk framstilling som viser hvordan utgiftene til kulturskole har endret seg i de fem årene fra 2015 til 2019.
Tips
- I noen konsoller vil du få desimaltall på
-aksen (f.eks. 2018,5).x - Hvis du vil fjerne desimalen, går du tilbake til koden i punkt b og bruker kommandoen str() på alle elementene i lista.
- Legg elementene i ei ny liste. Elementene vil da bli strenger og ikke tall, slik at du slipper å få halve år.
Løsningsforslag
Python
1L=[]
2for i in range(len(K)):
3 L.append(str(K[i]))
4data.columns = L
5data = data.transpose()
6
7data.plot().legend(bbox_to_anchor = (1,1))
e) Følg lenken i a) til SSB. Der finner du grunnlagstallene til denne oppgaven. Velg ut ti (eller flere) kommuner. Vær oppmerksom på at kommuner kan stå oppført to ganger, eller de kan ha blitt slått sammen med andre kommuner. Gjør nå det samme med dine egne tall som du har gjort i deloppgavene a) til d).
f) Prøv å lage ulike framstillinger som viser to og to kommuner mot hverandre.
g) Ser du noen forskjeller mellom store og små kommuner? Kan du lage en framstilling som viser dette?
AP-104 Miniprosjekt
Finn en statistikk på ssb.no om et emne du er interessert i. Last ned ei csv-fil. Lag ulike statistikker og prøv deg fram. Presenter funnene dine skriftlig eller muntlig.