Pandas groupby() y diff()

Fariba Laiq 21 junio 2023
  1. Agrupación de datos en Python
  2. Usar groupby() con diff() en Pandas
Pandas groupby() y diff()

La biblioteca Pandas es una herramienta completa para manejar datos de texto además de números. Querrá excluir la entrada de texto de muchas aplicaciones de análisis de datos y exploración/preprocesamiento de aprendizaje automático, o querrá extraer información de él.

Para hacer esto, puede agregar, eliminar y cambiar columnas de texto en sus DataFrames utilizando varias técnicas integradas proporcionadas por Pandas. Este artículo discutirá brevemente cómo agrupar datos y encontrar las diferencias entre los valores agrupados.

Agrupación de datos en Python

El análisis de datos frecuentemente requiere agrupar registros por una o más columnas. Ejemplos de tales escenarios incluyen:

  • Contar el número de empleados en cada departamento comercial.
  • Calcular los salarios medios de hombres y mujeres en cada departamento.
  • Calcular los salarios medios de los empleados de varias edades.

Pandas ofrece una función groupby() que facilita el manejo de la mayoría de las tareas de agrupación. Sin embargo, hay algunos trabajos que el puesto necesita ayuda para completar; intentemos ofrecer otras formas.

Una de las funciones más significativas de Pandas es groupby(). Los registros se agrupan y resumen usando la división en este método y usan la estrategia combinada.

Usar groupby() con diff() en Pandas

El siguiente ejemplo creó un marco de datos con ID_Number, Stu_Names y Marks de diferentes estudiantes. Después de eso, creamos una nueva columna llamada Marks_diff que contiene la diferencia de marcas entre fechas consecutivas, que agrupa ID_Number.

Hemos usado fillna(0) aquí porque cuando el valor de la variable de grupo cambia en filas adyacentes en el DataFrame, fillna(0) indica a Pandas que inserte un cero.

La diferencia entre las marcas de Harry y Petter es 6,0 y la diferencia entre Daniel y Ron es 10, como se muestra en la salida.

Código de ejemplo:

import pandas as pd

d1 = pd.DataFrame(
    {
        "ID_Number": ["ID1", "ID1", "ID2", "ID2"],
        "Stu_Names": ["Harry", "Petter", "Daniel", "Ron"],
        "Marks": [72, 78, 80, 90],
    }
)
print(d1)
d1 = d1.sort_values(by=["ID_Number"])
d1["Marks_diff"] = d1.groupby(["ID_Number"])["Marks"].diff().fillna(0)
print(d1)

Producción :

    ID_Number Stu_Names  Marks
0       ID1     Harry     72
1       ID1    Petter     78
2       ID2    Daniel     80
3       ID2       Ron     90
    ID_Number Stu_Names  Marks  Marks_diff
0       ID1     Harry     72         0.0
1       ID1    Petter     78         6.0
2       ID2    Daniel     80         0.0
3       ID2       Ron     90       10.0
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Artículo relacionado - Pandas Dataframe