Hva er en CSV-fil?
En CSV-fil er en type ren tekstfil som bruker spesifikk strukturering for å ordne tabelldata. CSV er et vanlig format for datautveksling da det er kompakt, enkelt og generelt. Mange online-tjenester 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-fil. Standardformatet er definert av data fra rader og kolonner. Videre avsluttes hver rad av en ny linje for å begynne på neste rad. Også innenfor raden er hver kolonne skilt med komma.
I denne opplæringen lærer du:
- Hva er en CSV-fil?
- CSV-prøvefil.
- Python CSV-modul
- CSV-modulfunksjoner
- Lese CSV-filer
- Lesing som ordbok
- Skriver til CSV-filer
- Lese CSV-filer med pandaer
- Skriver til CSV-filer med Pandas
CSV-prøvefil.
Data i form av tabeller kalles også CSV (kommaadskilte verdier) - bokstavelig talt "kommaadskilte verdier." Dette er et tekstformat beregnet på presentasjon av tabeldata. Hver linje i filen er en linje i tabellen. Verdiene til individuelle kolonner er atskilt med et skilletegn - et komma (,), et semikolon (;) eller et annet symbol. CSV kan enkelt leses og behandles av Python.
Tenk på følgende Tabe
Tabelldata
Programmeringsspråk | Designet av | Dukket opp | Utvidelse |
Python | Guido van Rossum | 1991 | .py |
Java | James Gosling | 1995 | .java |
C ++ | Bjarne Stroustrup | 1983 | .cpp |
Du kan representere denne tabellen i csv som nedenfor.
CSV-data
Programmeringsspråk, Designet av, Vises, 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 skilt 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 rader med CSV. Du må bruke delingsmetoden for å hente data fra spesifiserte kolonner.
CSV-modulfunksjoner
I CSV-moduldokumentasjon finner du 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 - knytt dialekt til navn
- csv.writer - skriv data til en csv-fil
- csv.unregister_dialect - slett dialekten som er tilknyttet navnet dialektregistret
- csv.QUOTE_ALL - Sitat alt, uansett type.
- csv.QUOTE_MINIMAL - Sitatfelt med spesialtegn
- csv.QUOTE_NONNUMERIC - Sitat alle felt som ikke er tallverdi
- csv.QUOTE_NONE - Ikke siter noe i utdataene
I denne opplæringen skal vi bare fokusere på leser- og forfatterfunksjonene som lar deg redigere, endre og manipulere dataene i en CSV-fil.
Hvordan lese en CSV-fil
For å lese data fra CSV-filer, må du bruke leserfunksjonen til å 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 variabeldataene til.
Det høres mye mer intrikat ut enn det er. La oss se på dette eksemplet, og vi vil finne ut at det ikke er så vanskelig å jobbe med csv-filer.
#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)
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 som ordbok
Du kan også bruke DictReader til å lese CSV-filer. Resultatene tolkes som en ordbok der overskriftsraden er nøkkelen, og andre rader er verdier.
Vurder følgende kode
#import necessary modulesimport csvreader = 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')])
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
Når du har et datasett som du vil lagre i en CSV-fil, må du bruke forfatter () -funksjonen. For å gjenta dataene over radene (linjene), må du bruke writerow () -funksjonen.
Tenk på følgende eksempel. Vi skriver data inn i en fil "writeData.csv" der skilletegn er en apostrof.
#import necessary modulesimport csvwith open('X:\writeData.csv', mode='w') as file:writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)#way to write to csv filewriter.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, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp
Lese CSV-filer med pandaer
Pandas er et open source-bibliotek som lar deg utføre datamanipulering i Python. Pandaer er en enkel måte å opprette, manipulere og slette dataene på.
Du må installere pandabiblioteket med kommandoen pip install pandas
. I windows vil du utføre denne kommandoen i ledeteksten mens du er i Linux i terminalen.
Å lese CSV i en panda DataFrame er veldig raskt og enkelt:
#import necessary modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)
Resultat:
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Veldig nyttig bibliotek. På bare tre linjer med kode får du det samme resultatet som tidligere. Pandaer vet at den første linjen i CSV inneholdt kolonnenavn, og den vil bruke dem automatisk.
Skriver til CSV-filer med Pandas
Å skrive til CSV-fil med Pandas er like enkelt som å lese. Her kan du overbevise i det. Først må du opprette DataFrame basert på følgende kode.
from pandas import DataFrameC = {'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 storedprint (df)
Her er resultatet
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Og CSV-fil opprettes på det angitte stedet.
Konklusjon
Så nå vet du hvordan du bruker metoden 'csv' og også leser og skriver data i CSV-format. CSV-filer er mye brukt i programvare fordi de er enkle å lese og administrere, og den lille størrelsen gjør dem relativt raske for behandling og overføring.
CSV-modulen inneholder forskjellige funksjoner og klasser som lar deg lese og skrive enkelt. Du kan se på den offisielle Python-dokumentasjonen og finne noen flere interessante tips og moduler. CSV er den beste måten å lagre, vise og sende data på. Egentlig er det ikke så vanskelig å lære som det virker i begynnelsen. Men med litt øvelse vil du mestre det.
Pandas er et flott alternativ for å lese CSV-filer.
Det er også andre måter å analysere tekstfiler med biblioteker som ANTLR, PLY og PlyPlus. De kan alle håndtere kraftig analyse, og hvis enkel strengmanipulering ikke fungerer, er det vanlige uttrykk du kan bruke.