Ich habe diese Zeitreihe (raw_series
):Wie kann ich die Summe einer Teilmenge in einer Pandas-Zeitreihe korrekt berechnen?
2016-03-30 00:01:00 2
2016-03-30 04:54:00 4
2016-03-30 08:51:00 1
2016-03-30 08:54:00 0
2016-03-30 08:55:00 1
2016-03-30 08:56:00 1
2016-03-30 08:57:00 2
2016-03-30 08:58:00 0
2016-03-30 09:00:00 1
2016-03-30 09:01:00 0
2016-03-30 09:04:00 0
2016-03-30 09:05:00 7
2016-03-30 09:06:00 4
2016-03-30 09:22:00 0
2016-03-30 09:24:00 8
2016-03-30 09:25:00 3
2016-03-30 09:28:00 0
2016-03-30 09:29:00 0
2016-03-30 09:39:00 1
2016-03-30 09:40:00 1
2016-03-30 09:41:00 1
Ich möchte die Summe der Werte um 09:00 Uhr und um 08:00 Uhr zu berechnen. Das ist, was ich tun (aber wird nicht funktionieren)
now = datetime.now()
try:
this_hour = raw_series[datetime(now.year, now.month, now.day, now.hour)].sum()
except KeyError:
this_hour = 0
prev = now - timedelta(hours=1)
try:
prev_hour = raw_series[datetime(prev.year, prev.month, prev.day, prev.hour)].sum()
except KeyError:
prev_hour = 0
Die Zeit war ich das Programm laufen now
wurde (von der Debug-Ausgabedatei kopiert):
[30/Mar/2016 09:59:45] DEBUG [main.views:267] now is 2016-03-30 09:59:41.318779
Die Boerse sind: this_hour = 1.0
und prev_hour = 0
(Ausnahme)
Was mache ich falsch?
Dank. Es klappt. Allerdings verstehe ich immer noch nicht, warum mein Ansatz nicht das erwartete Ergebnis liefert. – xpanta
Weil für datetime Slicing Ergebnisse erhalten werden, wenn Ihre Minuten Null sind, für den ersten Fall wird es '2016-03-30 09: 00: 00' für das zweite Nichts sein. Das könntest du mit 'now = datetime (Jahr = 2016, Monat = 3, Tag = 30, Stunde = 9) überprüfen; s [jetzt: jetzt] ' –