QuieroProgramar por Rodri Gonzalez
Data Analysis · Lección 12 de 19

EDA Completo: Análisis Exploratorio de Datos

El Análisis Exploratorio de Datos (EDA) es el proceso sistemático de examinar un dataset antes de cualquier modelado o decisión de negocio. No es un paso — es el paso. Un EDA mal hecho lleva a conclusiones equivocadas. Uno bien hecho te da la intuición necesaria para hacer las preguntas correctas.

120–150 min Prerrequisitos: Lecciones 04-11
01

Concepto teórico

¿Qué es el EDA y por qué importa?

El EDA fue formalizado por John Tukey en 1977 en su libro "Exploratory Data Analysis". La idea central es: antes de hacer modelos o pruebas, mirá los datos. Suena obvio, pero en la práctica muchos analistas saltan directo a las conclusiones sin entender la estructura de los datos.

El EDA responde 5 preguntas fundamentales:
1. ¿Qué forma tienen los datos? (dimensiones, tipos, estructura)
2. ¿Qué tan limpios están? (nulos, duplicados, inconsistencias)
3. ¿Cómo se distribuyen las variables numéricas? (centralidad, dispersión, outliers)
4. ¿Cómo se distribuyen las variables categóricas? (frecuencias, desbalances)
5. ¿Qué relaciones existen entre variables? (correlaciones, patrones)

Los 6 pasos del EDA profesional

# Paso Herramientas Objetivo
1 Reconocimiento shape, dtypes, head, info Entender la estructura básica
2 Calidad isna, duplicated, describe Evaluar la salud de los datos
3 Univariado numérico Histogramas, box plots, estadísticas Distribución de cada variable numérica
4 Univariado categórico value_counts, countplot Distribución de cada variable categórica
5 Bivariado Scatter, heatmap de correlación, boxplot por grupo Relaciones entre pares de variables
6 Insights Resumen escrito, visualización clave Hallazgos accionables del negocio
Analogía del detective: un detective no empieza un caso con una teoría preconcebida. Primero examina la escena del crimen (paso 1), recolecta evidencia (pasos 2-4), busca conexiones (paso 5) y finalmente formula hipótesis (paso 6). El EDA es exactamente eso: investigar sin sesgo, dejar que los datos hablen.
En el trabajo real: cuando recibís un dataset nuevo en tu primer día de trabajo, la expectativa es que en las primeras 2-4 horas entregues un EDA con las características principales de los datos, problemas de calidad detectados y 3-5 hallazgos preliminares. Es tu primera oportunidad de demostrar seniority analítico.
02

EDA paso a paso: caso práctico completo

Paso 1: Reconocimiento del dataset

Lo primero siempre: ¿cuántas filas y columnas? ¿Qué tipo de datos hay? ¿Cómo se ven las primeras filas?

eda_paso01_reconocimiento.pyPython

        
Hacé clic en ▶ Ejecutar

Paso 2: Evaluación de calidad

¿Cuántos nulos? ¿Duplicados? ¿Valores atípicos? Este paso decide si podemos confiar en las métricas que calculemos después.

eda_paso02_calidad.pyPython

        
Hacé clic en ▶ Ejecutar

Paso 3: Análisis univariado numérico

Distribuir cada variable numérica: histogramas, box plots, estadísticas. Detectar asimetrías y outliers.

eda_paso03_univariado_num.pyPython

        
Hacé clic en ▶ Ejecutar

Paso 4: Análisis univariado categórico

¿Cómo se distribuyen las categorías? ¿Hay desbalances? Las frecuencias categóricas revelan sesgos en la muestra.

eda_paso04_univariado_cat.pyPython

        
Hacé clic en ▶ Ejecutar

Paso 5: Análisis bivariado — Relaciones entre variables

¿Qué variables se relacionan? Correlaciones entre numéricas, distribuciones numéricas segmentadas por categóricas.

eda_paso05_bivariado.pyPython

        
Hacé clic en ▶ Ejecutar
03

Referencia rápida — Checklist de EDA

Paso Código clave ¿Qué buscás?
Dimensiones df.shape Filas × columnas
Tipos df.dtypes ¿object donde debería ser number?
Head df.head() ¿Los datos tienen sentido?
Nulos df.isna().sum() ¿Cuántos y dónde?
Duplicados df.duplicated().sum() ¿Filas repetidas?
Describe df.describe() Estadísticas rápidas
Distribución num sns.histplot(kde=True) Forma, asimetría
Distribución cat df["col"].value_counts() Desbalances
Outliers sns.boxplot() Valores atípicos
Correlaciones sns.heatmap(df.corr()) Relaciones lineales
Relación num-cat sns.boxplot(x=cat, y=num) ¿La distribución varía por grupo?
04

Ejercicios

Nivel 1 · Básico

Ejercicio 1: Reconocimiento con shape y dtypes

Imprimí las dimensiones del DataFrame y los tipos de datos. Debe incluir la palabra int.

ejercicio_01.pyDebe incluir "int"

          
Hacé clic en ▶ Ejecutar
Nivel 1 · Básico

Ejercicio 2: Reporte de nulos y duplicados

Imprimí la cantidad de nulos por columna y el total de duplicados. Debe incluir el número 0.

ejercicio_02.pyDebe incluir "0"

          
Hacé clic en ▶ Ejecutar
Nivel 1 · Básico

Ejercicio 3: describe()

Ejecutá describe() sobre el DataFrame. Debe incluir mean.

ejercicio_03.pyDebe incluir "mean"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 4: Histograma con mediana

Graficá la distribución de Ingreso con sns.histplot(kde=True) y agregá una línea en la mediana. Imprimí Univariado OK.

ejercicio_04.pyDebe imprimir "Univariado OK"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 5: value_counts con porcentaje

Imprimí el value_counts(normalize=True) de Segmento para ver porcentajes. Debe incluir la palabra Estándar.

ejercicio_05.pyDebe incluir "Estándar"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 6: Boxplot por categoría

Graficá un boxplot de Ingreso por Segmento. Imprimí Bivariado OK.

ejercicio_06.pyDebe imprimir "Bivariado OK"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 7: Heatmap de correlaciones

Calculá la matriz de correlación y graficála con heatmap. Imprimí la correlación entre Antigüedad e Ingreso. Debe incluir un número decimal (ej: 0.).

ejercicio_07.pyDebe incluir "0."

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 8: Limpieza + análisis

El dataset tiene nulos y duplicados. Limpiálo (fillna con mediana, drop_duplicates), después imprimí media y mediana del saldo. Debe incluir Limpio.

ejercicio_08.pyDebe incluir "Limpio"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 9: Dashboard EDA de 4 gráficos

Creá 4 subplots: histograma de Ingreso, countplot de Segmento, boxplot Ingreso×Segmento, scatter Antigüedad×Ingreso. Imprimí EDA dashboard.

ejercicio_09.pyDebe imprimir "EDA dashboard"

          
Hacé clic en ▶ Ejecutar
Nivel 4 · Desafío

Ejercicio 10: Reporte EDA con insights escritos

Generá un reporte EDA completo: (1) dimensiones, (2) nulos %, (3) estadísticas por segmento, (4) un hallazgo clave. Debe incluir la palabra Hallazgo.

ejercicio_10_desafio.pyDebe incluir "Hallazgo"

          
Hacé clic en ▶ Ejecutar
05

Resumen y conexión

En la siguiente lección (13 · NumPy fundamentos) vas a profundizar en la biblioteca que está debajo de pandas: arrays de alto rendimiento, operaciones vectorizadas y álgebra lineal básica.

Recursos: pandas — Calculate statistics · Seaborn Tutorial