7  Lista de verificación de datos

Introducción

En este documento se describe la lista de aspectos que se revisarán de los datos antes de su procesamiento e inserción en la base de datos. El objetivo es asegurar la consistencia, calidad y coherencia de los valores.

1. Tipos de variables (dtype)

  • Verificar que cada columna tenga el tipo de dato esperado (por ejemplo, float, int, str).
  • Asegurarse de que los valores numéricos no estén codificados como strings y viceversa.
# Ejemplo conceptual (pseudocódigo)
import pandas as pd

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

# Revisar dtypes
print(df.dtypes)

2. Valores faltantes (NaN)

  • Identificar si existen valores NaN en el DataFrame.
  • Evaluar el impacto de estos valores en cada columna.
# Contar valores NaN
df.isna().sum()

3. Valores faltantes en número de datos

  • Cuantificar la proporción de datos faltantes en relación al total.
  • Decidir estrategias para imputar o descartar (dependiendo de la lógica de negocio).
total_filas = len(df)
faltantes = df.isna().sum()  # Por columna
proporcion_faltantes = faltantes / total_filas
print(proporcion_faltantes)

4. Duplicados

  • Detectar filas duplicadas.
  • Evaluar si se deben eliminar o si son datos válidos (por ejemplo, la misma lectura en un mismo instante).
# Identificar filas duplicadas
duplicados = df.duplicated()
print(df[duplicados])

5. Valores fuera de rango esperado

  • Revisar que las variables numéricas estén dentro de rangos razonables (p. ej., temperatura: -30 a 50 °C).
  • Definir criterios claros de exclusión o corrección si se detectan valores extremos.
# Ejemplo: Temperatura esperada entre -30 y 50
col_temp_fuera_rango = df[~df['temperatura'].between(-30, 50)]
print(col_temp_fuera_rango)

6. Outliers por error de sensor

  • Identificar picos atípicos que puedan ser errores de lectura.
  • Aplicar técnicas estadísticas o reglas de negocio para descartar o corregir dichos valores.
# Ejemplo básico usando percentiles
q1 = df['temperatura'].quantile(0.25)
q3 = df['temperatura'].quantile(0.75)
iqr = q3 - q1

lim_inferior = q1 - 1.5 * iqr
lim_superior = q3 + 1.5 * iqr

outliers = df[(df['temperatura'] < lim_inferior) | (df['temperatura'] > lim_superior)]
print(outliers)

7. Verificar unidades

  • Confirmar que las columnas (por ejemplo, “temperatura”, “presión”) están en las unidades especificadas (°C, hPa, etc.).
  • Anotar la unidad en el metadata o documentación del DataFrame.

Ejemplo: si la columna de temperatura se espera en Celsius y se detecta que está en Kelvin, habrá que convertirla o avisar al equipo.

8. Encoding o formato del archivo de datos

  • Revisar el encoding (UTF-8, ISO-8859-1, etc.) para evitar caracteres ilegibles o errores de lectura.
  • Verificar el delimitador y la cabecera si el archivo es CSV, o el schema si es un formato más complejo (Parquet, JSON, etc.).
  • Se debe definir que tipo de archivo recibiremos.
# Ejemplo lectura CSV con encoding específico
df = pd.read_csv("datos.csv", encoding="utf-8")

9. Identificar o confirmar variables

  • Comprobar la presencia de variables clave (por ejemplo, fecha/hora de lectura, id de sensor, ubicación).
  • Confirmar que las variables en el dataset se correspondan con los campos identificados para la base de datos, mediante una visualización ?

Ejemplo: Asegurarse de que exista una columna “timestamp” o “fecha” que permita un orden cronológico y una columna “sensor_id” o equivalente que identifique la fuente de la medición.


Conclusión

Siguiendo esta lista de verificación, garantizamos que los datos cumplan con los estándares de calidad y coherencia antes de proceder a su análisis o inserción en la base de datos. Al documentar cada paso y cada decisión (por ejemplo, cómo se tratan los outliers o los valores faltantes), no solo mantenemos la calidad, sino que también facilitamos la trazabilidad de los cambios a lo largo del tiempo.