Kako čitati CSV datoteku u Python (Modul, Pandas Primjeri)

Što je CSV datoteka?

A CSV datoteka je jednostavna vrsta datoteke običnog teksta koja koristi specifičnu strukturu za raspoređivanje tabličnih podataka. Standardni format CSV datoteke definiran je podacima o recima i stupcima gdje novi red završava svaki red da bi započeo sljedeći red, a svaki je stupac unutar retka odvojen zarezom.

CSV je uobičajeni format za razmjenu podataka jer je kompaktan, jednostavan i općenit. Mnoge online usluge svojim korisnicima omogućuju izvoz tabličnih podataka s web stranice u CSV datoteku. CSV datoteke otvorit će se u Excelu, a gotovo sve baze podataka imaju alat koji omogućuje uvoz iz CSV datoteka.

CSV ogledna datoteka

Podaci u obliku tablica nazivaju se i CSV (vrijednosti odvojene zarezom) – doslovno “vrijednosti odvojene zarezom”. Ovo je tekstualni format namijenjen za prikaz tabelarnih podataka. Svaki redak datoteke je jedan redak tablice. Vrijednosti pojedinih stupaca odvojene su znakom za razdvajanje – zarezom (,), točkom i zarezom (;) ili drugim simbolom. CSV se može lako čitati i obrađivati Python.

Razmotrite sljedeću tablicu

Podaci tablice

Programski jezik Je dizajnirao pojavio Nastavak
Python Guido van Rossum 1991 .py
Java James Goslin 1995 .Java
C++ Bjarne Stroustrup 1983 .cpp

Ovu tablicu možete predstaviti u csv-u kao u nastavku.

CSV podaci

Programski jezik, Dizajnirao, Pojavio se, Proširenje

Python, Guido van Rossum, 1991., .py

Java, James Gosling, 1995., .java

C++, Bjarne Stroustrup,1983,.cpp

Kao što vidite svaki je redak novi redak, a svaki je stupac odvojen zarezom. Ovo je primjer kako izgleda CSV datoteka.

Preuzmite CSV podatke

Python CSV modul

Python pruža CSV modul za rukovanje CSV datotekama. Da biste čitali/pisali podatke, morate se kretati kroz redove CSV-a. Morate koristiti metodu dijeljenja da biste dobili podatke iz navedenih stupaca.

Funkcije CSV modula

U dokumentaciji CSV modula možete pronaći sljedeće funkcije:

  • csv.field_size_limit – vraća maksimalnu veličinu polja
  • csv.get_dialect – dobivanje dijalekta koji je povezan s imenom
  • csv.list_dialects – prikaži sve registrirane dijalekte
  • csv.reader – čita podatke iz csv datoteke
  • csv.register_dialect – pridružite dijalekt imenu
  • csv.writer – zapis podataka u csv datoteku
  • csv.unregister_dialect – izbrišite dijalekt povezan s imenom registra dijalekata
  • csv.QUOTE_ALL – Citirati sve, bez obzira na vrstu.
  • csv.QUOTE_MINIMAL – Polja za navodnike s posebnim znakovima
  • csv.QUOTE_NONNUMERIC – Navedite sva polja koja nisu brojčane vrijednosti
  • csv.QUOTE_NONE – Ne citirajte ništa u izlazu

U ovom ćemo se vodiču usredotočiti samo na funkcije čitača i zapisivača koje vam omogućuju uređivanje, mijenjanje i manipuliranje podacima u CSV datoteci.

Kako čitati CSV datoteku u Python

U nastavku su navedeni koraci za čitanje CSV datoteke Python.

Korak 1) Za čitanje podataka iz CSV datoteka, morate koristiti funkciju čitača za generiranje objekta čitača.

Funkcija čitača razvijena je da uzme svaki redak datoteke i napravi popis svih stupaca. Zatim morate odabrati stupac za koji želite podatke varijable.

Zvuči puno zamršenije nego što jest. Pogledajmo ovo Python kod za čitanje CSV datoteke, i otkrit ćemo da rad s csv datotekom nije tako težak.

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

Korak 2) Kada izvršite gornji program, izlaz će biti:

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

Kako čitati CSV datoteku u Rječnik u Python

Također možete koristiti DictReader za čitanje CSV datoteka. Rezultati se tumače kao rječnik gdje je redak zaglavlja ključ, a ostali redovi su vrijednosti.

Razmotrite sljedeći kôd

#import necessary modules
import csv

reader = csv.DictReader(open("file2.csv"))
for raw in reader:
    print(raw)

Rezultat ovog koda je:

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

Pročitajte CSV datoteku u Rječnik

A ovaj način čitanja podataka iz CSV datoteke mnogo je lakši od prethodne metode. Međutim, ovo nije najbolji način za čitanje podataka.

Kako napisati CSV datoteku Python

Evo kako upisati CSV datoteku Python:

Kada imate skup podataka koje želite pohraniti u CSV datoteku, morate koristiti funkciju writer(). Za ponavljanje podataka preko redaka (redova), morate koristiti funkciju writerow().

Razmotrite sljedeći primjer. Podatke upisujemo u datoteku “writeData.csv” gdje je graničnik 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'])

Rezultat u csv datoteci je:

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

upišite CSV datoteku Python

Čitajte CSV datoteku koristeći Pandas

Pandas je biblioteka otvorenog koda koja vam omogućuje uvoz CSV-a Python i obavljati manipulaciju podacima. Pande pružaju jednostavan način za stvaranje, manipuliranje i brisanje podataka.

Morate instalirati pandas biblioteku s naredbom pip install pandas . U Windows, izvršit ćete ovu naredbu u naredbenom retku dok ste u Linuxu u terminalu.

Čitanje CSV-a u pandas DataFrame vrlo je brzo i jednostavno:

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

Rezultat od pročitajte CSV Pandas primjer:

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

Vrlo korisna biblioteka. U samo tri retka koda dobivate isti rezultat kao i prije. Pande znaju da je prvi redak CSV-a sadržavao nazive stupaca i automatski će ih koristiti.

Napišite CSV datoteku koristeći Pandas

Pisanje u CSV datoteku s Pandasom jednostavno je kao i čitanje. Ovdje se možete uvjeriti u to. Prvo morate stvoriti DataFrame na temelju sljedećeg Python pisati u CSV kod.

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)

Evo izlaza

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 CSV datoteka se stvara na navedenom mjestu.

Napišite CSV datoteku koristeći Pandas

Zaključak

Dakle, sada znate kako koristiti metodu 'csv' te čitati i pisati podatke u CSV formatu. CSV datoteke naširoko se koriste u softverskim aplikacijama jer su jednostavne za čitanje i upravljanje, a njihova mala veličina čini ih relativno brzima za obradu i prijenos.

Modul csv pruža razne funkcije i klase koje vam omogućuju jednostavno čitanje i pisanje. Možete pogledati službenu Python dokumentaciju i pronađite još neke zanimljive savjete i module. CSV je najbolji način za spremanje, pregledavanje i slanje podataka. Zapravo, nije tako teško naučiti kao što se čini na početku. Ali uz malo vježbe, svladat ćete to.

Pandas je izvrsna alternativa za čitanje CSV datoteka.

Također, postoje i drugi načini za raščlanjivanje tekstualnih datoteka pomoću biblioteka kao što su ANTLR, PLY i PlyPlus. Svi oni mogu podnijeti zahtjevno parsiranje, a ako jednostavna manipulacija nizovima ne radi, postoje regularni izrazi koje možete koristiti.

Sažmite ovu objavu uz: