A CSV (Comma Separated Values). je soubor ve formátu prostého textu, kde každý řádek představuje datový záznam a pole v každém záznamu jsou oddělena čárkami. Pro svou jednoduchost a čitelnost se běžně používá pro tabulky a databáze.
Níže jsou uvedeny některé operace, které provádíme při práci se soubory Python CSV v Pythonu
Čtení souboru CSV
Čtení ze souboru CSV se provádí pomocí objektu reader. Soubor CSV se otevře jako textový soubor pomocí vestavěné funkce open() Pythonu, která vrací objekt souboru. V tomto příkladu nejprve otevřeme soubor CSV v režimu READ objekt souboru se převede na objekt csv.reader a probíhá další operace. Kód a podrobné vysvětlení je uvedeno níže.
Python
import csv filename = 'aapl.csv' # File name fields = [] # Column names rows = [] # Data rows with open(filename 'r') as csvfile: csvreader = csv.reader(csvfile) # Reader object fields = next(csvreader) # Read header for row in csvreader: # Read rows rows.append(row) print('Total no. of rows: %d' % csvreader.line_num) # Row count print('Field names are: ' + ' '.join(fields)) print('nFirst 5 rows are:n') for row in rows[:5]: for col in row: print('%10s' % col end=' ') print('n')
Výstup
Výše uvedený příklad používá soubor CSV aapl.csv ze kterého lze stáhnout zde .
Vysvětlení:
- s otevřeným (...) otevře soubor CSV v režimu čtení bezpečně pomocí kontextového správce.
- csv.reader(csvfile)
- další (csvreader) extrahuje první řádek jako záhlaví sloupců.
- Projděte csvreader pro připojení každého řádku (jako seznamu) k řádkům.
- Vytiskněte záhlaví celkových řádků a prvních 5 datových řádků ve formátovaném zobrazení.
Čtení souborů CSV do slovníku s csv
Soubor CSV můžeme načíst do slovníku pomocí modulu csv v Pythonu a třídy csv.DictReader. Zde je příklad:
Předpokládejme, že máme a zaměstnanci.csv soubor a obsah v něm bude:
pojmenované odděleníbirthday_month
John SmithHRčervenec
Alice JohnsonITOříjen
Bob Williams Finance leden
Příklad: Tím se každý řádek přečte jako slovník (záhlaví jako klíče) a poté se připojí k seznamu .
Pythonimport csv with open('employees.csv' mode='r') as file: csv_reader = csv.DictReader(file) # Create DictReader data_list = [] # List to store dictionaries for row in csv_reader: data_list.append(row) for data in data_list: print(data)
výstup:
{'name': 'John Smith' 'department': 'HR' 'birthday_month': 'červenec'}
{'name': 'Alice Johnson' 'department': 'IT' 'birthday_month': 'October'}
{'name': 'Bob Williams' 'department': 'Finance' 'birthday_month': 'Leden'}
Vysvětlení:
regresní testování v testování softwaru
- s otevřeným (...) otevře soubor pomocí kontextového správce.
- csv.DictReader(soubor) přečte každý řádek jako slovník pomocí záhlaví jako klíče.
- data_list.append(řádek) ukládá každý slovník do seznamu.
Zápis do souboru CSV
Chcete-li zapisovat do souboru CSV, nejprve soubor CSV otevřete v režimu WRITE. Objekt file se převede na objekt csv.writer a proběhnou další operace. Kód a podrobné vysvětlení je uvedeno níže.
Pythonimport csv # Define header and data rows fields = ['Name' 'Branch' 'Year' 'CGPA'] rows = [ ['Nikhil' 'COE' '2' '9.0'] ['Sanchit' 'COE' '2' '9.1'] ['Aditya' 'IT' '2' '9.3'] ['Sagar' 'SE' '1' '9.5'] ['Prateek' 'MCE' '3' '7.8'] ['Sahil' 'EP' '2' '9.1'] ] filename = 'university_records.csv' with open(filename 'w') as csvfile: csvwriter = csv.writer(csvfile) # Create writer object csvwriter.writerow(fields) # Write header csvwriter.writerows(rows) # Write multiple rows
Vysvětlení:
- pole definuje záhlaví sloupců a řádky obsahuje data jako seznam seznamů.
- s otevřít (... 'w') otevře soubor v režimu zápisu pomocí kontextového správce.
- csv.writer(csvfile) vytvoří objekt Writer pro zápis do CSV.
- writerow (pole) zapíše řádek záhlaví do souboru.
- spisovatelé (řádky) zapíše všechny datové řádky do CSV najednou.
Chcete-li zapsat slovník do souboru CSV, objekt souboru (csvfile) se převede na objekt DictWriter. Podrobný příklad s vysvětlením a kódem je uveden níže.
Python# importing the csv module import csv # my data rows as dictionary objects mydict = [{'branch': 'COE' 'cgpa': '9.0' 'name': 'Nikhil' 'year': '2'} {'branch': 'COE' 'cgpa': '9.1' 'name': 'Sanchit' 'year': '2'} {'branch': 'IT' 'cgpa': '9.3' 'name': 'Aditya' 'year': '2'} {'branch': 'SE' 'cgpa': '9.5' 'name': 'Sagar' 'year': '1'} {'branch': 'MCE' 'cgpa': '7.8' 'name': 'Prateek' 'year': '3'} {'branch': 'EP' 'cgpa': '9.1' 'name': 'Sahil' 'year': '2'}] # field names fields = ['name' 'branch' 'year' 'cgpa'] # name of csv file filename = 'university_records.csv' # writing to csv file with open(filename 'w') as csvfile: # creating a csv dict writer object writer = csv.DictWriter(csvfile fieldnames=fields) # writing headers (field names) writer.writeheader() # writing data rows writer.writerows(mydict)
Výstup
csv souborZvažte, že soubor CSV vypadá v prostém textu takto:
univerzitní rekordVysvětlení:
- s otevřeným (...) otevře soubor bezpečně pomocí kontextového správce.
- csv.DictWriter(... ) mapuje klíče slovníku na sloupce CSV.
- writeheader() zapisuje záhlaví sloupců.
- spisovatelé (mydict) zapíše všechny slovníky jako řádky CSV.
Čtení souborů CSV pomocí pand
Můžeme číst a Python CSV soubory pomocí Pandas pandas.read_csv() funkce. Zde je příklad:
Předpokládejme, že máme soubor staff.csv a obsah v něm bude:
pojmenované odděleníbirthday_month
John SmithHRčervenec
Alice JohnsonITOříjen
Bob Williams Finance leden
V tomto příkladu pd.read_csv() načte soubor CSV do Pandas DataFrame. Výsledný DataFrame lze použít pro různé úlohy manipulace s daty a analýzy.
Pythonimport pandas as pd # Read the CSV file into a DataFrame df = pd.read_csv('employees.csv') # Display the DataFrame print(df)
výstup:
mysql změnit typ sloupce
jméno oddělení narozeniny_měsíc
0 John Smith HR Červenec
1 Alice Johnson IT říjen
2 Bob Williams Finance leden
Můžeme přistupovat ke konkrétním sloupcům, filtrovat data a provádět různé operace pomocí funkce pandas DataFrame. Například pokud chceme získat přístup ke sloupci 'name', můžeme použít df['name'].
Python# Access the 'name' column names = df['name'] print(names)
Výstup :
0 John Smith
1 Alice Johnsonová
2 Bob Williams
Jméno: jméno dtype: objekt
Psaní CSV souborů s Pandas
Pandy můžeme použít k zápisu CSV souborů. It can done by using pd.DataFrame() funkce. V tomto příkladu pandy Knihovna se používá k převodu seznamu slovníků (mydict) do DataFrame reprezentujícího tabulková data. DataFrame je poté zapsán do souboru Python CSV s názvem 'output.csv' pomocí metody to_csv, čímž se vytvoří strukturovaný a čitelný datový soubor pro další analýzu nebo sdílení.
Pythonimport pandas as pd mydict = [ {'branch': 'COE' 'cgpa': '9.0' 'name': 'Nikhil' 'year': '2'} {'branch': 'COE' 'cgpa': '9.1' 'name': 'Sanchit' 'year': '2'} {'branch': 'IT' 'cgpa': '9.3' 'name': 'Aditya' 'year': '2'} {'branch': 'SE' 'cgpa': '9.5' 'name': 'Sagar' 'year': '1'} {'branch': 'MCE' 'cgpa': '7.8' 'name': 'Prateek' 'year': '3'} {'branch': 'EP' 'cgpa': '9.1' 'name': 'Sahil' 'year': '2'} ] # Create a DataFrame from the list of dictionaries df = pd.DataFrame(mydict) # Write the DataFrame to a CSV file df.to_csv('output.csv' index=False)
Výstupní soubor CSV:
branchcgpannamerok
COE9.0Nikhil2
COE9.1Sanchit2
IT9.3Aditya2
SE9.5Sagar1
MCE7.8Prateek3
EP9.1Sahil2
Ukládání e-mailů do souborů CSV
Začneme importem modulu csv a použijeme jej k ukládání jmen a e-mailů jako hodnot oddělených čárkou. Pomocí funkce open() vytvoříme soubor CSV a poté zapíšeme každý řádek pomocí objektu Writer se samostatnými sloupci pro jména a e-maily.
Python# importing the csv module import csv # field names fields = ['Name' 'Email'] # data rows of csv file rows = [ ['Nikhil' '[email protected]'] ['Sanchit' '[email protected]'] ['Aditya' '[email protected]'] ['Sagar' '[email protected]'] ['Prateek' '[email protected]'] ['Sahil' '[email protected]']] # name of csv file filename = 'email_records.csv' # writing to csv file with open(filename 'w') as csvfile: # creating a csv writer object csvwriter = csv.writer(csvfile) # writing the fields csvwriter.writerow(fields) # writing the data rows csvwriter.writerows(rows)
výstup:
E-maily ve formátu csv Vytvořit kvíz