Ich versuche, eine Dezimalstelle in ein Datetime-Objekt zu konvertieren, um nach den Monaten zu suchen, um später die Zeit in Jahreszeiten zu teilen. Ich tat etwas Forschung und stolperte über datetime.datetime.fromtimestamp aber alles, was ich versucht habe, erzeugt die folgenden Fehler:Konvertiere Zeit Dezimal zu Datetime-Objekt Python
TypeError: 'datetime.datetime' object is not iterable
In der Vergangenheit habe ich Pandas verwendet, um eine neue Zeit Array zu erstellen, aber nicht das Gefühl, dass ist am besten für meine gegebene Situation. Zur Zeit habe ich folgendes in meinem Code und habe es auch ohne die for-Schleife versucht, in der Hoffnung, dass ich vontimestamp() richtig arbeiten kann.
raw_time = (data.variables['time'].getValue()/float(365*24))+1800 #hours since 1800
time = n.where((raw_time>=2006)&(time<=2016)) #our specific time interval
annual_time = []
for i in raw_time[time]:
annual_time.extend(datetime.datetime.fromtimestamp(i))
Meine Zeit wurde aus als netCDF-Datei eingelesen und zur Zeit sieht wie folgt aus:
print raw_time[time]
array([ 2006.05205479, 2006.1369863 , 2006.22191781, 2006.29863014,
2006.38356164, 2006.46575342, 2006.55068493, 2006.63287671,
2006.71780822, 2006.80273973, 2006.88493151, 2006.96986301,
2007.05205479, 2007.1369863 , 2007.22191781, 2007.29863014,
2007.38356164, 2007.46575342, 2007.55068493, 2007.63287671,
2007.71780822, 2007.80273973, 2007.88493151, 2007.96986301,
2008.05205479, 2008.1369863 , 2008.22191781, 2008.30136986,
2008.38630137, 2008.46849315, 2008.55342466, 2008.63561644,
2008.72054795, 2008.80547945, 2008.88767123, 2008.97260274, ...])
Wie ist die Zeit mit der Zahl dargestellt - 2006 ist was und nach der Dezimalzahl (05205479) ist was? – wolframalpha
2006 ist mein Startjahr und die Dezimalstelle ist danach der Monatsstempel. –