Cómo usar el grupo en Pandas Python

Cómo usar el grupo en Pandas Python
El grupo pandas por función se utiliza para agrupar objetos o columnas de marcos de datos basados ​​en condiciones o reglas particulares. Usando la función Groupby, la administración del conjunto de datos es más fácil. Sin embargo, todos los registros relacionados se pueden organizar en grupos. Usando la biblioteca PANDAS, puede implementar el grupo PANDAS por función para agrupar los datos de acuerdo con diferentes tipos de variables. La mayoría de los desarrolladores utilizaron tres técnicas básicas para el grupo por función. Primero, división en la que los datos se dividen en grupos basados ​​en algunas condiciones particulares. Luego, aplique ciertas funciones a estos grupos. Al final, combine la salida en forma de estructura de datos.

En este artículo, caminaremos por los usos básicos de un grupo por función en Panda's Python. Todos los comandos se ejecutan en el editor PyCharm.

Discutamos el concepto principal del grupo con la ayuda de los datos del empleado. Hemos creado un marco de datos con algunos detalles útiles de los empleados (empleado_names, designación, empleado_city, edad).

Concatenación de cadena utilizando el grupo por función

Usando la función Groupby, puede concatenar cadenas. Los mismos registros se pueden unir con ', en una sola celda.

Ejemplo

En el siguiente ejemplo, hemos ordenado datos basados ​​en la columna de la 'designación' de los empleados y nos unimos a los empleados que tienen la misma designación. La función Lambda se aplica en 'Employes_Name'.

importar pandas como PD
DF = PD.Marco de datos(
'Empleado_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'HR', 'Personal', 'HR', 'Personal', 'Líder de equipo']],
'Empleado_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad']],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
DF1 = DF.Groupby ("Designación") ['Empleado_names'].Aplicar (Lambda Employee_Names: ','.unirse (empleado_names))
Imprimir (DF1)

Cuando se ejecuta el código anterior, se muestra la siguiente salida:

Clasificar valores en un orden ascendente

Use el objeto GroupBy en un marco de datos regular llamando '.to_frame () 'y luego use reset_index () para reindexing. Ordenar valores de columna llamando a sort_values ​​().

Ejemplo

En este ejemplo, clasificaremos la edad del empleado en orden ascendente. Usando la siguiente pieza de código, hemos recuperado el 'empleado_age' en orden ascendente con 'empleado_names'.

importar pandas como PD
DF = PD.Marco de datos(
'Empleado_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'HR', 'Personal', 'HR', 'Personal', 'Líder de equipo']],
'Empleado_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad']],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
DF1 = DF.Groupby ('Empleado_names') ['Employee_age'].suma().enmarcar().reset_index ().sort_values ​​(by = 'empleado_age')
Imprimir (DF1)

Uso de agregados con Groupby

Hay una serie de funciones o agregaciones disponibles que puede aplicar en grupos de datos como Count (), Sum (), Mean (), Median (), Mode (), std (), Min (), max ().

Ejemplo

En este ejemplo, hemos utilizado una función 'count ()' con Groupby para contar a los empleados que pertenecen a la misma 'empleado_city'.

importar pandas como PD
DF = PD.Marco de datos(
'Empleado_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'HR', 'Personal', 'HR', 'Personal', 'Líder de equipo']],
'Empleado_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad']],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
DF1 = DF.Groupby ('Employee_City').contar()
Imprimir (DF1)

Como puede ver el siguiente resultado, bajo la designación, Employee_Names y Employee_age, cuenta números que pertenecen a la misma ciudad:

Visualizar datos utilizando Groupby

Utilizando el 'importador de importación.pyplot ', puede visualizar sus datos en gráficos.

Ejemplo

Aquí, el siguiente ejemplo visualiza el 'Employee_Age' con 'Employee_NMaes' desde el marco de datos dado utilizando la instrucción Groupby.

importar pandas como PD
Importar matplotlib.Pyplot como PLT
DataFrame = PD.Marco de datos(
'Empleado_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'HR', 'Personal', 'HR', 'Personal', 'Líder de equipo']],
'Empleado_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad']],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
PLT.CLF ()
marco de datos.Groupby ('Empleado_names').suma().plot (kind = 'bar')
PLT.espectáculo()

Ejemplo

Para trazar el gráfico apilado usando Groupby, gire el 'Stacked = True' y use el siguiente código:

importar pandas como PD
Importar matplotlib.Pyplot como PLT
DF = PD.Marco de datos(
'Empleado_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'HR', 'Personal', 'HR', 'Personal', 'Líder de equipo']],
'Empleado_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad']],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.Groupby (['Employee_City', 'Employee_Names']).tamaño().Unstack ().plot (Kind = 'Bar', Stacked = True, FontSize = '6')
PLT.espectáculo()

En el gráfico a continuación, el número de empleados apilados que pertenecen a la misma ciudad.

Cambiar el nombre de la columna con el grupo por

También puede cambiar el nombre de la columna agregado con un nuevo nombre modificado de la siguiente manera:

importar pandas como PD
Importar matplotlib.Pyplot como PLT
DF = PD.Marco de datos(
'Empleado_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'HR', 'Personal', 'HR', 'Personal', 'Líder de equipo']],
'Empleado_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad']],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
DF1 = DF.Groupby ('Employee_Names') ['Designation'].suma().reset_index (name = 'Employee_Designation')
Imprimir (DF1)

En el ejemplo anterior, el nombre de 'designación' se cambia a 'empleado_designation'.

Recuperar grupo por clave o valor

Usando la instrucción GroupBy, puede recuperar registros o valores similares de DataFrame.

Ejemplo

En el ejemplo a continuación, tenemos datos grupales basados ​​en 'designación'. Luego, el grupo de 'personal' se recupera utilizando el .GetGroup ('personal').

importar pandas como PD
Importar matplotlib.Pyplot como PLT
DF = PD.Marco de datos(
'Empleado_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'HR', 'Personal', 'HR', 'Personal', 'Líder de equipo']],
'Empleado_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad']],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
Extract_Value = DF.Groupby ('designación')
Imprimir (Extract_Value.get_group ('personal'))

El siguiente resultado se muestra en la ventana de salida:

Agregar valor a la lista de grupos

Se pueden mostrar datos similares en forma de lista utilizando la instrucción Groupby. Primero, agrupe los datos basados ​​en una condición. Luego, al aplicar la función, puede colocar fácilmente este grupo en las listas.

Ejemplo

En este ejemplo, hemos insertado registros similares en la lista de grupos. Todos los empleados se dividen en el grupo basado en 'Employee_City', y luego aplicando la función 'lambda', este grupo se recupera en forma de una lista.

importar pandas como PD
DF = PD.Marco de datos(
'Empleado_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'HR', 'Personal', 'HR', 'Personal', 'Líder de equipo']],
'Empleado_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad']],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
DF1 = DF.Groupby ('Employee_City') ['Employee_Names'].Aplicar (Lambda Group_Series: Group_Series.Listar()).reset_index ()
Imprimir (DF1)

Uso de la función de transformación con Groupby

Los empleados se agrupan de acuerdo con su edad, estos valores se suman, y mediante el uso de la función 'transformar' se agrega una nueva columna en la tabla:

importar pandas como PD
DF = PD.Marco de datos(
'Empleado_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'HR', 'Personal', 'HR', 'Personal', 'Líder de equipo']],
'Empleado_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad']],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['sum'] = df.Groupby (['Empleado_names']) ['Employee_age'].transformar ('suma')
Imprimir (DF)

Conclusión

Hemos explorado los diferentes usos de la declaración de Groupby en este artículo. Hemos demostrado cómo puede dividir los datos en grupos, y al aplicar diferentes agregaciones o funciones, puede recuperar fácilmente estos grupos.