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.