Hogyan lehet beolvasni a CSV fájlt Python (Modul, pandák példák)
Mi az a CSV-fájl?
A CSV fájl egy egyszerű típusú egyszerű szöveges fájl, amely meghatározott struktúrát használ a táblázatos adatok rendezésére. A CSV-fájlok szabványos formátumát a sorok és oszlopok adatai határozzák meg, ahol az újsor minden sort lezár a következő sor kezdetéhez, és minden oszlopot vessző választ el a sorban.
A CSV az adatcsere gyakori formátuma, mivel kompakt, egyszerű és általános. Számos online szolgáltatás lehetővé teszi a felhasználók számára, hogy táblázatos adatokat exportáljanak a webhelyről CSV-fájlba. A CSV-fájlok Excelben nyílnak meg, és szinte minden adatbázis rendelkezik olyan eszközzel, amely lehetővé teszi a CSV-fájlokból történő importálást.
CSV mintafájl
A táblázatok formájában lévő adatokat CSV-nek (vesszővel elválasztott értékek) is nevezik – szó szerint „vesszővel elválasztott értékek”. Ez egy szöveges formátum, amely táblázatos adatok megjelenítésére szolgál. A fájl minden sora a táblázat egy sora. Az egyes oszlopok értékeit elválasztó szimbólum – vessző (,), pontosvessző (;) vagy más szimbólum – választja el. A CSV könnyen olvasható és feldolgozható Python.
Tekintsük a következő táblázatot
Táblázat adatok
Programozási nyelv | Tervezte | Megjelent | Kiterjesztés |
---|---|---|---|
Python | Guido van Rossum | 1991 | .py |
Java | james goslin | 1995 | .Jáva |
C++ | Bjarne Stroustrup | 1983 | .cpp |
Ezt a táblázatot az alábbiak szerint ábrázolhatja csv-ben.
CSV adatok
Programozási nyelv, Tervezte, Megjelent, Kiterjesztés
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup, 1983,.cpp
Mint látható, minden sor egy új sor, és minden oszlop vesszővel van elválasztva. Ez egy példa arra, hogyan néz ki egy CSV-fájl.
Python CSV-modul
Python CSV-modult biztosít a CSV-fájlok kezelésére. Adatok olvasásához/írásához a CSV-fájl sorai között kell végighaladni. A felosztási módszert kell használnia a megadott oszlopokból származó adatok lekéréséhez.
CSV-modul funkciók
A CSV modul dokumentációjában a következő funkciók találhatók:
- csv.field_size_limit – a maximális mezőméretet adja vissza
- csv.get_dialekt – a névhez társított nyelvjárás lekérése
- csv.list_dialects – az összes regisztrált dialektus megjelenítése
- csv.reader – adatok olvasása csv fájlból
- csv.register_dialec – a dialektus társítása a névvel
- csv.writer – adatok írása csv fájlba
- csv.unregister_dialec – törölje a dialektusnyilvántartásban szereplő névhez tartozó nyelvjárást
- csv.QUOTE_ALL – Mindent idéz, típustól függetlenül.
- csv.QUOTE_MINIMAL – Idézet mezők speciális karakterekkel
- csv.QUOTE_NONNUMERIC – Minden olyan mezőt idézzen, amely nem számérték
- csv.QUOTE_NONE – Ne idézzen semmit a kimenetben
Ebben az oktatóanyagban csak az olvasó és író funkciókra fogunk összpontosítani, amelyek lehetővé teszik a CSV-fájlban lévő adatok szerkesztését, módosítását és kezelését.
Hogyan lehet beolvasni egy CSV-fájlt Python
Az alábbiakban a CSV-fájl beolvasásának lépései találhatók Python.
Step 1) Az adatok CSV-fájlokból történő olvasásához az olvasó funkciót kell használnia egy olvasó objektum létrehozásához.
Az olvasó funkciót úgy fejlesztették ki, hogy a fájl minden sorát lefoglalja, és listát készítsen az összes oszlopról. Ezután ki kell választania azt az oszlopot, amelyhez a változó adatokat kívánja megjeleníteni.
Sokkal bonyolultabbnak hangzik, mint amilyen. Vessünk egy pillantást erre Python kódot a CSV fájl olvasásához, és rá fogunk jönni, hogy a csv fájllal való munka nem is olyan nehéz.
#import necessary modules import csv with open('X:\data.csv','rt')as f: data = csv.reader(f) for row in data: print(row)
Step 2) Amikor végrehajtja a fenti programot, a kimenet a következő lesz:
['Programming language; Designed by; Appeared; Extension'] ['Python; Guido van Rossum; 1991; .py'] ['Java; James Gosling; 1995; .java'] ['C++; Bjarne Stroustrup;1983;.cpp']
Hogyan lehet CSV-fájlt szótárba olvasni Python
A DictReader segítségével CSV-fájlokat is olvashat. Az eredményeket a rendszer szótárként értelmezi, ahol a fejlécesor a kulcs, a többi sor pedig az értékek.
Vegye figyelembe a következő kódot
#import necessary modules import csv reader = csv.DictReader(open("file2.csv")) for raw in reader: print(raw)
Ennek a kódnak az eredménye:
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')])
És ez a módszer az adatok CSV-fájlból való olvasására sokkal egyszerűbb, mint a korábbi módszer. Ez azonban nem a legjobb módja az adatok olvasásának.
Hogyan írjunk be CSV fájlt Python
Így írhat be egy CSV-fájlt Python:
Ha van egy adatkészlete, amelyet egy CSV-fájlban szeretne tárolni, akkor a writer() függvényt kell használnia. Az adatok sor(ok) közötti iterálásához a writerow() függvényt kell használni.
Tekintsük a következő példát. Az adatokat egy „writeData.csv” fájlba írjuk, ahol a határoló jel egy aposztróf.
#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'])
Az eredmény a csv fájlban:
Programming language, Designed by, Appeared, Extension Python, Guido van Rossum, 1991, .py Java, James Gosling, 1995, .java C++, Bjarne Stroustrup,1983,.cpp
Olvassa el a CSV-fájlt a Pandas használatával
A Pandas egy nyílt forráskódú könyvtár, amely lehetővé teszi a CSV importálását Python és adatkezelést hajt végre. A pandák egyszerű módot kínálnak az adatok létrehozására, manipulálására és törlésére.
Telepítenie kell a pandas könyvtárat pip install pandas paranccsal. Ban ben Windows, akkor ezt a parancsot a parancssorban hajtja végre, míg Linux alatt a terminálban.
A CSV beolvasása egy pandas DataFrame-be nagyon gyors és egyszerű:
#import necessary modules import pandas result = pandas.read_csv('X:\data.csv') print(result)
Eredménye a olvassa el a CSV Pandákat példa:
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
Nagyon hasznos könyvtár. Mindössze három kódsorban ugyanazt az eredményt kapja, mint korábban. A pandák tudják, hogy a CSV első sora oszlopneveket tartalmazott, és ezeket automatikusan használni fogja.
Írjon CSV fájlt a Pandas segítségével
A CSV-fájlba írás a Pandas segítségével ugyanolyan egyszerű, mint az olvasás. Itt lehet meggyőzni benne. Először létre kell hoznia a DataFrame-et a következők alapján Python írjon CSV kódba.
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)
Itt a kimenet
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
És a CSV-fájl a megadott helyen jön létre.
Következtetés
Tehát most már tudja, hogyan kell használni a „csv” metódust, és hogyan kell adatokat olvasni és írni CSV formátumban. A CSV-fájlokat széles körben használják szoftveralkalmazásokban, mivel könnyen olvashatóak és kezelhetők, kis méretük pedig viszonylag gyors feldolgozást és átvitelt tesz lehetővé.
A csv modul különféle funkciókat és osztályokat kínál, amelyek lehetővé teszik az egyszerű olvasást és írást. Megnézheti a hivatalos Python dokumentációt, és találhat még néhány érdekes tippet és modult. A CSV a legjobb módja az adatok mentésének, megtekintésének és küldésének. Valójában nem is olyan nehéz megtanulni, mint amilyennek az elején tűnik. De egy kis gyakorlással elsajátítod.
A Pandas nagyszerű alternatíva a CSV-fájlok olvasásához.
Ezenkívül vannak más módok is a szövegfájlok elemzésére olyan könyvtárakkal, mint az ANTLR, PLY és PlyPlus. Mindegyik képes kezelni a nehéz elemzést, és ha az egyszerű karakterlánc-manipuláció nem működik, vannak reguláris kifejezések, amelyeket használhat.