CodeGym /Corsi /Python SELF IT /Arrotondamento del tempo e il suo utilizzo nei report per...

Arrotondamento del tempo e il suo utilizzo nei report per semplificare l’analisi

Python SELF IT
Livello 40 , Lezione 4
Disponibile

1. Arrotondare il tempo: perché e quando?

Per quanto possa essere importante la precisione, ci sono situazioni in cui bisogna arrotondare il tempo. Immagina: stai analizzando enormi quantità di dati e ogni secondo conta. Ma perché ti servono i secondi in un report, se bastano i minuti o addirittura le ore? L'arrotondamento consente di semplificare i dati e renderli più comprensibili, preservando al contempo le informazioni essenziali.

Esempi di utilizzo dell’arrotondamento del tempo:

  • Analisi delle serie temporali: quando analizzi dati di settimane o mesi, i secondi o addirittura i minuti non sono necessari. Ore o giorni sono più che sufficienti.
  • Creazione di report: semplifica i tuoi report arrotondando il tempo all'ora o al giorno più vicino per renderli più leggibili.
  • Ottimizzazione delle prestazioni: ridurre i dati ridondanti può accelerare significativamente l'analisi.

2. Come arrotondare il tempo in Python?

Python offre un modo abbastanza semplice e conveniente per lavorare con l’arrotondamento del tempo. È qui che dobbiamo ricordarci della classe datetime e dei suoi metodi.

Arrotondare ai minuti o alle ore più vicini

Per iniziare, arrotondiamo un oggetto tempo al minuto più vicino. Guarda:

Python
from datetime import datetime, timedelta

# Supooniamo di avere una data e un'ora
now = datetime.now()

# Arrotondare ai 10 minuti più vicini
def round_time_to_nearest_minute(dt, interval):
    discard = timedelta(minutes=dt.minute % interval,
                        seconds=dt.second,
                        microseconds=dt.microsecond)
    dt -= discard
    if discard >= timedelta(minutes=interval/2):
        dt += timedelta(minutes=interval)
    return dt

rounded_time = round_time_to_nearest_minute(now, 10)
print(f"Ora corrente: {now}")
print(f"Ora arrotondata ai 10 minuti più vicini: {rounded_time}")
    
    

Qui utilizziamo il metodo timedelta per gestire gli intervalli. La funzione round_time_to_nearest_minute consente di arrotondare il tempo all'intervallo più vicino di 10 minuti. Puoi cambiare l'intervallo con qualsiasi altro.

Arrotondare alle ore più vicine

Che succede se hai bisogno di arrotondare all'ora più vicina? È simile al nostro esempio precedente, ma con alcune modifiche:

Python

# Arrotondare all'ora più vicina
def round_time_to_nearest_hour(dt):
    discard = timedelta(minutes=dt.minute % 60,
                        seconds=dt.second,
                        microseconds=dt.microsecond)
    dt -= discard
    if discard >= timedelta(minutes=30):
        dt += timedelta(hours=1)
    return dt

rounded_hour = round_time_to_nearest_hour(now)
print(f"Ora arrotondata all'ora più vicina: {rounded_hour}")
    
    

3. Esempi reali di utilizzo nei report e nell'analisi dei dati

Ora che abbiamo le nostre date e ore arrotondate, parliamo di come queste abilità possono essere utilizzate nella vita reale.

Esempio 1: Report sull'orario di lavoro

Immagina di sviluppare un sistema per registrare l'orario di lavoro. Arrotondare l'orario di lavoro ai 15 minuti più vicini aiuta a semplificare il calcolo degli orari, utile per creare report e calcolare gli stipendi.

Python
# Funzione di arrotondamento del tempo per registrare gli orari di lavoro
def round_time_for_work_log(dt, interval=15):
    return round_time_to_nearest_minute(dt, interval)

start_time = datetime.strptime('08:05:30', '%H:%M:%S')
end_time = datetime.strptime('17:38:45', '%H:%M:%S')

rounded_start_time = round_time_for_work_log(start_time)
rounded_end_time = round_time_for_work_log(end_time)

print(f"Inizio: {rounded_start_time.time()}")
print(f"Fine: {rounded_end_time.time()}")
    
    

Esempio 2: Analisi dell’attività degli utenti

Se stai monitorando l'attività degli utenti su un sito, arrotondare il tempo all'ora più vicina può aiutare a creare report più chiari senza sovraccaricarli di dati dettagliati.

Python

    # Arrotondare i timestamp dell'attività degli utenti
user_activity = [
    datetime(2023, 10, 15, 14, 22), 
    datetime(2023, 10, 15, 14, 47), 
    datetime(2023, 10, 15, 15, 5)
]

rounded_activity = [round_time_to_nearest_hour(activity) for activity in user_activity]
print("Timestamp arrotondati dell'attività degli utenti:", rounded_activity)
    
    

Semplificare l’analisi delle serie temporali

Quando metti tutte le tue serie temporali nell'analisi, potresti notare come l'arrotondamento possa semplificare l'analisi. I grafici diventano meno confusi e i parametri sono più facili da capire.

Possibili errori e come risolverli

Durante il lavoro con l'arrotondamento del tempo potresti incontrare alcuni errori comuni. Uno di questi è una comprensione errata della logica di arrotondamento. Assicurati di impostare correttamente l'intervallo e il formato dell'ora. Inoltre, fai attenzione a non sovrascrivere i dati originali, se ti serviranno ancora.

Per un controllo accurato sull’arrotondamento, verifica sempre che timedelta calcoli correttamente l’intervallo e presta attenzione alla correttezza del formato dei dati in input.

1
Sondaggio/quiz
Lavorare con la libreria schedule, livello 40, lezione 4
Non disponibile
Lavorare con la libreria schedule
Lavorare con la libreria schedule
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION