Ich versuche zu finden, wo die Jahre innerhalb einer angegebenen Grenzen für ein Datetime-Objekt sind. Ich habe versucht, eine For-Schleife zu machen, aber leider kann ich es nicht zum Laufen bringen. Ich weiß, dass ich nach Monaten und Jahren suchen kann, wenn ich ein Datetime-Objekt in ein Pandas-Array umwandle, aber leider hat die Software, die ich benutze, keine Pandas-Bibliothek und ich kann sie nicht auf meinen Schulserver herunterladen.Suche in einem Datetime-Objekt Python
Unten ist, wie ich in meiner Zeit Daten lesen und es funktioniert wunderbar (es viel Zeit beseitigt es meine Zeit einen anderen Weg genommen hätte umwandeln)
date = netCDF4.Dateset('filename.nc', mode = 'r')
raw_time = data.variables['time']
time_converted = netCDF4.num2date(raw_time[:], raw_time.units)
Die time_converted Variable ist ein Datetime-Objekt dass sieht wie folgt aus:
....
datetime.datetime(2006, 1, 1, 0, 0),
datetime.datetime(2006, 2, 1, 0, 0),
datetime.datetime(2006, 3, 1, 0, 0),
datetime.datetime(2006, 4, 1, 0, 0),
datetime.datetime(2006, 5, 1, 0, 0),
datetime.datetime(2006, 6, 1, 0, 0),
datetime.datetime(2006, 7, 1, 0, 0),
datetime.datetime(2006, 8, 1, 0, 0),
datetime.datetime(2006, 9, 1, 0, 0),
.....
die Schleife unten ist mein letzter Versuch, und es gibt die folgende Fehlermeldung:
time = []
for i in time_converted:
if i.year>= 2006 and i.year<2016:
time.append(i)
Type Error: 'int' object is not callable
Innerhalb meiner Schleife habe ich versucht, auch mit datetime.datetime.year (i), aber das zurückgibt:
Type Error: 'getset_descriptor' is not callable
entfernen Klammer aus i.year(), es ist eine Eigenschaft keine Methode – Alex
@Alex, wenn ich die Klammer entfernen, gibt es einen Indexfehler zurück, der angibt, dass nur ganze Zahlen, Scheiben, Ellipsen und 1-d Integer oder Boolesche Arrays gültige Indizes sind ... –
Könnten Sie den Code einfügen, den Sie ausführen? Es sollte keine Indexfehler in Ihrer Schleife geben, schauen Sie sich StackTrace an, um herauszufinden, was schief gelaufen ist. – Alex