¿Cómo agrupar un dataframe de pandas en un intervalo de tiempo definido?

Tengo un dataFrame como este, me gustaría agrupar cada 60 minutos y comenzar a agrupar a las 06:30.

data index 2017-02-14 06:29:57 11198648 2017-02-14 06:30:01 11198650 2017-02-14 06:37:22 11198706 2017-02-14 23:11:13 11207728 2017-02-14 23:21:43 11207774 2017-02-14 23:22:36 11207776 

Estoy usando:

 df.groupby(pd.TimeGrouper(freq='60Min')) 

Me sale esta agrupación:

  data index 2017-02-14 06:00:00 x1 2017-02-14 07:00:00 x2 2017-02-14 08:00:00 x3 2017-02-14 09:00:00 x4 2017-02-14 10:00:00 x5 

Pero estoy buscando este resultado:

  data index 2017-02-14 06:30:00 x1 2017-02-14 07:30:00 x2 2017-02-14 08:30:00 x3 2017-02-14 09:30:00 x4 2017-02-14 10:30:00 x5 

¿Cómo puedo indicar a la función que comience a agruparse a las 6:30 a intervalos de una hora?

Si no puede hacerlo el .groupby (pd.TimeGrouper (freq = ’60Min’)) , ¿cómo es la mejor manera de hacerlo?

Un saludo y muchas gracias de antemano.

Use base=30 junto con label='right' parámetros label='right' en pd.Grouper .

Especificar label='right' hace que el período de tiempo para comenzar a agrupar desde las 6:30 (lado superior) y no desde las 5:30. Además, la base se establece en 0 por defecto , de ahí la necesidad de compensar esos 30 puntos para dar cuenta de la propagación de fechas hacia adelante.

Supongamos que desea agregar el primer elemento de cada subgrupo, entonces:

 df.groupby(pd.TimeGrouper(freq='60Min', base=30, label='right')).first() # same thing using resample - df.resample('60Min', base=30, label='right').first() 

rendimientos

  data index 2017-02-14 06:30:00 11198648.0 2017-02-14 07:30:00 11198650.0 2017-02-14 08:30:00 NaN 2017-02-14 09:30:00 NaN 2017-02-14 10:30:00 NaN 2017-02-14 11:30:00 NaN 2017-02-14 12:30:00 NaN 2017-02-14 13:30:00 NaN 2017-02-14 14:30:00 NaN 2017-02-14 15:30:00 NaN 2017-02-14 16:30:00 NaN 2017-02-14 17:30:00 NaN 2017-02-14 18:30:00 NaN 2017-02-14 19:30:00 NaN 2017-02-14 20:30:00 NaN 2017-02-14 21:30:00 NaN 2017-02-14 22:30:00 NaN 2017-02-14 23:30:00 11207728.0