Microsoft BI

Exploiter la puissance de Python dans Power BI

Introduction

Microsoft a récemment intégré le langage Python dans Power BI. Vous pouvez maintenant utiliser des scripts Python comme source de données mais également créer des visualisations.

Python est un langage de programmation interprété. C’est-à-dire que les instructions sont lues et exécutées en temps réel. Il est aussi extensible et multiplateforme, largement utilisé dans tous les domaines (Applicatif, Web, Embarqué, Data…). C’est un langage simple pour lequel il existe une large communauté, un panel de bibliothèques très puissantes et surtout majoritairement gratuites.

Dans cet article, nous réalisons un focus sur la puissance de Python dans Power BI.

Python et la data

Les développeurs Data cherchent généralement des langages faciles à utiliser avec une grande disponibilité de bibliothèques et surtout une bonne communauté pour trouver réponses aux diverses questions.

Python étant un vrai couteau Suisse, il permet de charger, nettoyer et manipuler tous types de données avec des techniques et algorithmes parfois très avancés.

C’est de nos jours un des langages les plus utilisés dans le Big Data !

Quelques bibliothèques Python pour la data

Pandas : Propose des structures de données et des opérations de manipulation très performantes.

Matplotlib : Propose différentes structures de visualisation des données avec la possibilité de les personnaliser.

Scikit-Learn : Propose des solutions d’apprentissage automatique (IA)

Prérequis

Pour pouvoir utiliser Python dans Power BI, vous devez avoir installé Python ainsi que les bibliothèques Pandas et Matplotlib.

Installation de Python

Pour cela, nous allons utiliser Anaconda qui est une distribution des langages Python et R dédiée au domaine de la Data. Anaconda est libre et open source. Cela simplifie la gestion des environnements, des paquets et des déploiements.

Vous trouverez plus d’informations ici : https://www.anaconda.com/distribution/

Une fois Anaconda installé, nous allons créer un environnement Python (dans notre cas 3.5) avec les bibliothèques requises.

A noter qu’il est plus rapide d’installer Python grâce aux lignes de commande plutôt que via l’interface graphique d’Anaconda.

Activer Python dans Power BI

Pour activer Python dans Power BI, il suffit de spécifier le chemin de Python dans Fichier > Options et paramètres > Options > Création de scripts Python.

Attention à l’encodage ! Si vous rencontrez des messages d’erreurs liés à l’encodage lors de l’exécution d’un script Python, il vous faudra alors vérifier ce dernier. Pour afficher une source de données, il faut utiliser la fonction print dans le script Python, l’encodage dépend donc de la valeur de stdout.encoding de Python. Dans une CMD, activez un environnement et exécutez cette commande :

Commande pour activer python sur Power BI

Si le résultat est celui attendu, dans notre cas nous attendons de l’utf-8, le problème vient d’ailleurs. Sinon il faut modifier ce dernier.

Pour vérifier l’encodage dans Power BI, vous pouvez exécuter ce code :

Vérification de l'encodage

Si l’encodage n’est pas bon, le mieux serait alors de modifier/créer la variable d’environnement PYTHONIOENCODING.

Utilisation

Il y a deux manières d’utiliser Python dans Power BI :

  • Importer des données avec un script Python
  • Créer des graphiques avec Python

Importer des données avec un script Python

Pour illustrer ce cas d’usage, nous effectuerons une petite et simple analyse de Tweets en récupérant et traitant les 200 tweets les plus récents sur #Paris. Les bibliothèques requises sont :

  • Tweepy pour se connecter à l’API Tweeter
  • Textblob pour l’analyse de sentiments
  • Geopy pour récupérer les pays à partir des localisations
  • Pandas pour la structure de données

Nous avons également créé trois fonctions :

  • Clean pour nettoyer les tweets en retirant les liens et les émoticônes
  • GetSentiment pour récupérer le sentiment général d’un tweet
  • GetGeo pour récupérer le code pays d’une adresse

Il faut ensuite paramétrer la requête de recherche et récupérer les tweets. Nous allons donc créer un dataframe avec quatre colonnes :

  • Le tweet
  • La localisation de la personne qui a tweeté
  • Le sentiment du tweet
  • Le code pays du tweet

On va également récupérer un dataframe avec les hashtags contenus dans les tweets et leurs fréquences.

Pour importer les dataframes dans Power BI, il faudra passer par le stdout. Il faut donc faire un print de tout ce que l’on voudra afficher dans Power BI. Dans notre cas : les tweets ainsi que les tags.

Récupération des dataframes en Python sur Power BI
Fonction Print Power BI

Dans PBI > Obtenir les données > Plus, choisir Script Python puis copier/coller le script dans l’éditeur de script.

Une fois l’exécution terminée, le navigateur vous présente un aperçu des données chargées :

Aperçu des données chargées
Vous pouvez maintenant manipuler vos données et créer des graphiques :
Manipulation des données

Utiliser le visuel Python pour créer des graphiques

Le visuel Python permet de créer des graphiques grâce aux différentes bibliothèques proposées. Les plus connues sont Matplotlib et Seaborn.

Pour illustrer le fonctionnement de ce composant, nous allons créer un graphique à partir des données chargées plus haut.

Supposons que l’on souhaite étudier la corrélation entre les pays et les sentiments. Si une corrélation existe, on pourra alors dire que ce pays est bon, mauvais ou neutre. Pour ce faire, nous allons afficher une heatmap grâce à la Seaborn.

Utilisation du visuel python pour la création de graphique

Pour que le graphique s’affiche dans Power BI, il faudra utiliser la fonction show de Matplotlib :

Fonction show matplotlib

On déduit donc qu’en fonction des données qu’on a pu récupérer (très peu pour vraiment étudier une corrélation), il n’existe pas dans notre échantillon de corrélation entre le pays et le sentiment du tweet.

CONCLUSION DE L’EXPERT

Microsoft a frappé fort avec cette possibilité car elle ouvre la porte à une nouvelle population d’utilisateur.

On pourra donc exploiter toute la puissance de Python pour effectuer des chargements, traitements et analyse de données. Cela permet ensuite de construire des rapports et tableaux de bords via Power BI qui pourront être ensuite facilement déployés et partagés.

Un projet ? Une question ?

Laissez-nous vos coordonnées et nous vous recontactons dans les plus brefs délais !

Articles récents
Évènements à venir
Newsletter DeciVision

Soyez notifiés de nos derniers articles de blog, de nos prochains webinars et nos actualités !