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




