DÍA 04Preparar y explorar datos · Python para Análisis de Datos y Estadística

Comprueba claves únicas, valores faltantes y condiciones básicas antes de resumir.

Día 4 18 minInicial

Pagos de Sakila para análisis con pandas

Exportación original reducida; 16 044 filas; una fila por pago; payment_id es la clave; no contiene nombres ni correos.

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

1. ¿Qué detecta isna().sum()?
2. ¿Qué implica que payment_id.nunique() sea igual al número de filas?
3. ¿Un amount igual a cero demuestra por sí solo un error?

Comprobación

Registra qué comprobaste, el resultado y el criterio que lo interpreta. La próxima parte cambia de filas individuales a grupos resumidos.

TU PROGRESO

Cargando estado…