Forum
>>
Programmazione Python
>>
Database
>>
Trasformazione numero (progressione espressa in minuti) in data
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da desere |
2020-07-31 10:54:33 - Trasformazione numero (progressione espressa in minuti) in data
|
Buongiorno,
sono una principiante in tutto: Python e forum, quindi spero mi scuserete se commetterò qualche errore soprattutto nella terminologia. Sto imparando Python per leggere e manipolare file .csv derivanti da sensori che rilevano ogni 30 minuti la temperatura, con lo scopo di farne dei grafici. Ora sto eseguendo un esercizio di preparazione e il mio file è così composto: Colonna1: Time (minutes) dove i valori vanno da 0 a 527010 che altro non sono che i minuti di un anno Colonna 2: Temperatura Ora io devo convertire tutti i minuti di progressione in date del 2019. Questo perchè avere un grafico con le date è sicuramente più chiaro che averlo con i minuti in progressione, Quindi il file è così strutturato: Time (minutes): 0 30 ... Temperature (corrispondenti) 0.1 -0.5 ... In pratica devo ottenere nella prima colonna il seguente valore: 01-01-2019 00:00:00 01-01-2019 00:30:00 ... Potete darmi indicazioni su come fare? la library Datetime così come l'ho vista fin'ora mi aiuta se ho già una data impostata, ma purtroppo non trovo ciò che mi possa aiutare a cambiare la formattazione ai miei numeri. Chiedo aiuto a voi...suggerimenti? Ringrazio infinitamente!!! --- Ultima modifica di desere in data 2020-07-31 10:55:20 --- |
|
Scritto da RicPol |
2020-07-31 11:46:31 - Re: Trasformazione numero (progressione espressa in minuti) in data
|
In Python le date si esprimono come oggetti di tipo datetime.datetime https://docs.python.org/3/library/datetime.html#datetime-objects e gli intervalli di tempo si esprimono come oggetti di tipo datetime.timedelta https://docs.python.org/3/library/datetime.html#timedelta-objects
Quindi, nel tuo caso non ti resta che esprimere la data del 1 gennaio 2019, alla mezzanotte, in termini di oggetto datetime, poi esprimere i minuti da sommare in termini di datetime.timedelta, e quindi sommare i minuti alla data iniziale per ottenere la data risultante. Come nota avanzata, che probabilmente non ti interessa, ma comunque è meglio dirla: datetime non ha problemi a tener conto degli eventuali anni bisestili, tuttavia non tiene conto dell'ora legale. Quindi se la tua somma produce una data che cade nel periodo dell'ora legale sicuramente avrai una data sbagliata di un'ora (o peggio ancora una data inesistente se caschi proprio nell'ora di folding), ma insomma, così è. Se vuoi anche tener conto dell'ora legale, ti servono strumenti più sofisticati (e tanta comprensione teorica... le date fanno impazzire anche i migliori programmatori...). Infine, il solito disclaimer standard che tanto nessuno degna mai di uno sguardo, ma per correttezza e scrupolo io lo ripeto sempre: se stai imparando python, non dovresti cercare di risolvere i tuoi problemi concreti. Prima studia python seguendo un buon manuale, mettici tutto il tempo che ti occorre (tipicamente un annetto), e poi comincia a applicare python ai tuoi problemi reali. Se applichi python ai tuoi problemi reali subito, non risolvi i problemi e non impari python. https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog |
Pagina: 1
Esegui il login per scrivere una risposta.