Gestire il formato delle date con pandas

Lavorare con le date riserva molto sgradite sorprese a cause dei diversi formati che esse possono assumere. In questo breve articolo vedremo come scegliere il formato che preferiamo grazie alla libreria pandas di Python.

Europeo o Americano?

Eccoci alle prese con l’annosa questione: formato Europeo o Americano? Quando scriviamo 02/03/2010 vogliamo indicare il 2 Marzo o il 3 Febbraio?

A differerenza di quanto avviene in Excel, il formato delle date in pandas non dipende dalle impostazioni di geolocalizzazione del nostro dispositivo, ma è qualcosa che possiamo specificare di volta in volta.

Lavoriamo con pandas

Immaginiamo di avere il seguente set di dati:

Immagine 1

Immagine 1

Come avrai constatato, la quarta colonna contiene delle date che possono essere sia in formato americano che europeo. Come facciamo ad essere sicuri che il nostro script le “interpreti” come faremmo noi? Semplice! Ci basta convertire la colonna “Data” nel formato del modulo datetime di Python e specificare se il primo numero contenuto nelle celle indica il giorno o il mese. Diamo un’occhiata al codice:

df['Data'] = pd.to_datetime(df['Data'], dayfirst=True)
Immagine 2

Immagine 2

In questo caso abbiamo specificato che il primo numero a sinistra nella colonna “Data” indica il giorno. Di conseguenza, il nostro script andrà ad interpretare la data come illustrato nell’immagine n. 2. Quindi, in linea con un formato di date di tipo europeo, la riga numero 2 del dataframe indicherà il 3 Febbraio 2019.

Al contrario, se vogliamo far sì che lo script legga le date in formato americano, non ci resta che cambiare leggermente il codice visto in precedenza:

df['Data'] = pd.to_datetime(df['Data'], dayfirst=False)
Immagine 3

Immagine 3

Come possiamo vedere nell’immagine 3, il primo numero della colonna “Data” del dataframe originale non viene interpretato come il giorno della data, bensì come il mese. Quindi, la riga numero 2 del dataframe finale indicherà il 2 Marzo 2019.

Marco Racanelli