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.

Descărcați datele 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')])

Citiți un fișier CSV într-un dicționar

Ș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

scrieți fișierul CSV în Python

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ă.

Scrieți fișierul CSV folosind Pandas

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.