Analyse av avanserte datasett med Python
Dataanalyse med Python
Når du skal analysere data i Python, har du bruk for to programpakker: Matplotlib og pandas. Matplotlib er ei pakke for å visualisere data på ulike måter, for eksempel som grafer, 3D-modeller og animasjoner. Pandas brukes til å lese og skrive fra forskjellige fil-formater og til å bearbeide data.
Med disse to verktøya kan du oppsummere og visualisere data på en enkel og strukturert måte.
Opplasting av måleserier
Du begynner med å laste opp dataene du har samla inn. Funksjonen read_csv() fungerer på både .csv-filer og .txt-filer.
Viktig!
Fila du vil analysere, må ligge lagra på samme sted som kode-fila di.
I data som er lasta ned fra Deploii, inneholder hver rad et tidsstempel i UNIX-format og en måleverdi. UNIX-formatet i Deploii teller antall millisekund som har gått siden 1. januar 1970. Denne verdien må derfor omgjøres til vanlig dato og tid.

I tabellformat kan dataene vises på denne måten:
Linje | Timestamp | Temp | Trykk | Fukt |
|---|---|---|---|---|
| 0 | 2025-10-13 11:09:50.204 | 3.6675 | 98.1600 | 0.4475 |
| 1 | 2025-10-13 11:09:51.23 | 4.9400 | 97.9550 | 0.4100 |
| 2 | 2025-10-13 11:09:52.202 | 7.1250 | 98.0500 | 0.3800 |
| 3 | 2025-10-13 11:09:53.233 | 11.6275 | 97.9125 | 0.3950 |
Funksjonen pd.read_csv() leser inn fila. Deretter brukes kolonnetitlene som er angitt i koden, og tidsstempelet fra UNIX blir omgjort til DateTime-formatet. Til slutt skrives de første linjene i datasettet ut.
Visualisering av data med Matplotlib
Nå som dataene er lasta opp, kan lage et plott med Matplotlib. Et eksempel på en slik programkode kan være:

Med denne koden kan dataene visualiseres i en graf der tidsdataene er knytta til x-aksen, og temperaturverdiene er knytta y-aksen.

Dette er den grunnleggende strukturen på de fleste plotta i Matplotlib. Du definerer plottet og legger til elementer som tittel, aksetittel, tegnforklaringer til grafen osv. Til slutt vil funksjonen plt.show() vise figuren.
Like enkelt kan du legge til flere plott i en figur. Det gjør du ved å definere enda en funksjon plt.plot(). Du kan legge til så mange linjer du vil, så lenge du gjør det før plt.show().
Et eksempel på en delkode som legger inn flere data i samme graf, kan du se her:

Med flere innlagte datasett vil du se flere grafer i samme bilde. I grafen under ser du temperatur og trykk i samme graf, basert på samme tidsstempel:

Pandas
Så langt har vi brukt pandas bare til å hente inn data, men den virkelige styrken til pandas ligger i de mange dataanalyseverktøya. Pandas er bygd rundt DataFrames, som kort sagt er rader og kolonner med data. Da vi lasta opp dataene, laga vi en DataFrame som vi kalte “data”.
Hver kolonne med data har et navn. Dette navnet bruker vi til å referere til kolonnen. For å få ei oppsummering av dataene kan vi bruke funksjonen .describe(). Vi kan også vise denne informasjonen i et boksplott.

Funksjonen data.describe()
Når du jobber med datasett i Python, for eksempel målinger, sensordata eller tall du har samla inn, er det viktig at du kan få en rask oversikt over dataene. Funksjonen data.describe() i pandas lager ei statistisk oppsummering av tallmaterialet.
Denne oppsummeringa består av flere nøkkelverdier som sier noe om antall datapunkter og om gjennomsnitt, spredning og fordeling av talla. Verdiene er vanlige statistiske mål som brukes i både matematikk, tekniske fag og programmering.
Enkel beskrivelse av benevnelsene
count: hvor mange tall datasettet inneholder
mean: gjennomsnittet av alle talla i datasettet
std: hvor mye talla varierer (standardavvik, engelsk: standard deviation)
min/max: laveste og høyeste verdi
25 %, 50 %, 75 %: oppdeling av datasettet i kvartiler (talla i datasettet sorteres fra lavest til høyest og deles så opp i fire deler med like mange tall i hver del)
Visualisering i diagramform
Når måleverdiene presenteres i en tabell, kan de være vanskelig å tolke:
Verdi | Temp | Trykk | Fukt |
|---|---|---|---|
| count | 19.000000 | 19.000000 | 19.000000 |
| mean | 7.990789 | 98.230263 | 0.417237 |
| std | 3.508967 | 1.112881 | 0.039999 |
| min | 1.385000 | 97.000000 | 0.345000 |
| 25 % | 5.525000 | 97.371250 | 0.387500 |
| 50 % | 7.965000 | 97.955000 | 0.422500 |
| 75 % | 11.265000 | 99.030000 | 0.445000 |
| max | 14.670000 | 100.775000 | 0.480000 |
Derfor er det ofte hensiktsmessig å få vist verdiene i diagramform, for eksempel som boksplott-diagram:

I programmet kan plottboksen kodes slik:

Her bruker vi ikke plt.plot(). I stedet bruker vi plot() direkte på dataene og legger inn noen ekstra parametere:
Parameteren kind='box' gjør at vi får et boksplott der den øverste svarte linja viser maksverdien. Toppen og bunnen av boksen er første og tredje kvartil, og den grønne linja er gjennomsnittet.
Parameteren subplots=True gjør at temperatur, trykk og fukt vises i ulike figurer i stedet for i én figur. Dette er lurt når verdiene er veldig ulike. I vårt eksempel ligger trykkverdiene på rundt 100, mens fuktverdiene ligger mellom 0 og 1.
Parameteren figsize=(12,3) bestemmer størrelsen på figuren. Denne kan du eksperimentere med for å få det utseendet du ønsker.
Datavisualisering med grafer
I Python kan du også visualisere de innhenta måleverdiene på andre måter, for eksempel ved å plotte grafer. Du kan velge ulike grafiske visninger ved å endre definisjonen av visning i koden.

Det er mulig å sette sammen de ulike grafene til visning under hverandre eller ved siden av hverandre:

I koden for sideveis visning la vi til parameteren layout=(1,3). På denne måten kan vi tvinge fram et bestemt format, i dette tilfellet ett lag med tre figurer. Har vi enda flere datastrømmer vi skal vise, kan vi for eksempel skrive layout=(2,3). Da får vi to lag med tre figurer.
Matematiske funksjoner
Du kan også utføre beregninger direkte på kolonnene. Det er nyttig ved beregninger som inkluderer flere kolonner med data.
Disse matematiske funksjonene kan programmeres. I eksempelet under brukes dataene for temperatur. Verdiene dobles og legges inn i en ny temperatur-variabel:

I tabellvisning kan da resultatet se slik ut:
timestamp | temp | trykk | fukt | temp_pluss_temp |
|---|---|---|---|---|
| 2025-10-13 11:09:50.204000 | 3.667500 | 98.160000 | 0.447500 | 7.335000 |
| 2025-10-13 11:09:51.236000 | 4.940000 | 97.955000 | 0.410000 | 9.880000 |
| 2025-10-13 11:09:52.202000 | 7.125000 | 98.050000 | 0.380000 | 14.250000 |
| 2025-10-13 11:09:53.233000 | 11.627500 | 97.912500 | 0.395000 | 23.255000 |
| 2025-10-13 11:09:54.205000 | 11.700000 | 97.532500 | 0.442500 | 23.400000 |
Nå er det altså lagt til en ny kolonne med dobla temperaturverdier. Hvis vi bruker Jupyter Notebooks, er det også mulig å legge til .style i stedet for print() for å få en finere tabell når vi skriver ut.
Sletting av kolonner
Du kan slette kolonner fra datasetta. Det gjør du ved å bruke funksjonen data.drop(). Under ser du et eksempel på en slik programkode. Den sletter kolonnen "temp_pluss_temp".

Histogram
Histogrammer er et godt valg når vi vil vise fordelinga av dataene. Hver søyle står for ei gruppe data innafor ei bestemt ramme, og høyden på søyla viser hvor mange måleverdier som er innafor denne ramma.
Du kan selv bestemme hvordan den grafiske visninga skal være, ved å justere layout, figurstørrelse. Du kan også fjerne linjer og grid.

Her bruker vi .hist() i stedet for .plot(). Ved å sette parameteren bins til 6 bestemmer vi at figurene skal ha seks søyler. Med layout= (1,3) har vi valgt at verdiene for temperatur, trykk og fukt skal vises i tre histogrammer i ett lag. Siden parameteren grid er satt til False, vises ikke grid og linjer. De tre figurene viser hvor mesteparten av dataene ligger, og hvor jevnt fordelt de er.

Korrelasjon
Det siste verktøyet vi skal se på, er korrelasjon. Korrelasjon er sammenhengen mellom to variabler: Korrelasjonsverdien viser om og hvordan endringer i den ene variabelen påvirker den andre variabelen.
Når du analyserer data, hjelper korrelasjonsverdien deg å se om to målinger følger hverandre.
Eksempel på korrelasjon
Hvis temperaturen øker og fuktigheten også øker, sier vi at det er en positiv korrelasjon mellom de to verdiene.
Hvis temperaturen øker, men fuktigheten synker, er korrelasjonen negativ.
Verdien for korrelasjon ligger alltid mellom –1 og +1.
For å programmere inn korrelasjon kan du bruke koden print(data.corr()).

I en tabell kan korrelasjon vises som i eksempelet under:
temp | trykk | fukt | |
|---|---|---|---|
| temp | 1.000000 | -0.601960 | 0.444773 |
| trykk | -0.601960 | 1.000000 | -0.710422 |
| fukt | 0.444773 | -0.710422 | 1.000000 |
Tabellen viser for eksempel at korrelasjonen mellom temperatur og fukt er 0,44. Det betyr at det er en viss sammenheng mellom temperatur og fukt: Når temperaturen øker, kan vi også forvente at fuktverdien øker.
Filer
Under finner du filer du kan bruke som eksempler for dataanalyse med Python. Du får både et eksempel på Python-kode og ei .csv-fil som kan brukes til analyse.
- Notebook_adv(IPYNB)