Hola a todos, estoy tratando de obtener una frecuencia acumulada por agrupación, por ejemplo, tengo este df

En este caso quiero hallar la frecuencia relativa acumulada para cada uno de los zoológicos, es decir que quede así

Sin embargo, no he podido generar el df de esta manera, usé lo siguiente
df_animales_group=df_animales.groupby(by=['Zoológico'])
df_animales_group=df_animales_group['Fr']
df_animales_group=df_animales_group.cumsum()
Pero eso me da como resultado esto:

Con lo cual no tengo forma de visualizarlo con las demás columnas.
Intenté también esto
df_animales_group=df_animales.groupby(by=['Zoológico']).agg({"Fr": pd.Series.cumsum})
Pero genera error
ValueError: Must produce aggregated value
Alguna idea de cómo puedo visualizar esta frecuencia acumulada, muchas gracias.