← Lumbre

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

← Volver a todos los contenidos
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 · 4 minutos que valen la pena

Roadwise Consulting

Firmado y verificado · Fernando Castro

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

4 min 18–30 años
Autoevaluación
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 Objetos 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.

Autoevaluación

Comprueba lo que aprendiste

2 preguntas · ves cada respuesta al momento · el resultado queda guardado en tu historial

Iniciar autoevaluación
Más sobre esta lección

Rutas vivas

¿Y ahora qué? Elige el camino por lo que necesitas

No es un listado al azar: cada camino responde una pregunta distinta y te dice por qué.

Otra forma de comprenderlo

Para profundizar

✦ Explorar el universo completo
Explora temas relacionados

Conceptos

Comentarios

Inicia sesión para comentar.

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