# Pasos de preprocesamiento de datos: cómo limpiar los datos de negocio

> Conoce los pasos de preprocesamiento de datos que convierten registros de negocio desordenados en información fiable, con ejemplos para pymes. Descubre cómo ELECTE los automatiza.

Source: https://www.electe.net/es/correo-electronico-/data-preprocessing-steps

Site guide: https://www.electe.net/es/llms.txt

Has descargado una exportación de ventas que parece terminada. Pedidos, costes y fechas llenan la hoja. Entonces una previsión llega a la mesa del responsable de finanzas y el valor medio del pedido se ha disparado, aunque nada ha cambiado en el catálogo.

Ese salto suele ser un error de preprocesamiento, no un cambio en las compras. Rellenar precios vacíos cuando todavía hay facturas duplicadas en el archivo, o escalar toda la extracción antes de reservar filas, enseña al modelo datos que aún no debería ver. La mayoría de los artículos presentan los **pasos de preprocesamiento de datos** como técnicas sueltas que se pueden aplicar en cualquier orden. El orden es justo lo que infla los resultados.

A continuación encontrarás la secuencia que recomiendo cuando un analista se encarga de un archivo de negocio en uso. Tendrás un orden de ejecución, los umbrales que trato como puntos de partida y no como leyes, y una forma de fijar cada ajuste calculado para que la siguiente carga de datos siga el mismo camino.

## Siete pasos de preprocesamiento de datos en el orden correcto

Una exportación de ventas puede parecer completa y aun así esconder filas de facturas duplicadas, costes unitarios en blanco y fechas guardadas en dos formatos. Si limpias esos problemas en el orden equivocado, cada promedio posterior los hereda.

**Todo paso que calcule un valor a partir de los datos debe ejecutarse después de la división.** Una media, una mediana o un rango de escalado calculados sobre el archivo completo dejan que las filas de validación influyan en el entrenamiento. Así, la puntuación parece mejor de lo que será el modelo con los pedidos del mes siguiente.

PasoQué hacesEstá listo cuando1. Perfilar y limpiarRevisa el número de filas, los tipos de datos y las tasas de nulos; elimina duplicados exactos; estandariza fechas y etiquetasTabla base limpia con una etiqueta por categoría2. Dividir los datosMezcla las filas y divídelas en conjuntos de entrenamiento y validaciónExisten dos conjuntos y aún no se ha calculado ningún ajuste aprendido3. Tratar los valores faltantesElimina filas, elimina la variable o imputa usando solo los datos de entrenamientoCada campo está completo o sus huecos están marcados4. Codificar y crear variablesConvierte categorías en números; crea ratios, componentes de fecha y medias móvilesUna tabla de variables lista para el modelo, con columnas documentadas5. Tratar los valores atípicosVerifica los valores extremos y luego limítalos, transfórmalos o márcalosLos valores extremos están explicados, no adivinados6. Escalar las variables numéricasAjusta un escalador con los datos de entrenamiento y aplícalo a los de validaciónLas columnas numéricas tienen rangos comparables7. Fijar el pipelineGuarda cada transformación ajustada para que los datos nuevos sigan el mismo caminoUna ejecución repetible que funciona con cada nueva carga de datos

Supongamos que un comercio tiene 12 000 líneas de pedido, entre ellas 900 filas de facturas duplicadas. Si imputas los precios faltantes antes de eliminar esos duplicados, cuentas la misma factura dos veces y el promedio se aleja de la lista de precios.

> **Regla práctica:** termina la fila en la que estás antes de calcular nada que necesite la fila siguiente.

Compare el archivo que tiene abierto con esas siete filas. La primera fila que aún no haya terminado es la única que vale la pena tocar hoy.

## Perfile y limpie los datos comerciales sin procesar

El perfilado es una pasada de una hora que un responsable puede terminar antes de que alguien abra un modelo. Deje intacto el archivo original y anote cada cambio en un registro de limpieza para que un responsable de finanzas pueda ver por qué se movió un total.

