Hopp til innhold
Bokmål
Fagstoff
Interaktivt innhold

Analyse av enkle datasett med Python

Når vi måler data i industrien, får vi ofte store datamengder lagra i filer. Ved hjelp av Python kan vi hente inn, sortere og visualisere slike måleserier slik at tall blir til forståelig informasjon.

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 plott, grafer, 3D-modeller og animasjoner. Pandas brukes til å lese og skrive fra forskjellige fil-formater og til å bearbeide data.

Med disse to verktøyene 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.

Dataene er registrert i atskilte kolonner, eller de er registrert i én kolonne og atskilt med et spesifikt tegn, for eksempel et komma eller et semikolon.

Datasett

Linje

Timestamp

Temp

02025-10-13 05:09:50.20438.7
12025-10-13 05:09:51.23638.7
22025-10-13 05:09:52.20238.7
32025-10-13 05:09:53.23338.7
42025-10-13 05:09:54.205 38.7

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 vi lage et plott med Matplotlib. Et eksempel på en slik programkode kan være:

Når dataene blir henta ut fra måleserien, vises de som en graf der tidsstempelet er på X-aksen og temperaturverdiene på 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:

Hvis du har lagt til tittel og navn på aksene blir grafen enklere å lese og tolke.

Pandas

Så langt har du kun brukt Pandas til å hente inn data, men den virkelige styrken ligger i de mange dataanlyse verktøyene. Pandas er bygget rundt DataFrames, som kort sagt er rader og kolonner med data.

Når du lastet opp dataen lagde du en DataFrame: “data”. Hver kolonne har et navn, som du bruker til å refere til kolonnen med data. For å få en oppsumering av dataen kan du bruke .describe().

Boxplot

Du kan også illustrere denne informasjonen i et boxplot. Et boxplot (eller boksdiagram) er en grafisk framstilling av hvordan data er fordelt. Det brukes for å vise spredning, median, og eventuelle ekstremverdier (outliers) i et datasett.

Boxplot er spesielt nyttig når du vil sammenligne flere datasett eller se variasjon i målinger.

For å vise dataaene som en boxplot kan du bruke følgende kode:

Verdiene som vises i en slik boxplot er da:

BOxplot verdier

beskrivelse

verdi

count19.000000
mean49.542105
std13.448681
min38.700000
25%38.700000
50%38.900000
75%64.200000
max70.800000
Name: tempdtype: float64

Grafisk vil disse verdiene da bli vist som i dette eksempelet:

I boxplottet vil den øverste sorte linjen vise max verdien. Toppen og bunnen av boksen er det første og tredje kvartil, imens den grønne linjen er gjennomsnittet. Man kan også utføre matte operasjoner direkte på kolonene, som er nyttig hvis man vil utføre beregninger som inkluderer flere kolonner med data.

Matematiske funksjoner

I Python kan du bruke matematiske funksjoner og operatorer til å regne med tall og data. Dette kan være enkle regnestykker som addisjon og multiplikasjon, eller mer avanserte beregninger med funksjoner fra biblioteket math eller NumPy.

Når du skriver noe som:

  • data = data + data

betyr det at du legger sammen verdiene i variabelen data med seg selv – altså dobler innholdet.

I tabellform vil dette da vises som:

Måleverdier, summert

linje

timestamp

temp

temp_pluss_temp

02025-10-13 05:09:50.20400038.70000077.400000
12025-10-13 05:09:51.23600038.70000077.400000
22025-10-13 05:09:52.20200038.70000077.400000
32025-10-13 05:09:53.23300038.70000077.400000
42025-10-13 05:09:54.20500038.70000077.400000

Her la vi til en ny kolonne som doblet temperaturen. Hvis du bruker jupyter notebooks er det også mulig ved utskriving av tabellen, å legge til en .style for å få en finere tabell.

Dataframes

Tidligere brukte du matplotlib direkte for å plotte, men disse funksjonene er også bygd inn i pandas dataframes.

En DataFrame er en digital datatabell i Python som lar deg lagre, analysere og regne med data — raskt og strukturert, nesten på samme måte som i Excel. Den brukes i biblioteket pandas, som er laget for databehandling og analyse.

En DataFrame består av rader og kolonner, der hver kolonne har et navn, og hver rad representerer én observasjon eller måling.

Du kan legge til, trekke fra og sammenligne kolonner akkurat som i et regneark.

For å visualisere ved hjelp av dataframes kan du bruke en programkode som i dette eksempelet:

Grafisk vil en graf programmert med dataframes kunne se ut som dette:

Histogram

Histogrammer er ofte brukt for å se på fordelingen av dataen. Hver søyle er en “gruppe” av dataen, for eksempel 0-40. høyden på søylen er hvor mange data-punkter i denne gruppen.

Kort fortalt er histogram en grafisk framstilling av hvordan data fordeler seg — altså hvor mange ganger ulike verdier forekommer. I stedet for å vise hvert enkelt tall, deler histogrammet dataene inn i grupper (intervaller) og viser hvor mange målinger som havner i hvert intervall.

Histogram brukes ofte for å se mønstre, spredning og normalfordeling i måledata.

For å vise et histogram, kan du bruke funksjonen .hist(bins=x).

Den grafiske visningen av histogram, er som stolpedigram som her viser hvor mange ganger hver temperatur har blitt avlest.

Filer

Her får du tilgang til filer som kan benyttes som eksempler for dataanalyse med Python. Du får både et eksempel på Pythonkode, samt en .csv-fil som kan benyttes som analyse.

Programkode

import matplotlib.pyplot as plt

import pandas as pd

from pathlib import Path

parent = Path(__file__).parent

data = pd.read_csv(parent / "maling.csv") # laster opp data

data.columns = ["timestamp", "temp"] # gir navn til kolonnene

# omgjør UNIX til dato og tid

data['timestamp'] = pd.to_datetime(data['timestamp'], unit='ms') # hvis denne linjen gir feilmelding prøv å endre unit='ms' til 's'

# skriver ut første 5 rader

print(data.head())

# -------------------------------

# plotter temperatur

plt.plot(data['timestamp'], data['temp']) # tar inn data på x-aksen(timestamp) og data på y-aksen(temp)

plt.title("Temperature")

plt.show()

# -------------------------------

# plotter temperatur og en med temp+1

plt.plot(data['timestamp'], data['temp'], label="data1")

plt.plot(data['timestamp'], data['temp'] + 1, label="data+1") # plusser på 1 på alle temperaturer for å vise

plt.title("Temperatur over tid") # tittelen

plt.xlabel("Tid") # forklaring på x-aksen

plt.ylabel("temperatur") # forklaring på y-aksen

plt.legend()

plt.show()

# -------------------------------

# describe og boxplot

print(data["temp"].describe())

# count: Hvor mange punkter

# mean: Gjennomsnittet

# std: Standard deviation, hvor mye dataen varierer fra gjennomsnittet.

# min: Minste datapunkt

# 25%: Det første kvartilet, de minste 25% av dataen er under dette datapunktet.

# 50%: Medianen, når man sorterer alle datapunkter i stigende rekkefølge er dette den i midten.

# 75%: Det tredje kvartilet, de største 25% av dataen er over dette datapunktet.

# max: Største datapunkt

data.boxplot()

plt.grid(False) # gjemmer grids i figuren

plt.show()

# -------------------------------

# legger sammen temp

data["temp_pluss_temp"] = data["temp"] + data["temp"]

data.head().style

# -------------------------------

# pandas plot

data.plot(x="timestamp", y="temp") # i stedet for plt.plot(data['timestamp'], data['temp'])

plt.title("Temperatur over tid")

plt.show()

# -------------------------------

# histogram

data["temp"].hist(bins=5) # bins=5 gir 5 søyler.

plt.grid(False) # gjemmer grids i figuren

plt.show()

Skrevet av Roger Rosmo og Kristoffer Smedal Olsen. Rettighetshaver: Company of Things AS.
Sist oppdatert 19.10.2025