# Pandas read\_csv(): come caricare file CSV in Python

La funzione `read_csv()` di [Pandas in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/pandas-di-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 memorizzare dati tabellari e sono compatibili con molti programmi e strumenti di analisi di dati.

## Sintassi di `read_csv()` di Pandas in Python

La funzione `pandas.read_csv()` crea un [DataFrame in Pandas](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/dataframe-in-pandas-per-python/) basato su un file CSV. Può **accettare una serie di parametri diversi** che determinano il comportamento della funzione. Di seguito ci concentreremo solo su uno di questi parametri. Un elenco dettagliato dei parametri disponibili è contenuto nella [documentazione di Pandas](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html "Documentazione di Pandas su read_csv()").

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

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

### Parametri rilevanti

Di seguito ti forniamo una panoramica dei parametri più importanti:

<table>
  <thead>
    <tr>
      <th><strong>Parametro</strong></th>
      <th><strong>Significato</strong></th>
      <th><strong>Valore predefinito</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`filepath_or_buffer`</td>
      <td>È una [stringa in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/formattazione-delle-stringhe-in-python/) (percorso del file) o un file buffer, ad esempio un [URL](https://www.ionos.it/digitalguide/server/know-how/url-che-cose-uno-uniform-resource-locator/).</td>
      <td></td>
    </tr>
    <tr>
      <td>`sep`</td>
      <td>Viene usato per specificare il separatore fra i valori.</td>
      <td>`,`</td>
    </tr>
    <tr>
      <td>`header`</td>
      <td>Indica quale riga del file CSV deve essere utilizzata come intestazione delle colonne.</td>
      <td>`infer` (prima riga)</td>
    </tr>
    <tr>
      <td>`names`</td>
      <td>Se non viene specificata alcuna intestazione `header=None` puoi indicare una [lista Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/liste-in-python/) `names` per le colonne.</td>
      <td></td>
    </tr>
    <tr>
      <td>`index_col`</td>
      <td>Specifica quale colonna del file deve essere utilizzata come indice del DataFrame.</td>
      <td>`None`</td>
    </tr>
    <tr>
      <td>`usecols`</td>
      <td>Permette di selezionare solo alcune colonne da caricare nel DataFrame.</td>
      <td>`None`</td>
    </tr>
    <tr>
      <td>`dtype`</td>
      <td>Permette di definire il tipo di dato per ciascuna colonna del DataFrame.</td>
      <td>`None`</td>
    </tr>
  </tbody>
</table>

## Guida per accedere ai file CSV

Con `pandas.read_csv()` è possibile trasferire 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 trasferito in Python:

```none
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:

```python
import pandas as pd
```

### 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 trasferire 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:

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

Il codice carica il file CSV e lo salva in un DataFrame chiamato`df`. Questo oggetto può essere utilizzato per eseguire ulteriori operazioni ed elaborazioni sui dati. Se non diversamente specificato, **Pandas interpreta automaticamente la prima riga come intestazione di colonna**.

### Terzo passaggio: visualizzare il file CSV

Per verificare che il file sia stato caricato correttamente, puoi **esaminare le prime righe del DataFrame** utilizzando la funzione `DataFrame.head()`. Questa funzione, per impostazione predefinita, visualizza le prime cinque righe del DataFrame, offrendo una rapida panoramica della struttura dei dati.

```python
print(df.head())
```

L’output è il seguente:

```none
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: modificare i nomi delle colonne (facoltativo)

Se il file CSV non contiene una riga di intestazione, puoi definire manualmente i nomi delle colonne:

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

In questo esempio, le colonne sono state denominate manualmente “Colonna1, Colonna2, Colonna3, Colonna4” e “Colonna5”. Il codice emette quindi il seguente output:

```none
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 utilizzando il parametro `chunksize` di `pandas.read_csv()`. Questo parametro permette di specificare quante righe devono essere lette per ogni iterazione, evitando il caricamento completo del file in memoria. Con un [ciclo for su Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/ciclo-for-su-python/) potrai quindi iterare sui singoli blocchi (chunk).


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/read-csv-di-pandas-per-python/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/read-csv-di-pandas-per-python/) for AI/LLM consumption.