Ich habe einen Datenrahmen mit stündlichen Werten während der Arbeitswoche:Verschiebung Teil datetimeindex um 1 Stunde Pandas
>>> vol_adjust.head()
Out[59]:
2011-11-01 05:00:00+11:00 3237454603.000
2011-11-01 06:00:00+11:00 3292278695.000
2011-11-01 07:00:00+11:00 6037960826.000
2011-11-01 08:00:00+11:00 7127161746.000
2011-11-01 09:00:00+11:00 3382477744.000
>>> vol_adjust.shape
Out[60]: (29658, 1)
Das Problem ist, dass einige der Werte auf Samstagen fallen in der Regel nur 1 Wert. Ich habe 5 solche Termine im gesamten Datenrahmen:
>>> vol_adjust[vol_adjust.index.dayofweek == 5]
Out[63]:
2012-03-03 00:00:00+11:00 794977434.400
2012-03-17 00:00:00+11:00 403171073.800
2013-03-16 00:00:00+11:00 808805223.800
2014-03-15 00:00:00+11:00 1622434962.000
2016-03-05 00:00:00+11:00 569319700.900
Name: vol, dtype: float64
Bei näherer Betrachtung scheint es, dass in der Woche auf einigen Tagen, die Daten überspringen den 00.00-Eintrag (Mitternacht), z.B.
>>> vol_adjust['2012-03-01'].tail()
Out[75]:
2012-03-01 19:00:00+11:00 931207673.400
2012-03-01 20:00:00+11:00 2213366040.000
2012-03-01 21:00:00+11:00 994524108.700
2012-03-01 22:00:00+11:00 541624218.800
2012-03-01 23:00:00+11:00 2085975988.000
Name: vol, dtype: float64
>>> vol_adjust['2012-03-02'].head()
Out[70]:
2012-03-02 01:00:00+11:00 1951010063.000
2012-03-02 02:00:00+11:00 1703256493.000
2012-03-02 03:00:00+11:00 947991961.000
2012-03-02 04:00:00+11:00 1210964133.000
2012-03-02 05:00:00+11:00 908680999.300
Name: vol, dtype: float64
Ich habe einen Weg, solche Termine zu identifizieren, und möchte die Stunden um 1 vom Beginn des unruhigen Tages auf den entsprechenden Samstag bis bewegen. Gibt es eine einfache Möglichkeit, dies zu tun? z.B. Nehmen wir an, ich wüsste '2012-03-02' bis '2012-03-03' ist der Zeitraum, in dem der Index um 1 Stunde aus ist, wie kann ich ihn um 1 Stunde einfach nur für diese Zeit verschieben, während der Rest unverändert bleibt ?