Limpieza y transformación de datos

Lectura
20min~11 min lectura

Introducción a la Limpieza y Transformación de Datos

En el mundo del análisis de datos, rara vez nos encontramos con información perfecta y lista para ser analizada. Los datos suelen llegar desordenados, incompletos, con inconsistencias o en formatos no adecuados para su explotación. Aquí es donde entra en juego la fase de limpieza y transformación, un paso crítico que consume la mayor parte del tiempo en cualquier proyecto de Business Intelligence. En Power BI, esta tarea se realiza principalmente a través de una herramienta poderosa e intuitiva llamada Editor de Power Query.

Esta lección está diseñada para guiarte desde cero a través de los conceptos y operaciones fundamentales para preparar tus datos. No se trata solo de hacer clic en botones, sino de comprender la lógica detrás de cada transformación. Un buen proceso de limpieza garantiza que tus informes y dashboards sean precisos, confiables y, sobre todo, que cuenten una historia fiel de la realidad que representan. Dominar Power Query es, por tanto, la clave para pasar de ser un simple "arrastrador de gráficos" a un verdadero analista de datos.

Imagina que los datos crudos son como ingredientes recién comprados en el mercado: pueden tener tierra, partes no comestibles o venir en tamaños inconsistentes. La limpieza y transformación es el proceso de lavar, pelar, cortar y marinar esos ingredientes antes de empezar a cocinar el plato (el informe). Sin este paso, el resultado final podría ser desagradable o, peor aún, indigesto. Power Query es tu cocina y tus cuchillos bien afilados para esta tarea.

Concepto Clave: El Editor de Power Query y el Lenguaje M

El Editor de Power Query es el entorno dentro de Power BI Desktop (y otras herramientas de Microsoft como Excel) dedicado exclusivamente a la obtención, limpieza y transformación de datos. Su interfaz es aparentemente sencilla, con una cinta de opciones y una lista de pasos aplicados, pero detrás de ella opera un motor muy potente. Cada acción que realizas mediante la interfaz gráfica (hacer clic en un botón para eliminar columnas, filtrar filas o cambiar tipos de datos) se traduce automáticamente en una línea de código en un lenguaje específico llamado M.

Piensa en el Editor de Power Query como un traductor visual. Tú le das instrucciones en un lenguaje visual (clic aquí, seleccionar aquello), y él escribe el código subyacente en M. Esto es tremendamente poderoso porque significa que no necesitas ser un programador para realizar transformaciones complejas, pero al mismo tiempo, el lenguaje M está ahí para cuando necesitas un control absoluto y realizar operaciones que la interfaz no cubre directamente. Es la mejor combinación: facilidad para el principiante y potencia para el experto.

Una analogía del mundo real sería un coche automático con modo manual. Puedes conducir toda tu vida usando solo la palanca de cambios automática (la interfaz de Power Query) y llegar a tu destino sin problemas. Pero si quieres un control total sobre las revoluciones del motor en una carretera de montaña, puedes cambiar al modo manual (editar el código M directamente) y ajustar cada detalle. La mayoría de las transformaciones diarias se hacen en "automático", pero conocer la existencia del "modo manual" te da una comprensión más profunda de la herramienta.

Tip del Instructor: No te intimides por el código M al principio. Concéntrate en aprender a usar la interfaz gráfica de Power Query. Con el tiempo, al revisar la ventana "Editor avanzado", empezarás a reconocer patrones y a entender la lógica. Es un aprendizaje orgánico.

Cómo Funciona en la Práctica: Un Flujo de Trabajo Paso a Paso

El proceso en Power Query sigue un flujo lógico y secuencial. Cada acción que realizas se añade como un paso en la lista "PASOS APLICADOS" del panel de consulta. Este flujo es no destructivo, lo que significa que puedes volver atrás, eliminar o modificar cualquier paso en cualquier momento sin afectar a los datos originales. Es como tener una máquina del tiempo para tus transformaciones.

Vamos a seguir un ejemplo práctico. Supongamos que hemos importado un archivo CSV de ventas que tiene los siguientes problemas: la primera fila son títulos secundarios, los nombres de las columnas tienen espacios y mayúsculas raras, la columna "Fecha" está en formato texto, hay filas con valores nulos en el campo "ClienteID" y necesitamos redondear los valores de una columna "Importe". El flujo sería: 1) Promover la primera fila como encabezados. 2) Limpiar los nombres de las columnas (quitar espacios, poner en minúscula). 3) Cambiar el tipo de datos de "Fecha" de texto a Fecha. 4) Filtrar las filas donde "ClienteID" sea nulo. 5) Transformar la columna "Importe" para redondearla a dos decimales.

