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.

Töltse le a CSV-adatokat

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

Olvasson be egy CSV-fájlt egy szótárba

É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

írd be a CSV fájlt Python

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.

Írjon CSV fájlt a Pandas segítségével

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.