CSV failu lasīšana un rakstīšana Python, izmantojot CSV moduli & Pandas

Satura rādītājs:

Anonim

Kas ir CSV fails?

CSV fails ir vienkārša teksta faila veids, kurā tabulu datu sakārtošanai tiek izmantota īpaša strukturēšana. CSV ir izplatīts datu apmaiņas formāts, jo tas ir kompakts, vienkāršs un vispārīgs. Daudzi tiešsaistes pakalpojumi ļauj lietotājiem eksportēt tabulas datus no vietnes CSV failā. CSV faili tiks atvērti programmā Excel, un gandrīz visās datu bāzēs ir rīks, kas ļauj importēt no CSV faila. Standarta formātu nosaka rindu un kolonnu dati. Turklāt katra rinda tiek pārtraukta ar jaunu rindu, lai sāktu nākamo rindu. Arī rindā katru kolonnu atdala komats.

Šajā apmācībā jūs uzzināsiet:

  • Kas ir CSV fails?
  • CSV parauga fails.
  • Python CSV modulis
  • CSV moduļa funkcijas
  • CSV failu lasīšana
  • Lasīšana kā vārdnīca
  • Rakstīšana CSV failos
  • CSV failu lasīšana ar pandām
  • Rakstīšana CSV failos ar pandām

CSV parauga fails.

Datus tabulu veidā sauc arī par CSV (ar komatiem atdalītas vērtības) - burtiski "ar komatiem atdalītas vērtības". Šis ir teksta formāts, kas paredzēts tabulas datu prezentēšanai. Katra faila rinda ir viena tabulas rinda. Atsevišķu kolonnu vērtības atdala ar atdalītāja simbolu - komatu (,), semikolu (;) vai citu simbolu. CSV var viegli lasīt un apstrādāt Python.

Apsveriet šo Tabe

Tabulas dati

Programmēšanas valoda Projektējis Parādījās Pagarinājums
Python Gvido van Rosums 1991. gads .py
Java Džeimss Goslings 1995. gads .java
C ++ Bjarne Stroustrup 1983. gads .cpp

Jūs varat attēlot šo tabulu csv formātā, kā norādīts zemāk.

CSV dati

Programmēšanas valoda, Designed by, parādījās, paplašinājums

Pitons, Gvido van Rossums, 1991., .py

Java, Džeimss Goslings, 1995, .java

C ++, Bjarne Stroustrup, 1983, .pp

Kā redzat, katra rinda ir jauna rinda, un katra kolonna ir atdalīta ar komatu. Šis ir CSV faila izskata piemērs.

Lejupielādējiet CSV datus

Python CSV modulis

Python nodrošina CSV moduli, lai apstrādātu CSV failus. Lai lasītu / rakstītu datus, jums jāpārskata CSV rindas. Lai iegūtu datus no norādītajām kolonnām, jums jāizmanto sadalīšanas metode.

CSV moduļa funkcijas

CSV moduļa dokumentācijā varat atrast šādas funkcijas:

  • csv.field_size_limit - atgriež maksimālo lauka lielumu
  • csv.get_dialect - iegūstiet dialektu, kas ir saistīts ar vārdu
  • csv.list_dialects - parādīt visus reģistrētos dialektus
  • csv.reader - nolasa datus no csv faila
  • csv.register_dialect - saistīt dialektu ar vārdu
  • csv.writer - ierakstiet datus csv failā
  • csv.unregister_dialect - izdzēsiet dialektu, kas saistīts ar dialektu reģistra nosaukumu
  • csv.QUOTE_ALL - Citēt visu, neatkarīgi no veida.
  • csv.QUOTE_MINIMAL - Citātu lauki ar īpašām rakstzīmēm
  • csv.QUOTE_NONNUMERIC - Citēt visus laukus, kas nav skaitļu vērtība
  • csv.QUOTE_NONE - necitējiet neko izvadē

Šajā apmācībā mēs koncentrēsimies tikai uz lasītāja un rakstītāja funkcijām, kas ļauj rediģēt, modificēt un manipulēt ar CSV faila datiem.

Kā lasīt CSV failu

Lai lasītu datus no CSV failiem, lasītāja objekta ģenerēšanai jāizmanto funkcija lasītājs.

Lasītāja funkcija ir izstrādāta, lai ņemtu katru faila rindu un izveidotu visu kolonnu sarakstu. Pēc tam jums jāizvēlas kolonna, kurai vēlaties iegūt mainīgos datus.

Tas izklausās daudz sarežģītāk, nekā tas ir. Apskatīsim šo piemēru, un mēs uzzināsim, ka strādāt ar csv failu nav tik grūti.

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

Izpildot iepriekš minēto programmu, izeja būs:

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

Kā lasīt CSV kā vārdnīcu

Varat arī izmantot DictReader, lai lasītu CSV failus. Rezultāti tiek interpretēti kā vārdnīca, kurā galvenes rinda ir atslēga, bet citas rindas ir vērtības.

Apsveriet šādu kodu

#import necessary modulesimport csvreader = csv.DictReader(open("file2.csv"))for raw in reader:print(raw)

Šī koda rezultāts ir:

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

Šādā veidā datu lasīšana no CSV faila ir daudz vienkāršāka nekā iepriekšējā metode. Tomēr tas nav labākais datu lasīšanas veids.

Kā rakstīt CSV failu

Ja jums ir datu kopa, kuru vēlaties saglabāt CSV failā, jums jāizmanto rakstītāja () funkcija. Lai atkārtotu datus pa rindām (rindām), jāizmanto funkcija writow ().

Apsveriet šādu piemēru. Mēs ierakstām datus failā "writeData.csv", kur norobežotājs ir apostrofs.

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

Rezultāts csv failā ir:

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

CSV failu lasīšana ar pandām

Pandas ir atvērtā koda bibliotēka, kas ļauj jums veikt datu apstrādi Python. Pandas nodrošina vienkāršu veidu, kā izveidot, manipulēt un dzēst datus.

Jums jāinstalē pandas bibliotēka ar komandu pip install pandas . Logos jūs izpildīsit šo komandu komandu uzvednē, kamēr Linux terminālā.

CSV lasīšana pandas DataFrame ir ļoti ātra un vienkārša:

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

Rezultāts:

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

Ļoti noderīga bibliotēka. Tikai trīs koda rindiņās iegūsiet tādu pašu rezultātu kā iepriekš. Pandas zina, ka CSV pirmajā rindiņā bija kolonnu nosaukumi, un tā tos automātiski izmantos.

Rakstīšana CSV failos ar pandām

Rakstīšana CSV failā ar Pandas ir tikpat vienkārša kā lasīšana. Šeit jūs varat tajā pārliecināt. Vispirms jums jāizveido DataFrame, pamatojoties uz šo kodu.

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)

Šeit ir izeja

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

CSV fails tiek izveidots norādītajā vietā.

Secinājums

Tātad, tagad jūs zināt, kā izmantot metodi 'csv', kā arī lasīt un rakstīt datus CSV formātā. CSV faili tiek plaši izmantoti programmatūras lietojumprogrammās, jo tos ir viegli lasīt un pārvaldīt, un to mazais izmērs padara tos salīdzinoši ātrus apstrādei un pārsūtīšanai.

Csv modulis nodrošina dažādas funkcijas un klases, kas ļauj ērti lasīt un rakstīt. Jūs varat apskatīt oficiālo Python dokumentāciju un atrast vēl dažus interesantus padomus un moduļus. CSV ir labākais veids, kā saglabāt, apskatīt un nosūtīt datus. Patiesībā to nemaz nav tik grūti iemācīties, kā šķiet sākumā. Bet ar nelielu praksi jūs to apgūsiet.

Pandas ir lieliska alternatīva CSV failu lasīšanai.

Ir arī citi veidi, kā parsēt teksta failus ar bibliotēkām, piemēram, ANTLR, PLY un PlyPlus. Viņi visi var tikt galā ar lieljaudas parsēšanu, un, ja vienkārša virknes manipulācija nedarbojas, varat izmantot regulāras izteiksmes.