Autor Tema: Frecuencia relativa acumulada por agrupación

0 Usuarios y 1 Visitante están viendo este tema.

10 Marzo, 2022, 05:15 pm
Leído 150 veces

MeFon

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 15
  • País: co
  • Karma: +0/-0
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
Código: [Seleccionar]
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
Código: [Seleccionar]
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.

10 Marzo, 2022, 05:59 pm
Respuesta #1

ingmarov

  • Moderador Global
  • Mensajes: 5,320
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
Hola

Puedes hacer

Código: [Seleccionar]

df_animales["Acumulada"]=df_animales_group



Saludos
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

10 Marzo, 2022, 08:10 pm
Respuesta #2

MeFon

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 15
  • País: co
  • Karma: +0/-0
Muchas gracias
Otra forma que encontré fue esta
Código: [Seleccionar]
df_animales['Acumulada']=df_animales.groupby(['Zoológico'])['Fr'].cumsum()Esta también me funciona
Gracias