Hvordan lese CSV-fil i Python (Eksempler på modul, pandaer)

⚡ Smart oppsummering

En CSV-fil lagrer tabelldata som ren tekst, med komma som skiller kolonner og linjeskift som skiller rader. Her lærer du å lese og skrive CSV-filer i Python ved hjelp av den innebygde csv-modulen og pandas-biblioteket.

  • 📄 Hva det er: En CSV-fil lagrer tabelldata som kommaseparert ren tekst.
  • ???? csv.leser: csv.reader() leser rader fra en CSV-fil som lister.
  • 📚 DictReader: csv.DictReader() leser hver rad inn i en ordnet ordbok.
  • ✍️ csv.writer: csv.writer() og writerow() skriver rader til en CSV-fil.
  • 🐼 Pandaer: pandas.read_csv() og to_csv() leser og skriver CSV-filer på én linje.
  • 🤖 AI-hjelp: AI-verktøy som Copilot genererer CSV-lese- og skrivekode umiddelbart.

Les CSV-filen i Python

Hva er en CSV-fil?

A CSV-fil er en enkel type ren tekstfil som bruker en spesifikk struktur for å ordne tabelldata. Standardformatet til en CSV-fil er definert av rader og kolonnedata der en ny linje avslutter hver rad for å begynne neste rad, og hver kolonne er atskilt med et komma i raden.

CSV er et vanlig format for datautveksling da det er kompakt, enkelt og generelt. Mange nettjenester lar brukerne eksportere tabelldata fra nettstedet til en CSV-fil. CSV-filer åpnes i Excel, og nesten alle databaser har et verktøy for å tillate import fra CSV-filer.

CSV-eksempelfil

Data i form av tabeller kalles også CSV (kommaseparerte verdier) - bokstavelig talt "kommaseparerte verdier." Dette er et tekstformat beregnet for presentasjon av tabelldata. Hver linje i filen er én linje i tabellen. Verdiene til individuelle kolonner er atskilt med et skillesymbol – et komma (,), et semikolon (;) eller et annet symbol. CSV kan enkelt leses og behandles av Python.

Tenk på følgende tabell

Tabelldata

Programmeringsspråk Designet av Dukket opp Extension
Python Guido van Rossum 1991 .py
Java james goslin 1995 .Java
C++ Bjarne Stroustrup 1983 .cpp

Du kan representere denne tabellen i csv som nedenfor.

CSV-data

Programmeringsspråk, designet av, dukket opp, utvidelse

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C++, Bjarne Stroustrup,1983,.cpp

Som du kan se er hver rad en ny linje, og hver kolonne er atskilt med komma. Dette er et eksempel på hvordan en CSV-fil ser ut.

Last ned CSV-data

Python CSV-modul

Python tilbyr en CSV-modul for å håndtere CSV-filer. For å lese/skrive data må du gå gjennom radene i CSV-filen. Du må bruke splittmetoden for å hente data fra spesifiserte kolonner.

CSV-modulfunksjoner

I CSV-moduldokumentasjonen kan du finne følgende funksjoner:

  • csv.field_size_limit – returner maksimal feltstørrelse
  • csv.get_dialect – få dialekten som er knyttet til navnet
  • csv.list_dialects – vis alle registrerte dialekter
  • csv.reader – les data fra en csv-fil
  • csv.register_dialect – assosier dialekt med navn
  • csv.writer – skriv data til en csv-fil
  • csv.unregister_dialect – slett dialekten knyttet til navnet dialektregisteret
  • csv.QUOTE_ALL – Sitat alt, uansett type.
  • csv.QUOTE_MINIMAL – Sitatfelt med spesialtegn
  • csv.QUOTE_NONNUMERIC – Oppgi alle felt som ikke er tallverdier
  • csv.QUOTE_NONE – Ikke siter noe i utdata

I denne opplæringen skal vi kun fokusere på leser- og skrivefunksjonene som lar deg redigere, endre og manipulere dataene i en CSV-fil.

Hvordan lese en CSV-fil i Python

Nedenfor er trinn for å lese CSV-filen i Python.

Trinn 1) For å lese data fra CSV-filer må du bruke leserfunksjonen for å generere et leserobjekt.

Leserfunksjonen er utviklet for å ta hver rad i filen og lage en liste over alle kolonnene. Deretter må du velge kolonnen du vil ha variabeldata for.

Det høres mye mer intrikat ut enn det er. La oss ta en titt på dette Python kode for å lese CSV-fil, og vi vil finne ut at det ikke er så vanskelig å jobbe med csv-fil.

#import necessary modules
import csv
with open('X:\data.csv','rt')as f:
  data = csv.reader(f)
  for row in data:
        print(row)

Trinn 2) Når du kjører programmet ovenfor, vil utgangen være:

