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:
🔄 2. Tabla de Equivalencias Directas (Rosetta Stone)
| Tarea Analítica | R (tidyverse) | Python (pandas) | Power BI |
|---|---|---|---|
| Cargar datos | read_excel("archivo.xlsx") | pd.read_excel("archivo.xlsx") | Inicio > Obtener datos > Excel |
| Filtrar Nulos | df %>% 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 Calculada | mutate(Edad = 2023 - Año) | df['Edad'] = 2023 - df['Año'] | Modelado: Nueva Columna Calculada (DAX) |
| Métrica Agregada Dinámica | summarise(Prom = mean(Ing)) | df['Ing'].mean(52,000 USD) | Modelado: Nueva Medida (DAX) |
| Filtro con Condición | filter(df, Pais == 'ES') | df[df['Pais'] == 'ES'] | DAX: CALCULATE(..., Pais == "ES") |
| Visualización | ggplot(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.
- Equivalente en Python: Una función lambda o agregación que se recalcula cada vez que el usuario hace un clic en la interfaz.
- Cómo funciona: No ocupa espacio en memoria. No existe como columna en la tabla. Es una fórmula matemática que se ejecuta en milisegundos según los filtros visuales activos en la pantalla.
- Ejemplo DAX:
Ventas_Totales = SUM(PremiumMart[ValTotVinos])
- Por qué es poderosa: Si no hay filtros, calcula el total mundial ($680k). Si el usuario hace clic en España, calcula automáticamente el total de España. Si luego hace clic en “Casados”, calcula el total para personas casadas en España.
🐍 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 Queryimport pandas as pddataset['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.