Importare un file CSV in Pandas

Pandas offre un modo semplice e diretto per leggere file CSV, trasformandoli automaticamente in DataFrame, che sono strutture dati simili a tabelle con colonne e righe. Questo rende molto più facile manipolare, analizzare e visualizzare i dati rispetto a lavorare con file CSV in formato grezzo.

Il modo più semplice per importare un file CSV in Pandas è utilizzare la funzione read_csv(). Questa funzione legge il file CSV e lo converte in un DataFrame. Vediamo un esempio di base:

import pandas as pd # Importazione del file CSV in un DataFrame df = pd.read_csv('percorso/al/tuo/file.csv') # Visualizzazione delle prime righe del DataFrame print(df.head())

La funzione read_csv() offre numerosi parametri che consentono di personalizzare il processo di importazione del CSV. Ecco alcuni dei più utili:

  • sep: per impostazione predefinita, Pandas assume che il delimitatore nel file CSV sia una virgola. Tuttavia, in alcuni file, i valori possono essere separati da punti e virgola, tabulazioni o altri caratteri.

  • header: il parametro header consente di indicare quale riga del file CSV dovrebbe essere trattata come intestazione (nomi delle colonne).

  • names: se il file CSV non ha intestazioni o vuoi sostituire i nomi delle colonne, puoi usare il parametro names.

  • index_col: il parametro permette di specificare quale colonna usare come indice del DataFrame.

  • usecols: permette di limitare l’importazione a colonne specifiche.

  • dtype: puoi forzare un tipi di dato specifico per una o più colonne.

  • skiprows: ti permette di saltare le righe iniziali che non ti interessano.

  • na_value: permette di specificare quali valori devono essere considerati come NaN (Non a Number)

Gestione di file CSV di grandi dimensioni

Se stai lavorando con file CSV molto grandi, l'importazione diretta potrebbe richiedere un uso significativo di memoria. Pandas offre alcune opzioni per gestire questi scenari.

Puoi leggere il file CSV a blocchi, specificando il numero di righe da leggere in ogni blocco. Questo approccio è utile per l'elaborazione di file che non possono essere caricati interamente in memoria.

for chunk in pd.read_csv('file.csv', chunksize=10000):     # Esegui operazioni sui blocchi     print(chunk.shape)

Puoi anche usare iterator=True per creare un iteratore che legge il file CSV un pezzo alla volta.

df_iter = pd.read_csv('file.csv', iterator=True) # Leggi i dati in blocchi df_chunk = df_iter.get_chunk(10000)