['Programming language; Designed by; Appeared; Extension']
['Python; Guido van Rossum; 1991; .py']
['Java; James Gosling; 1995; .java']
['C++; Bjarne Stroustrup;1983;.cpp']

Hvordan lese en CSV-fil inn i en ordbok i Python

Du kan også bruke DictReader til å lese CSV-filer. Resultatene tolkes som en ordbok der overskriftsraden er nøkkelen, og andre rader er verdier.

Tenk på følgende kode

#import necessary modules
import csv

reader = csv.DictReader(open("file2.csv"))
for raw in reader:
    print(raw)

Resultatet av denne koden er:

OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])
OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])
OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])

Les en CSV-fil inn i en ordbok

Og denne måten å lese data fra CSV-fil er mye enklere enn tidligere metode. Dette er imidlertid ikke den beste måten å lese data på.

Hvordan skrive CSV-fil i Python

Slik skriver du inn en CSV-fil Python:

Når du har et sett med data som du ønsker å lagre i en CSV-fil, må du bruke writer()-funksjonen. For å iterere dataene over radene(linjene), må du bruke writerow()-funksjonen.

Tenk på følgende eksempel. Vi skriver data inn i en fil "writeData.csv" der skilletegnet er en apostrof.

#import necessary modules
import csv

with open('X:\writeData.csv', mode='w') as file:
    writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

    #way to write to csv file
    writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])
    writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])
    writer.writerow(['Java', 'James Gosling', '1995', '.java'])
    writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])

Resultatet i csv-filen er:

Programming language, Designed by, Appeared, Extension 
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp

skriv inn CSV-fil Python

Les CSV-fil med Pandas

Pandas er et åpen kildekode-bibliotek som lar deg importere CSV inn Python og utføre datamanipulering. Pandaer gir en enkel måte å lage, manipulere og slette dataene på.

Du må installere pandas-biblioteket med kommandoen pip install pandas . I Windows, vil du utføre denne kommandoen i ledeteksten mens du er i Linux i terminalen.

Å lese CSV-en inn i en pandas DataFrame er veldig raskt og enkelt:

#import necessary modules
import pandas
result = pandas.read_csv('X:\data.csv')
print(result)

Resultatet av les CSV Pandas eksempel:

Programming language, Designed by, Appeared, Extension 
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

Veldig nyttig bibliotek. På bare tre linjer med kode får du samme resultat som tidligere. Pandaer vet at den første linjen i CSV-en inneholdt kolonnenavn, og den vil bruke dem automatisk.

Skriv CSV-fil med Pandas

Å skrive til CSV-fil med Pandas er like enkelt som å lese. Her kan du overbevise i det. Først må du lage DataFrame basert på følgende Python skrive til CSV-kode.

from pandas import DataFrame
C = {'Programming language': ['Python','Java', 'C++'],
        'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],
        'Appeared': ['1991', '1995', '1985'],
        'Extension': ['.py', '.java', '.cpp'],
    }
df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])
export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored
print (df)

Her er utgangen

Programming language, Designed by, Appeared, Extension
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

Og CSV-filen opprettes på det angitte stedet.

Skriv CSV-fil med Pandas

Spørsmål og svar

En CSV-fil (kommaseparerte verdier) er en ren tekstfil som lagrer tabelldata. Hver linje er en rad, og komma skiller verdiene i hver kolonne.

Importer csv-modulen, åpne filen og send den til csv.reader() for å løkke over rader som lister. Alternativt kan du bruke csv.DictReader() for å lese hver rad som en ordbok.

Åpne en fil i skrivemodus, opprett en csv.writer(), og kall writerow() for hver rad eller writerows() for mange. Skriveren håndterer sitering og skilletegn for deg.

csv.DictReader() leser en CSV-fil inn i ordnede ordbøker, og bruker overskriftsraden som nøkler. Dette lar deg få tilgang til hver verdi etter kolonnenavn i stedet for etter indeks.

Kall pandas.read_csv('file.csv'), som laster inn CSV-filen i en DataFrame på én linje. Pandas bruker automatisk den første raden som kolonneoverskrifter.

AI-assistenter som GitHub Copilot autofullfører CSV- og Pandas-kall, genererer lese- og skriveløkker og foreslår riktig skilletegn eller sitatalternativ fra en kort beskrivelse.

Ja. AI-drevne verktøy kan automatisere parsing, rengjøring og konvertering av CSV-data, generere pandas-pipelines og legge til feilhåndtering for feilformede rader eller manglende kolonner.

Bruk den innebygde CSV-modulen for enkel og lett lesing og skriving. Velg Pandas når du trenger å filtrere, transformere eller analysere store CSV-datasett effektivt.

Oppsummer dette innlegget med: