Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Updated: 20 feb 2026

Módulo 2

En este módulo aprenderás a:

  • Cargar y explorar un dataset con Pandas

  • Identificar tipos de variables

  • Detectar y manejar valores faltantes

  • Eliminar duplicados

  • Visualizar relaciones entre variables

  • Dividir datos en entrenamiento y prueba

En proyectos reales de Machine Learning, la mayor parte del trabajo es preparar y entender los datos.


import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split

1. ¿Qué es un dataset?

Un dataset es una tabla compuesta por:

  • Filas → observaciones (por ejemplo: días, productos, sensores)

  • Columnas → variables o características (features)

En este módulo trabajaremos con un ejemplo sencillo:

Número de clientes que visitan una tienda
vs
Ventas diarias en dólares


data = {
    "Clientes_Visitantes": [10, 20, 30, 35, 40, 50, 55, 60, 70, 80, 90, 100],
    "Ventas_Diarias":      [200, 250, 270, 300, 320, 400, 420, 450, 500, 550, 600, 650]
}

df = pd.DataFrame(data)
df
Loading...

2. Exploración inicial del dataset


print("Dimensiones del dataset:", df.shape)
print("\nInformación general:")
df.info()

print("\nEstadísticas descriptivas:")
df.describe()
Dimensiones del dataset: (12, 2)

Información general:
<class 'pandas.DataFrame'>
RangeIndex: 12 entries, 0 to 11
Data columns (total 2 columns):
 #   Column               Non-Null Count  Dtype
---  ------               --------------  -----
 0   Clientes_Visitantes  12 non-null     int64
 1   Ventas_Diarias       12 non-null     int64
dtypes: int64(2)
memory usage: 324.0 bytes

Estadísticas descriptivas:
Loading...

3. Visualización básica


plt.figure()
plt.scatter(df["Clientes_Visitantes"], df["Ventas_Diarias"])
plt.xlabel("Clientes Visitantes")
plt.ylabel("Ventas Diarias")
plt.title("Clientes vs Ventas")
plt.show()
<Figure size 640x480 with 1 Axes>

4. Manejo de valores faltantes


df_missing = df.copy()
df_missing.loc[3, "Ventas_Diarias"] = np.nan
df_missing.loc[8, "Clientes_Visitantes"] = np.nan

df_missing
Loading...

print("Valores faltantes por columna:")
df_missing.isna().sum()
Valores faltantes por columna:
Clientes_Visitantes 1 Ventas_Diarias 1 dtype: int64

Opciones para manejar valores faltantes:

  1. Eliminar filas con NaN

  2. Rellenar con promedio (media)


df_drop = df_missing.dropna()
df_fill = df_missing.fillna(df_missing.mean())

print("Después de eliminar filas:")
print(df_drop)

print("\nDespués de rellenar con promedio:")
print(df_fill)
Después de eliminar filas:
    Clientes_Visitantes  Ventas_Diarias
0                  10.0           200.0
1                  20.0           250.0
2                  30.0           270.0
4                  40.0           320.0
5                  50.0           400.0
6                  55.0           420.0
7                  60.0           450.0
9                  80.0           550.0
10                 90.0           600.0
11                100.0           650.0

Después de rellenar con promedio:
    Clientes_Visitantes  Ventas_Diarias
0             10.000000      200.000000
1             20.000000      250.000000
2             30.000000      270.000000
3             35.000000      419.090909
4             40.000000      320.000000
5             50.000000      400.000000
6             55.000000      420.000000
7             60.000000      450.000000
8             51.818182      500.000000
9             80.000000      550.000000
10            90.000000      600.000000
11           100.000000      650.000000

5. Eliminar duplicados


df_duplicate = pd.concat([df, df.iloc[[2]]], ignore_index=True)
print("Antes de eliminar duplicados:", df_duplicate.shape)

df_unique = df_duplicate.drop_duplicates()
print("Después de eliminar duplicados:", df_unique.shape)
Antes de eliminar duplicados: (13, 2)
Después de eliminar duplicados: (12, 2)

6. Separar datos en entrenamiento y prueba


X = df[["Clientes_Visitantes"]]
y = df["Ventas_Diarias"]

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3, random_state=42
)

print("Tamaño entrenamiento:", X_train.shape)
print("Tamaño prueba:", X_test.shape)
Tamaño entrenamiento: (8, 1)
Tamaño prueba: (4, 1)

7. Resumen del Módulo 2

En este módulo aprendiste a:

  • Explorar datasets con Pandas

  • Visualizar relaciones entre variables

  • Manejar valores faltantes

  • Eliminar duplicados

  • Dividir datos en entrenamiento y prueba

En el siguiente módulo entrenaremos nuestro primer modelo de Machine Learning: Regresión Lineal.