Cómo Realizar One-Hot Encoding en Power BI.

Cómo Realizar One-Hot Encoding en Power BI: Guía Paso a Paso

Guía paso a paso con Power Query. Sin R, sin Python, sin extensiones.

Power BI Power Query M Language One-Hot Encoding
One-Hot Encoding

Fuente: aiplusinfo.com

¡Hola, comunidad de análisis de datos en Power BI! Hoy te traigo un tutorial completo para implementar One-Hot Encoding directamente en Power Query.

Si estás preparando datos para modelos de machine learning, regresiones lineales o simplemente quieres variables dummy para análisis avanzados, este método es rápido, nativo y escalable. ¡No necesitas R, Python ni extensiones!

¿Qué es el One-Hot Encoding?

El One-Hot Encoding convierte variables categóricas (como "Rojo", "Azul", "Verde") en columnas binarias (0 o 1).

CategoríaRojoAzulVerde
Rojo100
Azul010
Verde001
✅ Ventajas en Power BI:
  • Compatible con DAX y visuales nativos.
  • Ideal para AutoML y modelos predictivos.
  • Evita sesgos numéricos del Label Encoding.

Paso a Paso en Power Query

1

Agrega Columna Índice

Ve a Agregar columna > Columna de índice > Desde 0.

Agregar columna índice

Fuente: Microsoft Learn

2

Crea Columna "Dummy" = 1

Agregar columna > Columna personalizada → Nombre: Dummy, Fórmula: 1

3

Pivotea la Columna Categórica

Selecciona "Mes" → Transformar > Pivoteo de columna → Valores: Dummy, Agregación: Suma

Pivoteo de columna

Fuente: Microsoft Docs

4

Reemplaza null por 0

Selecciona todas las nuevas columnas → Clic derecho > Reemplazar valoresnull0

5

Limpieza Final

Cambia tipo a Entero, elimina columnas innecesarias → Cerrar y aplicar.

🎉 ¡One-Hot Encoding listo en 5 minutos!

Código M para Editor Avanzado

M · Power Query
let
    Fuente = TuTablaAnterior,
    #"Columna índice" = Table.AddIndexColumn(Fuente, "Índice", 0, 1),
    #"Columna Dummy" = Table.AddColumn(#"Columna índice", "Dummy", each 1),
    #"Pivoteada" = Table.Pivot(#"Columna Dummy", List.Distinct(#"Columna Dummy"[Mes]), "Mes", "Dummy", List.Sum),
    #"Reemplazar null" = Table.ReplaceValue(#"Pivoteada", null, 0, Replacer.ReplaceValue, Table.ColumnNames(#"Pivoteada"))
in
    #"Reemplazar null"

💡 Tip: Cambia [Mes] por tu columna categórica.

Consejos Pro

  • Múltiples columnas → repite el proceso para cada variable categórica.
  • Muchas categorías (>50) → considera Label Encoding para evitar explosión dimensional.
  • Uso en DAX: Regresión = LINEST(Ventas, [Ene], [Feb], ...)
  • Error común: duplicados → usa "No agregar" en pivoteo si no quieres sumar.

Entradas populares de este blog

Análisis ABC en Power BI con DAX.

Cómo Equilibrar Múltiples Productos con Pedidos a la Medida

Descubriendo el Poder de los Modelos de Clasificación en Machine Learning: Predicciones Precisas y Clasificaciones Sorprendentes

Maximiza la rentabilidad de tu negocio: Cómo optimizar la selección de proveedores de mercancías.

Target Encoding en Power BI: La Guía Definitiva Sin Data Leakage

Optimización del Inventario Multiproducto en Espacios Reducidos: Una guía para la eficiencia en gestión de stocks

El Desafío del Empaque en Contenedores: Optimizando Espacios en contenedores con Ingenio

¡Plan Desagregado de Producción como un jefe!

Domina tu Almacén sin arruinarte: El Juego del Modelo de Inventario Múltiproductos con Presupuesto ajustado