Hopp til innhold
Oppgave

Oppgaver med store datasett

I disse oppgavene skal du jobbe med store datasett og med grafiske framstillinger av slike datasett.

AP-101 Kommandoen transpose()

Før du prøver deg på oppgavene, bør du gå gjennom fagstoffsiden som hører til teorisiden "Behandling av store datamengder i Python".

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:

Dataframe med vinterutstyr

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
Dataframe med vinterutstyr, transponert

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å. (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 en 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 x-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 ei liste med nye navn (for eksempel kun 2018K3 og så videre), 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 SSBs statistikkbank.

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å x-aksen (for eksempel 2018,5).
  • 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 lenka 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.

CC BY-SA 4.0Skrevet av Tove Annette Holter og Bjarne Skurdal.
Sist faglig oppdatert 11.07.2022