1. **Cuente filas y columnas y confirme el tipo de cada una.** Un coste almacenado como texto no se suma y no da error visible. Conviértalo antes de fiarse de un total.
2. **Calcule la tasa de nulos de cada columna.** Una columna con más de un 30 % de huecos pasa a las reglas de valores faltantes en lugar de un relleno rápido. Yo eliminaría una columna entera solo cuando los huecos superen el 50 % y el campo no sea necesario para la decisión.
3. **Elimine los duplicados exactos, no los parecidos.** Compare por número de factura, fecha e importe a la vez. Un segundo pedido con otro ID de línea es una venta real. Borrarlo porque coinciden el cliente y el día es el error que subestima los ingresos.
4. **Normalice los formatos en una sola pasada.** Un único patrón de fecha, una sola moneda por columna y sin espacios sobrantes en los códigos. Los formatos mezclados dividen un producto en dos series y rompen cualquier cruce posterior.
5. **Unifique las etiquetas de categoría.** `UK`, `U.K.` y `United Kingdom` son un mismo mercado. Cuatro grafías de una misma línea de producto en una exportación de comercio electrónico de tres años causan el mismo daño. Elija una etiqueta y asigne el resto a ella.

Imagine que esa exportación guarda las fechas de pedido como `2024-03-01` en un año y como `01/03/2024` en otro. Hasta que ambas pasen a un solo patrón, un gráfico mensual cuenta dos veces marzo o lo omite.

### Qué protegen el registro y el recorte de privacidad

El registro de limpieza es una tabla breve: columna, regla, filas modificadas, persona y fecha. Cuando finanzas pregunte por qué se redujo marzo del año pasado, usted señala la regla de duplicados en lugar de reconstruir el archivo de memoria.

Antes de que el archivo llegue a cualquier plataforma de análisis, elimine nombres de clientes, correos electrónicos y datos de pago. No los necesita para prever la demanda, y dejarlos en la extracción crea un problema de privacidad que ningún modelo puede deshacer.

