Pandas Groupby Aplicar

Pandas Groupby Aplicar
La biblioteca de Python más popular para la manipulación y análisis de datos es Pandas. El análisis de datos con frecuencia requiere que los datos se dividan en grupos para ejecutar operaciones diferentes en cada grupo. La estrategia Split-Apply-Combine es utilizada por la función Groupby en Pandas. Esto implica separar un objeto, usar funciones en el objeto y combinar los resultados. En esta publicación para manipular datos agrupados de varias maneras, se utilizará la función de grupo. Uno de los métodos comúnmente utilizados para el preprocesamiento de datos es el aplicar() método. Aplicar una función a cada elemento de una serie de pandas, y a cada columna o fila del marco de datos en pandas, se simplifica. El método Aplicar () en Pandas se cubrirá en este artículo junto con la función GroupBy ().

Hot para usar la función Aplicar () en datos agrupados

Podemos usar la función Aplicar () para varias funciones a las filas y columnas de DataFrame. Los objetos suministrados a la función son objetos de series cuyo valor de índice es el índice de las filas DataFrame (axis = 0) o el número de columnas en DataFrame (axis = 1). El uso de este método devolverá el DataFrame o la serie a lo largo del eje especificado. Si queremos cambiar una determinada columna sin cambiar ninguna otra columna, podemos usar esta función. El Datafre.aplicar() La sintaxis del método se proporciona a continuación.

Sintaxis: Marco de datos.Aplicar (func, axis = 0, raw = false, result_type = none, args = (), ** kwds)

Dónde:

concurrido: Representa la función que se aplicará a cada fila o columna

eje: Especifica la dirección a lo largo de la cual se aplicará el método: 0 o "índice" aplica la función a todas las columnas, mientras que 1 o "columnas" aplica la función a todas las filas.

resultado_type: Ofrece las opciones "reducir", "expandir", "transmisión" y "ninguno". El 'ninguno' es el valor predeterminado.

Estos solo funcionan con axis = 1 (columnas):

expandir: Las columnas se crearán a partir de los resultados que se asemejan a las listas.

reducir: A diferencia de "extender", esto devuelve una serie cada vez que es factible en lugar de expandir los resultados que se parecen a las listas.

transmisión: Las columnas y el índice originales se mantendrán y transmitirá los resultados al marco de datos en su forma original.

También echemos un vistazo a la sintaxis de la función GroupBy () para agrupar los datos:

Sintaxis: Marco de datos.GroupBy (BY = None, Axis = 0, Level = None, As_Index = True, Sort = True, Group_Keys = True, Squeeze = NodeFault.NO_DEFAULT, observado = falso, dropna = true)

por: función, lista de etiquetas, mapeo o etiqueta. Para el grupo, se usa para crear los grupos. Los grupos se determinarán a partir de los valores o series de dict si uno de ellos se da. Utiliza los valores como es para generar los grupos si se da un ndarray o lista con una longitud igual. Para agrupar por las columnas de DataFrame en uno mismo, se puede dar/pasar una lista de etiquetas o una sola etiqueta. Tenga en cuenta que cada tupla se ve como una clave (single).

eje: 'índice' o 0, 'columnas' o 1, 0 por defecto. Dividido a lo largo de columnas o filas.

nivel: nombre del nivel, secuencia de tales o int. Ninguno predeterminado. Los datos del grupo se basan en un nivel o niveles específicos si el índice del eje es un múltiple dedex.

as_index: bool, es cierto por defecto. Devolver un objeto con los nombres de grupo como índice para la salida agregada. Aplicable solo a la entrada de DataFrame. Efectivamente, la salida agrupada de "estilo SQL" es "como index = false".

clasificar: bool, es cierto por defecto. Claves de grupo en orden. Al apagar esto, su rendimiento mejorará.

Group_keys: bool, es cierto por defecto. Agregue las claves de grupo al índice cuando llame a la solicitud para identificar las piezas.

estrujar: bool, es falso de forma predeterminada. Si es posible, reduzca la dimensionalidad del tipo de retorno; Si no, devuelve un tipo consistente.

observado: bool, es falso de forma predeterminada. Solo si uno o más de los groupers es categórico, esto se aplicará. Solo muestre el valor de salida para groupers categóricos si es verdadero y muestre todos los valores de salida si falsa.

dropna: bool, es cierto por defecto. Si verdadero y las teclas de grupo tienen valores de NA, los valores de NA y la fila y columna correspondientes se eliminarán.

Demostremos algunos ejemplos que lo ayudarán a aprender cómo usar la función Groupby () y aplicar () en Pandas.

Ejemplo # 1: Determine la frecuencia de los valores en una columna DataFrame

Para encontrar la frecuencia de los valores en una columna DataFrame, primero debemos requerir un marcado de datos. El DataFrame se creará utilizando el PD.Función DataFrame ().

Hemos creado un marco de datos. Encontremos la frecuencia de distintos valores de datos en la columna 'grupo'. Antes de encontrar la frecuencia, primero agruparemos los datos con la ayuda del método GroupBy (). Luego, definiremos una función dentro de la función Aplicar () para encontrar la frecuencia.

Los datos en la columna 'grupo' ahora se agrupan. Para encontrar la frecuencia, hemos utilizado funciones y atributos incorporados de pandas: count () y forma []. Dentro de la función Aplicar, la lambda la función se usa para ejecutar la función o expresión especificada. La función ha determinado que la frecuencia para la categoría X es 0.57 y para y es 0.42. El grupo X aparece en el 57% de las filas; mientras que el grupo Y aparece en 42%.

Ejemplo # 2: Determine el valor máximo en una columna DataFrame

Podemos usar el grupo () junto con la función Aplicar () para determinar los valores máximos para cada datos agrupados. Nuevamente, crearemos un marcado de datos para que podamos encontrar el valor máximo después de agrupar los datos de la columna.

Primero, agruparemos los datos del 'equipo' de la columna para crear categorías. Luego, usaremos la función Aplicar () dentro de la cual usaremos la función de agregación 'Max' para encontrar el valor máximo en la columna 'puntos' para cada categoría.

El equipo de la columna se agrupa en tres categorías. Luego, la función Aplicar () ha determinado el valor máximo del 'punto' de la columna para cada categoría. La categoría 'ACE' tiene el valor máximo de 14; mientras que 15 y 17 son los valores máximos para grupos beta y campeón, respectivamente.

Ejemplo # 3: Realización de cálculos personalizados utilizando la función Apply () después de agrupar los datos

En lugar de usar solo funciones de agregación incorporadas de pandas, también podemos definir funciones personalizadas o crear una expresión dentro del aplicar() función para realizar cálculos personalizados. Creemos un marco de datos a partir del cual agruparemos los datos de una columna específica. Entonces, realizaremos cálculos en él.

Calculemos la diferencia promedio entre los valores para cada grupo.

Los datos en la columna 'estudiante' se agrupan en tres categorías 'Billy', 'Jim' y 'Mandy'. La diferencia promedio entre la columna 'Total_marks' y 'OBDURING_MARKS' se obtiene restando los valores de la columna 'obtened_marks' de la columna 'total_marks' y aplicando la función media (). El valor de diferencia media para la categoría 'Billy' es 3.66. Mientras que la diferencia media para los valores agrupados Jim y Mandy es 3 y 4, respectivamente.

Conclusión

En este tutorial, hemos discutido cómo usar las funciones Groupby () y aplicar () en Pandas. Hemos visto la sintaxis de ambas funciones junto con sus parámetros para comprender su funcionalidad. Implementamos algunos ejemplos en este tutorial para enseñarle cómo puede usar las funciones GroupBy () y aplicar () utilizando las funciones integradas o definiendo funciones personalizadas en Pandas.