← Lumbre

Programación con Python para Datos · 2.º Filtrado, groupby y agregación

Portada de Filtrado, groupby y agregación

Filtrado, groupby y agregación

✦ El corazón del análisis es preguntar a los datos: ¿cuánto vendió cada región? · Programación con Python para Datos · Programación · 8 minutos que valen la pena

Roadwise Consulting

Firmado y verificado · Biblioteca UNIV

Objetivo: Segmentar datos con filtros, agrupar por categorías y calcular estadísticos agregados con el patrón split-apply-combine.

8 min Programación con Python para Datos · Programación 18–30 años
Más
Filtrado, groupby y agregación

Herramientas de la lección

◉ Entrar a La Matrix Sorpréndeme

Sobre este contenido

Ir a

Volver a Programación con Python para Datos · 2.º semestre Cursos Explorar Mi cuenta Salir del modo estudio

Filtrado, groupby y agregación

Ilustracion de Python para datos: DataFrame, graficas y arrays de NumPy.
Python para ciencia de datos: NumPy, pandas y manipulacion de datos.

Mapa conceptual

  • Python para Datos
    • Entorno
      • pip
      • venv
      • Reproducibilidad
    • Funcional
      • Comprensiones
      • Lambda
      • map filter
    • Calidad
      • try except
      • pytest
      • Asserts
    • NumPy
      • Arrays
      • Broadcasting
      • Indexacion
    • Pandas
      • DataFrame
      • Groupby
      • Merge Join

Filtrar filas

Filtrar es quedarse con las filas que cumplen una condición, usando máscaras booleanas como en NumPy: df[df.ventas 100]. Se combinan condiciones con y y y paréntesis. También existe df.query(ventas 100), más legible para expresiones largas.

Seleccionar columnas

Antes o después de filtrar, eliges columnas: df[[region, ventas]] te trae solo lo necesario. Filtrar filas y seleccionar columnas suele ser el primer paso de cualquier análisis puntual.

La idea de groupby

Imagina agrupar las ventas por región: todas las filas de una misma región forman un grupo. df.groupby(region) crea el objeto de grupo; sobre él llamas a una función de resumen y Pandas la aplica a cada grupo por separado, devolviendo una fila de resultados por grupo.

Split-apply-combine

  • Split: parte el DataFrame en grupos según una o varias columnas clave.
  • Apply: ejecuta una función de resumen sobre cada grupo de forma independiente.
  • Combine: vuelve a juntar los resultados en un nuevo DataFrame indexado por grupo.

Funciones de agregación

Las más comunes son sum, mean, count, min, max y std. df.groupby(region)[ventas].sum() responde «cuánto vendió cada región» en una línea. Se pueden agregar varias columnas a la vez pidiendo un subconjunto antes de agg.

agg: varias funciones

Con .agg([sum, mean, count]) obtienes varios estadísticos por grupo en una sola pasada, y con un diccionario puedes pedir funciones distintas por columna: ventas: sum, cliente: nunique. Es la forma expresiva de construir tablas resumen.

El patrón groupby-agg cubre la mayoría de resúmenes tabulares.
PreguntaExpresión (idea)Resultado
Total por regióndf.groupby(region)[ventas].sum()una fila por región
Media por dos clavesdf.groupby([region, año])...índice multinivel
Recuento distinto.agg(nunique)valor único por grupo
Varias métricas.agg([sum, mean])una columna por métrica

¿Qué hace exactamente df.groupby(region)[ventas].mean()?

Filtrar tras agrupar

A veces quieres quedarte con grupos que cumplen algo: .filter(lambda g: len(g) 5) conserva solo los grupos con suficientes filas. Y con .transform aplicas un cálculo de grupo devolviendo el tamaño original, útil para restar la media de cada grupo fila a fila.

Índices multinivel

Al agrupar por varias columnas, el resultado tiene un índice multinivel (varios niveles). .reset_index() lo convierte de nuevo en columnas normales, facilitando exportar o seguir operando.

value_counts

Para contar categorías rápidas sin un groupby completo, value_counts() da la frecuencia de cada valor ordenada de mayor a menor. Es el resumen de una columna categórica en un gesto.

Ordenar resultados

Un resumen casi siempre se ordena para interpretarse: .sort_values(ventas, ascending=False) muestra primero lo importante. Agrupar, agregar y ordenar es la trinidad de las preguntas de negocio.

Errores frecuentes

  • Aplicar la agregación a todas las columnas por descuido y obtener resultados sin sentido en las textuales.
  • Olvidar reset_index y pelearte con un índice multinivel al exportar.
  • Confundir count (no nulos) con nunique (distintos) al contar clientes.

Tras agrupar por varias columnas, reset_index() convierte los niveles del índice de nuevo en columnas.

De la pregunta al código

El valor de groupby es traduce preguntas de lenguaje natural a una línea: «media de notas por materia», «total gastado por cliente». Practicar esa traducción es volverte rápido interrogando datos.

Ordena las etapas del patrón split-apply-combine:

Arrastra cada ficha a su categoría (o tócala y luego toca la categoría). También puedes usar el teclado.

Video complementario
Recurso audiovisual para reforzar los conceptos.

Con un DataFrame de transacciones (fecha, cliente, producto, importe), escribe las expresiones para: importe total por cliente, y media de importe por producto y mes. ¿Qué estadístico usarías para saber qué cliente compra artículos más distintos?

Tu texto se guarda sólo en este dispositivo.

Las respuestas y tu progreso se guardan sólo en este dispositivo. Contenido firmado por su autoría mediante Lumbre.
Más sobre esta lección
Explora temas relacionados

Conceptos

Comentarios

Inicia sesión para comentar.

Todavía no hay comentarios. Sé la primera persona en opinar.