"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo agregar una columna con recuentos de grupos a un marco de datos agrupado en Pandas?

¿Cómo agregar una columna con recuentos de grupos a un marco de datos agrupado en Pandas?

Publicado el 2024-11-06
Navegar:611

How to Add a Column with Group Counts to a Grouped Dataframe in Pandas?

Cómo agregar una columna a un marco de datos agrupado en Pandas

En el análisis de datos, a menudo es necesario agrupar datos y realizar cálculos en cada grupo. Pandas ofrece una manera conveniente de hacer esto a través de su función groupby. Una tarea común es contar los valores de una columna dentro de cada grupo y agregar una columna que contenga estos recuentos al marco de datos.

Considere el marco de datos df:

df = pd.DataFrame({'c':[1,1,1,2,2,2,2],'type':['m','n','o','m','m','n','n']})

Para contar los valores de tipo para cada c, podemos usar la función value_counts en el marco de datos agrupado:

g = df.groupby('c')['type'].value_counts().reset_index(name='t')

Esto crea un nuevo marco de datos g con los recuentos del grupo. Para agregar una columna a g con el tamaño de cada grupo, podemos usar la función de transformación:

g['size'] = df.groupby('c')['type'].transform('size')

transform aplica una función a cada grupo en el marco de datos original y devuelve una Serie con su índice alineado con el marco de datos original. En este caso, usamos la función de tamaño para contar el número de elementos en cada grupo y asignarlo al nuevo tamaño de columna. El marco de datos resultante g ahora se verá así:

   c type  t  size
0  1    m  1     3
1  1    n  1     3
2  1    o  1     3
3  2    m  2     4
4  2    n  2     4

Esto demuestra una forma sencilla de agregar una nueva columna a un marco de datos agrupado en función de los resultados de una agregación groupby.

Declaración de liberación Este artículo se reimprime en: 1729308796 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3