CSV-failide lugemine ja kirjutamine Pythonis CSV-mooduli abil & Pandad

Lang L: none (table-of-contents):

Anonim

Mis on CSV-fail?

CSV-fail on lihttekstifaili tüüp, mis kasutab tabeliandmete korrastamiseks spetsiifilist struktureerimist. CSV on levinud andmevahetuse formaat, kuna see on kompaktne, lihtne ja üldine. Paljud võrguteenused võimaldavad selle kasutajatel eksportida tabeliandmeid veebisaidilt CSV-faili. CSV-failid avanevad Excelisse ja peaaegu kõigis andmebaasides on tööriist, mis võimaldab CSV-failist importida. Standardvorming on määratletud ridade ja veergude andmetega. Lisaks lõpetatakse iga rida uue reaga, et alustada järgmist rida. Ka rea ​​sees eraldatakse iga veerg komaga.

Selles õpetuses saate teada:

  • Mis on CSV-fail?
  • CSV näidisfail.
  • Pythoni CSV moodul
  • CSV mooduli funktsioonid
  • CSV-failide lugemine
  • Lugemine sõnaraamatuna
  • CSV-failidesse kirjutamine
  • CSV-failide lugemine pandadega
  • Pandadega CSV-failidesse kirjutamine

CSV näidisfail.

Tabelite kujul olevaid andmeid nimetatakse ka CSV-deks (komadega eraldatud väärtused) - sõna otseses mõttes "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 (,), semikoolon (;) või muu sümbol. CSV-d saab Python hõlpsasti lugeda ja töödelda.

Mõelge järgmisele tabele

Tabeli andmed

Programmeerimiskeel Disainitud Ilmunud Pikendamine
Python Guido van Rossum 1991 .py
Java James Gosling 1995 .java
C ++ Bjarne Stroustrup 1983 .cpp

Saate seda tabelit CSV-s esindada allpool.

CSV andmed

Programmeerimiskeel, kujundanud, ilmunud, laiendus

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C ++, Bjarne Stroustrup, 1983, .pp

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.

CSV-andmete allalaadimine

Pythoni CSV moodul

Python pakub CSV-moodulite haldamiseks CSV-faile. Andmete lugemiseks / kirjutamiseks peate CSV ridadest läbi liikuma. Andmete saamiseks määratud veergudest peate kasutama jagamismeetodit.

CSV mooduli funktsioonid

CSV mooduli dokumentatsioonist leiate järgmised funktsioonid:

  • csv.field_size_limit - tagastab välja maksimaalse suuruse
  • csv.get_dialect - hankige nimega seotud murre
  • csv.list_dialects - kuva kõik registreeritud murded
  • csv.reader - andmete lugemine csv-failist
  • csv.register_dialect - seostage murre nimega
  • csv.writer - kirjutage andmed csv-faili
  • csv.unregister_dialect - kustutage murderegister nimega seotud murre
  • csv.QUOTE_ALL - tsiteeri kõike, olenemata tüübist.
  • csv.QUOTE_MINIMAL - tsitaadiväljad erimärkidega
  • csv.QUOTE_NONNUMERIC - tsiteeri kõik väljad, mis pole arvväärtused
  • csv.QUOTE_NONE - ärge tsiteerige väljundis midagi

Selles õpetuses keskendume ainult lugeja ja kirjutaja funktsioonidele, mis võimaldavad teil CSV-failis olevaid andmeid redigeerida, muuta ja manipuleerida.

Kuidas lugeda CSV-faili

CSV-failide andmete lugemiseks peate lugejaobjekti loomiseks kasutama lugejafunktsiooni.

Lugejafunktsioon on välja töötatud faili iga rea ​​võtmiseks ja kõigi veergude loendi koostamiseks. Seejärel peate valima veeru, mille muutuja andmed soovite.

See kõlab palju keerukamalt kui see on. Vaatame seda näidet ja saame teada, et csv-failiga töötamine pole nii raske.

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

Ülaltoodud programmi käivitamisel on väljund:

['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-d sõnaraamatuna

Samuti saate CSV-failide lugemiseks kasutada DictReaderit. Tulemusi tõlgendatakse sõnaraamatuna, kus võti on päiserida ja muud read on väärtused.

Mõelge järgmisele koodile

#import necessary modulesimport csvreader = 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 varasemast meetodist palju lihtsam. Kuid see pole parim viis andmete lugemiseks.

Kuidas CSV-faili kirjutada

Kui teil on hulk andmeid, mida soovite CSV-faili salvestada, peate kasutama function (). Ridade (ridade) andmete kordamiseks peate kasutama funktsiooni writow ().

Vaatleme järgmist näidet. Kirjutame andmed faili "writeData.csv", kus eraldaja on apostroof.

#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'])

Tulemus csv-failis on:

Programming language, Designed by, Appeared, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp

CSV-failide lugemine pandadega

Pandas on avatud lähtekoodiga teek, mis võimaldab teil Pythonis andmetega manipuleerida. Pandad pakuvad lihtsat viisi andmete loomiseks, manipuleerimiseks ja kustutamiseks.

Peate installima pandade kogu käsuga pip install pandas . Akendes täidate selle käsu käsuviibal, kui Linuxis on terminal.

CSV lugemine pandade DataFrame'iks on väga kiire ja lihtne:

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

Tulemus:

Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp 

Väga kasulik raamatukogu. Ainult kolme koodireaga saate sama tulemuse nagu varem. Pandad teavad, et CSV esimene rida sisaldas veerunimesid ja see kasutab neid automaatselt.

Pandadega CSV-failidesse kirjutamine

Pandadega CSV-faili kirjutamine on sama lihtne kui lugemine. Siin saate selles veenda. Kõigepealt peate looma DataFrame'i järgmise koodi põhjal.

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)

Siin on väljund

Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp

Ja CSV-fail luuakse määratud kohas.

Järeldus

Nüüd teate nüüd, kuidas kasutada meetodit „csv” ning lugeda ja kirjutada andmeid ka CSV-vormingus. CSV-faile kasutatakse tarkvararakendustes laialdaselt, kuna neid on lihtne lugeda ja hallata ning nende väike suurus muudab need töötlemiseks ja edastamiseks suhteliselt kiireks.

Csv moodul pakub erinevaid funktsioone ja klasse, mis võimaldavad teil hõlpsalt lugeda ja kirjutada. Võite vaadata Pythoni ametlikku 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 harjutamise abil saate selle hakkama.

Pandas on suurepärane alternatiiv CSV-failide lugemiseks.

Samuti on muid viise tekstifailide sõelumiseks teekidega, näiteks ANTLR, PLY ja PlyPlus. Nad saavad kõik hakkama suure koormusega parsimisega ja kui stringidega lihtne manipuleerimine ei toimi, saate kasutada regulaaravaldisi.