Hogyan lehet beolvasni a CSV fájlt Python (Modul, pandák példák)

⚡ Okos összefoglaló

A CSV-fájl táblázatos adatokat tárol egyszerű szövegként, vesszővel elválasztva az oszlopokat és új sorjellel a sorokat. Itt megtanulhatja a CSV-fájlok olvasását és írását... Python a beépített csv modul és a pandas könyvtár használatával.

  • 📄 Ami: A CSV-fájl vesszővel elválasztott egyszerű szövegként tárolja a táblázatos adatokat.
  • ???? csv.olvasó: A csv.reader() függvény listaként olvassa be a sorokat egy CSV fájlból.
  • ???? DictReader: A csv.DictReader() függvény minden sort egy rendezett szótárba olvas be.
  • ✍️ csv.író: A csv.writer() és a writerow() függvények sorokat írnak egy CSV fájlba.
  • ???? Pandák: A pandas.read_csv() és a to_csv() függvények egy sorban olvassák és írják a CSV fájlokat.
  • 🤖 MI segítség: A Copilothoz hasonló mesterséges intelligenciaeszközök azonnal generálnak CSV formátumú olvasási és írási kódot.

CSV fájl beolvasása Python

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

GYIK

A CSV (vesszővel elválasztott értékeket tartalmazó) fájl egy egyszerű szöveges fájl, amely táblázatos adatokat tárol. Minden sor egy sor, és vesszők választják el az értékeket az egyes oszlopokban.

Importáld a csv modult, nyisd meg a fájlt, és add át a csv.reader() függvénynek, hogy listákként olvassa be a sorokat. Alternatív megoldásként használd a csv.DictReader() függvényt, hogy minden sort szótárként olvasson be.

Nyiss meg egy fájlt írási módban, hozz létre egy csv.writer() függvényt, és hívd meg a writerow() függvényt minden sorhoz, vagy a writerows() függvényt több sorhoz. Az író kezeli az idézőjeleket és az elválasztójeleket.

A csv.DictReader() függvény egy CSV fájlt rendezett szótárakba olvas be, a fejlécsort kulcsként használva. Ez lehetővé teszi, hogy minden értéket oszlopnév szerint érj el index helyett.

Hívja meg a pandas.read_csv('file.csv') függvényt, amely egyetlen sorban betölti a CSV-t egy DataFrame-be. A Pandas automatikusan az első sort használja oszlopfejlécként.

Az olyan mesterséges intelligencia asszisztensek, mint a GitHub Copilot, automatikusan kiegészítik a CSV és Pandas hívásokat, olvasási és írási ciklusokat generálnak, és egy rövid leírásból javasolják a megfelelő elválasztójelet vagy idézőjelet.

Igen. A mesterséges intelligenciával működő eszközök automatizálhatják a CSV-adatok elemzését, tisztítását és konvertálását, panda pipeline-okat generálhatnak, és hibakezelést adhatnak hozzá a hibásan formázott sorokhoz vagy hiányzó oszlopokhoz.

Használja a beépített csv modult az egyszerű, könnyű olvasáshoz és íráshoz. Válassza a pandákat, ha hatékonyan kell szűrnie, átalakítania vagy elemeznie nagy CSV-adatkészleteket.

Foglald össze ezt a bejegyzést a következőképpen: