Kuidas CSV-faili sisse lugeda Python (Moodul, Panda näited)
Mis on CSV-fail?
A CSV-fail on lihtsat tüüpi lihttekstifail, mis kasutab tabeliandmete korraldamiseks kindlat struktuuri. CSV-faili standardvormingu määravad ridade ja veergude andmed, kus reavahetus lõpetab iga rea, et alustada järgmist rida, ja iga veerg eraldatakse reas komaga.
CSV on andmevahetuse levinud vorming, kuna see on kompaktne, lihtne ja üldine. Paljud võrguteenused võimaldavad kasutajatel eksportida veebisaidilt tabeliandmeid CSV-faili. CSV-failid avanevad Excelisse ja peaaegu kõigis andmebaasides on tööriist CSV-failidest importimiseks.
CSV näidisfail
Tabelite kujul olevaid andmeid nimetatakse ka CSV-ks (komadega eraldatud väärtused) – sõna-sõnalt "komadega eraldatud väärtused". See on tabeliandmete esitamiseks mõeldud tekstivorming. Iga faili rida on üks tabeli rida. Üksikute veergude väärtused eraldatakse eraldussümboliga – koma (,), semikooloniga (;) või muu sümboliga. CSV-d saab hõlpsasti lugeda ja töödelda Python.
Kaaluge järgmist tabelit
Tabeli andmed
Programmeerimiskeel | Disainitud | Ilmus | Laiendamine |
---|---|---|---|
Python | Guido van Rossum | 1991 | .py |
Java | james goslin | 1995 | .Java |
C++ | Bjarne Stroustrup | 1983 | .cpp |
Saate seda tabelit csv-vormingus esitada järgmiselt.
CSV-andmed
Programmeerimiskeel, kujundas, ilmus, laiendus
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup, 1983,.cpp
Nagu näete, on iga rida uus rida ja iga veerg eraldatakse komaga. See on näide sellest, kuidas CSV-fail välja näeb.
Python CSV moodul
Python pakub CSV-moodulit CSV-failide käsitlemiseks. Andmete lugemiseks/kirjutamiseks peate sirvima CSV-faili ridu. Määratud veergudest andmete hankimiseks peate kasutama poolitusmeetodit.
CSV mooduli funktsioonid
CSV-mooduli dokumentatsioonist leiate järgmised funktsioonid:
- csv.field_size_limit – tagastab maksimaalse välja suuruse
- csv.get_dialec – hankige nimega seotud dialekt
- csv.list_dialects – kuva kõik registreeritud murded
- csv.reader – andmete lugemine csv-failist
- csv.register_dialec – seo dialekt nimega
- csv.writer – andmete kirjutamine csv-faili
- csv.unregister_dialec – kustutage murderegistri nimega seotud dialekt
- csv.QUOTE_ALL – Tsiteeri kõike, olenemata tüübist.
- csv.QUOTE_MINIMAL - Erimärkidega tsiteerimisväljad
- csv.QUOTE_NONNUMERIC – Tsiteeri kõik väljad, mis ei ole numbriväärtused
- csv.QUOTE_NONE – Ärge tsiteerige väljundis midagi
Selles õpetuses keskendume ainult lugeja- ja kirjutamisfunktsioonidele, mis võimaldavad teil CSV-failis olevaid andmeid redigeerida, muuta ja töödelda.
Kuidas CSV-faili sisse lugeda Python
Allpool on toodud juhised CSV-faili sisselugemiseks Python.
Step 1) CSV-failidest andmete lugemiseks peate lugejaobjekti genereerimiseks kasutama lugeja funktsiooni.
Lugeja funktsioon on välja töötatud faili iga rea võtmiseks ja kõigi veergude loendi loomiseks. Seejärel peate valima veeru, mille jaoks soovite muutujaandmeid.
See kõlab palju keerulisemalt kui see on. Vaatame seda Python koodi CSV-faili lugemiseks ja saame teada, et csv-failiga töötamine pole nii keeruline.
#import necessary modules import csv with open('X:\data.csv','rt')as f: data = csv.reader(f) for row in data: print(row)
Step 2) Kui käivitate ülaltoodud programmi, on väljundiks:
['Programming language; Designed by; Appeared; Extension'] ['Python; Guido van Rossum; 1991; .py'] ['Java; James Gosling; 1995; .java'] ['C++; Bjarne Stroustrup;1983;.cpp']
Kuidas lugeda CSV-faili sõnastikku Python
Samuti saate CSV-failide lugemiseks kasutada DictReaderit. Tulemusi tõlgendatakse sõnaraamatuna, kus päiserida on võti ja teised read on väärtused.
Mõelge järgmisele koodile
#import necessary modules import csv reader = csv.DictReader(open("file2.csv")) for raw in reader: print(raw)
Selle koodi tulemus on:
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')])
Ja see viis CSV-failist andmete lugemiseks on palju lihtsam kui varasem meetod. See pole aga parim viis andmete lugemiseks.
Kuidas CSV-faili sisse kirjutada Python
Siit saate teada, kuidas kirjutada CSV-faili Python:
Kui teil on hulk andmeid, mida soovite CSV-faili salvestada, peate kasutama funktsiooni writer (). Andmete itereerimiseks ridade (ridade) vahel peate kasutama funktsiooni writerow ().
Mõelge järgmisele näitele. Kirjutame andmed faili "writeData.csv", kus eraldaja on apostroof.
#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'])
Tulemus csv-failis on:
Programming language, Designed by, Appeared, Extension Python, Guido van Rossum, 1991, .py Java, James Gosling, 1995, .java C++, Bjarne Stroustrup,1983,.cpp
Lugege CSV-faili Pandade abil
Pandas on avatud lähtekoodiga teek, mis võimaldab teil importida CSV-d Python ja teha andmetega manipuleerimist. Pandad pakuvad lihtsat viisi andmete loomiseks, manipuleerimiseks ja kustutamiseks.
Peate installima pandateegi käsuga pip install pandas . sisse Windows, käivitate selle käsu käsuviibas, kui olete Linuxis terminalis.
CSV lugemine panda DataFrame'i on väga kiire ja lihtne:
#import necessary modules import pandas result = pandas.read_csv('X:\data.csv') print(result)
Tulemuseks loe CSV Pandasid Näiteks:
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
Väga kasulik raamatukogu. Ainult kolme koodireaga saate sama tulemuse, mis varem. Pandad teavad, et CSV-faili esimene rida sisaldas veergude nimesid ja kasutab neid automaatselt.
Kirjutage Pandase abil CSV-fail
Pandasega CSV-faili kirjutamine on sama lihtne kui lugemine. Siin saate selles veenda. Kõigepealt peate looma DataFrame'i järgmise põhjal Python kirjutage CSV-koodi.
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)
Siin on väljund
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
Ja CSV-fail luuakse määratud asukohta.
Järeldus
Nüüd teate, kuidas kasutada meetodit "csv" ning lugeda ja kirjutada andmeid CSV-vormingus. CSV-faile kasutatakse tarkvararakendustes laialdaselt, kuna neid on lihtne lugeda ja hallata ning nende väiksus muudab nende töötlemise ja edastamise suhteliselt kiireks.
CSV-moodul pakub erinevaid funktsioone ja klasse, mis võimaldavad teil hõlpsalt lugeda ja kirjutada. Võite vaadata ametnikku Python dokumentatsiooni ja leida veel huvitavaid näpunäiteid ja mooduleid. CSV on parim viis andmete salvestamiseks, vaatamiseks ja saatmiseks. Tegelikult pole seda nii raske õppida, kui alguses tundub. Kuid vähese harjutamisega saate sellest aru.
Pandas on suurepärane alternatiiv CSV-failide lugemiseks.
Samuti on tekstifailide sõelumiseks muid viise selliste teekide abil nagu ANTLR, PLY ja PlyPlus. Nad kõik saavad hakkama raske parsimisega ja kui lihtne stringiga manipuleerimine ei tööta, on regulaaravaldisi, mida saate kasutada.