Come leggere il file CSV in Python (Modulo, esempi di Panda)
Che cos'è un file CSV?
A file CSV è un tipo semplice di file di testo semplice che utilizza una struttura specifica per organizzare i dati tabulari. Il formato standard di un file CSV è definito dai dati di righe e colonne in cui un ritorno a capo termina ogni riga per iniziare la riga successiva e ogni colonna è separata da una virgola all'interno della riga.
CSV è un formato comune per lo scambio di dati poiché è compatto, semplice e generale. Molti servizi online consentono ai propri utenti di esportare dati tabulari dal sito Web in un file CSV. I file CSV si apriranno in Excel e quasi tutti i database dispongono di uno strumento per consentire l'importazione da file CSV.
File di esempio CSV
I dati sotto forma di tabelle sono anche chiamati CSV (valori separati da virgole) – letteralmente “valori separati da virgole”. Si tratta di un formato di testo destinato alla presentazione di dati tabellari. Ogni riga del file è una riga della tabella. I valori delle singole colonne sono separati da un simbolo separatore: una virgola (,), un punto e virgola (;) o un altro simbolo. CSV può essere facilmente letto ed elaborato da Python.
Considerare la seguente tabella
Dati della tabella
Linguaggio di programmazione | Progettato da | Apparso | Estensione |
---|---|---|---|
Python | Guido van Rossum | 1991 | .py |
Java | Giacomo Gosling | 1995 | .Giava |
C++ | Bjarne Stroustrup | 1983 | cpp |
Puoi rappresentare questa tabella in CSV come di seguito.
Dati CSV
Linguaggio di programmazione, Progettato da, Apparso, Estensione
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp
Come puoi vedere ogni riga è una nuova riga e ogni colonna è separata da una virgola. Questo è un esempio di come appare un file CSV.
Python Modulo CSV
Python fornisce un modulo CSV per gestire i file CSV. Per leggere/scrivere dati, è necessario scorrere le righe del CSV. È necessario utilizzare il metodo di suddivisione per ottenere i dati dalle colonne specificate.
Funzioni del modulo CSV
Nella documentazione del modulo CSV puoi trovare le seguenti funzioni:
- csv.field_size_limit – restituisce la dimensione massima del campo
- csv.get_dialect – ottiene il dialetto associato al nome
- csv.list_dialects – mostra tutti i dialetti registrati
- csv.reader: legge i dati da un file CSV
- csv.register_dialect – associa il dialetto al nome
- csv.writer – scrive i dati in un file CSV
- csv.unregister_dialect – elimina il dialetto associato al nome dal registro dei dialetti
- csv.QUOTE_ALL – Cita tutto, indipendentemente dal tipo.
- csv.QUOTE_MINIMAL – Campi delle virgolette con caratteri speciali
- csv.QUOTE_NONNUMERIC – Racchiude tra virgolette tutti i campi che non contengono valori numerici
- csv.QUOTE_NONE – Non citare nulla nell'output
In questo tutorial ci concentreremo solo sulle funzioni di lettura e scrittura che consentono di modificare, modificare e manipolare i dati in un file CSV.
Come leggere un file CSV in Python
Di seguito sono riportati i passaggi per leggere il file CSV Python.
Passo 1) Per leggere i dati dai file CSV, è necessario utilizzare la funzione lettore per generare un oggetto lettore.
La funzione di lettura è sviluppata per prendere ogni riga del file e creare un elenco di tutte le colonne. Quindi, devi scegliere la colonna per la quale desideri i dati variabili.
Sembra molto più complicato di quanto non sia. Diamo un'occhiata a questo Python codice per leggere il file CSV e scopriremo che lavorare con il file CSV non è così difficile.
#import necessary modules import csv with open('X:\data.csv','rt')as f: data = csv.reader(f) for row in data: print(row)
Passo 2) Quando esegui il programma sopra, l'output sarà:
['Programming language; Designed by; Appeared; Extension'] ['Python; Guido van Rossum; 1991; .py'] ['Java; James Gosling; 1995; .java'] ['C++; Bjarne Stroustrup;1983;.cpp']
Come leggere un file CSV in un dizionario in Python
Puoi anche utilizzare DictReader per leggere file CSV. I risultati vengono interpretati come un dizionario in cui la riga di intestazione è la chiave e le altre righe sono valori.
Considera il seguente codice
#import necessary modules import csv reader = csv.DictReader(open("file2.csv")) for raw in reader: print(raw)
Il risultato di questo codice è:
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')])
E in questo modo leggere i dati dal file CSV è molto più semplice rispetto al metodo precedente. Tuttavia, questo non è il modo migliore per leggere i dati.
Come scrivere un file CSV in Python
Ecco come scrivere un file CSV in Python:
Quando hai una serie di dati che desideri archiviare in un file CSV devi utilizzare la funzione writer(). Per ripetere i dati sulle righe (linee), devi utilizzare la funzione writerow().
Considerate il seguente esempio. Scriviamo i dati in un file "writeData.csv" dove il delimitatore è un apostrofo.
#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'])
Il risultato nel file CSV è:
Programming language, Designed by, Appeared, Extension Python, Guido van Rossum, 1991, .py Java, James Gosling, 1995, .java C++, Bjarne Stroustrup,1983,.cpp
Leggi il file CSV utilizzando Panda
Pandas è una libreria opensource che ti consente di importare CSV Python ed eseguire la manipolazione dei dati. I panda forniscono un modo semplice per creare, manipolare ed eliminare i dati.
È necessario installare la libreria Pandas con il comando pip install pandas . In Windows, eseguirai questo comando nel prompt dei comandi mentre sei in Linux nel Terminale.
Leggere il CSV in un DataFrame panda è molto semplice e veloce:
#import necessary modules import pandas result = pandas.read_csv('X:\data.csv') print(result)
Risultato del leggi CSV Panda esempio:
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
Biblioteca molto utile. In sole tre righe di codice ottieni lo stesso risultato di prima. I panda sanno che la prima riga del CSV conteneva nomi di colonne e li utilizzerà automaticamente.
Scrivi file CSV utilizzando Pandas
Scrivere su file CSV con Pandas è facile come leggere. Qui puoi convincerti. Per prima cosa devi creare DataFrame basato su quanto segue Python scrivere nel codice CSV.
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)
Ecco l'output
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
E il file CSV viene creato nella posizione specificata.
Conclusione
Quindi, ora sai come usare il metodo 'csv' e anche come leggere e scrivere dati in formato CSV. I file CSV sono ampiamente utilizzati nelle applicazioni software perché sono facili da leggere e gestire e le loro piccole dimensioni li rendono relativamente veloci per l'elaborazione e la trasmissione.
Il modulo csv fornisce varie funzioni e classi che ti consentono di leggere e scrivere facilmente. Puoi guardare il funzionario Python documentazione e trova altri suggerimenti e moduli interessanti. CSV è il modo migliore per salvare, visualizzare e inviare dati. In realtà, non è così difficile da imparare come sembra all'inizio. Ma con un po' di pratica, lo padroneggerai.
Pandas è un'ottima alternativa per leggere file CSV.
Inoltre, esistono altri modi per analizzare file di testo con librerie come ANTLR, PLY e PlyPlus. Possono tutti gestire l'analisi pesante e, se la semplice manipolazione delle stringhe non funziona, ci sono espressioni regolari che puoi usare.