En Python-Pandas, ¿cómo puedo subcontratar un dataframe por valores de índice de fecha y hora específicos?

Tengo un dataframe de muchos días que se ve así … filas consecutivas de intervalos de 30 minutos:

ab 2006-05-08 09:30:00 10 13 2006-05-08 10:00:00 11 12 . . . 2006-05-08 15:30:00 15 14 2006-05-08 16:00:00 16 15 

Sin embargo, solo me preocupo por ciertos momentos específicos, por lo que quiero que TODOS LOS DÍAS del df se vean así:

 2006-05-08 09:30:00 10 13 2006-05-08 11:30:00 14 15 2006-05-08 13:00:00 18 15 2006-05-08 16:00:00 16 15 

Es decir, solo quiero mantener las filas a veces (16, 13, 11:30, 9:30), para todos los días diferentes en el dataframe.

Gracias

Actualizar:

Hice un poco de progreso, usando

 hour = df.index.hour selector = ((hour == 16) | (hour == 13) | (hour == 11) | (hour == 9)) df = df[selector] 

Sin embargo, también debo tener en cuenta los minutos, así que intenté:

 minute = df.index.minute selector = ((hour == 16) & (minute == 0) | (hour == 3) & (minute == 0) | (hour == 9) & (minute == 30) | (hour == 12) & (minute == 0)) 

Pero me sale un error:

 ValueError: operands could not be broadcast together with shapes (96310,) (16500,) 

 import numpy as np import pandas as pd N = 100 df = pd.DataFrame(range(N), index=pd.date_range('2000-1-1', freq='30T', periods=N)) mask = np.in1d((df.index.hour)*100+(df.index.minute), [930, 1130, 1300, 1600]) print(df.loc[mask]) 

rendimientos

  0 2000-01-01 09:30:00 19 2000-01-01 11:30:00 23 2000-01-01 13:00:00 26 2000-01-01 16:00:00 32 2000-01-02 09:30:00 67 2000-01-02 11:30:00 71 2000-01-02 13:00:00 74 2000-01-02 16:00:00 80