Encontrar segmentos consecutivos en un marco de datos pandas

Tengo un pandas.DataFrame con mediciones tomadas en puntos consecutivos en el tiempo. Junto con cada medición, el sistema bajo observación tenía un estado distinto en cada punto en el tiempo. Por lo tanto, el DataFrame también contiene una columna con el estado del sistema en cada medición. Los cambios de estado son mucho más lentos que el intervalo de medición. Como resultado, la columna que indica los estados podría tener este aspecto (índice: estado):

1:  3
2:  3
3:  3
4:  3
5:  4
6:  4
7:  4
8:  4
9:  1
10: 1
11: 1
12: 1
13: 1

¿Existe una manera fácil de recuperar los índices de cada segmento de estados consecutivamente iguales? Eso significa que me gustaría obtener algo como esto:

[[1,2,3,4], [5,6,7,8], [9,10,11,12,13]]

El resultado también podría estar en algo diferente a las listas simples.

La única solución que podría pensar hasta ahora es iterar manualmente sobre las filas, encontrar puntos de cambio de segmento y reconstruir los índices a partir de estos puntos de cambio, pero tengo la esperanza de que haya una solución más fácil.

Respuestas a la pregunta(2)

Su respuesta a la pregunta