
Introducción
Dentro del mundo del Machine Learning y la analítica de datos, la visualización de datos abarca un peso muy importe a la hora de explorar la información y extraer conclusiones. Por ello, es muy importante utilizar herramientas líderes para sacarle el máximo partido a nuestros datos.
Una gran estrategia a la hora de analizar los datos de una compañía es utilizar una herramienta de visualización y modelado de datos robusta y flexible que se adapte a las necesidades de cada negocio o sector. En BertIA somos partidarios de utilizar Power BI de Microsoft, la cuál, entre otras cosas, permite crear y diseñar informes incluyendo visualizaciones interactivas y de fácil exploración.
El pasado 25 de mayo de 2021, Microsoft anunció el lanzamiento de Power BI en los notebooks de Jupyter. Esto permite a los usuarios incrustar de forma sencilla informes creados en Power BI en un notebook de Jupyter a través del paquete powerbiclient de Python.
En el presente artículo se evaluará como incrustar informes de Power BI en Jupyter Notebooks y cómo poder interactuar con los datos del informe a través de librerías de Python.
Incrustar el informe de Power BI en Jupyter Notebook
1. Instalar la librería powerbiclient
El primer paso que tenemos que llevar a cabo es instalar la librería de powerbiclient (en el caso de que aún no la tengamos instalada).
Cuando instalamos la librería powerbiclient se importa la clase Report, la cual utilizaremos para integrar el informe de Power BI en el notebook.
2. Autentificarnos en el Servicio de Power BI
Una vez importadas las librerías y paquetes necesarios de Python, es necesario autentificarnos en el Servicios de Power BI para poder extraer la información que necesitamos para la incrustación del informe en el Notebook.
En este caso, hemos elegido el método de autenticación de flujo de dispositivos para conectar Jupyter Notebook con nuestros informes de Power BI.
Para autentificarnos, almacenamos en la variable device_auth el código DeviceCodeLoginAuthentication(), método que nos permitirá conectarnos e identificarnos en nuestra cuenta de Microsoft.
Una vez ejecutado el anterior código, se mostrará el siguiente mensaje en la celda del Notebook informando de que es necesario pinchar en la URL de devicelogin e insertar el código generado para autentificarnos con nuestra cuenta de Microsoft y conectar de esta forma Jupyter Notebook con el Servicio de Power BI.
Por lo tanto, tenemos que copiar el código de autenticación e ingresarlo en el cuadro de diálogo de autenticación del inicio de sesión de Microsoft. Luego, seleccionamos la cuenta que queremos usar para autenticar para completar el proceso de inicio de sesión.
Una vez ingresadas correctamente las credenciales de la cuenta de Microsoft y conectado a la plataforma Azure, aparecerá el siguiente mensaje confirmando que la autenticación fue exitosa:
3. Establecer el ID del workspace e ID del informe
Para incrustar un informe en concreto en el Notebook, debemos proporcionar el ID del informe publicado en el Servicio de Power BI y el ID del espacio de trabajo en el que está publicado el informe.
Dicha información se puede consultar en la URL del informe que estamos insertando. Almacenaremos en variables la información de los diferentes IDs para que sea más sencillo trabajar con ella.
Para saber qué parte de la URL del informe hace referencia al ID del workspace y del informe, revise la siguiente imagen para más información:
4. Crear una instancia del informe de Power BI que desee incrustar
A continuación, creamos un objeto que haga referencia al informe y a los visuales de Power BI en sí que queremos insertar Jupyter Notebook. Denominaremos al objeto report y almacenaremos toda la información necesaria para incrustar el informe y extraer datos de sus visuales.
5. Cargue el informe de Power BI deseado en la celda de salida
Por último, llamaremos al objeto de informe representa la salida del informe en Notebook.
Cuando se completa el procesamiento del informe, se activa el evento de devolución de llamada cargado y el resultado de texto especificado se muestra debajo del informe.
Una vez que el informe está incrustado, podemos interactuar con él. Por ejemplo, podemos navegar en sus diferentes páginas y utilizar los filtros para analizar la información según se requiera.
También podemos ajustar el tamaño de informe incrustado para ajustarlo a nuestro gusto, empleando el método set_dimensions():
Tenga en cuanta de que los cambios los debe de visualizar en la incrustación del informe desplegada anteriormente.
Interactuar con los datos del informe de Power BI en Jupyter Notebook
Jupyter Notebook nos permite interactuar con el informe incrustado de Power BI. Este hecho nos permitirá exportar datos en un Dataframe de los visuales que estamos analizando y poder aplicar las transformaciones o cambios que consideremos necesarios para sacar el máximo partido a la información analizada.
1. Obtener información de la página activa y visuales del informe incrustado
Podemos usar la librería de pandas para obtener la página activa y los nombres de los gráficos que se incluyen en el informe.
Para obtener información de la página activa del informe, podemos generar una función que nos retorne dicha información para posteriormente extraer información de los visuales, tal como se muestra en la siguiente imagen:
Si visualizamos el contenido almacenado en la variable visuals, obtendremos la metadata de todos los objetos almacenados en la página que estamos analizando, información que nos permitirá posteriormente realizar operaciones con los datos de los visuales.
2. Exportar datos de un visual del informe incrustado
Podemos exportar los datos de un visual del informe y almacenarlos en variables, con el fin de realizar posteriormente transformaciones y operaciones con los datos.
Exportar datos resumidos desde un visual del informe incrustado
Exportar datos subyacentes desde un visual del informe incrustado
3. Exportar los datos a CSV
Los datos exportados de los visuales almacenados en variables, se pueden convertir en un objeto almacenable en memoria, el cual se puede exportar en un fichero de formato csv para posteriormente cargarlo en el Notebook dentro del marco de un Dataframe de pandas.
Una vez que los datos están almacenados en un dataframe de pandas, es muy sencillo aplicar transformaciones o mismo graficar la información para obtener conclusiones de forma más ágil y visual.
Conclusiones
La posibilidad de incrustar los informes en Power BI en los Notebooks de Jupyter proporcionan grandes ventajas para los analistas y científicos de datos, entre los cuales se pueden mencionar los siguientes:
- Explotación de la información de forma más exhaustiva más allá de lo que nos pueda proporcionar la estadística descriptiva.
- Exportación ágil y sencilla de la información almacenada en visuales concretos del informe para su posterior transformación.
- Diseño y ejecución de algoritmos de Machine Learning sofisticados basados en la información exportada de los informes de Power BI.
Por lo tanto, recomendamos el uso y explotación del paquete de powerbiclient desde los Notebooks de Jupyter, pues presenta un alto potencial que puede beneficiar a todas las partes de la organización.
Si quieres revisar el código y los recursos utilizados en la creación de este blog, puedes hacerlo a través de nuestro repositorio de GitHub: