Saltar al contenido

lección 2

Cargar los extractos y ver que «abandonar» no está definido

Cargar los clientes y su actividad mensual y descubrir que la base no tiene dos grupos sino cuatro estados mezclados. Y un cero no es un dato que falta.

⏱ 55 min

## Lunes, 12:30. El cajón de los extractos

Pau te deja en la carpeta compartida dos ficheros CSV, los extractos que el equipo de datos exporta del core bancario seudonimizado. No hay diccionario de datos: lo que es cada columna se pregunta por el chat. Uno, clientes.csv, trae una fila por cliente con sus datos de alta, si tiene la nómina domiciliada y desde cuándo, el saldo medio, el producto y el segmento. El otro, actividad_mensual.csv, trae una fila por cliente y mes con los movimientos, los pagos con tarjeta, los logins en la app y el saldo a fin de mes. El primer trabajo de un data scientist no es modelar, es entender qué tiene delante, y en este caso ese trabajo es casi todo el caso.

Pau ya te ha avisado de que los extractos vienen con marranadas —fechas en varios formatos, la nómina domiciliada escrita como sí, no, S, N, 1 o 0, importes como texto con el símbolo del euro y la coma decimal, categorías de producto inconsistentes, y clientes duplicados por una migración de sistemas—, pero conviene comprobarlo con datos, no de oídas. Hoy montas el esqueleto del repositorio, cargas los dos ficheros con Pandas y les haces las preguntas de siempre: cuántas filas, qué columnas, cuántos clientes distintos de verdad, y qué pinta tiene su actividad.

Los dos extractos. El perfil del cliente está en clientes.csv; su actividad, repartida mes a mes, en actividad_mensual.csv. Para modelar habrá que resumir los doce meses de cada cliente a una sola fila, y ahí es donde se decide qué cuenta como actividad reciente.

## La trampa que rompe el caso si no la ves: un cero no es un dato que falta

En actividad_mensual.csv hay celdas vacías. La reacción automática, después de siete casos limpiando datos, es tratarlas como lo que casi siempre son: datos ausentes, algo que no se registró y hay que imputar o descartar. Aquí sería un error grave. En este extracto, una celda vacía en num_movimientos no significa «no sabemos cuántos movimientos hizo»: significa «hizo cero movimientos ese mes». El sistema no escribe un cero cuando no hay actividad, deja la celda vacía. Y cero movimientos no es la ausencia del dato: es el dato más importante del caso, porque es exactamente la señal de que una cuenta se está apagando.

Si rellenas los nulos de actividad con la media, o si tiras las filas con nulos, destruyes justo la señal que buscas. Un cliente que lleva meses con la actividad vacía no es un cliente del que no tienes datos: es un cliente muerto, y es información valiosísima. Los nulos de actividad se rellenan con 0, no con la media y no se descartan. Confundir «vacío» con «falta» aquí no es un detalle de limpieza: es la diferencia entre ver a los muertos o no verlos.

La trampa de interpretación del caso. En este extracto el vacío significa cero actividad, no dato ausente. Imputar la media o descartar borra justo la señal de un cliente que se apaga. Rellenar con cero la conserva.

## Cuatro estados, no dos

Cuando resumes la actividad de cada cliente y la miras, aparece lo que de verdad cambia el caso: la base no se divide en «se queda» y «se va». Hay al menos cuatro estados muy distintos. Están los que nunca estuvieron activos, que abrieron la cuenta por la promo de bienvenida y jamás la usaron. Están los activos, que la usan con normalidad. Están los que se están enfriando, que la usaban y han empezado a bajar. Y están los muertos, que llevan meses sin un solo movimiento. Esos cuatro grupos tienen patrones de actividad completamente distintos, y meterlos a todos en un «abandonó / no abandonó» es el origen del mal encuadre.

Los cuatro estados dibujados por su actividad en el tiempo. La forma de cada línea cuenta la historia: el nunca_activo nunca despega, el activo se mantiene arriba, el que se enfría baja despacio, el muerto cae y se queda en el suelo. Esta figura es la que rompe la pregunta de Nerea: no hay dos grupos, hay cuatro.

Consejo de senior: cuando explores una base que vas a modelar, no mires solo las medias y los totales. Mira las formas. Dibujar la actividad en el tiempo de unos cuantos clientes te enseña en treinta segundos lo que una tabla de medias esconde: que hay poblaciones distintas conviviendo. Esa es la observación que te va a permitir reformular la pregunta mañana.

Para los ejercicios de modelado de los próximos días, Pau te ha dejado también una tabla ya limpia y cruzada, tabla_modelado.csv: una fila por cliente, con la actividad resumida en features (actividad reciente, actividad previa, tendencia, antigüedad, nómina), el estado del cliente ya calculado, el flag accionable, y dos targets listos para comparar. Pero antes de usarla conviene ensuciarte las manos con los extractos crudos, que es lo que haces hoy: entender de dónde sale cada cosa.

Regístrate para guardar tu progreso.