2016-10-25 4 views
2

Unterhalb eines DateTimeIndex von einem DataFrame. Die Zeitzone Sommer/Winter ist "US/Eastern", die aufgezeichneten Zeitstempel sind jedoch "Europe/London". Ich versuche, neu zu indizieren, was eine Vollzeitsequenz erreichen wird.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) 

Wie indiziere ich das oben genannte, ohne das Stundenelement durcheinander zu bringen?

Antwort

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

Das ist wie eine Behandlung funktioniert Danke – James

Verwandte Themen