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.
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