Máscara de series de tiempo fuera del horario comercial

Hola, tengo una serie temporal por hora que me gustaría enmascarar si el índice de series temporales está fuera del horario comercial.

Puedo lograr lo que quiero para los datos del día laboral pero no los datos por hora

import datetime import pandas as pd import numpy as np from pandas.tseries.offsets import * st = datetime.datetime(2013, 1, 1) ed = datetime.datetime(2013, 2, 1) myrange = pd.date_range(st, ed, freq='H') ts = pd.Series(np.random.randn(len(myrange)), index=myrange) ts.asfreq(BDay()).asfreq(Day()) 

He intentado generar un rango de fechas BDay y luego cambiar la frecuencia a cada hora, pero esto no funciona.

 newrange = pd.date_range(datetime.datetime(2013, 1, 1), datetime.datetime(2013, 1, 1), freq='B') #but adding this doesn't work .asfreq(Hour()) ts[ts.index.isin(newrange)].asfreq(Hour()) #Of course this only gives one value on the day 

Gracias

Para restringir sus horarios a los días hábiles, puede utilizar:

 ts = ts.ix[ts.index.map(BDay())] 

y indexer_between_time para restringir entre horas de trabajo:

 ts = ts.ix[ts.index.indexer_between_time(time(7), time(18))] 

Para restringir los días hábiles dentro de los horarios comerciales (aplíquelos en cualquier orden).