Come leggere il file CSV in Python (Modulo, esempi di Panda)

⚡ Riepilogo intelligente

Un file CSV memorizza dati tabellari come testo semplice, con virgole che separano le colonne e interruzioni di riga che separano le righe. Qui imparerai a leggere e scrivere file CSV in Python utilizzando il modulo csv integrato e la libreria pandas.

  • 📄 Che cosa è: Un file CSV memorizza dati tabellari come testo semplice separato da virgole.
  • ???? csvreader: csv.reader() legge le righe da un file CSV come liste.
  • 📚 Lettore di dizionario: csv.DictReader() legge ogni riga in un dizionario ordinato.
  • ✍️ csv.writer: Le funzioni csv.writer() e writerow() scrivono righe in un file CSV.
  • ???? Panda: Le funzioni pandas.read_csv() e to_csv() leggono e scrivono file CSV in un'unica riga.
  • 🤖 Aiuto tramite intelligenza artificiale: Strumenti di intelligenza artificiale come Copilot generano istantaneamente codice di lettura e scrittura di file CSV.

Leggi il file CSV in Python

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.

Scarica i dati 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')])

Leggere un file CSV in un dizionario

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

scrivere il file CSV Python

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.

Scrivi file CSV utilizzando Pandas

DOMANDE FREQUENTI

Un file CSV (valori separati da virgole) è un file di testo semplice che memorizza dati tabellari. Ogni riga rappresenta una riga e le virgole separano i valori in ciascuna colonna.

Importa il modulo csv, apri il file e passalo a csv.reader() per scorrere le righe come liste. In alternativa, usa csv.DictReader() per leggere ogni riga come un dizionario.

Apri un file in modalità scrittura, crea un oggetto csv.writer() e chiama writerow() per ogni riga o writerows() per più righe. L'oggetto writer gestisce automaticamente le virgolette e i delimitatori.

csv.DictReader() legge un file CSV e lo memorizza in dizionari ordinati, utilizzando la riga di intestazione come chiave. Questo permette di accedere a ciascun valore tramite il nome della colonna anziché tramite l'indice.

Chiama pandas.read_csv('file.csv'), che carica il file CSV in un DataFrame in una singola riga. Pandas utilizza automaticamente la prima riga come intestazioni di colonna.

Gli assistenti basati sull'intelligenza artificiale, come GitHub Copilot, completano automaticamente i file CSV e le chiamate alle librerie pandas, generano cicli di lettura e scrittura e suggeriscono il delimitatore o l'opzione di virgolettatura corretta a partire da una breve descrizione.

Sì. Gli strumenti basati sull'intelligenza artificiale possono automatizzare l'analisi, la pulizia e la conversione dei dati CSV, generare pipeline pandas e aggiungere la gestione degli errori per righe non valide o colonne mancanti.

Utilizza il modulo csv integrato per una lettura e una scrittura semplici e leggere. Scegli pandas quando hai bisogno di filtrare, trasformare o analizzare grandi set di dati CSV in modo efficiente.

Riassumi questo post con: