Jak číst soubor CSV Python (Modul, příklady pand)

Co je soubor CSV?

A soubor CSV je jednoduchý typ prostého textového souboru, který používá specifickou strukturu k uspořádání tabulkových dat. Standardní formát souboru CSV je definován daty řádků a sloupců, kde nový řádek končí každý řádek a začíná další řádek a každý sloupec je v řádku oddělen čárkou.

CSV je běžný formát pro výměnu dat, protože je kompaktní, jednoduchý a obecný. Mnoho online služeb umožňuje svým uživatelům exportovat tabulková data z webu do souboru CSV. Soubory CSV se otevřou do Excelu a téměř všechny databáze mají nástroj, který umožňuje import ze souborů CSV.

CSV ukázkový soubor

Data ve formě tabulek se také nazývají CSV (hodnoty oddělené čárkou) – doslova „hodnoty oddělené čárkou“. Jedná se o textový formát určený pro prezentaci tabulkových dat. Každý řádek souboru je jedním řádkem tabulky. Hodnoty jednotlivých sloupců jsou odděleny symbolem oddělovače – čárkou (,), středníkem (;) nebo jiným symbolem. CSV lze snadno číst a zpracovávat Python.

Zvažte následující tabulku

Data tabulky

Programovací jazyk Navrhl Objevil se Prodloužení
Python Guido van Rossum 1991 .py
Java james goslin 1995 .Jáva
C++ Bjarne Stroustrup 1983 .cpp

Tuto tabulku můžete reprezentovat ve formátu csv, jak je uvedeno níže.

Data CSV

Programovací jazyk, Designed by, Appeared, Extension

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C++, Bjarne Stroustrup, 1983,.cpp

Jak vidíte, každý řádek je nový řádek a každý sloupec je oddělen čárkou. Toto je příklad toho, jak vypadá soubor CSV.

Stáhněte si data CSV

Python Modul CSV

Python poskytuje modul CSV pro zpracování souborů CSV. Chcete-li číst/zapisovat data, musíte procházet řádky CSV. Chcete-li získat data ze zadaných sloupců, musíte použít metodu rozdělení.

Funkce modulu CSV

V dokumentaci modulu CSV můžete najít následující funkce:

  • csv.field_size_limit – vrátí maximální velikost pole
  • csv.get_dialect – získání dialektu, který je spojen se jménem
  • csv.list_dialects – zobrazí všechny registrované dialekty
  • csv.reader – čtení dat ze souboru csv
  • csv.register_dialect – přiřadit dialekt ke jménu
  • csv.writer – zápis dat do souboru csv
  • csv.unregister_dialect – smaže dialekt spojený se jménem v registru dialektů
  • csv.QUOTE_ALL – Citujte vše, bez ohledu na typ.
  • csv.QUOTE_MINIMAL – Uvádějte pole se speciálními znaky
  • csv.QUOTE_NONNUMERIC – Citujte všechna pole, která nejsou číselnou hodnotou
  • csv.QUOTE_NONE – Ve výstupu nic neuvádějte

V tomto tutoriálu se zaměříme pouze na funkce čtečky a zápisu, které umožňují upravovat, upravovat a manipulovat s daty v souboru CSV.

Jak načíst soubor CSV Python

Níže jsou uvedeny kroky ke čtení souboru CSV Python.

Krok 1) Chcete-li číst data ze souborů CSV, musíte k vygenerování objektu čtečky použít funkci čtečky.

Funkce čtečky je vyvinuta tak, aby vzala každý řádek souboru a vytvořila seznam všech sloupců. Poté musíte vybrat sloupec, pro který chcete proměnná data.

Zní to mnohem složitější, než to je. Pojďme se na to podívat Python kód pro čtení souboru CSV a zjistíme, že práce se souborem csv není tak náročná.

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

Krok 2) Když spustíte výše uvedený program, výstup bude:

['Programming language; Designed by; Appeared; Extension']
['Python; Guido van Rossum; 1991; .py']
['Java; James Gosling; 1995; .java']
['C++; Bjarne Stroustrup;1983;.cpp']

Jak načíst soubor CSV do slovníku v Python

Můžete také použít DictReader ke čtení souborů CSV. Výsledky jsou interpretovány jako slovník, kde řádek záhlaví je klíčem a ostatní řádky jsou hodnoty.

Zvažte následující kód

#import necessary modules
import csv

reader = csv.DictReader(open("file2.csv"))
for raw in reader:
    print(raw)

Výsledkem tohoto kódu 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')])

Přečtěte si soubor CSV do slovníku

A tento způsob čtení dat ze souboru CSV je mnohem jednodušší než dřívější metoda. To však není nejlepší způsob, jak číst data.

Jak zapsat soubor CSV Python

Zde je návod, jak zapsat soubor CSV Python:

Pokud máte sadu dat, která chcete uložit do souboru CSV, musíte použít funkci Writer(). Chcete-li iterovat data přes řádky (řádky), musíte použít funkci writerow().

Zvažte následující příklad. Data zapisujeme do souboru „writeData.csv“, kde oddělovač je 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'])

Výsledek v souboru csv je:

Programming language, Designed by, Appeared, Extension 
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp

zapsat soubor CSV Python

Čtěte soubor CSV pomocí Pandas

Pandas je opensource knihovna, která vám umožňuje importovat CSV do Python a provádět manipulaci s daty. Pandy poskytují snadný způsob vytváření, manipulace a mazání dat.

Knihovnu pandas musíte nainstalovat pomocí příkazu pip install pandas . v Windows, spustíte tento příkaz v Příkazovém řádku, zatímco v Linuxu v Terminálu.

Čtení CSV do pandas DataFrame je velmi rychlé a snadné:

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

Výsledek přečtěte si CSV Pandy příklad:

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

Velmi užitečná knihovna. Za pouhé tři řádky kódu získáte stejný výsledek jako dříve. Pandy vědí, že první řádek CSV obsahoval názvy sloupců a automaticky je použije.

Napište soubor CSV pomocí Pandas

Zápis do souboru CSV s Pandas je stejně snadný jako čtení. Tady se o tom můžete přesvědčit. Nejprve musíte vytvořit DataFrame na základě následujícího Python zápis do CSV kódu.

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)

Zde je výstup

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

A soubor CSV se vytvoří na zadaném místě.

Napište soubor CSV pomocí Pandas

Proč investovat do čističky vzduchu?

Nyní tedy víte, jak používat metodu 'csv' a také číst a zapisovat data ve formátu CSV. Soubory CSV jsou široce používány v softwarových aplikacích, protože se snadno čtou a spravují a jejich malá velikost z nich činí relativně rychlé zpracování a přenos.

Modul csv poskytuje různé funkce a třídy, které vám umožňují snadné čtení a zápis. Můžete se podívat na úředníka Python dokumentaci a najděte několik dalších zajímavých tipů a modulů. CSV je nejlepší způsob ukládání, prohlížení a odesílání dat. Ve skutečnosti to není tak těžké se naučit, jak se na začátku zdá. Ale s trochou cviku to zvládnete.

Pandas je skvělou alternativou ke čtení souborů CSV.

Existují také další způsoby, jak analyzovat textové soubory pomocí knihoven jako ANTLR, PLY a PlyPlus. Všechny zvládnou náročnou analýzu, a pokud jednoduchá manipulace s řetězci nefunguje, existují regulární výrazy, které můžete použít.