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.

Laadige alla CSV andmed

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

Lugege CSV-faili sõnastikku

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

kirjutage sisse CSV-fail Python

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.

Kirjutage Pandase abil CSV-fail

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.