CSV fájlok olvasása és írása Pythonban a CSV modul használatával & Pandák

Tartalomjegyzék:

Anonim

Mi az a CSV fájl?

A CSV-fájl egy egyszerű szöveges fájl, amely speciális strukturálást használ a táblázatos adatok rendezéséhez. A CSV az adatcsere általános 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ájljai megnyílnak az Excel programba, és szinte az összes adatbázis rendelkezik eszközzel, amely lehetővé teszi a CSV fájlokból történő importálást. A standard formátumot sorok és oszlopok adatai határozzák meg. Ezenkívül minden sort új sor zár le, hogy megkezdje a következő sort. A soron belül is minden oszlopot vessző választ el.

Ebben az oktatóanyagban megtudhatja:

  • Mi az a CSV fájl?
  • CSV mintafájl.
  • Python CSV modul
  • CSV modul funkciók
  • CSV-fájlok olvasása
  • Olvasás szótárként
  • Írás CSV fájlokba
  • CSV fájlok olvasása pandákkal
  • CSV fájlokba írása pandákkal

CSV mintafájl.

A táblázatok formájában szereplő adatokat CSV-nek (vesszővel elválasztott értékek) is hívják - szó szerint "vesszővel elválasztott értékeknek". Ez egy táblázatos adatok megjelenítésére szolgáló szöveges formátum. A fájl minden sora a táblázat egy sora. Az egyes oszlopok értékeit elválasztó szimbólum választja el - vessző (,), pontosvessző (;) vagy más szimbólum. A CSV könnyen olvasható és feldolgozható a Python által.

Tekintsük a következő Tabét

Táblázat adatai

Programozási nyelv Tervezte Megjelent Kiterjesztés
Piton Guido van Rossum 1991 .py
Jáva James Gosling 1995 .Jáva
C ++ Bjarne Stroustrup 1983 .cpp

Ezt a táblázatot az alábbiak szerint képviselheti csv formátumban.

CSV-adatok

Programozási nyelv, Tervező, Megjelenés, Kiterjesztés

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C ++, Bjarne Stroustrup, 1983, .pp

Amint láthatja, minden sor új sor, és minden oszlop vesszővel van elválasztva. Ez egy példa arra, hogyan néz ki egy CSV fájl.

Töltse le a CSV-adatokat

Python CSV modul

A Python CSV modult biztosít a CSV fájlok kezelésére. Adatok olvasásához / írásához végig kell lépkednie a CSV sorain. Az osztott metódust kell használnia, hogy adatokat kapjon a megadott oszlopokból.

CSV modul funkciók

A CSV modul dokumentációjában a következő funkciók találhatók:

  • csv.field_size_limit - adja meg a maximális mezőméretet
  • csv.get_dialect - a névhez társított dialektus megszerzése
  • csv.list_dialects - az összes regisztrált nyelvjárás megjelenítése
  • csv.reader - adatok olvasása egy csv fájlból
  • csv.register_dialect - társítsa a nyelvjárást a névhez
  • csv.writer - adatokat írjon egy csv fájlba
  • csv.unregister_dialect - törölje a nyelvjárási nyilvántartás nevéhez társított nyelvjárást
  • csv.QUOTE_ALL - Idézz mindent, típustól függetlenül.
  • csv.QUOTE_MINIMAL - Idézetmezők speciális karakterekkel
  • csv.QUOTE_NONNUMERIC - Idézzen minden olyan mezőt, amely nem számérték
  • csv.QUOTE_NONE - Ne idézz semmit a kimenetben

Ebben az oktatóanyagban csak azokra 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 manipulálását.

CSV fájl olvasása

Az adatok CSV-fájlokból történő olvasásához az olvasófunkcióval kell létrehoznia egy olvasóobjektumot.

Az olvasó funkciót úgy fejlesztették ki, hogy a fájl minden sorát felvegye, és az összes oszlopot felsorolja. Ezután ki kell választania azt az oszlopot, amelyhez a változó adatait szeretné használni.

Sokkal bonyolultabban hangzik, mint amilyen. Vessünk egy pillantást erre a példára, és megtudjuk, hogy a csv fájl használata nem olyan nehéz.

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

A fenti program végrehajtásakor 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 olvasható el egy CSV szótárként

Használhatja a DictReader programot CSV fájlok olvasására is. Az eredményeket szótárként értelmezik, ahol a fejléc sora a kulcs, a többi sor pedig érték.

Vegye figyelembe a következő kódot

#import necessary modulesimport csvreader = 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 így az adatok CSV fájlból történő olvasása sokkal könnyebb, mint a korábbi módszer. Ez azonban nem a legjobb módszer az adatok olvasására.

A CSV fájl írása

Ha rendelkezik olyan adatsorral, amelyet CSV fájlban szeretne tárolni, akkor az író () függvényt kell használnia. Az adatok sorokon (sorokon) történő iterálásához a writow () függvényt kell használnia.

Tekintsük a következő példát. Adatokat írunk egy "writeData.csv" fájlba, ahol a határoló aposztróf.

#import necessary modulesimport csvwith open('X:\writeData.csv', mode='w') as file:writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)#way to write to csv filewriter.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, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp

CSV fájlok olvasása pandákkal

A Pandas egy nyílt forráskódú könyvtár, amely lehetővé teszi az adatok manipulálását a Pythonban. A pandák egyszerű módszert kínálnak az adatok létrehozására, kezelésére és törlésére.

Telepítenie kell a pandas könyvtárat a pip install pandas paranccsal. A Windows rendszerben ezt a parancsot a Parancssorban hajtja végre, míg a Linux alatt a Terminálban.

A CSV beolvasása pandák DataFrame-be nagyon gyors és egyszerű:

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

Eredmény:

Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp 

Nagyon hasznos könyvtár. Mindössze három kódsorban ugyanaz az eredmény, mint korábban. A pandák tudják, hogy a CSV első sora oszlopneveket tartalmazott, és ez automatikusan felhasználja őket.

CSV fájlokba írása pandákkal

CSV fájlba írni Pandas segítségével ugyanolyan egyszerű, mint olvasni. Itt meggyőzheted benne. Először a következő kód alapján kell létrehoznia a DataFrame-et.

from pandas import DataFrameC = {'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 storedprint (df)

Itt van a kimenet

Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp

A CSV fájl pedig a megadott helyen jön létre.

Következtetés

Tehát most már tudja, hogyan használja a 'csv' módszert, és olvassa és írja az adatokat CSV formátumban is. A CSV fájlokat széles körben használják a szoftveralkalmazásokban, mert könnyen olvashatók és kezelhetők, és kis méretük miatt viszonylag gyorsan feldolgozhatók és továbbíthatók.

A csv modul különféle funkciókat és osztályokat biztosít, amelyek lehetővé teszik az egyszerű olvasást és írást. Megtekintheti a hivatalos Python dokumentációt, és további érdekes tippeket és modulokat találhat. A CSV a legjobb mód az adatok mentésére, megtekintésére és küldésére. Valójában nem olyan nehéz megtanulni, mint az elején tűnik. De egy kis gyakorlással el fogja sajátítani.

A Pandas nagyszerű alternatíva a CSV fájlok olvasásához.

Vannak más módszerek is a szövegfájlok elemzésére olyan könyvtárakkal, mint az ANTLR, a PLY és a PlyPlus. Mindannyian képesek kezelni a nagy igénybevételű elemzéseket, és ha az egyszerű karakterlánc-manipuláció nem működik, vannak olyan reguláris kifejezések, amelyeket használhat.