Mantener otras columnas durante las operaciones de agrupación
Al realizar una operación de agrupación en un marco de datos de pandas, a menudo es necesario conservar las columnas que no involucrados en el proceso de agrupación o agregación. De forma predeterminada, estas otras columnas se eliminan cuando se completa la operación. Esto puede resultar problemático si las columnas retenidas contienen información valiosa.
Considere el siguiente marco de datos:
item diff otherstuff 0 1 2 1 1 1 1 2 2 1 3 7 3 2 -1 0 4 2 1 3 5 2 4 9 6 2 -6 2 7 3 0 0 8 3 2 9
Si agrupamos el marco de datos por la columna "elemento" y encontramos el valor mínimo de la columna "diff", el marco de datos resultante se vería así:
item diff 0 1 1 1 2 -6 2 3 0
Observe que la columna "otras cosas" se ha eliminado. Para conservar esta columna, podemos usar el método idxmin() para obtener los índices de los elementos de diferencia mínima y luego seleccionarlos:
>>> df.loc[df.groupby("item")["diff"].idxmin()] item diff otherstuff 1 1 1 2 6 2 -6 2 7 3 0 0 [3 rows x 3 columns]
Otro método es ordenar el marco de datos por la columna "diff" y luego tomar el primer elemento de cada grupo de elementos:
>>> df.sort_values("diff").groupby("item", as_index=False).first() item diff otherstuff 0 1 1 2 1 2 -6 2 2 3 0 0 [3 rows x 3 columns]
Ambos métodos producirán el resultado deseado, conservando la columna "otras cosas". Tenga en cuenta que los índices resultantes pueden ser diferentes aunque el contenido de la fila sea el mismo.
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