Este blog corresponde al segundo capítulo de Funcionalidades en los Líderes BI (puedes leer el capítulo 1 aquí). En este blog, se describirá sobre la conexión de Python con Power BI y Tableau, una funcionalidad clave que permite ampliar las capacidades de análisis dentro de estas plataformas.
Python es uno de los lenguajes de programación más utilizados en análisis y ciencia de datos. Su integración en plataformas de Business Intelligence como Power BI y Tableau ha ampliado las posibilidades, permitiendo incorporar scripts y modelos directamente en los flujos de trabajo de BI. Esto facilita la ejecución de análisis más avanzados, que incluyen machine learning, procesamiento de lenguaje natural y optimización. A continuación se van a explorar las tareas que se pueden realizar con Python en Power BI y Tableau, sus limitaciones y cómo escribir e integrar tus primeros scripts.
En la siguiente tabla, te mostramos el resumen comparativo de cada herramienta, destacando las principales funcionalidades, ventajas y limitaciones de cada plataforma al trabajar con Python.
Criterio | Power BI | Tableau |
Tareas posibles | EDA, Machine Learning, Visualizaciones avanzadas, Conectividad con diversas fuentes de datos | EDA (principalmente en Tableau Prep), Machine Learning, Traducción automática de datos |
Limitaciones | Solo admite DataFrames de Pandas, tiempo de ejecución limitado (30 min para scripts, 5 min para visualizaciones), requiere puerta de enlace personal para actualizar en Power BI Service, interactividad limitada | Solo puede ejecutarse dentro de campos calculados, cálculos a nivel de tabla, posible impacto en rendimiento debido a llamadas al servidor de TabPy |
Bibliotecas compatibles | Pandas y Matplotlib son obligatorias, admite librerías de código abierto con licencia gratuita | En teoría cualquier biblioteca, pero aquellas con interfaz gráfica o interacción compleja pueden no ser compatibles |
Configuración requerida | Se debe habilitar Python en las opciones de Power BI y asegurarse de que esté instalado | Requiere instalación y configuración de TabPy, conexión mediante la opción «Manage Analytics Extension Connection» |
Interactividad | Limitada, los gráficos generados con Python no afectan otros elementos visuales del reporte | Más flexible gracias a la integración con campos calculados |
Ejemplos de uso | Web scraping para obtener datos de una tienda online y visualizarlos en un dashboard | Uso de Googletrans para traducir automáticamente los datos en distintos idiomas |
Si bien ambas herramientas admiten el uso de Python, lo hacen de manera diferente y con ciertas limitaciones. Power BI impone restricciones en el tiempo de ejecución y la interactividad de los scripts, mientras que Tableau requiere configuración adicional con TabPy y solo permite ejecutar Python en cálculos a nivel de tabla.
En la siguiente sección, detallaremos cada uno de los puntos resumidos anteriormente:
Sí, hay ciertas limitaciones que debes considerar al escribir tus scripts en Python dentro de Power BI:
Además, es importante tener en cuenta que Power BI solo admite ciertas bibliotecas de Python y requiere que la versión instalada sea Python 3.7.7.
En cuanto a las librerías compatibles con Power BI, tanto en la versión Desktop como en Service, el software admite paquetes de Python con licencia gratuita y de código abierto. Como requisito obligatorio, es necesario tener instalados Pandas y Matplotlib. Para más información sobre las librerías compatibles, consulta el siguiente enlace: Power BI – Paquetes de Python compatibles.
Para demostrar el potencial de Python en Power BI, presentaremos un caso práctico. El objetivo es utilizar un script de Python previamente desarrollado para realizar web scraping en una tienda de productos tecnológicos y extraer datos relevantes. Posteriormente, estos datos se visualizarán en Power BI para identificar el mejor producto en función de su valoración en la página y la cantidad de comentarios recibidos.
El primer paso para integrar nuestro script de Python en Power BI es asegurarnos de que la configuración de Python en nuestro equipo esté actualizada. Para hacerlo, debemos ir a:
Opciones → Creación de scripts en Python → Seleccionar la ruta de instalación de Python.
Imagen 1: Configuración de Python en Power BI
Una vez configurado, seguimos estos pasos:
Imagen 2: Importación de datos mediante script de Python
Imagen 3: Script de Python en Power BI
Imagen 4: Tabla con datos extraídos con web scraping
El resultado es un panel interactivo que permite identificar qué producto tiene la mayor puntuación en base a sus reseñas y valoraciones.
Imagen 5: Gráfica de los resultados obtenidos
Gracias a la integración de Python en Power BI, podemos mantener el panel actualizado en tiempo real, si es necesario. En cada actualización, el script de Python extrae la información directamente desde la tienda web, lo que permite crear gráficos sin necesidad de descargar archivos adicionales.
Además, al combinar Power Query con Python, podemos generar métricas personalizadas dentro de Power BI, optimizando el análisis de datos y la toma de decisiones.
El uso de Python en Tableau tiene algunas limitaciones importantes:
En teoría puedes importar todas las librerías que quieras a tu ambiente Python, pero bibliotecas que requieran una interfaz gráfica o una interacción compleja con el sistema operativo pueden no ser compatibles.
Para demostrar el potencial de Python en Tableau, presentaremos un caso práctico. A menudo, es necesario admitir múltiples idiomas en nuestras visualizaciones, pero traducir cada palabra dentro de los datos puede ser un proceso tedioso. Con la ayuda de librerías de Python, es posible automatizar esta traducción al idioma requerido de manera eficiente.
Para utilizar Python dentro de Tableau Desktop, primero debes tener Python en tu ambiente de desarrollo, luego se debe instalar un servidor llamado Tabpy, el cual es la herramienta oficial para estos fines. Se instala simplemente con tu gestor de paquetes favorito, en este caso lo haremos con pip: pip install tabpy
Si todo anda bien, luego se debe iniciar este servidor con el comando Tabpy en CMD y el proceso estará corriendo en el puerto 9004.
Imagen 6: Tabpy corriendo en consola
Para conectar Tableau Desktop con este servicio, debe ir a menú Help->Settings and Performance->Manage Analytics Extension Connection y elegir Tabpy. Luego se agrega el Hostname, el puerto y las credenciales de ser necesario para finalizar guardando esta conexión
Imagen 7: Conexión con Tabpy
Para correr nuestro script debemos crear un campo calculado, en este caso la traducción que nos entregará Python mediante Googletrans será un texto, por lo tanto, la función que utilizaremos será SCRIPT_STR
Imagen 9: Script de Python en Tableau
SCRIPT_STR es una función que puede ser usada para pasar datos a un servicio externo como Tabpy, R, Matlab u otro. Recibe un texto (el script) y adicionalmente puede recibir n variables/columnas o parámetros.
Para este script utilizaremos un parámetro llamado “language” con el cual podremos elegir el lenguaje al cual queremos traducir, además la variable o columna que se quiere traducir, en este caso “Category”. La función de traducir es llamada una vez por fila, por lo tanto, es importante optimizar esas llamadas, por eso se genera un diccionario con palabras que se han traducido, tal que una palabra solo sea traducida una vez.
Imagen 10: Resultado de traducciones en tabla
Python es una herramienta poderosa que amplía las capacidades de nuestras herramientas de BI, permitiendo realizar análisis avanzados, automatizar procesos y conectar con diversas fuentes de datos. Aunque presenta algunas limitaciones, su integración ofrece una solución flexible y potente para el análisis de datos.
Si buscas mejorar tus dashboards y llevar el análisis de datos al siguiente nivel, ¡Python es una excelente opción!
Nota: Los ejemplos presentados corresponden a una integración en modo desarrollo, útil para pruebas de concepto, investigaciones y pequeños desarrollos locales. Para un entorno de producción, es recomendable ejecutar Python en un servidor dedicado y evaluar si la integración cumple con los requerimientos de rendimiento, escalabilidad y mantenimiento. En algunos casos, puede ser más eficiente gestionar el procesamiento de Python en un sistema independiente y solo enviar los resultados al entorno de BI.