La funzione read_csv() di Pandas in Python è uno dei metodi usati più di frequente per ricavare dati da un file CSV e salvarli in formato DataFrame. I file CSV (“comma separated values”) si usano di frequente per me­mo­riz­za­re dati tabellari e sono com­pa­ti­bi­li con molti programmi e strumenti di analisi di dati.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana

Sintassi di read_csv() di Pandas in Python

La funzione pandas.read_csv() crea un DataFrame in Pandas basato su un file CSV. Può accettare una serie di parametri diversi che de­ter­mi­na­no il com­por­ta­men­to della funzione. Di seguito ci con­cen­tre­re­mo solo su uno di questi parametri. Un elenco det­ta­glia­to dei parametri di­spo­ni­bi­li è contenuto nella do­cu­men­ta­zio­ne di Pandas.

La sintassi di base della funzione è semplice e si presenta come segue:

import pandas as pd
df = pd.read_csv(filepath_or_buffer, sep=',', header='infer', names=None, index_col=None, usecols=None, dtype=None, ...)
python

Parametri rilevanti

Di seguito ti forniamo una pa­no­ra­mi­ca dei parametri più im­por­tan­ti:

Parametro Si­gni­fi­ca­to Valore pre­de­fi­ni­to
filepath_or_buffer È una stringa in Python (percorso del file) o un file buffer, ad esempio un URL.
sep Viene usato per spe­ci­fi­ca­re il se­pa­ra­to­re fra i valori. ,
header Indica quale riga del file CSV deve essere uti­liz­za­ta come in­te­sta­zio­ne delle colonne. infer (prima riga)
names Se non viene spe­ci­fi­ca­ta alcuna in­te­sta­zio­ne header=None puoi indicare una lista Python names per le colonne.
index_col Specifica quale colonna del file deve essere uti­liz­za­ta come indice del DataFrame. None
usecols Permette di se­le­zio­na­re solo alcune colonne da caricare nel DataFrame. None
dtype Permette di definire il tipo di dato per ciascuna colonna del DataFrame. None

Guida per accedere ai file CSV

Con pandas.read_csv() è possibile tra­sfe­ri­re i dati dai file CSV in Python in pochi semplici passi.

Di seguito trovi un breve esempio in cui il file CSV con il seguente schema viene tra­sfe­ri­to in Python:

1,Mario Rossi,35,Roma,50000
2,Anna Bianchi,29,Milano,62000
3,Paolo Russo,41,Firenze,58000
4,Laura Romano,33,Napoli,49000
5,Matteo Ferrari,28,Venezia,52000

Primo passaggio: importare Pandas

Il primo passaggio consiste nell’importare la libreria Pandas all’interno dello script Python:

import pandas as pd
python

Secondo passaggio: caricare il file CSV

Ora puoi usare la funzione di Python Pandas read_csv()per caricare il file CSV. A tal proposito devi tra­sfe­ri­re il percorso del file alla funzione. Nel seguente snippet di codice prendiamo in esame un file chiamato “dati.csv” salvato nella stessa directory dello script:

df = pd.read_csv('dati.csv')
python

Il codice carica il file CSV e lo salva in un DataFrame chiamatodf. Questo oggetto può essere uti­liz­za­to per eseguire ulteriori ope­ra­zio­ni ed ela­bo­ra­zio­ni sui dati. Se non di­ver­sa­men­te spe­ci­fi­ca­to, Pandas in­ter­pre­ta au­to­ma­ti­ca­men­te la prima riga come in­te­sta­zio­ne di colonna.

Terzo passaggio: vi­sua­liz­za­re il file CSV

Per ve­ri­fi­ca­re che il file sia stato caricato cor­ret­ta­men­te, puoi esaminare le prime righe del DataFrame uti­liz­zan­do la funzione DataFrame.head(). Questa funzione, per im­po­sta­zio­ne pre­de­fi­ni­ta, vi­sua­liz­za le prime cinque righe del DataFrame, offrendo una rapida pa­no­ra­mi­ca della struttura dei dati.

print(df.head())
python

L’output è il seguente:

0   1  Mario Rossi      35    Roma     50000
1   2  Anna Bianchi     29    Milano   62000
2   3  Paolo Russo      41    Firenze  58000
3   4  Laura Romano     33    Napoli   49000
4   5  Matteo Ferrari   28    Venezia  52000

Quarto passaggio: mo­di­fi­ca­re i nomi delle colonne (fa­col­ta­ti­vo)

Se il file CSV non contiene una riga di in­te­sta­zio­ne, puoi definire ma­nual­men­te i nomi delle colonne:

df = pd.read_csv('dati.csv', header=None, names=['Colonna1', 'Colonna2', 'Colonna3', 'Colonna4', 'Colonna5'])
python

In questo esempio, le colonne sono state de­no­mi­na­te ma­nual­men­te “Colonna1, Colonna2, Colonna3, Colonna4” e “Colonna5”. Il codice emette quindi il seguente output:

Colonna1        Colonna2  Colonna3    Colonna4     Colonna5
0          1        Mario Rossi         35        Roma         50000
1          2        Anna Bianchi        29        Milano      62000
2          3        Paolo Russo         41        Firenze     58000
3          4        Laura Romano        33        Napoli      49000
4          5        Matteo Ferrari     28        Venezia     52000
N.B.

Il file CSV usato nell’esempio non contiene una grande quantità di dati. Se dovessi avere a che fare con un file CSV molto grande che potrebbe causare problemi di memoria puoi leggere il file in piccoli pezzi uti­liz­zan­do il parametro chunksize di pandas.read_csv(). Questo parametro permette di spe­ci­fi­ca­re quante righe devono essere lette per ogni ite­ra­zio­ne, evitando il ca­ri­ca­men­to completo del file in memoria. Con un ciclo for su Python potrai quindi iterare sui singoli blocchi (chunk).

Vai al menu prin­ci­pa­le