Créer des rapports Power BI dans Jupyter Notebooks
Jun 10, 2024PowerBI et Jupyter sont tous deux des outils populaires pour la visualisation et l'analyse de données, qui présentent quelques différences en termes de cas d'utilisation, de fonctionnalités et de public cible. Habituellement la synchronisation entre les deux se fait dans l'outil Power BI en ajoutant des lignes de code Python, mais elle est aussi possible via Jupyter. Nous vous présentons dans cet article un tutoriel pour ajouter l'interface userfriendly de Power BI dans un notebook Jupyter.
Basculer facilement de Jupyter à Power BI
Jupyter est une plateforme Web open source qui fournit un environnement pour le calcul interactif et la visualisation de données. Il prend en charge plusieurs langages de programmation, notamment Python, R et Julia, et est largement utilisé par des profils techniques comme les data scientists, et plus récemment par les data analysts. Ces derniers ont recours à Python pour manipuler les données sources parfois volumineuses, afin d'obtenir de premiers résultats sous forme de tableaux ou graphique.
PowerBI est l'outil de datavisualisation de "grande échelle" qui dispose d'une version cloud permettant aux utilisateurs de partager et de collaborer sur des données et des visualisations. Il convient donc de l'utiliser pour publier ses résultats finaux aux autres collaborateurs de l'entreprise.
De plus les librairies de datavisualization Python étant à la fois nombreuses et spécifiques, leur utilisation contraste avec la simplicité de l'outil "drag and drop".
C'est dans ce contexte que la librairie powerbiclient
s'avère une solution pratique pour obtenir un premier aperçu sous forme de rapport d'entreprise, sans basculer dans PowerBI Desktop et ainsi perdre les avantages liés à l'utilisation de Jupyter (cf rubrique "Avantages" à la fin de l'article).
Installation
Tout d'abord, nous devons installer le paquetage et configurer notre environnement.
Cela devrait être aussi simple que :
Si vous utilisez Jupyter Notebook :
pip install powerbiclient
Ou si vous utilisez jupyterlab :
pip install powerbiclient jupyter labextension install @jupyter-widgets/jupyterlab-manager
N.B: Si vous utilisez Jupyter Notebook 5.2 ou une version antérieure, vous devrez peut-être aussi activer le nbextension :
jupyter nbextension enable --py [--sys-prefix|--user|--system] powerbiclient
Création d'un rapport
Une fois le paquetage installé, nous pouvons importer les classes nécessaires à la création d'un rapport.
from powerbiclient import QuickVisualize, get_dataset_config, Report from powerbiclient.authentication import DeviceCodeLoginAuthentication
L'idée est de charger les données dans un bloc de données et d'utiliser Pandas pour effectuer toutes les transformations nécessaires telles que la création de nouveaux champs, le nettoyage et l'agrégation des données. Une fois l'ensemble de données prêt à être visualisé, il existe une fonctionnalité permettant de créer automatiquement des rapports Power BI.
import pandas as pd df = pd.read_csv('data.csv') df.head()
Maintenant que notre dataframe est prêt, nous devons nous authentifier auprès du service Power Bi.
device_auth = DeviceCodeLoginAuthentication()
Après avoir exécuté ce bloc, nous recevrons un code et serons dirigés vers la page de connexion de l'appareil MS où nous devrons suivre les instructions pour authentifier notre machine.
Il s'agit généralement d'un simple identifiant/mot de passe.
Une fois l'authentification terminée, nous recevrons une notification dans Jupyter Notebook.
Maintenant que tout est configuré, nous pouvons enfin générer le rapport Power BI.
PBI_visualize = QuickVisualize(get_dataset_config(df), auth=device_auth) PBI_visualize
Power BI va commencer à créer notre rapport.
Le résultat final ressemblera à celui présenté ci-dessous, avec des statistiques résumées en haut de page, un visuel plus visible avec des résumés textuels et d'autres graphiques.
Modification des visuels
Lorsque le curseur se trouve sur un graphique, le bouton d'édition apparaît ; il propose quelques options permettant d'apporter des modifications rapides aux graphiques. Nous pouvons enregistrer le rapport dans un espace de travail et le modifier si nous avons besoin de plus d'options.
Une fois le rapport enregistré dans un espace de travail, nous pouvons rapidement le partager, effectuer des modifications dans le service ou télécharger le fichier .pbix pour l'éditer avec PBI Desktop.
Avantages de l'intégration de Power BI dans Jupyter Notebook
Le premier avantage de cette configuration est d'obtenir un rapport Power BI intégré et téléchargeable, avec des visuels et des graphiques personnalisables. Cette intégration permet d'utiliser l'interface de développement Notebook Jupyter avec:
- des blocs exécutables étape par étape ou de manière complète
- l'affichage des résultats en sortie de chaque bloc
- un zone d'édition verticale illimitée
D'autres avantages liés au langage Python peuvent être ajoutés, parmi lesquelles:
- Le code peut être facilement réutilisé et personnalisé
- La mise à disposition de bibliothèques qui simplifient la mise en œuvre de l'analyse des données
- Vous pouvez importer des données à partir de sources et de formats variés, tels que des fichiers, des bases de données, des API ou du web scraping
Limites de l'intégration du Power BI dans Jupyter Notebook :
Il faudra surement retravailler le rapport Power BI pour:
- Définir les bonnes sources de données afin de le rendre dynamique avec une alimentation quotidienne de données
- Finaliser les rapports (interactions, modèle de données, etc.)
Conclusion :
L'intégration de Power BI dans Jupyter Notebook est une combinaison efficace pour créer rapidement des Dashboard d'entreprise grâce aux traitements de données volumineuses en Python, et un rapport téléchargeable. En effet elle permet aux utilisateurs d'utiliser une interface de développement propice à la programmation et de voir les résultats dans les visuels interactifs de l'outil de Datavisualisation.
Une limite identifiée est celle liée à la préparation du rapport pour l'exploitation quotidienne dans le service web avec PowerBI Service.
Enfin cette approche permet de faciliter la production de Dashboard car bien que Python convienne aux débutants, sa maîtrise en visualisation nécessite des connaissances et une expérience plus approfondies sur des librairies comme Plotly.