Si quiere una segunda opinión sobre cómo es un buen extracto comercial, los [análisis de calidad de datos de ventas de Pipecorn](https://pipecorn.com/blog/data-quality-standards) son una lista de comprobación útil sobre identificadores, integridad y coherencia. Úselos para decidir qué columnas merece la pena conservar y después vuelva al recorte por tasa de nulos descrito arriba.

## Divida los datos antes de que empiece cualquier aprendizaje

La división es una valla. Nada que estime una estadística debe tocar el archivo completo.

Para la clasificación supervisada de texto, la [guía de clasificación de texto de Google](https://developers.google.com/machine-learning/guides/text-classification/step-3) recomienda mezclar los datos antes de dividirlos, porque mantener el orden original puede sesgar ambos conjuntos. Tras la mezcla, una división habitual asigna el **80 %** de los ejemplos al entrenamiento y el **20 %** a la validación. Después se aplican las mismas transformaciones a ambos conjuntos, pero solo una vez aprendidas con las filas de entrenamiento.

### Por qué un archivo de ventas ordenado miente

Las exportaciones suelen llegar ordenadas por fecha, región o cliente. Si divide ese archivo de arriba abajo, entrena con 2023 y valida con finales de 2024. La puntuación entonces refleja el calendario, un calendario de promociones o la composición de una sola región. No le dice si el modelo entendió los pedidos.

Mezcle cuando cada fila sea un caso independiente: un pedido cerrado, una cuenta que se dio de baja, un ticket clasificado. No mezcle cuando la pregunta sea una previsión.

> Mantenga el orden temporal para las previsiones. Entrene con los meses anteriores y pruebe con los posteriores. Una mezcla dejaría que el modelo viera el futuro y lo hiciera pasar por acierto.

### Los campos de texto necesitan un corte por frecuencia

Los tickets de soporte y las descripciones de producto se disparan hasta miles de tokens. En el mismo flujo de Google, se descartan los tokens que aparecen menos de **dos** veces, se conservan las **20 000** características de token principales y se ordena lo que queda con una puntuación de importancia basada en la prueba F. Un token que aparece una sola vez suele ser una errata o un SKU puntual, no un patrón que merezca una columna.

Tras la división, ajuste cada asignación solo con los datos de entrenamiento y luego aplique esa asignación fija a la validación. Recalcular un vocabulario o una lista de categorías con las filas reservadas es otra forma de filtrar la respuesta hacia la preparación.

## Rellene los valores faltantes sin sesgar los resultados

La acción depende de la frecuencia con que un campo está en blanco y de si la decisión necesita ese campo. Los rangos siguientes son una regla práctica, no una ley. Un modelo de riesgo regulado puede negarse a descartar filas que una previsión de retail sí puede permitirse perder.

Proporción de valores faltantesImportancia de la variableAcciónMenos del 5%CualquieraEliminar esas filas si quedan datos suficientesDel 5% al 30%BajaEliminar la variableDel 5% al 30%AltaImputar usando solo las filas de entrenamientoMás del 30%AltaImputar, añadir una columna indicadora de valor faltante e investigar por qué el campo está vacíoMás del 30%BajaEliminar la variable

Un puñado de costes en blanco en un archivo de pedidos por lo demás completo corresponde a la primera fila. Eliminar esas líneas perjudica menos que inventar un precio. Un campo de encuesta poco usado, en la banda intermedia, no justifica un valor rellenado a ojo, así que la columna se descarta. La antigüedad, que usas para la baja de clientes, se mantiene y se estima.

[La guía de Google sobre preparación de datos para clustering](https://developers.google.com/machine-learning/clustering/prepare-data) menciona tres opciones prácticas: eliminar los ejemplos con valores faltantes, eliminar la variable o predecir los valores faltantes a partir de otros datos. Los huecos poco frecuentes pueden justificar eliminar filas. Los huecos frecuentes suelen implicar descartar la variable o imputarla.

### Predice el hueco en lugar de pegar una constante

Para un campo numérico, entrena una regresión con las filas donde el valor existe y luego estima los vacíos. La edad faltante de un cliente, por ejemplo, puede estimarse a partir de los ingresos y la antigüedad, en lugar de sustituirla por un único promedio de toda la empresa. Así se aprovechan relaciones en las que ya confías.

El valor del pedido está sesgado. Unos pocos tickets mayoristas grandes elevan la **media**, de modo que rellenar con la media hace que las cestas habituales parezcan más ricas de lo que son. La **mediana** se mantiene en el pedido típico y se mueve menos cuando entra una factura de gran volumen. Compara los estadísticos descriptivos antes y después del relleno. Un cambio grande indica que el método está reescribiendo el negocio, no tapando un hueco.

En las categorías, etiqueta el vacío como `Unknown`. A menudo el hueco es la señal: un checkout que nunca capturó la región, o un producto sin código de proveedor. Convertirlo en un nivel real conserva la fila y le muestra al modelo que el campo estaba vacío a propósito.

Los vacíos frecuentes no son raros en las operaciones. Un estudio de 2025 sobre datos incompletos de consumo de agua describe un conjunto de datos de edificios con **33.888** registros horarios de febrero de 2019 a diciembre de 2023, con valores faltantes en el **20%** de las horas, una banda en la que eliminar filas de forma generalizada descartaría demasiado historial ([el estudio](https://arxiv.org/html/2506.08882v1)).

Ajusta el imputador solo con las filas de entrenamiento. [La guía de ELECTE sobre datos faltantes](https://www.electe.net/post/missing-data-imputation) explica con más detalle las opciones de imputación, por si quieres una segunda revisión del método, no del orden.

## Codifica las categorías y crea variables útiles

Aquí hay dos tareas. Convertir las etiquetas en números que el modelo pueda usar y construir columnas que respondan a una pregunta de negocio que los campos originales no responden.

### Codificar sin crear un ranking falso

La **codificación one-hot** sirve para categorías con pocos valores, como cinco regiones de ventas. Cada región se convierte en su propia columna de sí o no, y ninguna región es «mayor» que otra.

La **codificación ordinal** sirve cuando existe un orden real, como las tallas S, M y L. Los números reflejan una clasificación que el negocio ya utiliza.

No asignes 1, 2, 3 a nombres sin orden, como canal o ciudad. El modelo tratará un código más alto como «más» de algo. Ese ranking falso aparece después como un coeficiente seguro pero erróneo. Cuando un campo tiene cientos de niveles, one-hot genera una tabla muy ancha. Agrupa los niveles poco frecuentes en `Other` antes de codificar y aprende esa agrupación solo con las filas de entrenamiento.

### Columnas que responden a una pregunta de negocio

Crea una lista corta ligada a una sola decisión, no un volcado de todas las razones que sepas deletrear.

- **Porcentaje de margen:** `(price − cost) / price` te dice si una promoción sigue cubriendo el costo, algo que los ingresos por sí solos no muestran.
- **Días desde la última compra:** una revisión de abandono necesita la recencia, no otra copia del ID de cliente.
- **Día de la semana y mes:** la planificación de la demanda necesita ver los picos de los viernes y los meses de temporada que quedan ocultos dentro de una marca de tiempo completa.
- **Promedio móvil de 7 días:** las unidades diarias fluctúan mucho. Un promedio semanal muestra si la demanda está subiendo.
- **Ratio de stock sobre ventas:** un responsable de inventario detecta antes que se está formando un faltante que con un simple conteo de existencias.

Yo empezaría con entre diez y quince variables ligadas a esa única decisión. Elimina una de cada par cuando las columnas se correlacionan por encima de 0,95, porque la segunda repite a la primera. Escribe el significado de negocio junto al nombre de la columna en el diccionario de datos. Un mapa de codificación o un promedio móvil calculados sobre el archivo completo, incluidas las filas que querías reservar, repiten la fuga de datos que ya habías bloqueado en la división.

## Escala los números y controla los valores atípicos

Un valor extremo no es automáticamente un error. Un pedido de 40 unidades de una cuenta B2B es una venta real. Márcalo para que no domine una media y déjalo en el historial. Un precio unitario de 100.000 que se escribió en lugar de 1.000 es un error de captura. Corrige el dígito, no lo "trates" como demanda.

### Revisa el valor extremo antes de eliminarlo

Dos comprobaciones funcionan bien juntas. La regla de **1,5 × el rango intercuartílico** marca los puntos alejados del centro de la columna. Una comprobación de dominio pregunta si el valor puede existir: stock negativo, una fecha dentro de diez años, un descuento mayor que el precio de venta. Verifica primero. Después limita en los percentiles 1 y 99, aplica una transformación logarítmica a los ingresos con sesgo, o agrega una marca y conserva el número original para los informes.

> Un pedido mayorista que eliminas es ingreso que nunca volverás a pronosticar. Un error de tipeo que conservas se convierte en un precio que el modelo cree que los clientes pagarán.

Vuelve a ejecutar el resumen después de limitar los valores. El centro de la columna apenas debería moverse. Si la mediana salta, el límite está haciendo demasiado trabajo y conviene revisar de nuevo las filas de origen.

### Qué escalador corresponde a cada perfil

Escalar evita que una columna en unidades grandes, como los ingresos anuales, ahogue a una columna en unidades pequeñas, como las unidades por pedido. La [documentación de preprocesamiento de Scikit-learn](https://scikit-learn.org/stable/modules/preprocessing.html) señala que **StandardScaler** centra cada variable en la media del conjunto de entrenamiento y la escala según la varianza, y que puede rendir mal cuando hay muchos valores atípicos. **RobustScaler** es la alternativa directa que usa estimaciones más resistentes del centro y del rango.

Perfil de datosEscaladorPor qué encajaAproximadamente simétrico, pocos valores extremosStandardScalerCentra en la media y escala según la varianzaMuchos valores atípicos, como pedidos mayoristas ocasionalesRobustScalerUsa la mediana y el rango intercuartílico, que resisten los extremosLos valores necesitan un rango fijo, como valoraciones de 1 a 5MinMaxScalerMapea los valores a 0-1 sin cambiar su forma

Ajusta el escalador solo con los datos de entrenamiento y aplica ese ajuste al conjunto de validación. Si lo reajustas con el conjunto reservado, los valores extremos de validación acaban definiendo la escala. Para ver con más detalle cómo detectar valores extremos antes de elegir un tratamiento, consulta [la guía de ELECTE sobre valores atípicos](https://www.electe.net/post/outlier-statistica).

## Automatiza el pipeline y revisa sus resultados

Un archivo limpio guardado en un solo notebook puede variar entre ejecuciones. Un archivo nuevo puede recibir un valor de imputación, una codificación de categorías o una escala distintos, y hacer que un panel cambie aunque el negocio de fondo no haya cambiado.

Un pipeline mantiene juntos el imputador, el codificador y el escalador ya ajustados, y aplica las mismas transformaciones a los archivos nuevos. Ajusta esos pasos usando solo la partición de entrenamiento. Aplica los parámetros ajustados a los datos de validación y prueba sin recalcularlos. [La nota de IBM sobre fuga de datos](https://www.ibm.com/think/topics/data-leakage-machine-learning) explica por qué ajustar los pasos de preprocesamiento con datos de entrenamiento y de prueba a la vez puede filtrar información a la evaluación.

### Comprobaciones después de cada ejecución

Un trabajo exitoso solo confirma que el proceso se ejecutó. Verifica si el resultado sigue coincidiendo con la fuente y con las reglas que definiste:

- **Recuento de filas:** concilia el archivo cargado con la exportación, teniendo en cuenta los duplicados registrados.
- **Tasa de nulos por columna:** investiga cualquier aumento repentino, ya que puede significar que un campo de origen dejó de llegar.
- **Rangos de valores:** comprueba que los precios, las cantidades y las fechas se mantengan dentro de los límites aceptados.
- **Nuevas categorías:** dirige una región o un SKU nunca visto a un grupo definido en lugar de descartarlo sin avisar.

Para ver [ejemplos prácticos de validación de datos](https://www.electe.net/post/data-validation-techniques), revisa cómo se aplican estas comprobaciones a archivos de negocio. Trata los resultados automatizados como estimaciones y revisa manualmente los primeros ciclos antes de usarlos para activar alertas.

**ELECTE**, una plataforma de análisis de datos con IA para empresas en crecimiento, se conecta al software de contabilidad o a un archivo cargado y realiza análisis de datos y previsiones sin necesidad de un analista. Los clientes ahorran más de 10 horas por semana al automatizar el análisis financiero. Esa ayuda depende de usar pasos ajustados que puedas defender en una revisión, en lugar de recalcularlos en cada carga.

Esta semana, toma un conjunto de datos y aplícale la tabla de siete filas, marcando qué pasos siguen siendo manuales. Automatiza un paso repetido, pero mantén bajo revisión las decisiones de criterio, como un duplicado frente a un reabastecimiento real o un error tipográfico frente a un pedido al por mayor, hasta que las reglas sean estables.

---

ELECTE conecta tus datos contables o un archivo cargado, los prepara y los convierte en previsiones e informes que puedes revisar con tu equipo. Si quieres que esos pasos de preprocesamiento de datos se apliquen igual en cada carga, visita [ELECTE](https://www.electe.net) y comprueba cómo la plataforma ejecuta el proceso con tus propias cifras.
