{ "metadata": { "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.1" }, "orig_nbformat": 2, "kernelspec": { "name": "python3", "display_name": "Python 3", "language": "python" } }, "nbformat": 4, "nbformat_minor": 2, "cells": [ { "source": [ "# Laste ned og analysere åpne data fra Enhetsregisteret\n", "\n", "Brønnøysundregistrene har gjort Enhetsregisteret tilgjengelig som åpne data. Detaljer om tjenesten finner du på [data.brreg.no](https://data.brreg.no/enhetsregisteret/oppslag/enheter). I denne \"notatboken\" viser vi hvordan du kan laste ned og analysere åpne data fra Enhetsregisteret.\n", "\n", "I notatboken er det egne celler med kode. For å kjøre koden velger du cellen og klikker \"play\"-knappen øverst på siden. Merk at en del av koden forutsetter at du har kjørt kode tidligere, så hvis du får feilmelding kan det være at du må gå tilbake og forsikre deg om at du har kjørt koden i tidligere celler." ], "cell_type": "markdown", "metadata": {} }, { "source": [ "Notatboken bruker programmeringsspråket Python, og all koden skal fungere i alle moderne Python-miljø. I tillegg til det som er innebygget i Python bruker vi følgende tilleggsverktøy:\n", "\n", "- requests: Et verktøy for kommunisere med data.brreg.no\n", "- xlsx2csv: Et verktøy for å konvertere fra .xlsx-formatet til .csv-format\n", "- pandas: Et populært verktøy for å håndtere data, inkludert \"rydde\" og analysere dem\n", "\n", "På MyBinder.org er disse verktøyene allerede installert, men de må importeres før de kan brukes videre:" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "import requests\n", "from xlsx2csv import Xlsx2csv\n", "import pandas as pd\n", "import numpy as np" ] }, { "source": [ "Det finnes et søke-API for åpne data fra Enhetsregisteret. Søke-API-et kan brukes for å gjøre forespørsler i Enhetsregisteret, og få resultatene direkte. Men API-et har en begrensning som gjør at det ikke er mulig å få mer enn 10.000 enheter i resultatet. Da er nedlasting av alle dataene et bra alternativ. I tillegg gir nedlasting mulighet til å bruke verktøy som gjør det lett å analysere og visualisere data.\n", "\n", "## Viktig: Snarvei til bruk av dataene!\n", "Hvis du ikke er avhengig av å bruke *helt* oppdaterte data, kan du bruke en kopi av Enhetsregisteret som ligger vedlagt i dette kjøremiljøet. Isåfall kan du hoppe til [Snarveien](#alternativ) og gå rett videre på å analysere dataene.\n", "\n", "## For helt ferske data\n", "Nedenfor går vi gjennom stegene for å 1) laste ned alle hovedenhetene fra Enhetsregisteret, 2) konvertere filen til CSV-format (fordi det formatet er raskere å jobbe med), 3) lese filen med Python og Pandas. Deretter viser vi noen eksempler på enkle analyser, som forhåpentligvis er nok til å gi en idé om hva du kan gjøre videre.\n", "\n", "Merk at siden registeret er såpass stort tar det noen minutter både å laste ned og konvertere den nedlastede fila. Som nevnt over kan du hoppe over de stegene og bruke den vedlagte kopien ved å gå til [Snarveien](#alternativ)." ], "cell_type": "markdown", "metadata": {} }, { "source": [ "## 1) Laste ned alle hovedenheter fra Enhetsregisteret\n", "Hovedenhetene kan lastes ned som enten JSON- eller XLSX-format. Vi bruker XLSX-formatet fordi det er er \"forflatet\" til en stor tabell, noe som gjør det enklere å bruke med Pandas-verktøyet.\n", "\n", "Filen som lastes ned er ca 200 MB stor. Hvor langt tid det tar vil være avhengig av nettverket. Hvis kjører koden fra mybinder.org tar det erfaringsmessig i underkant av fem minutter. På en PC på hjemmekontor har det tatt opp mot 10 minutter.\n", "\n", "Det er mulig å laste ned og lagre en fil med enklere kode enn det som er skrevet nedenfor, men da lastes hele filen ned i minnet før den lagres. Det krever mer minne.\n", "\n", "NB! MyBinder.org er en gratistjeneste, og for å redusere behovet for maskinressurser, skrur den av virtuelle maskiner som ikke er i bruk, det vil si at all koden du har kjørt blir nullstilt [hvis du er inaktiv i mer enn ti minutter](https://mybinder.readthedocs.io/en/latest/about/about.html#how-long-will-my-binder-session-last). **Da må du starte maskinen på nytt, og sannsynligvis må all kode må kjøres på nytt og fila må lastes ned på nytt.**\n" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "CPU times: user 2.11 s, sys: 1.68 s, total: 3.79 s\nWall time: 8min 7s\n" ] } ], "source": [ "%%time\n", "url = 'https://data.brreg.no/enhetsregisteret/api/enheter/lastned/regneark'\n", "headers = {'Accept': 'application/vnd.brreg.enhetsregisteret.enhet+vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8'}\n", "session = requests.Session() # establish a session that is kept open during the transfer, instead of performing separate requests\n", "r = session.get(url, headers=headers, stream = True)\n", "r.raise_for_status()\n", "with open('er.xlsx','wb') as f:\n", " for chunk in r.iter_content(1024*1024*2): # laster ned og skriver ca 2 MB av gangen\n", " f.write(chunk)" ] }, { "source": [ "## 2) Konvertere filen til CSV-formatet\n", "Python Pandas har en funksjon for å lese xlsx-filer, men den er tregere og krever mer minne enn tilsvarende metode for csv-filer. Du sparer derfor tid på å konvertere filen til csv-formatet først. Når du kjører koden på mybinder.org, risikerer du dessuten at lesing av xlsx-filen krever mer minne enn du er tildelt, og da stopper prosessen.\n", "\n", "For å konvertere den nedlastede fila, bruker vi xlsx2csv. På mybinder.org tar dette erfaringsmessig i underkant av 5 minutter. På en PC på hjemmekontor tar det nærmere ti.\n" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "CPU times: user 8min 6s, sys: 12.2 s, total: 8min 18s\nWall time: 8min 19s\n" ] } ], "source": [ "%time Xlsx2csv(\"er.xlsx\", outputencoding=\"utf-8\").convert(\"er.csv\")" ] }, { "source": [ "## 3) Lese filen med Python og Pandas\n", "\n", "Pandas har en egen funksjon for å lese csv-filer, '''read_csv'''. I kommandoen nedenfor har vi i tillegg spesifisert informasjon om typene data i filen, for å gjøre det lettere å bruke senere." ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "df = pd.read_csv('er.csv', dtype={\n", " 'Organisasjonsnummer': str,\n", " 'Navn': str,\n", " 'Organisasjonsform.kode': 'category',\n", " 'Organisasjonsform.beskrivelse': 'category',\n", " 'Næringskode 1': str,\n", " 'Næringskode 1.beskrivelse': str,\n", " 'Næringskode 2': str,\n", " 'Næringskode 2.beskrivelse': str,\n", " 'Næringskode 3': str,\n", " 'Næringskode 3.beskrivelse': str,\n", " 'Hjelpeenhetskode': 'category',\n", " 'Hjelpeenhetskode.beskrivelse': 'category',\n", " 'Antall ansatte': np.int16,\n", " 'Hjemmeside': str,\n", " 'Postadresse.adresse': str,\n", " 'Postadresse.poststed': str,\n", " 'Postadresse.postnummer': str,\n", " 'Postadresse.kommune': str,\n", " 'Postadresse.kommunenummer': str,\n", " 'Postadresse.land': 'category',\n", " 'Postadresse.landkode': 'category',\n", " 'Forretningsadresse.adresse': str,\n", " 'Forretningsadresse.poststed': str,\n", " 'Forretningsadresse.postnummer': str,\n", " 'Forretningsadresse.kommune': str,\n", " 'Forretningsadresse.kommunenummer': str,\n", " 'Forretningsadresse.land': 'category',\n", " 'Forretningsadresse.landkode': 'category',\n", " 'Institusjonell sektorkode': 'category',\n", " 'Institusjonell sektorkode.beskrivelse': 'category',\n", " 'Siste innsendte årsregnskap': str, # klarte ikke konvertere til np.int16\n", " 'Registreringsdato i Enhetsregisteret': str, # klarer ikke konvertere 'datetime64',\n", " 'Stiftelsesdato': str, # klarte ikke å konvertere til datetime64 - 1550-12-31 00:00:00\n", " 'FrivilligRegistrertIMvaregisteret': 'category',\n", " 'Registrert i MVA-registeret': 'category',\n", " 'Registrert i Frivillighetsregisteret': 'category',\n", " 'Registrert i Foretaksregisteret': 'category',\n", " 'Registrert i Stiftelsesregisteret': 'category',\n", " 'Konkurs': 'category',\n", " 'Under avvikling': 'category',\n", " 'Under tvangsavvikling eller tvangsoppløsning': 'category',\n", " 'Overordnet enhet i offentlig sektor': str,\n", " 'Målform': 'category' })" ] }, { "source": [ "\n", "## Snarvei! Bruk vedlagte kopi av dataene\n", "\n", "Hvis du ikke er avhengig av helt oppdaterte data, ligger det en kopi av er.csv som del av dette arbeidsområdet. Ved å bruke den sparer du tid på å laste ned og konvertere fila. For informasjon tidspunkt for fila, kjør kommandoen nedenfor:" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "-rw-r--r-- 1 wslstsk wslstsk 64931668 Apr 29 13:31 er.csv.gz\n" ] } ], "source": [ "!ls -l er.csv.gz" ] }, { "source": [ "For å bruke den lokale kopien er kommandoen nesten identisk med koden to celler over. Forskjellen er at det er angitt et annet filnavn og \"compression='gzip'\".\n", "\n", "NB! Ikke kjør cellen nedenfor med kode hvis du allerede har lastet ned og lest inn oppdaterte data :-) \n" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "df = pd.read_csv('er.csv.gz', compression='gzip', dtype={\n", " 'Organisasjonsnummer': str,\n", " 'Navn': str,\n", " 'Organisasjonsform.kode': 'category',\n", " 'Organisasjonsform.beskrivelse': 'category',\n", " 'Næringskode 1': str,\n", " 'Næringskode 1.beskrivelse': str,\n", " 'Næringskode 2': str,\n", " 'Næringskode 2.beskrivelse': str,\n", " 'Næringskode 3': str,\n", " 'Næringskode 3.beskrivelse': str,\n", " 'Hjelpeenhetskode': 'category',\n", " 'Hjelpeenhetskode.beskrivelse': 'category',\n", " 'Antall ansatte': np.int16,\n", " 'Hjemmeside': str,\n", " 'Postadresse.adresse': str,\n", " 'Postadresse.poststed': str,\n", " 'Postadresse.postnummer': str,\n", " 'Postadresse.kommune': str,\n", " 'Postadresse.kommunenummer': str,\n", " 'Postadresse.land': 'category',\n", " 'Postadresse.landkode': 'category',\n", " 'Forretningsadresse.adresse': str,\n", " 'Forretningsadresse.poststed': str,\n", " 'Forretningsadresse.postnummer': str,\n", " 'Forretningsadresse.kommune': str,\n", " 'Forretningsadresse.kommunenummer': str,\n", " 'Forretningsadresse.land': 'category',\n", " 'Forretningsadresse.landkode': 'category',\n", " 'Institusjonell sektorkode': 'category',\n", " 'Institusjonell sektorkode.beskrivelse': 'category',\n", " 'Siste innsendte årsregnskap': str, # klarte ikke konvertere til np.int16\n", " 'Registreringsdato i Enhetsregisteret': str, # klarer ikke konvertere 'datetime64',\n", " 'Stiftelsesdato': str, # klarte ikke å konvertere til datetime64 - 1550-12-31 00:00:00\n", " 'FrivilligRegistrertIMvaregisteret': 'category',\n", " 'Registrert i MVA-registeret': 'category',\n", " 'Registrert i Frivillighetsregisteret': 'category',\n", " 'Registrert i Foretaksregisteret': 'category',\n", " 'Registrert i Stiftelsesregisteret': 'category',\n", " 'Konkurs': 'category',\n", " 'Under avvikling': 'category',\n", " 'Under tvangsavvikling eller tvangsoppløsning': 'category',\n", " 'Overordnet enhet i offentlig sektor': str,\n", " 'Målform': 'category' })" ] }, { "source": [ "## 4) Analysere data fra Enhetsregisteret\n", "Vi starter med noen enkle kommandoer som gir oss noen en viss ide om hva som finnes i dataene." ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\nRangeIndex: 1037749 entries, 0 to 1037748\nData columns (total 44 columns):\n # Column Non-Null Count Dtype \n--- ------ -------------- ----- \n 0 Unnamed: 0 1037749 non-null int64 \n 1 Organisasjonsnummer 1037749 non-null object \n 2 Navn 1037749 non-null object \n 3 Organisasjonsform.kode 1037749 non-null category\n 4 Organisasjonsform.beskrivelse 1037749 non-null category\n 5 Næringskode 1 982062 non-null object \n 6 Næringskode 1.beskrivelse 982062 non-null object \n 7 Næringskode 2 38573 non-null object \n 8 Næringskode 2.beskrivelse 38573 non-null object \n 9 Næringskode 3 1562 non-null object \n 10 Næringskode 3.beskrivelse 1562 non-null object \n 11 Hjelpeenhetskode 20386 non-null category\n 12 Hjelpeenhetskode.beskrivelse 20386 non-null category\n 13 Antall ansatte 1037749 non-null int16 \n 14 Hjemmeside 120182 non-null object \n 15 Postadresse.adresse 207005 non-null object \n 16 Postadresse.poststed 208900 non-null object \n 17 Postadresse.postnummer 199149 non-null object \n 18 Postadresse.kommune 199149 non-null object \n 19 Postadresse.kommunenummer 199149 non-null object \n 20 Postadresse.land 208901 non-null category\n 21 Postadresse.landkode 208898 non-null category\n 22 Forretningsadresse.adresse 992055 non-null object \n 23 Forretningsadresse.poststed 1022845 non-null object \n 24 Forretningsadresse.postnummer 984353 non-null object \n 25 Forretningsadresse.kommune 984353 non-null object \n 26 Forretningsadresse.kommunenummer 984353 non-null object \n 27 Forretningsadresse.land 1022845 non-null category\n 28 Forretningsadresse.landkode 1022844 non-null category\n 29 Institusjonell sektorkode 954783 non-null category\n 30 Institusjonell sektorkode.beskrivelse 954783 non-null category\n 31 Siste innsendte årsregnskap 355677 non-null object \n 32 Registreringsdato i Enhetsregisteret 1037749 non-null object \n 33 Stiftelsesdato 578546 non-null object \n 34 FrivilligRegistrertIMvaregisteret 46694 non-null category\n 35 Registrert i MVA-registeret 1037749 non-null category\n 36 Registrert i Frivillighetsregisteret 1037749 non-null category\n 37 Registrert i Foretaksregisteret 1037749 non-null category\n 38 Registrert i Stiftelsesregisteret 1037749 non-null category\n 39 Konkurs 1037749 non-null category\n 40 Under avvikling 1037749 non-null category\n 41 Under tvangsavvikling eller tvangsoppløsning 1037749 non-null category\n 42 Overordnet enhet i offentlig sektor 1980 non-null object \n 43 Målform 1037749 non-null category\ndtypes: category(19), int16(1), int64(1), object(23)\nmemory usage: 212.8+ MB\n" ] } ], "source": [ "df.info()" ] }, { "source": [ "info() gir oss oversikt over alle kolonnene, og for hver kolonne får vi vite hvor mange av radene som har data (non-null). I tillegg får vi vite hvilken datatype de ulike kolonnene har. 'object' tilsvarer normalt tekst. 'category' betyr at det er et sett med faste verdier, f.eks. \"JA\" og \"NEI\", kommunenummer, og næringskoder." ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " Unnamed: 0 Antall ansatte\n", "count 1.037749e+06 1.037749e+06\n", "mean 5.188740e+05 3.622975e+00\n", "std 2.995725e+05 1.006874e+02\n", "min 0.000000e+00 0.000000e+00\n", "25% 2.594370e+05 0.000000e+00\n", "50% 5.188740e+05 0.000000e+00\n", "75% 7.783110e+05 0.000000e+00\n", "max 1.037748e+06 2.858000e+04" ], "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0Antall ansatte
count1.037749e+061.037749e+06
mean5.188740e+053.622975e+00
std2.995725e+051.006874e+02
min0.000000e+000.000000e+00
25%2.594370e+050.000000e+00
50%5.188740e+050.000000e+00
75%7.783110e+050.000000e+00
max1.037748e+062.858000e+04
\n
" }, "metadata": {}, "execution_count": 11 } ], "source": [ "df.describe()" ] }, { "source": [ "describe() prøver å gi noen statistisk relevante opplysninger for kolonner med tall. Den eneste kolonnen som har tall det gir mening å lage statistikk for i vårt tilfelle, er antall ansatte. Kort oppsummert er det veldig mange som har veldig mange enheter som har få ansatte ...\n", "\n", "La oss se nærmere på den kolonnen. Da bruker vi df[] for å angi kolonnen:" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0 864915\n", "1 48643\n", "2 25468\n", "3 15270\n", "4 11183\n", " ... \n", "1230 1\n", "2257 1\n", "1744 1\n", "4307 1\n", "5629 1\n", "Name: Antall ansatte, Length: 1227, dtype: int64" ] }, "metadata": {}, "execution_count": 17 } ], "source": [ "df['Antall ansatte'].value_counts()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "count 1037749\n", "unique 41\n", "top Enkeltpersonforetak\n", "freq 424293\n", "Name: Organisasjonsform.beskrivelse, dtype: object" ] }, "metadata": {}, "execution_count": 13 } ], "source": [ "df['Organisasjonsform.beskrivelse'].describe()" ] }, { "source": [ "Over ser vi at det er 41 organisasjonsformer, og at det er Enkeltpersonforetak som er mest vanlig, med over 424.000 enheter. Vi kan også få tall på fordelingen:" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Enkeltpersonforetak 424293\n", "Aksjeselskap 357624\n", "Forening/lag/innretning 112312\n", "Utenlandsk enhet 26697\n", "Norskregistrert utenlandsk foretak 25056\n", "Eierseksjonssameie 24099\n", "Ansvarlig selskap med delt ansvar 13788\n", "Ansvarlig selskap med solidarisk ansvar 10099\n", "Borettslag 9098\n", "Stiftelse 6454\n", "Samvirkeforetak 6363\n", "Konkursbo 6113\n", "Tingsrettslig sameie 5211\n", "Annen juridisk person 3167\n", "Organisasjonsledd 1791\n", "Selskap med begrenset ansvar 1678\n", "Den norske kirke 1457\n", "Verdipapirfond 438\n", "Kommune 356\n", "Interkommunalt selskap 234\n", "Kommandittselskap 225\n", "Allmennaksjeselskap 219\n", "Kommunalt foretak 184\n", "Partrederi 156\n", "Sparebank 91\n", "Særskilt oppdelt enhet, jf. mval. § 2-2 86\n", "Pensjonskasse 81\n", "Annet foretak iflg. særskilt lov 63\n", "Kontorfellesskap 53\n", "Boligbyggelag 52\n", "Andre bo 47\n", "Gjensidig forsikringsselskap 38\n", "Andre enkeltpersoner som registreres i tilknyttet register 33\n", "Administrativ enhet - offentlig sektor 20\n", "Staten 19\n", "Tvangsregistrert for MVA 16\n", "Fylkeskommune 15\n", "Statsforetak 8\n", "Europeisk selskap 7\n", "Fylkeskommunalt foretak 7\n", "Andre ikke-juridiske personer 1\n", "Name: Organisasjonsform.beskrivelse, dtype: int64" ] }, "metadata": {}, "execution_count": 19 } ], "source": [ "df['Organisasjonsform.beskrivelse'].value_counts()" ] }, { "source": [ "Vi kan også kombinere og se på f.eks. hvor mange av hver kategori som er etablert i år:" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Enkeltpersonforetak 13081\n", "Aksjeselskap 11938\n", "Forening/lag/innretning 1450\n", "Konkursbo 1296\n", "Utenlandsk enhet 529\n", "Norskregistrert utenlandsk foretak 525\n", "Eierseksjonssameie 454\n", "Annen juridisk person 280\n", "Ansvarlig selskap med delt ansvar 172\n", "Tingsrettslig sameie 125\n", "Samvirkeforetak 104\n", "Organisasjonsledd 62\n", "Ansvarlig selskap med solidarisk ansvar 38\n", "Borettslag 32\n", "Stiftelse 31\n", "Verdipapirfond 7\n", "Tvangsregistrert for MVA 3\n", "Kommunalt foretak 2\n", "Allmennaksjeselskap 2\n", "Interkommunalt selskap 1\n", "Andre bo 1\n", "Fylkeskommunalt foretak 0\n", "Europeisk selskap 0\n", "Andre ikke-juridiske personer 0\n", "Administrativ enhet - offentlig sektor 0\n", "Sparebank 0\n", "Pensjonskasse 0\n", "Fylkeskommune 0\n", "Kommune 0\n", "Andre enkeltpersoner som registreres i tilknyttet register 0\n", "Statsforetak 0\n", "Partrederi 0\n", "Gjensidig forsikringsselskap 0\n", "Boligbyggelag 0\n", "Kontorfellesskap 0\n", "Kommandittselskap 0\n", "Særskilt oppdelt enhet, jf. mval. § 2-2 0\n", "Selskap med begrenset ansvar 0\n", "Den norske kirke 0\n", "Annet foretak iflg. særskilt lov 0\n", "Staten 0\n", "Name: Organisasjonsform.beskrivelse, dtype: int64" ] }, "metadata": {}, "execution_count": 23 } ], "source": [ "df[df['Registreringsdato i Enhetsregisteret'] > '2020-12-31'].loc[:,'Organisasjonsform.beskrivelse'].value_counts()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " Organisasjonsnummer Navn\n", "402752 964951373 BUSKERUD FYLKESKOMMUNE UNDER SLETTING FRA 01.0...\n", "456197 958381492 AKERSHUS FYLKESKOMMUNE UNDER SLETTING FRA 01.0...\n", "465758 842952972 ØSTFOLD FYLKESKOMMUNE UNDER SLETTING FRA 01.01...\n", "488808 864870732 TROMS FYLKESKOMMUNE UNDER SLETTING FRA 01.01.2020\n", "782836 964994218 FINNMARK FYLKESKOMMUNE UNDER SLETTING FRA 01.0...\n", "894802 922420866 TROMS OG FINNMARK FYLKESKOMMUNE\n", "946941 920717152 INNLANDET FYLKESKOMMUNE\n", "947333 971045698 ROGALAND FYLKESKOMMUNE\n", "948007 944183779 MØRE OG ROMSDAL FYLKESKOMMUNE\n", "948099 921707134 AGDER FYLKESKOMMUNE\n", "948750 821311632 VESTLAND FYLKESKOMMUNE\n", "950340 817920632 TRØNDELAG FYLKESKOMMUNE\n", "950915 964982953 NORDLAND FYLKESKOMMUNE\n", "953873 821227062 VESTFOLD OG TELEMARK FYLKESKOMMUNE\n", "954872 921693230 VIKEN FYLKESKOMMUNE" ], "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
OrganisasjonsnummerNavn
402752964951373BUSKERUD FYLKESKOMMUNE UNDER SLETTING FRA 01.0...
456197958381492AKERSHUS FYLKESKOMMUNE UNDER SLETTING FRA 01.0...
465758842952972ØSTFOLD FYLKESKOMMUNE UNDER SLETTING FRA 01.01...
488808864870732TROMS FYLKESKOMMUNE UNDER SLETTING FRA 01.01.2020
782836964994218FINNMARK FYLKESKOMMUNE UNDER SLETTING FRA 01.0...
894802922420866TROMS OG FINNMARK FYLKESKOMMUNE
946941920717152INNLANDET FYLKESKOMMUNE
947333971045698ROGALAND FYLKESKOMMUNE
948007944183779MØRE OG ROMSDAL FYLKESKOMMUNE
948099921707134AGDER FYLKESKOMMUNE
948750821311632VESTLAND FYLKESKOMMUNE
950340817920632TRØNDELAG FYLKESKOMMUNE
950915964982953NORDLAND FYLKESKOMMUNE
953873821227062VESTFOLD OG TELEMARK FYLKESKOMMUNE
954872921693230VIKEN FYLKESKOMMUNE
\n
" }, "metadata": {}, "execution_count": 26 } ], "source": [ "df[df['Organisasjonsform.beskrivelse']=='Fylkeskommune'].loc[:,('Organisasjonsnummer','Navn')]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ] }