es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Suma de la columna en pandas groupby.

A continuación se muestra el dataframe

Habilidad   Categoría   Ubicación   Tipo de Mercado  Cantidad
Java         Cat1      Europa        Tier1           A      2
Java         Cat1      Europa        Tier1           B      1
Java         Cat1      Europa        Tier1           C      1
Java         Cat2      Asia          Tier2           D      1
Java         Cat3      Asia          Tier1           E      1

A continuación se muestra el dataframe de salida previsto

Habilidad   Categoría   Ubicación   Tipo de Mercado  Cantidad  Suma_Mercado
Java         Cat1      Europa        Tier1           A      2       4
Java         Cat1      Europa        Tier1           B      1       4
Java         Cat1      Europa        Tier1           C      1       4
Java         Cat2      Asia          Tier2           D      1       1
Java         Cat3      Asia          Tier1           E      1       1

Declaración del problema: La suma del mercado debe realizarse utilizando el agrupamiento de la habilidad específica, categoría y ubicación con la suma del tipo de mercado en cada una de estas selecciones.
A continuación se muestra mi intento:

df.groupby(['Habilidad','Categoría','Ubicación','Tipo de Mercado','Tipo'])['Cantidad'].sum()
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para lograr el dataframe de salida deseado, la operación de agrupación debe realizarse en columnas específicas: “Skill”, “Category”, “Location” y “Market Type”, y la columna “Count” debe sumarse para cada grupo. Además, se debe agregar una nueva columna “Sum_Market” para mostrar la suma del nivel de mercado en cada una de estas selecciones.

    Esto se puede lograr encadenando múltiples operaciones. Aquí hay una forma de hacerlo utilizando Pandas:

    df_grouped = df.groupby(['Skill', 'Category', 'Location', 'Market Type'])['Count'].agg(['sum']).reset_index()
    df_grouped.columns = ['Skill', 'Category', 'Location', 'Market Type', 'Count', 'Sum_Market']
    

    En la primera línea, agrupamos el DataFrame por las columnas especificadas y agregamos la columna “Count” usando la función “sum”. El resultado es un DataFrame con las columnas agrupadas y una nueva columna “sum” que contiene la suma de los recuentos para cada grupo.

    En la segunda línea, restablecemos el índice a su forma original y cambiamos el nombre de las columnas para que coincida con el resultado deseado. Cambiamos el nombre de la columna recién creada “sum” a “Count” y agregamos una nueva columna “Sum_Market”, que también contiene la suma de los recuentos para cada grupo.

    Esto debería darte el DataFrame de salida deseado que se muestra arriba.

Comments are closed.