pandas

Cómo usar Agrupar por en Pandas Python

Cómo usar Agrupar por en Pandas Python
El grupo de pandas por función se utiliza para agrupar objetos o columnas de DataFrames en función de condiciones o reglas particulares. Usando la función groupby, la gestió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, dividir en qué grupos se dividen los datos en función de 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, analizaremos los usos básicos de un grupo por función en Python de panda. Todos los comandos se ejecutan en el editor de 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 (Employee_Names, Designation, Employee_city, Age).

Concatenación de cadenas usando Agrupar 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 los datos en función de la columna 'Designación' de los empleados y unimos los Empleados que tienen la misma designación. La función lambda se aplica en 'Employees_Name'.

importar pandas como pd
df = pd.Marco de datos(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'Recursos humanos', 'Personal', 'Recursos humanos', 'Personal', 'Líder de equipo'],
'Employee_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") ['Employee_Names'].aplicar (lambda Employee_Names: ','.unirse (Employee_Names))
imprimir (df1)

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

Clasificación de valores en orden ascendente

Use el objeto groupby en un marco de datos regular llamando a '.to_frame () 'y luego use reset_index () para reindexar. Ordene los valores de columna llamando a sort_values ​​().

Ejemplo

En este ejemplo, ordenaremos la edad del empleado en orden ascendente. Usando el siguiente fragmento de código, hemos recuperado 'Employee_Age' en orden ascendente con 'Employee_Names'.

importar pandas como pd
df = pd.Marco de datos(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'Recursos humanos', 'Personal', 'Recursos humanos', 'Personal', 'Líder de equipo'],
'Employee_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') ['Employee_Age'].suma().enmarcar().reset_index ().sort_values ​​(por = 'Employee_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 los Empleados que pertenecen a la misma 'Employee_city'.

importar pandas como pd
df = pd.Marco de datos(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'Recursos humanos', 'Personal', 'Recursos humanos', 'Personal', 'Líder de equipo'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Ciudad_empleado').contar()
imprimir (df1)

Como puede ver el siguiente resultado, en las columnas Designation, Employee_Names y Employee_Age, cuente los números que pertenecen a la misma ciudad:

Visualice datos usando groupby

Mediante el uso de 'import matplotlib.pyplot ', puede visualizar sus datos en gráficos.

Ejemplo

Aquí, el siguiente ejemplo visualiza el 'Employee_Age' con 'Employee_Nmaes' del DataFrame dado usando la declaración groupby.

importar pandas como pd
importar matplotlib.pyplot como plt
marco de datos = pd.Marco de datos(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'Recursos humanos', 'Personal', 'Recursos humanos', 'Personal', 'Líder de equipo'],
'Employee_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 ('Nombre_empleado').suma().trama (tipo = 'barra')
plt.show()

Ejemplo

Para trazar el gráfico apilado usando groupby, gire el 'apilado = verdadero' y use el siguiente código:

importar pandas como pd
importar matplotlib.pyplot como plt
df = pd.Marco de datos(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'Recursos humanos', 'Personal', 'Recursos humanos', 'Personal', 'Líder de equipo'],
'Employee_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']).Talla().desapilar ().trama (tipo = 'barra', apilado = verdadero, tamaño de fuente = '6')
plt.show()

En el gráfico que se muestra 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 agregada con un nuevo nombre modificado de la siguiente manera:

importar pandas como pd
importar matplotlib.pyplot como plt
df = pd.Marco de datos(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'Recursos humanos', 'Personal', 'Recursos humanos', 'Personal', 'Líder de equipo'],
'Employee_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') ['Designación'].suma().reset_index (nombre = 'Employee_Designation')
imprimir (df1)

En el ejemplo anterior, el nombre de 'Designación' se cambia a 'Employee_Designation'.

Recuperar grupo por clave o valor

Usando la declaración groupby, puede recuperar registros o valores similares del marco de datos.

Ejemplo

En el ejemplo que se muestra a continuación, tenemos datos de grupo basados ​​en 'Designación'. Luego, el grupo 'Personal' se recupera usando el .getgroup ('Personal').

importar pandas como pd
importar matplotlib.pyplot como plt
df = pd.Marco de datos(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'Recursos humanos', 'Personal', 'Recursos humanos', 'Personal', 'Líder de equipo'],
'Employee_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 (extraer_valor.get_group ('Personal'))

El siguiente resultado se muestra en la ventana de salida:

Agregar valor a la lista del grupo

Se pueden mostrar datos similares en forma de lista utilizando la instrucción groupby. Primero, agrupe los datos según una condición. Luego, aplicando 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 según 'Employee_city', y luego, al aplicar la función 'Lambda', este grupo se recupera en forma de lista.

importar pandas como pd
df = pd.Marco de datos(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'Recursos humanos', 'Personal', 'Recursos humanos', 'Personal', 'Líder de equipo'],
'Employee_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 según su edad, estos valores se suman y, al usar la función 'transformar', se agrega una nueva columna en la tabla:

importar pandas como pd
df = pd.Marco de datos(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designación': ['Gerente', 'Personal', 'Oficial de TI', 'Oficial de TI', 'Recursos humanos', 'Personal', 'Recursos humanos', 'Personal', 'Líder de equipo'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['suma'] = df.groupby (['Employee_Names']) ['Employee_Age'].transformar ('suma')
imprimir (df)

Conclusión

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

Cómo usar Xdotool para estimular los clics del mouse y las pulsaciones de teclas en Linux
Xdotool es una herramienta de línea de comandos gratuita y de código abierto para simular clics del mouse y pulsaciones de teclas. Este artículo cubri...
Los 5 mejores productos ergonómicos de mouse de computadora para Linux
¿El uso prolongado de la computadora causa dolor en la muñeca o los dedos?? ¿Sufre de rigidez en las articulaciones y constantemente tiene que dar la ...
Cómo cambiar la configuración del mouse y el panel táctil con Xinput en Linux
La mayoría de las distribuciones de Linux se envían con la biblioteca "libinput" de forma predeterminada para manejar eventos de entrada en un sistema...