Limpieza de datos CSV con Pandas

Resumen

Antes de predecir resultados deportivos o de negocio, necesitas datos limpios. Aquí aprenderás cómo limpiar datos en Python con Pandas usando un caso real: el historial de partidos del Cebollitas FC en formato CSV, donde aplicarás funciones clave para preparar el dataset antes de cualquier modelo de machine learning.

Este recorrido es para ti si estás dando tus primeros pasos en análisis de datos, ciencia de datos o ingeniería de machine learning y quieres entender el flujo real de preparación de un dataset.

Por qué importa limpiar los datos antes de modelar

Modelar sin limpiar los datos es como entrenar con la cancha embarrada: no se avanza. La fase de limpieza no es glamorosa, pero define si tu modelo aprende bien o aprende ruido.

En el caso del Cebollitas FC, el archivo partido_cebollitas.csv contiene equipos, fechas, goles, estadios y más. La meta es transformar esa información cruda en una base sólida para predecir el futuro del club [01:00].

¿Qué es un archivo CSV? Es un formato de texto donde los valores se separan por comas (comma separated values). Sirve para almacenar tablas de forma simple y portable entre herramientas.

Cómo cargar un dataset CSV con Pandas

El primer paso es importar la librería que hace todo el trabajo pesado de manipulación de datos: Pandas. Se instala con pip install pandas y se importa con el alias estándar pd [01:25].

Para leer el archivo y ver una vista previa usas dos funciones esenciales:

  • read_csv: accede al archivo y carga los datos en memoria.
  • .head(): muestra las primeras cinco filas, como mirar el primer tiempo de un partido antes de analizarlo todo.

python import pandas as pd

datos_cebollitas = pd.read_csv("partido_cebollitas.csv") datos_cebollitas.head()

Con esto ya tienes una tabla ordenada con columnas como equipo local, visitante, goles y estadio [02:30].

Cómo revisar la estructura general con .info

La función .info() es como leer la ficha médica del dataset. Te dice cuántas columnas tienes, qué tipo de dato hay en cada una (integer, object, etc.), si existen nulos y cuánta memoria ocupa la tabla [03:15].

En este caso, el dataset inicial tiene 10 columnas, numeradas del 0 al 9.

Cómo manejar datos faltantes en Pandas

Los datos del mundo real casi nunca llegan completos. En vez de eliminar partidos con goles faltantes, conviene rellenar con el promedio para mantener al jugador en cancha sin inventar jugadas.

Las funciones clave aquí son isnull() y sum(), que combinadas te muestran cuántos valores nulos hay por columna [04:00].

python datos_cebollitas["goles_local"].fillna( datos_cebollitas["goles_local"].mean(), inplace=True ) print(datos_cebollitas.isnull().sum())

Después de imputar, todas las columnas deben mostrar cero nulos. Si es así, vas por buen camino.

¿Qué es la imputación de datos? Es rellenar valores faltantes con una estimación, como el promedio o la mediana, en lugar de borrar registros incompletos.

Cómo convertir variables categóricas con one-hot encoding

Los modelos no entienden texto como "Cebollitas Juniors" o "Real Patacón". Necesitan ceros y unos. Para eso existe el one-hot encoding, que convierte cada categoría en una columna binaria: 1 si está presente, 0 si no [05:00].

En Pandas se hace con get_dummies:

python datos_preparados = pd.get_dummies( datos_cebollitas, columns=["equipo_local", "equipo_visitante"] )

Es simple, matemático y deja el dataset listo para que un algoritmo lo procese.

Cómo eliminar duplicados con drop_duplicates

Dos partidos idénticos no duplican el aprendizaje del modelo, lo confunden. Con drop_duplicates() borras filas repetidas y aseguras que cada registro aporte información única [06:00].

python print("Filas antes:", len(datos_preparados)) datos_preparados = datos_preparados.drop_duplicates() print("Filas después:", len(datos_preparados))

En el caso del Cebollitas, las 100 filas iniciales se mantuvieron en 100, lo que confirma que no había duplicados. Aun así, ejecutar este paso es buena práctica en cualquier proyecto serio.

Cómo dar formato a fechas con to_datetime

Las fechas en CSV suelen llegar como texto. Para analizar estacionalidad, rachas o temporadas, necesitas convertirlas a tipo fecha real con la función to_datetime [07:10].

Lo interesante es el parámetro errors="coerce": si una fecha es inválida, la marca como NaN en lugar de romper el proceso. No escondes errores, los manejas.

python datos_preparados["fecha"] = pd.to_datetime( datos_preparados["fecha"], errors="coerce" )

Esto te permite preguntarte después si el equipo juega mejor en marzo que en agosto, o si hay temporadas buenas y malas.

Cómo verificar el dataset final antes de modelar

Una vez aplicada toda la limpieza, conviene revisar tres cosas:

  1. Ejecutar datos_preparados.info() para confirmar tipos de datos y memoria.
  2. Revisar nulos restantes con datos_preparados.isnull().sum().
  3. Comprobar la forma final con datos_preparados.shape.

En este ejemplo, el dataset terminó con 100 filas y 18 columnas, varias de ellas booleanas resultantes del one-hot encoding [09:00].

Ahora tienes goles de local, goles de visitante, posesión y más variables listas para entrenar un modelo. El entrenador preguntó si ya podíamos predecir el próximo partido y la respuesta honesta es no: hoy limpiamos la cancha. La siguiente fase será buscar patrones con análisis exploratorio y estadística visual.

¿En qué proyecto vas a aplicar primero estas funciones de Pandas? Cuéntalo en los comentarios.