Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

Pandas — Avanzado

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • Pandas

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Dirigido a profesionales con experiencia sólida en Pandas que necesitan llevar sus flujos de trabajo al siguiente nivel de eficiencia y escalabilidad. A lo largo de las 8 horas del curso, el participante abordará los cuellos de botella más habituales en entornos de producción: desde la selección estratégica de tipos de datos para reducir el footprint en memoria, hasta el diseño de pipelines reutilizables y el procesamiento incremental de ficheros que exceden la RAM disponible. Se trabajan también las técnicas de agrupación vectorizada de alto rendimiento, la indexación jerárquica con MultiIndex y el análisis estático de pipelines de series temporales para anticipar errores antes de la ejecución. El curso cierra con una evaluación comparativa entre Pandas, Polars y Dask que capacita al participante para emitir recomendaciones técnicas fundamentadas. Al finalizar, el participante será capaz de diseñar y mantener soluciones de procesamiento de datos robustas, eficientes y justificadas métricamente en contextos de datos a escala real.

  1. Explicar de qué manera la elección de tipos de datos numéricos reducidos y el tipo category impacta en el consumo de memoria y en el rendimiento general de un DataFrame.
  2. Comparar el coste computacional de distintas estrategias de transformación por columna —apply con lambda, vectorización nativa y NumPy ufuncs— mediante benchmarking reproducible, seleccionando la opción más adecuada según el contexto.
  3. Optimizar operaciones de agrupación complejas sustituyendo apply por equivalentes vectorizados (agg, transform) o por extensiones compiladas cuando el volumen de datos lo justifique.
  4. Implementar la lectura y el procesamiento incremental por chunks de datasets que superan la memoria disponible, acumulando resultados parciales de forma eficiente.
  5. Diseñar una estrategia de indexación jerárquica con MultiIndex justificando el orden de niveles en función de los patrones de consulta predominantes y midiendo la mejora frente a un índice plano.
  6. Construir un pipeline de limpieza y transformación reutilizable con funciones componibles, parámetros configurables y separación clara de responsabilidades, aplicable a distintos datasets del mismo dominio.
  7. Anticipar condiciones de borde y riesgos de corrupción de datos en pipelines de series temporales con operaciones encadenadas (resample, rolling, tz-aware) mediante análisis estático del código antes de la ejecución.
  8. Evaluar críticamente si Pandas es la herramienta apropiada para un caso de uso dado, comparándola con Polars y Dask en rendimiento, escalabilidad y coste de adopción, y documentando una recomendación técnica.

Bloque 1 — Gestión eficiente de memoria y tipos de datos. Se estudia el impacto de los dtypes en el footprint en RAM: selección de enteros reducidos (int8, int16, int32), uso de float32 y del tipo category, y metodología de medición antes/después para justificar cada decisión con métricas objetivas.

Bloque 2 — Rendimiento en transformaciones por columna. Análisis comparativo entre apply con lambda, vectorización nativa de Pandas y NumPy ufuncs. Se establece un protocolo de benchmarking reproducible que permite elegir la estrategia óptima en función del tamaño del dato y la naturaleza de la operación.

Bloque 3 — Agrupación avanzada y aceleración con Cython/Numba. Reescritura de operaciones groupby + apply hacia equivalentes vectorizados con agg y transform. Para escenarios de alto volumen se introduce el uso de extensiones Cython y Numba como paso siguiente justificado por el profiling.

Bloque 4 — Procesamiento incremental de grandes ficheros. Diseño de flujos de ingesta que emplean chunksize para leer ficheros que superan la RAM, junto con patrones de acumulación eficiente de resultados parciales y estrategias de escritura progresiva.

Bloque 5 — Indexación jerárquica con MultiIndex. Arquitectura de un índice multinivel para datasets jerárquicos: criterios de ordenación de niveles basados en los patrones de consulta predominantes, operaciones de reindexación y demostración cuantitativa de la mejora de rendimiento frente a un índice plano.

Bloque 6 — Pipelines reutilizables y series temporales robustas. Construcción de pipelines de limpieza y transformación con funciones componibles y parámetros configurables. Se integra el análisis estático de pipelines que encadenan resample, rolling e índices tz-aware, identificando condiciones de borde —desfases de zona horaria, ventanas vacías, NaN en bordes— antes de la ejecución.

Bloque 7 — Evaluación estratégica del ecosistema: Pandas vs. Polars vs. Dask. Marco de decisión técnica para determinar cuándo Pandas deja de ser la herramienta idónea. Comparativa de rendimiento, modelo de ejecución (lazy vs. eager), escalabilidad horizontal y coste de adopción. El participante produce una recomendación técnica documentada aplicada a un caso de uso real.

  • Python 3.10 o superior.
  • Pandas 2.x instalado (se recomienda la última versión estable).
  • NumPy, Numba y el paquete memory_profiler disponibles en el entorno.
  • Acceso a Jupyter Lab o Jupyter Notebook para ejecutar los benchmarks de forma reproducible.
  • Al menos 8 GB de RAM para los ejercicios de procesamiento por chunks (se proporcionan datasets de prueba de tamaño controlado).
  • Opcional pero recomendado: instalación de Polars y Dask para el bloque de evaluación comparativa.
  • Manejo fluido de estructuras DataFrame y Series: selección, filtrado, operaciones aritméticas y agregaciones básicas.
  • Uso habitual de groupby, merge y pivot_table con argumentos estándar.
  • Familiaridad con la lectura y escritura de ficheros CSV y Parquet desde Pandas.
  • Conocimiento funcional de NumPy: arrays, broadcasting y operaciones vectorizadas elementales.
  • Experiencia previa con entornos Jupyter o scripts Python en contextos de análisis de datos.