Saltearse al contenido

Módulo 2: El Puente Mental: De R / Python a Power BI

🧠 1. La Arquitectura Comparada

Si tienes experiencia programando en R (con el ecosistema tidyverse) o en Python (con pandas y numpy), tu mente analítica ya domina la lógica de transformación y agregación de datos.

Power BI no reemplaza esta lógica; simplemente la divide en dos motores especializados de alto rendimiento:

R / PythonETL y limpiezadplyr / pandas
Power BIPower Query (M)Extracción y depuración
R / PythonCálculos y agregaciónmutate, groupby, summarise
Power BIMotor DAXColumnas y medidas dinámicas
R / PythonGráficos estáticosggplot2 / seaborn
Power BILienzo interactivoCross-filtering en milisegundos

🔄 2. Tabla de Equivalencias Directas (Rosetta Stone)

Tarea AnalíticaR (tidyverse)Python (pandas)Power BI
Cargar datosread_excel("archivo.xlsx")pd.read_excel("archivo.xlsx")Inicio > Obtener datos > Excel
Filtrar Nulosdf %>% drop_na(IngAnual)df.dropna(subset=['IngAnual'])Power Query: Clic en columna → Quitar vacíos
Limpiar Moneda ($)readr::parse_number(IngAnual)df['IngAnual'].str.replace(r'[\$,]', '')Power Query: Reemplazar valores o Cambiar tipo con configuración regional
Columna Calculadamutate(Edad = 2023 - Año)df['Edad'] = 2023 - df['Año']Modelado: Nueva Columna Calculada (DAX)
Métrica Agregada Dinámicasummarise(Prom = mean(Ing))df['Ing'].mean(52,000 USD)Modelado: Nueva Medida (DAX)
Filtro con Condiciónfilter(df, Pais == 'ES')df[df['Pais'] == 'ES']DAX: CALCULATE(..., Pais == "ES")
Visualizaciónggplot(aes(x, y)) + geom_col(52,000 USD)sns.barplot(data=df, x=..., y=...)Lienzo Visual: Arrastrar campos a objeto visual

⚡ 3. El Secreto Crítico de DAX: Medida vs. Columna Calculada

Este es el concepto donde más tropiezan los programadores cuando llegan a Power BI:

  • Equivalente en Python: df['Col'] = df['A'] + df['B']
  • Cómo funciona: Se evalúa fila por fila al cargar los datos y se almacena físicamente en la memoria RAM.
  • Cuándo usarla: Solo cuando necesitas un nuevo atributo para segmentar o usar en el eje de un gráfico (por ejemplo, agrupar edades en rangos: “Menor de 30”, “30 a 50”, “Mayor de 50”).
  • Peligro: Si abusas de ellas, saturas la memoria del modelo y aumentas el peso del archivo innecesariamente.

🐍 4. Ejecución de Scripts Nativos de R y Python en Power BI

¿Sabías que puedes programar scripts de Python y R directamente dentro de Power BI Desktop?

A. Para Limpieza Avanzada (En Power Query)

Si una transformación de datos resulta engorrosa en la interfaz visual, puedes ir a la pestaña Transformar en Power Query y hacer clic en Ejecutar script de Python o Ejecutar script de R:

# 'dataset' contiene el DataFrame actual de Power Query
import pandas as pd
dataset['IngAnual'] = pd.to_numeric(
dataset['IngAnual'].astype(str).str.replace(r'[\$,\s]', '', regex=True),
errors='coerce'
)

B. Para Gráficos Estadísticos Avanzados (En el Lienzo)

En el panel de visualizaciones, Power BI incluye dos iconos nativos: Objeto visual de R y Objeto visual de Python.

Al insertarlos, puedes escribir código directo de matplotlib, seaborn o ggplot2 para generar diagramas de violín, mapas de calor de correlación o curvas ROC que se actualizarán dinámicamente con los filtros del reporte.