Funcionalidades en los Líderes BI, capítulo 2: Conexión con Python

  • Artículos
  • Automatización & BI

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.

Tabla resumen

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:

Power BI:

¿Qué tareas puedo realizar utilizando Python con Power BI?

  • Análisis exploratorio de datos (EDA): Puedes automatizar tareas comunes de limpieza de datos, como eliminar valores vacíos, corregir formatos de fechas y realizar otras operaciones necesarias durante la exploración de los datos.
  • Machine learning: Permite llevar a cabo análisis predictivos y aplicar modelos de machine learning, tanto supervisados como no supervisados.
  • Visualizaciones avanzadas: Es posible crear gráficos complejos o personalizados sin depender de las visualizaciones prediseñadas de Power BI.
  • Conectividad: Python facilita la conexión con una amplia variedad de fuentes de datos. Si alguna fuente no está disponible en Power BI, es probable que sí puedas acceder a ella mediante Python.

¿Existen limitaciones en el uso de Python en Power BI?

Sí, hay ciertas limitaciones que debes considerar al escribir tus scripts en Python dentro de Power BI:

  • Compatibilidad con DataFrames: Solo se pueden importar DataFrames de Pandas en Power BI mediante Python.
  • Tiempo de ejecución: Si un script supera los 30 minutos de ejecución, se desactivará automáticamente. Del mismo modo, las visualizaciones que tarden más de 5 minutos en generarse también se desactivarán.
  • Actualización de informes: Los informes creados con Python solo pueden actualizarse en Power BI Service mediante una puerta de enlace personal.
  • Interactividad limitada: No es posible aplicar filtrado cruzado en elementos visuales generados con Python. Es decir, si seleccionas un gráfico creado con Python, este no afectará a otros elementos visuales del informe, lo que limita la interactividad 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.

Bibliotecas de Python compatibles con Power BI

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.

Caso práctico

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.

Configuración Power BI

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:

OpcionesCreación de scripts en PythonSeleccionar la ruta de instalación de Python.

Imagen 1: Configuración de Python en Power BI

Una vez configurado, seguimos estos pasos:

  1. Ir a InicioObtener datosMásScript de Python.
  2. Pegar el script creado previamente. Power BI reconocerá automáticamente los DataFrames generados en el script.
  3. A partir de aquí, podemos realizar todas las modificaciones necesarias en Power Query y preparar los datos para construir nuestro panel en Power BI.

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

Resultado

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.

Tableau

¿Qué tareas puedo realizar utilizando Python con Tableau?

  • Análisis exploratorio de datos (EDA): (Aplica mayormente para Tableau Prep) Puedes automatizar tareas comunes de limpieza y transformación de datos, como eliminar valores vacíos, corregir formatos de fechas y realizar cálculos personalizados que faciliten la exploración de datos.
  • Machine learning: Python permite realizar análisis predictivos y aplicar modelos de machine learning, tanto supervisados como no supervisados. Esto es útil para tareas como clasificación, regresión, detección de anomalías y segmentación de clientes.

¿Existen limitaciones en el uso de Python en Tableau?

El uso de Python en Tableau tiene algunas limitaciones importantes:

  • Llamada desde campos calculados: Un script de Python solo puede ejecutarse dentro de un campo calculado en Tableau, lo que significa que su salida será siempre una columna adicional en la fuente de datos. Esta columna puede ser de tipo STR, INT, BOOL o REAL.
  • Cálculos a nivel de tabla: Python solo puede ejecutarse dentro del contexto de cálculos de tabla y no puede modificar directamente las fuentes de datos ni las estructuras dentro de Tableau.
  • Rendimiento: Como cada ejecución de un script requiere comunicación con el servidor de TabPy, el rendimiento puede verse afectado si se realizan muchas llamadas individuales. Es importante optimizar los scripts para minimizar el número de ejecuciones.

Bibliotecas de Python compatibles

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.

Caso práctico

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.

Configuración en Tableau

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.

Resultado

Imagen 10: Resultado de traducciones en tabla

Conclusión

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.