Validar claves, fechas e importes
Objetivos
Vas a aplicar controles sencillos antes de producir estadísticas y distinguir lo que un control puede demostrar.
Concepto
Un control de calidad busca señales que pueden cambiar el análisis. isna cuenta valores vacíos; duplicated encuentra claves repetidas; una comparación como amount < 0 busca importes negativos. Un control detecta una condición, pero hace falta una regla documentada para decidir si es un error.
En la exportación hay 16 044 payment_id únicos, no hay fechas ni importes vacíos y no hay importes negativos. Hay 24 importes iguales a cero. Eso es una observación que requiere contexto, no una prueba automática de error.
Ejemplo
checks = {
"payment_id vacíos": payments["payment_id"].isna().sum(),
"payment_id repetidos": payments["payment_id"].duplicated().sum(),
"fechas no válidas": payments["payment_date"].isna().sum(),
"importes vacíos": payments["amount"].isna().sum(),
"importes negativos": (payments["amount"] < 0).sum(),
"importes iguales a cero": (payments["amount"] == 0).sum(),
}
print(checks)Para este archivo los cinco primeros controles muestran 0; hay 24 importes iguales a cero. Un resultado cero significa que el control no encontró esa condición en estas filas, no que todos los datos posibles sean correctos.
Práctica guiada
Añade un control que compare payments["payment_id"].nunique() con len(payments). Si son iguales, cada fila tiene una clave distinta.
Reto
Comprueba que ninguna clave falta o se repite, y cuenta cuántos importes están por debajo de cero y cuántos son cero. No marques un cero como error.
Intenta el reto antes de consultar las pistas.
Quiz
Comprobación
Registra qué comprobaste, el resultado y el criterio que lo interpreta. La próxima parte cambia de filas individuales a grupos resumidos.