• analiticas
  • Posts
  • Aggiungere data e ora ad un dataframe in pandas

Aggiungere data e ora ad un dataframe in pandas

Scopri come inserire automaticamente la data e l'ora corrente nei tuoi dataframe

In questa micro-lezione, esploreremo come aggiungere valori dinamici come la data e l'ora ai nostri dataframe in pandas. Questa tecnica è particolarmente utile quando lavori con dati che richiedono un timestamp o quando vuoi tenere traccia di quando sono state effettuate determinate operazioni sui tuoi dati.

Importiamo le librerie necessarie

Prima di iniziare, assicuriamoci di avere tutte le librerie necessarie: oltre a pandas, useremo anche la libreria datetime e in particolare i suoi moduli datetime e date.

import pandas as pd
from datetime import datetime, date

Iniziamo

Iniziamo creando un semplice dataframe (se hai già dei dati sui quali lavorare, puoi saltare questo passaggio).

df = pd.DataFrame({
    'Nome': ['Mario', 'Luigi', 'Peach'],
    'Punteggio': [100, 150, 200]
})

Il nostro dataframe iniziale apparirà così:

Python pandas date

Aggiungere la data corrente

Per aggiungere la data corrente a ogni riga del nostro dataframe, possiamo utilizzare il metodo date.today(). In questo esempio, aggiungiamo una nuova colonna al nostro dataframe alla quale assegniamo il valore della data odierna:

df['Data'] = date.today()

Ed ecco qui il risultato:

Python pandas date

Aggiungere anche l'ora

Se vogliamo essere più precisi e includere anche l'ora, possiamo utilizzare datetime.now() :

df['Timestamp'] = datetime.now()

Il nostro dataframe aggiornato avrà questo aspetto:

Python pandas datetime

Formattare l'ora e la data

Tuttavia, avrai notato che la parte finale dei valori della nuova colonna è un po’ strana. Infatti datetime.now() include le unità di tempo fino al microsecondo. Se non abbiamo bisogno di essere così precisi, possiamo usare il metodo strftime().

In questo esempio, estraiamo l’ora dal valore del timestamp, decidiamo di rappresentarla in ore, minuti e secondi e ne mettiamo il valore in una nuova colonna:

df['Ora_Formattata'] = datetime.now().strftime('%H:%M:%S')

In aggiunta, immaginiamo di voler rappresentare la data con giorno, mese e anno separati da una barra obliqua (nel formato gg/mm/aaaa) anziché dal trattino. Anche in questo caso useremo il metodo strftime() applicato, questa volta, a date.today().

df['Data_Formattata'] = date.today().strftime('%d/%m/%Y')

Ecco il risultato finale:

Python pandas datetime

Metodologia avanzata

I passaggi visti finora vanno bene se dobbiamo cambiare il formato di data e ora una sola volta. Ma come possiamo evitare di scrivere codice ripetitivo se vogliamo eseguire questa operazione più volte? Ci basta creare due variabili, con i valori di data e ora nel formato che desideriamo:

data2 = date.today().strftime('%d/%m/%Y')
ora2 = datetime.now().strftime('%H:%M:%S')

Successivamente possiamo usare queste variabili in più punti del nostro codice. Come, ad esempio, per creare le colonne che abbiamo aggiunto in precedenza:

df['Ora_Formattata'] = data2
df['Data_Formattata'] = ora2

Conclusione

Aggiungere valori dinamici come la data e l'ora ai tuoi dataframe in pandas è un'operazione molto semplice che può servirti per tenere traccia delle modifiche, creare log o semplicemente aggiungere informazioni temporali ai tuoi dati.

Ricorda però che ogni volta che esegui il codice, otterrai la data e l'ora correnti.

Alla prossima micro-lezione 👋