TodoBI - Business Intelligence, Big Data, ML y AI TodoBI - Business Intelligence, Big Data, ML y AI

Power BI embebido en Jupyter Notebook

1. INTRODUCCIÓN

El propósito de este documento es investigar sobre el funcionamiento y los casos de uso de embeber informes de Power BI en Jupyter Notebook.

Se comenzará por instalar la librería powerbiclient, seguirá con la configuración de la conexión al cloud de Power BI y la importación de informes alojados en ella en Jupyter Notebook, así como la obtención de los datos insertados en el informe desde Python.

Por último, se expondrán algunos casos de uso así como mi punto de vista sobre esta herramienta.

2. PowerBI en Jupyter notebooks

Esta funcionalidad que permite insertar informes de Power BI en Jupyter Notebooks es una herramienta que puede utilizarse para mejorar la presentación de libretas en Python. Esto se consigue gracias a la librería de Python powerbiclient, desde donde podemos conectarnos a la web cloud de Power BI vinculada a nuestra cuenta de miscrosoft en unos sencillos pasos. Debido a esto, cabe destacar que para insertar los informes los debemos haber publicado primero desde Power BI desktop.

3. Ejemplo práctico

En este apartado vamos a explicar como instalar la librería powerbiclient en nuestro entorno Python, así como a crear una libreta con un informe que tenemos publicado en el cloud de Power BI.

Vamos a trabajar con Visual Studio Code. La utilización de este editor es crucial, puesto que todas las pruebas ejecutadas en Anaconda o en Jupyter Notebooks instalado manualmente sobre una distribución de Python no consiguieron mostrar por pantalla el informe de Power BI. Probablemente debido a la falta de alguna dependencia relacionada con los gráficos.

Primero de todo vamos a instalar la extensión de Jupyter Notebooks en VSCode, accediendo a Extensiones en el panel lateral vertical izquierdo:

Ahora vamos a crear una libreta en blanco, desde View - Command Palette vamos a seleccionar Jupyter Notebooks:

Desde el notebook vamos a instalar la librería powerbiclient, gracias al símbolo ‘!’. Este nos permite ejecutar comandos en la terminal desde la propia libreta. Por tanto ejecutaremos:

“!pip install powerbiclient”

Necesitamos importar las librerías que nos harán falta para llevar a cabo las pruebas:

Ahora vamos a vincularnos con la cuenta de Microsoft asociada a la web cloud de Power BI, para ello ejecutamos el siguiente código:

Copiamos el código que se nos genera, en mi caso DSV2XC3HLy accedemos al enlace que nos aparece: https://microsoft.com/devicelogin. Entonces introducimos el código anterior y pulsamos Siguiente:

Elegimos la cuenta asociada correspondiente:

Pulsamos Continuar para permitir iniciar sesión en Microsoft Azure CLI:

Entonces nos aparecerá el siguiente mensaje, indicándonos que ya podemos cerrar el navegador:

Ahora volvemos a VSCode, y tras unos segundos debería de confirmarnos que nos hemos autenticado correctamente:

Ahora vamos a acceder a https://app.powerbi.com/home y seleccionaremos alguno de nuestros informes publicados, en mi caso será el siguiente:

Necesitamos conocer el id del grupo al que pertenece el informe así como el id de éste. Para ello nos fijamos en la url del inform. Los copiamos y los guardamos en dos variables en nuestra libreta de la siguiente manera:

Llegados a este punto ya podemos importar nuestro informe en la libreta, con el código siguiente:

Cabe destacar que en el momento que se ejecuta el código anterior es probable que VSCode reclame instalar unas dependencias necesarias para mostrar el informe. Si es el caso aparecerá en un recuadro en el lateral inferior derecho, y deberemos de aceptar instalarlas.

En el informe nos aparecen las distintas páginas que lo componen, pudiendo activar para visualizar cualquiera de ellas. En mi caso tengo activa la tercera página:

Otra forma más eficaz de consultar las páginas es mediante:

Guardaremos la referencia de la página que está activa en este momento(página3), para poder consultar los elementos gráficos propios de Power BI que se encuentran en ella:

Algo muy importante es que los datos en los que se basa el informe se pueden volcar al entorno de Python para ser utilizados:

Una vez son importados como un DataFrame de Pandas ya se pueden manipular a nuestro antojo, debido a la libertad que proporciona Pandas.

4. Casos de uso

Como hemos visto, la librería powerbiclient para Python permite introducir los informes de Power BI en las libretas de Python, así como volcar los datos adyacentes al informe. Esto es una buena práctica si buscamos que el trabajo que hacen los report designers pueda ser utilizado inmediatamente por los analistas que se encuentran cómodos utilizando Jupyter Notebooks. Además, para presentaciones de proyectos mediante una libreta de Jupyter, introducir un informe de Power BI puede resultar muy vistoso y generar más profesionalidad hacia el cliente.

5. Conclusión

Embeber informes de Power BI en Jupyter Notebooks es algo rápido, sencillo y que aporta sobre todo un punto más de estilo a nuestro notebook, gracias a la potencia gráfica de PowerBI y su amplia comunidad.