Tutoriales Interactivos
BlogIniciar sesiónComenzar gratis
Inicio›Blog›Análisis de Datos›Calidad de datos: cómo manejar valores faltantes y errores

Calidad de datos: cómo manejar valores faltantes y errores

Los datos del mundo real rara vez son perfectos. Hay registros incompletos, errores de digitación, duplicados, valores imposibles. Antes de analizar cualquier dataset, necesitas evaluar y mejorar su calidad — un proceso que suele tomar más tiempo que el análisis en sí.

¿Qué es la calidad de datos?

Un dato de calidad es aquel que es:

  • Completo: no le faltan valores importantes
  • Correcto: refleja la realidad (sin errores de digitación o medición)
  • Consistente: el mismo concepto está representado de la misma forma en todos los registros
  • Oportuno: está actualizado

Problemas comunes

Valores faltantes (NaN)

Celdas vacías o con null. Ocurren cuando no se registró el dato, el sistema falló, o el usuario no lo proporcionó.

import pandas as pd

df = pd.DataFrame({
    'nombre': ['Ana', 'Carlos', None, 'María'],
    'edad':   [28, None, 35, 42],
    'ciudad': ['Santiago', 'Lima', 'Bogotá', None]
})

print(df.isnull().sum())
# nombre    1
# edad      1
# ciudad    1

Duplicados

Registros idénticos o casi idénticos que representan el mismo evento.

duplicados = df.duplicated().sum()
print(f"Filas duplicadas: {duplicados}")

df_limpio = df.drop_duplicates()

Valores inconsistentes

La misma categoría escrita de formas distintas:

# Problema:
ciudades = ['Santiago', 'SANTIAGO', 'santiago', 'Stgo', 'Santiago, Chile']

# Solución:
df['ciudad'] = df['ciudad'].str.strip().str.title()

Valores imposibles o extremos

Una edad de -5 o 200, un precio negativo, una temperatura de 1000°C — son errores evidentes.

print(df[df['edad'] < 0])    # edades negativas
print(df[df['edad'] > 120])  # edades imposibles

Cómo tratar los valores faltantes

Hay tres estrategias principales:

1. Eliminar las filas con NaN — solo cuando son pocas y aleatorias:

df_limpio = df.dropna()

2. Rellenar con un valor — media, mediana o un valor específico:

df['edad'].fillna(df['edad'].median(), inplace=True)
df['ciudad'].fillna('Desconocido', inplace=True)

3. Dejar como está — algunos modelos manejan NaN nativamente, y eliminarlos puede introducir sesgo.

La decisión depende del contexto. Eliminar datos puede sesgar el análisis si los valores faltantes no son aleatorios (por ejemplo, si los clientes insatisfechos no responden encuestas).

Revisión inicial de un dataset

df = pd.read_csv('datos.csv')

print(df.shape)           # filas y columnas
print(df.dtypes)          # tipos de datos
print(df.isnull().sum())  # valores faltantes por columna
print(df.describe())      # estadísticas básicas
print(df.duplicated().sum()) # duplicados

Este bloque de código es el punto de partida de cualquier análisis.

Errores frecuentes

Eliminar todos los NaN automáticamente: puede borrar demasiados datos y sesgar los resultados. Investiga primero por qué faltan esos valores.

Rellenar con la media cuando hay outliers: si hay valores extremos, la media no es representativa. Usa la mediana.

Ignorar los tipos de datos: una columna de números almacenada como texto ("25") no se puede analizar como número. Revisa siempre df.dtypes.

Aprende haciendo, no solo leyendo

Leer es el primer paso. El verdadero aprendizaje ocurre cuando practicas con ejercicios reales de SQL y recibes corrección inmediata de IA.

Comenzar gratis →
Desafío Latam
+56 9 5117 7975
+52 1 55 4047 7251
[email protected]

Carreras

  • Full Stack JavaScript
  • Diseño UX/UI
  • Data Science
  • Data Analytics

Comunidad

  • Blog
  • Becas
  • Trabaja con Nosotros
  • Políticas de Calidad

Síguenos

© 2026 Desafío Latam. Todos los derechos reservados.