2016-10-25 2 views
2

Ниже DateTimeIndex из DataFrame. Часовой пояс «лето/зима» - «США/Восток», однако зарегистрированные отметки времени - «Европа/Лондон». Я пытаюсь переиндексировать, чтобы достичь полной временной последовательности.Python Pandas DateTimeIndex

DatetimeIndex(['1993-10-24 21:00:00', '1993-10-25 21:00:00', 
       '1993-10-26 21:00:00', '1993-10-27 21:00:00', 
       '1993-10-28 21:00:00', '1993-10-31 22:00:00', 
       '1993-11-01 22:00:00', '1993-11-02 22:00:00', 
       '1993-11-03 22:00:00', '1993-11-04 22:00:00'], 
       dtype='datetime64[ns]', name=u'TIME', freq=None) 

Как перефразировать выше, не испорчив элемент часов?

ответ

1
tidx = pd.DatetimeIndex(
    [ 
     '1993-10-24 21:00:00', '1993-10-25 21:00:00', 
     '1993-10-26 21:00:00', '1993-10-27 21:00:00', 
     '1993-10-28 21:00:00', '1993-10-31 22:00:00', 
     '1993-11-01 22:00:00', '1993-11-02 22:00:00', 
     '1993-11-03 22:00:00', '1993-11-04 22:00:00'], 
    dtype='datetime64[ns]', name=u'TIME', freq=None 
) 

ts = tidx.to_series().dt.hour.resample('D').last().ffill().rename_axis('date') 
ts.index + pd.to_timedelta(ts.values, unit='H') 

DatetimeIndex(['1993-10-24 21:00:00', '1993-10-25 21:00:00', 
       '1993-10-26 21:00:00', '1993-10-27 21:00:00', 
       '1993-10-28 21:00:00', '1993-10-29 21:00:00', 
       '1993-10-30 21:00:00', '1993-10-31 22:00:00', 
       '1993-11-01 22:00:00', '1993-11-02 22:00:00', 
       '1993-11-03 22:00:00', '1993-11-04 22:00:00'], 
       dtype='datetime64[ns]', freq=None) 
+0

Это работает как лечить Спасибо – James