Oppgåver med store datasett - Verktøykassa – for lærarar - NDLA

Hopp til innhald
Oppgave

Oppgåver med store datasett

I desse oppgåvene skal du jobbe med store datasett og med grafiske framstillingar av slike datasett.

AP-101 Kommandoen transpose()

Før du prøver deg på oppgåvene, bør du gå gjennom fagstoffsida som høyrer til teorisida "Behandling av store datamengder i Python".

Når vi jobbar med ein dataframe i Python, har vi av og til bruk for kommandoen transpose().

a) Kva gjer kommandoen transpose()?

Løysing

Kommandoen transpose() får rader til å bli kolonnar og motsett.

b) Vi har ein dataframe som ser ut som tabellen nedanfor dersom du skriv han ut:

Dataframe med Vinterutstyr

Ski

Syklar

Skøyter

2018

1

2

3

2019

4

5

6

2020

7

8

9

Korleis ser den nye dataframen ut om du bruker transpose() på han?

Løysing
Dataframe med vinterutstyr, transponert

2018

2019

2020

Ski

1

4

7

Syklar

2

5

8

Skøyter

3

6

9

c) Gir tabellen i løysingsforslaget til oppgåve b) den same informasjonen som tabellen i oppgåveteksten?

Løysing

Ja, tabellen har det same innhaldet sjølv om rader har blitt til kolonner og omvendt.

AP-102 Reising

Koronaviruset påverka reisevanane til nordmenn i stor grad. I denne oppgåva skal vi sjå på korleis reisevanane våre har endra seg frå perioden like før koronaviruset byrja å spreie seg, og fram til i dag.

I fila "Reiser" nedanfor finn du ei oversikt over ulike reiser nordmenn av begge kjønn har gjennomført mellom juli 2018 og juni 2020. I oppgåva kan du bruke fila vi har lagt ut, eller hente tala sjølv frå Statistisk sentralbyrå. (Pass på at du ikkje vel nokon av variablane som handlar om kjønn, då kan du få problem med å lage diagram.)

a) Last ned datafila. Ho har eit kryptisk namn, så døyp om filnamnet til "Reiser" og pass på at filetternamnet er "csv". Importer fila i programmet ditt. Bruk print()-funksjonen for å sjå korleis ho ser ut.

Filer

Løysingsforslag
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 korleis reiseverksemda til nordmenn har endra seg i denne perioden.

Løysingsforslag
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 nedst i koden: plt.xticks(

    fontsize

    =8).

Prøv eventuelt med ein annan skriftstorleik (fontstorleik) enn 8.

Dersom du vil ha forklaringa utanfor sjølve diagrammet, erstatt data.plot() med data.plot().legend(bbox_to_anchor = (1,1))

Dersom du ønsker kortare kategorinamn, lag ei liste med nye namn (til dømes berre 2018K3 og så vidare) og bruk data.columns =.

c) Kommenter utviklinga av reiser.

Tips

Kva trur du er årsaka til at reiseverksemda held fram med å gå ned i første kvartal 2020?

Er det nokre typer av reiser som går opp? Kva kan vere årsaka til det?

AP-103 Kulturskuleutgifter


Fila Kulturskuleutgifter.csv gir ei oversikt over netto driftsutgifter til kommunale kulturskular for nokre tilfeldig utvalde kommunar i Noreg. Både store og små kommunar er med i utvalet. Tala viser utgiftene per innbyggar mellom 6 og 15 år i tidsrommet 2015 til 2019. Fila er henta frå SSBs statistikkbank.

a) Les fila inn i Python.

Tips

Hugs å hoppe over linjer med overskrift!

Løysingsforslag
Python
1import pandas as pd
2data = pd.read_csv("kulturskuleutgifter.csv", index_col = 0, skiprows = (0,1), sep = ";", encoding = "latin-1")

b) Endre overskriftene slik at dei berre inneheld årstala.

Løysingsforslag
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 kor mykje dei utvalde kommunane bruker i snitt per innbyggar.

Tips

Bruk transpose() og mean().

d) Lag ei grafisk framstilling som viser korleis utgiftene til kulturskule har endra seg i dei fem åra frå 2015 til 2019.

Tips
  • I nokre konsollar vil du få desimaltal på x-aksen (til dømes 2018,5).
  • Viss du vil fjerne desimalen, går du tilbake til koden i punkt b og bruker kommandoen str() på alle elementa i lista.
  • Legg elementa i ei ny liste. Elementa vil då bli strengar og ikkje tal, slik at du slepp å få halve år.
Løysingsforslag
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 finn du grunnlagstala for denne oppgåva. Vel ut ti (eller fleire) kommunar. Ver merksam på at kommunar kan stå oppført to gonger, eller dei kan ha vorte slått saman med andre kommunar. Gjer no det same med dine eigne tal som du har gjort i deloppgåvene a) til d).

f) Prøv å lage ulike framstillingar som viser to og to kommunar mot kvarandre.

g) Ser du nokon forskjellar mellom store og små kommunar? Kan du lage ei framstilling som viser dette?

AP-104 Miniprosjekt

Finn ein statistikk på ssb.no om eit emne du er interessert i. Last ned ei csv-fil. Lag ulike statistikkar og prøv deg fram. Presenter funna dine skriftleg eller munnleg.

Skrive av Tove Annette Holter og Bjarne Skurdal.
Sist fagleg oppdatert 11.07.2022