Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Agregación y Agrupamiento en Python | Trabajando con Datos
Fundamentos de Databricks: Guía Para Principiantes

Agregación y Agrupamiento en Python

Desliza para mostrar el menú

Note
Definición

La agregación es el proceso de resumir múltiples filas de datos en un solo valor significativo, como una suma, promedio o conteo. La agrupación permite aplicar estos resúmenes a categorías específicas, como encontrar las ventas totales para cada región distinta.

Rara vez es necesario analizar millones de filas individuales de datos sin procesar. Normalmente, se busca conocer la "visión general": totales, promedios o conteos por categoría. En Spark, esto se puede lograr combinando dos métodos potentes: groupBy() y agg().

El patrón básico de groupBy

Para resumir datos por una categoría específica, primero se utiliza el método groupBy(). Esto indica a Spark que agrupe todas las filas que comparten el mismo valor (como "cut" en la tabla diamonds) en un grupo. Sin embargo, la agrupación por sí sola no realiza ninguna acción; es necesario acompañarla de una agregación.

# Group by cut and count how many rows are in each
count_df = df.groupBy("cut").count()

display(count_df)

Realización de operaciones matemáticas con sum(), avg() y max()

Una vez que los datos están agrupados, es posible aplicar funciones matemáticas a las columnas numéricas. Para ver el beneficio total por tipo de artículo, se utiliza .sum().

# Total total_depth per cut category
total_depth = df.groupBy("cut").sum("x")

display(total_depth)

Observa que Spark renombra automáticamente la columna a sum(x). En el próximo capítulo, aprenderemos cómo hacer que estos nombres sean más profesionales.

El método agg() para múltiples métricas

Si necesitas calcular más de una cosa a la vez—por ejemplo, tanto el beneficio promedio como el ingreso máximo para cada región—utilizas el método .agg() (aggregate). Este es el estándar profesional para construir resúmenes complejos.

from pyspark.sql import functions as F

# Calculate multiple metrics at once
summary_df = df.groupBy("cut").agg(
    F.sum("x"),
    F.avg("y"),
    F.max("z")
)

display(summary_df)
Note
Nota

Importamos pyspark.sql.functions as F para acceder a estas potentes herramientas matemáticas.

Agrupación por múltiples columnas

No estás limitado a agrupar por solo una categoría. Puedes pasar una lista de columnas para ver los datos a un nivel más detallado, como el total de x para cada Color Type dentro de cada Cut.

multi_group_df = df.groupBy("cut", "color").sum("x")

display(multi_group_df)

Ordenar los resultados

Los datos agregados suelen ser más fáciles de leer cuando están ordenados. Puedes encadenar el método .orderBy() al final de tu agregación para ver las categorías con mejor desempeño en la parte superior de la lista.

# Show highest profit categories first
sorted_df = summary_df.orderBy("sum(x)", ascending=False)

display(sorted_df)

1. ¿Qué método debes llamar ANTES de aplicar un sum() o avg() si deseas que los resultados se desglosen por categoría?

2. ¿Cuál es el beneficio de usar el método .agg() en lugar de solo .sum()?

question mark

¿Qué método debes llamar ANTES de aplicar un sum() o avg() si deseas que los resultados se desglosen por categoría?

Selecciona la respuesta correcta

question mark

¿Cuál es el beneficio de usar el método .agg() en lugar de solo .sum()?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 6

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 4. Capítulo 6
some-alt