- 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ì:
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:
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:
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:
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 👋