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

⚡ Pametni sažetak

CSV datoteka pohranjuje tablične podatke kao običan tekst, sa zarezima koji odvajaju stupce i novim redovima koji odvajaju retke. Ovdje ćete naučiti čitati i pisati CSV datoteke u Python korištenjem ugrađenog csv modula i biblioteke pandas.

  • 📄 Što je to: CSV datoteka pohranjuje tablične podatke kao običan tekst odvojen zarezima.
  • ???? csv.čitač: csv.reader() čita retke iz CSV datoteke kao popise.
  • 📚 Čitač diktata: csv.DictReader() čita svaki redak u uređeni rječnik.
  • ✍️ csv.writer: csv.writer() i writerow() zapisuju retke u CSV datoteku.
  • 🐼 Pande: pandas.read_csv() i to_csv() čitaju i pišu CSV datoteke u jednom retku.
  • 🤖 Pomoć umjetne inteligencije: Alati umjetne inteligencije poput Copilota generiraju CSV kod za trenutno čitanje i pisanje.

Pročitajte CSV datoteku u Python

Š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

Pitanja i odgovori

CSV (vrijednosti odvojene zarezima) datoteka je obična tekstualna datoteka koja pohranjuje tablične podatke. Svaki redak je redak, a zarezi odvajaju vrijednosti u svakom stupcu.

Uvezite csv modul, otvorite datoteku i proslijedite je funkciji csv.reader() za petlju kroz retke kao popise. Alternativno, upotrijebite csv.DictReader() za čitanje svakog retka kao rječnika.

Otvorite datoteku u načinu pisanja, stvorite csv.writer() i pozovite writerow() za svaki redak ili writerows() za više redaka. Writer se brine za navodnike i razdjelnike umjesto vas.

csv.DictReader() čita CSV datoteku u uređene rječnike, koristeći redak zaglavlja kao ključeve. To vam omogućuje pristup svakoj vrijednosti prema nazivu stupca umjesto prema indeksu.

Pozovite pandas.read_csv('file.csv'), koja učitava CSV u DataFrame u jednom retku. Pandas automatski koristi prvi redak kao zaglavlja stupaca.

AI asistenti poput GitHub Copilota automatski dovršavaju csv i pandas pozive, generiraju petlje čitanja i pisanja te predlažu pravu opciju razdjelnika ili citata iz kratkog opisa.

Da. Alati pokretani umjetnom inteligencijom mogu automatizirati parsiranje, čišćenje i pretvaranje CSV podataka, generirati PANDAS cjevovode i dodati obradu pogrešaka za neispravne retke ili nedostajuće stupce.

Koristite ugrađeni csv modul za jednostavno i lagano čitanje i pisanje. Odaberite pande kada trebate učinkovito filtrirati, transformirati ili analizirati velike CSV skupove podataka.

Sažmite ovu objavu uz: