Cum să citiți fișierul CSV în Python (Modul, exemple de panda)
Ce este un fișier CSV?
A Fișier CSV este un tip simplu de fișier text simplu care utilizează o structură specifică pentru a aranja datele tabulare. Formatul standard al unui fișier CSV este definit de date de rânduri și coloane, în care o nouă linie termină fiecare rând pentru a începe următorul rând și fiecare coloană este separată de o virgulă în rând.
CSV este un format comun pentru schimbul de date, deoarece este compact, simplu și general. Multe servicii online permit utilizatorilor lor să exporte date tabelare de pe site într-un fișier CSV. Fișierele CSV se vor deschide în Excel și aproape toate bazele de date au un instrument care permite importul din fișiere CSV.
Fișier exemplu CSV
Datele sub formă de tabele se mai numesc și CSV (valori separate prin virgulă) - literalmente „valori separate prin virgulă”. Acesta este un format text destinat prezentării datelor tabelare. Fiecare linie a fișierului este o linie a tabelului. Valorile coloanelor individuale sunt separate printr-un simbol separator – virgulă (,), punct și virgulă (;) sau alt simbol. CSV poate fi ușor de citit și procesat de Python.
Luați în considerare următorul tabel
Date de tabel
Limbaj de programare | Proiectat de | A apărut | Extensie |
---|---|---|---|
Python | Guido van Rossum | 1991 | PY |
Java | James goslin | 1995 | .Java |
C++ | Bjarne Stroustrup | 1983 | .cpp |
Puteți reprezenta acest tabel în csv ca mai jos.
Date CSV
Limbajul de programare, Proiectat de, Apărut, Extensie
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp
După cum puteți vedea, fiecare rând este o linie nouă, iar fiecare coloană este separată prin virgulă. Acesta este un exemplu despre cum arată un fișier CSV.
Python Modulul CSV
Python oferă un modul CSV pentru a gestiona fișierele CSV. Pentru a citi/scrie date, trebuie să parcurgeți rândurile CSV. Trebuie să utilizați metoda split pentru a obține date din coloanele specificate.
Funcțiile modulului CSV
În documentația modulului CSV puteți găsi următoarele funcții:
- csv.field_size_limit – returnează dimensiunea maximă a câmpului
- csv.get_dialect – obțineți dialectul care este asociat cu numele
- csv.list_dialects – arată toate dialectele înregistrate
- csv.reader – citește datele dintr-un fișier csv
- csv.register_dialect – asociază dialectul cu numele
- csv.writer – scrieți date într-un fișier csv
- csv.unregister_dialect – ștergeți dialectul asociat cu numele registrului de dialecte
- csv.QUOTE_ALL – Citați totul, indiferent de tip.
- csv.QUOTE_MINIMAL – Câmpuri de citate cu caractere speciale
- csv.QUOTE_NONNUMERIC – Cotați toate câmpurile care nu sunt valori numerice
- csv.QUOTE_NONE – Nu cita nimic în ieșire
În acest tutorial, ne vom concentra doar pe funcțiile de citire și scriere care vă permit să editați, să modificați și să manipulați datele dintr-un fișier CSV.
Cum să citiți un fișier CSV în Python
Mai jos sunt pașii pentru a citi fișierul CSV Python.
Pas 1) Pentru a citi date din fișierele CSV, trebuie să utilizați funcția de citire pentru a genera un obiect de citire.
Funcția de citire este dezvoltată pentru a lua fiecare rând al fișierului și a face o listă cu toate coloanele. Apoi, trebuie să alegeți coloana pentru care doriți datele variabile.
Sună mult mai complicat decât este. Să aruncăm o privire la asta Python cod pentru a citi fișierul CSV și vom afla că lucrul cu fișierul csv nu este atât de greu.
#import necessary modules import csv with open('X:\data.csv','rt')as f: data = csv.reader(f) for row in data: print(row)
Pas 2) Când executați programul de mai sus, rezultatul va fi:
['Programming language; Designed by; Appeared; Extension'] ['Python; Guido van Rossum; 1991; .py'] ['Java; James Gosling; 1995; .java'] ['C++; Bjarne Stroustrup;1983;.cpp']
Cum să citiți un fișier CSV într-un dicționar în Python
De asemenea, puteți utiliza DictReader pentru a citi fișiere CSV. Rezultatele sunt interpretate ca un dicționar în care rândul antetului este cheia, iar alte rânduri sunt valori.
Luați în considerare următorul cod
#import necessary modules import csv reader = csv.DictReader(open("file2.csv")) for raw in reader: print(raw)
Rezultatul acestui cod este:
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')])
Și acest mod de a citi datele din fișierul CSV este mult mai ușor decât metoda anterioară. Cu toate acestea, acesta nu este cel mai bun mod de a citi datele.
Cum se scrie fișierul CSV în Python
Iată cum să scrieți un fișier CSV în Python:
Când aveți un set de date pe care doriți să le stocați într-un fișier CSV, trebuie să utilizați funcția writer(). Pentru a itera datele peste rânduri (linii), trebuie să utilizați funcția writerow().
Luați în considerare următorul exemplu. Scriem datele într-un fișier „writeData.csv” unde delimitatorul este un apostrof.
#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'])
Rezultatul în fișierul csv este:
Programming language, Designed by, Appeared, Extension Python, Guido van Rossum, 1991, .py Java, James Gosling, 1995, .java C++, Bjarne Stroustrup,1983,.cpp
Citiți fișierul CSV folosind Pandas
Pandas este o bibliotecă opensource care vă permite să importați CSV în Python și să efectueze manipularea datelor. Pandas oferă o modalitate ușoară de a crea, manipula și șterge datele.
Trebuie să instalați biblioteca Pandas cu comanda pip install pandas . În Windows, veți executa această comandă în Command Prompt în timp ce sunteți în Linux în Terminal.
Citirea CSV într-un Pandas DataFrame este foarte rapidă și ușoară:
#import necessary modules import pandas result = pandas.read_csv('X:\data.csv') print(result)
Rezultatul citește CSV Pandas exemplu:
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
Biblioteca foarte utila. În doar trei linii de cod aveți același rezultat ca mai devreme. Pandas știu că prima linie a CSV conține nume de coloane și le va folosi automat.
Scrieți fișierul CSV folosind Pandas
Scrierea în fișierul CSV cu Pandas este la fel de ușoară ca și citirea. Aici te poți convinge în ea. Mai întâi trebuie să creați DataFrame pe baza următoarelor Python scrieți în codul CSV.
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)
Aici este rezultatul
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
Și fișierul CSV este creat în locația specificată.
Concluzie
Deci, acum știți cum folosiți metoda „csv” și, de asemenea, citiți și scrieți date în format CSV. Fișierele CSV sunt utilizate pe scară largă în aplicațiile software deoarece sunt ușor de citit și gestionat, iar dimensiunea lor mică le face să fie relativ rapide pentru procesare și transmitere.
Modulul csv oferă diverse funcții și clase care vă permit să citiți și să scrieți cu ușurință. Te poți uita la oficial Python documentație și găsiți câteva sfaturi și module mai interesante. CSV este cea mai bună modalitate de a salva, vizualiza și trimite date. De fapt, nu este atât de greu de învățat pe cât pare la început. Dar cu puțină practică, o vei stăpâni.
Pandas este o alternativă excelentă pentru a citi fișierele CSV.
De asemenea, există și alte modalități de a analiza fișiere text cu biblioteci precum ANTLR, PLY și PlyPlus. Toate pot face față unei analize grele și, dacă manipularea simplă a șirurilor nu funcționează, există expresii regulate pe care le puteți folosi.