Cada uno de estos pasos se va registrando. La magia está en que este proceso se guarda y se vuelve a ejecutar automáticamente cada vez que los datos se actualizan (por ejemplo, cuando llega un nuevo archivo CSV con la misma estructura). Una vez configurado, tu proceso de limpieza funciona una y otra vez, ahorrándote horas de trabajo manual. Esta es la automatización en su máxima expresión.

Ejemplo Paso a Paso en la Interfaz

Al cargar el CSV, Power Query abrirá el Editor. Verás una tabla precaria. El primer paso suele ser "Usar primera fila como encabezados" (botón en la pestaña Inicio). Inmediatamente, los nombres de las columnas pasan a la cabecera. Luego, en la pestaña "Transformar", encontrarás el botón "Limpiar nombres de columnas" que estandariza todo. Para cambiar el tipo de datos, haces clic en el icono "ABC" o "123" a la izquierda del nombre de la columna y seleccionas el tipo correcto. Para filtrar nulos, usas el filtro desplegable en la columna "ClienteID" y desmarcas la casilla "(nulo)". Finalmente, para redondear, seleccionas la columna "Importe", vas a "Transformar" y eliges "Redondear".

Código en Acción: Transformaciones Comunes y su Código M

A continuación, veremos ejemplos concretos de código M que Power Query genera. Observar este código te ayudará a entender la sintaxis y la lógica, y es el primer paso para poder realizar modificaciones avanzadas en el futuro.

Bloque 1: Cambiar Tipo de Datos y Renombrar Columnas

Esta es una de las transformaciones más básicas y críticas. Un dato numérico interpretado como texto no se puede sumar, y una fecha como texto no se puede usar en una línea de tiempo. Este código muestra cómo cambiar tipos y renombrar.


// Código generado al cambiar tipos de datos y renombrar
let
    Origen = Csv.Document(File.Contents("C:\Ventas\datos.csv"),[Delimiter=",", Columns=5, Encoding=1252, QuoteStyle=QuoteStyle.None]),
    #"Encabezados promovidos" = Table.PromoteHeaders(Origen, [PromoteAllScalars=true]),
    #"Tipo cambiado" = Table.TransformColumnTypes(#"Encabezados promovidos",{{"Fecha", type text}, {"Importe", type number}, {"Cantidad", Int64.Type}}),
    #"Columnas renombradas" = Table.RenameColumns(#"Tipo cambiado",{{"Importe", "Importe Total"}, {"Cantidad", "Unidades Vendidas"}})
in
    #"Columnas renombradas"

Bloque 2: Filtrar Filas y Rellenar Valores Nulos

Eliminar datos incorrectos o completar información faltante es esencial. Este fragmento filtra filas donde la región no sea "Norte" y luego llena hacia abajo los valores nulos en la columna "Categoría", asumiendo que pertenecen a la misma categoría que la fila anterior.


// Código para filtrar y rellenar valores
let
    Origen = ... // (Código de origen anterior)
    #"Filas filtradas" = Table.SelectRows(Origen, each ([Región] <> "Norte")),
    #"Valores rellenados" = Table.FillDown(#"Filas filtradas",{"Categoría"})
in
    #"Valores rellenados"

Bloque 3: Dividir una Columna y Agregar una Columna Personalizada

A menudo, una columna contiene información compuesta que necesita ser separada. Luego, podemos crear nuevas columnas a partir de cálculos. Este código divide una columna "NombreCompleto" por el espacio y crea una nueva columna con el importe con impuesto.


// Código para dividir columnas y crear columnas personalizadas
let
    Origen = ... // (Código de origen anterior)
    #"Columna dividida" = Table.SplitColumn(Origen, "NombreCompleto", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Nombre", "Apellido"}),
    #"Columna personalizada agregada" = Table.AddColumn(#"Columna dividida", "Importe con IVA", each [Importe Total] * 1.21, type number)
in
    #"Columna personalizada agregada"

Errores Comunes y Cómo Evitarlos

Al empezar, es normal cometer ciertos errores que pueden llevar a resultados erróneos o a procesos ineficientes. Identificarlos te ahorrará muchos dolores de cabeza.

  • Error 1: No revisar los tipos de datos después de importar. Power BI intenta inferir los tipos, pero a menudo se equivoca, especialmente con fechas en formatos ambiguos (dd/mm/aaaa vs mm/dd/aaaa). Cómo evitarlo: Siempre, como uno de tus primeros pasos, revisa cada columna en la vista previa y cambia manualmente el tipo de dato si es necesario. No confíes ciegamente en la detección automática.
  • Error 2: Eliminar filas con nulos de forma indiscriminada. A veces, un valor nulo en una columna no significa que toda la fila sea basura. Eliminarla podría perder información valiosa de otras columnas. Cómo evitarlo: Evalúa primero. ¿Es un nulo crítico para tu análisis (como un ID de cliente)? Si lo es, filtra. Si no, considera usar "Rellenar" o "Reemplazar valores" para tratarlo, en lugar de eliminarlo.
  • Error 3: Realizar transformaciones en el orden incorrecto. El orden de los pasos en Power Query es vital. Si cambias el tipo de una columna a número antes de limpiar caracteres no numéricos (como "$" o ","), obtendrás un error. Cómo evitarlo: Piensa en un flujo de preparación: primero estructura (encabezados, nombres), luego limpieza básica (quitar caracteres, espacios), luego cambios de tipo y finalmente transformaciones complejas. Planifica mentalmente la secuencia.
  • Error 4: No documentar o nombrar bien los pasos. Los pasos por defecto se llaman "Tipo cambiado1", "Tipo cambiado2"... lo que en consultas complejas se vuelve inmanejable. Cómo evitarlo: Renombra cada paso en el panel "PASOS APLICADOS" haciendo doble clic sobre su nombre. Usa nombres descriptivos como "PromoverEncabezados", "LimpiarTextoProducto", "CalcularMargen". Esto hará que tu lógica sea legible para ti y para otros.
  • Error 5: Confundir "Cerrar y aplicar" con solo "Cerrar". Si haces "Cerrar", todas las transformaciones se descartan. Solo "Cerrar y aplicar" lleva los datos transformados al modelo de Power BI. Cómo evitarlo: Sé consciente de este flujo. Trabaja en Power Query, y cuando estés satisfecho, usa siempre el botón grande de la esquina superior izquierda: Cerrar y aplicar.

Checklist de Dominio

Para asegurarte de que has comprendido y puedes aplicar los conceptos fundamentales de esta lección, verifica que puedes realizar las siguientes tareas de manera consistente:

  • Puedo abrir el Editor de Power Query desde Power BI Desktop al cargar cualquier fuente de datos.
  • Sé promover la primera fila como encabezados y limpiar automáticamente los nombres de las columnas (quitar espacios, caracteres especiales).
  • Identifico y cambio correctamente los tipos de datos de las columnas clave: Número, Texto, Fecha, Fecha y hora, Decimal.
  • Utilizo los filtros de columna para eliminar filas no deseadas (filtrar valores nulos, blancos o valores específicos).
  • Sé reemplazar valores específicos en una columna (ej: cambiar "N/A" por "No aplica") y rellenar valores nulos hacia arriba o hacia abajo.
  • Puedo dividir una columna de texto basándome en un delimitador (como una coma o un espacio).
  • Soy capaz de agregar una columna personalizada simple que realice un cálculo aritmético entre otras columnas.
  • Comprendo que el orden de los pasos en "PASOS APLICADOS" es secuencial y sé cómo renombrar un paso para darle claridad.

Conclusión y Siguientes Pasos

La limpieza y transformación de datos es el cimiento sobre el que se construye cualquier análisis confiable. Dominar el Editor de Power Query te otorga un control sin precedentes sobre tus datos, permitiéndote moldearlos para que respondan a tus preguntas de negocio. Has aprendido que no es magia, sino un proceso lógico, paso a paso, que se puede automatizar y replicar.

Recuerda que la práctica es fundamental. Te animo a que busques conjuntos de datos "sucios" (hay muchos disponibles en internet con fines de práctica) y repitas los flujos vistos aquí. Experimenta, comete errores, reviértelos y observa cómo se genera el código M. En el próximo módulo, profundizaremos en transformaciones más avanzadas, como combinaciones (merge) de tablas, columnas condicionales y agrupaciones, llevando tus habilidades al siguiente nivel. Por ahora, concéntrate en hacer estas operaciones básicas de manera fluida y consciente.

Recuerda: Un informe espectacular con gráficos interactivos y colores llamativos es inútil si los datos que lo alimentan no son correctos. Invierte tiempo en la limpieza. Es la parte menos glamorosa, pero la más importante del trabajo de un analista.