Python pandas: creación de una columna que mantiene un recuento continuo de valores consecutivos

Estoy tratando de crear una columna ("consec") que mantendrá un recuento continuo de valores consecutivos en otro ("binario") sin usar el bucle. Así es como se vería el resultado deseado:

.    binary consec
1       0      0
2       1      1
3       1      2
4       1      3
5       1      4
5       0      0
6       1      1
7       1      2
8       0      0

Sin embargo, esto ...

df['consec'][df['binary']==1] = df['consec'].shift(1) + df['binary']

resulta en esto ...

.  binary   consec
0     1       NaN
1     1       1
2     1       1
3     0       0
4     1       1
5     0       0
6     1       1
7     1       1
8     1       1
9     0       0

Veo otras publicaciones que usan agrupación u ordenación, pero desafortunadamente, no veo cómo eso podría funcionar para mí. Gracias de antemano por tu ayuda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta