Apprendre à utiliser Pandas Profiling

Un guide complet pour démarrer avec Pandas Profiling en utilisant Python.

Introduction

Avec l’explosion de la technologie et l’immense quantité de données et de contenus créés quotidiennement, les data scientist doivent continuellement apprendre de nouvelles façons d’analyser efficacement ces données. L’une des parties les plus cruciales de tout nouveau projet de données est la phase d’analyse exploratoire des données. En tant que spécialiste des données, cette phase vous permet d’apprendre et de vous familiariser avec les données dont vous disposez, leur provenance, les lacunes qu’elles présentent, les valeurs aberrantes potentielles et les différents types de données utilisés. Pandas Profiling est un outil devenu incontournable pour les spécialistes des données. Pandas Profiling est un outil open-source écrit en Python qui permet de générer des rapports HTML interactifs détaillant les types de données de l’ensemble de données, mettant en évidence les valeurs manquantes, fournissant des statistiques descriptives telles que la moyenne, l’écart-type et l’asymétrie, créant des histogrammes et renvoyant toute corrélation potentielle.

Installation de Pandas Profiling

Pour cet article, nous utilisons Google Colab  qui est un environnement de développement intégré créé par google. Google Colab est un excellent outil à utiliser car il gère très facilement vos notebooks.

Pour utiliser  Pandas Profiling dans Colab il vous suffit de saisir la commande suivante :

import sys
!{sys.executable} -m pip install -U pandas-profiling[notebook]
!jupyter nbextension enable --py widgetsnbextension
Collecting pandas-profiling[notebook]
  Downloading https://files.pythonhosted.org/packages/dd/12/e2870750c5320116efe7bebd4ae1709cd7e35e3bc23ac8039864b05b9497/pandas_profiling-2.11.0-py2.py3-none-any.whl (243kB)
     |████████████████████████████████| 245kB 6.7MB/s 
Requirement already satisfied, skipping upgrade: jinja2>=2.11.1 in /usr/local/lib/python3.7/dist-packages (from pandas-profiling[notebook]) (2.11.3)
Collecting confuse>=1.0.0
  Downloading https://files.pythonhosted.org/packages/6d/55/b4726d81e5d6509fa3441f770f8a9524612627dc1b2a7d6209d1d20083fe/confuse-1.4.0-py2.py3-none-any.whl
Collecting tangled-up-in-unicode>=0.0.6
  Downloading https://files.pythonhosted.org/packages/ec/d1/58bfbe263494741a47140049b989ad42a8941854e8d34f1af90640c6c9f9/tangled_up_in_unicode-0.0.7-py3-none-any.whl (3.1MB)
     |████████████████████████████████| 3.2MB 9.1MB/s 
Collecting htmlmin>=0.1.12
  Downloading https://files.pythonhosted.org/packages/b3/e7/fcd59e12169de19f0131ff2812077f964c6b960e7c09804d30a7bf2ab461/htmlmin-0.1.12.tar.gz
Collecting requests>=2.24.0
  Downloading https://files.pythonhosted.org/packages/29/c1/24814557f1d22c56d50280771a17307e6bf87b70727d975fd6b2ce6b014a/requests-2.25.1-py2.py3-none-any.whl (61kB)
     |████████████████████████████████| 61kB 4.6MB/s 
Requirement already satisfied, skipping upgrade: attrs>=19.3.0 in /usr/local/lib/python3.7/dist-packages (from pandas-profiling[notebook]) (20.3.0)
Requirement already satisfied, skipping upgrade: ipywidgets>=7.5.1 in /usr/local/lib/python3.7/dist-packages (from pandas-profiling[notebook]) (7.6.3)
Requirement already satisfied, skipping upgrade: missingno>=0.4.2 in /usr/local/lib/python3.7/dist-packages (from pandas-profiling[notebook]) (0.4.2)
Requirement already satisfied, skipping upgrade: pandas!=1.0.0,!=1.0.1,!=1.0.2,!=1.1.0,>=0.25.3 in /usr/local/lib/python3.7/dist-packages (from pandas-profiling[notebook]) (1.1.5)
Collecting tqdm>=4.48.2
  Downloading https://files.pythonhosted.org/packages/72/8a/34efae5cf9924328a8f34eeb2fdaae14c011462d9f0e3fcded48e1266d1c/tqdm-4.60.0-py2.py3-none-any.whl (75kB)
     |████████████████████████████████| 81kB 5.6MB/s 
Requirement already satisfied, skipping upgrade: seaborn>=0.10.1 in /usr/local/lib/python3.7/dist-packages (from pandas-profiling[notebook]) (0.11.1)
Requirement already satisfied, skipping upgrade: joblib in /usr/local/lib/python3.7/dist-packages (from pandas-profiling[notebook]) (1.0.1)
Collecting visions[type_image_path]==0.6.0
  Downloading https://files.pythonhosted.org/packages/98/30/b1e70bc55962239c4c3c9660e892be2d8247a882135a3035c10ff7f02cde/visions-0.6.0-py3-none-any.whl (75kB)
     |████████████████████████████████| 81kB 3.2MB/s 
Requirement already satisfied, skipping upgrade: scipy>=1.4.1 in /usr/local/lib/python3.7/dist-packages (from pandas-profiling[notebook]) (1.4.1)
Requirement already satisfied, skipping upgrade: numpy>=1.16.0 in /usr/local/lib/python3.7/dist-packages (from pandas-profiling[notebook]) (1.19.5)
Collecting phik>=0.10.0
  Downloading https://files.pythonhosted.org/packages/b7/ce/193e8ddf62d4be643b9b4b20e8e9c63b2f6a20f92778c0410c629f89bdaa/phik-0.11.2.tar.gz (1.1MB)
     |████████████████████████████████| 1.1MB 35.3MB/s 
Requirement already satisfied, skipping upgrade: matplotlib>=3.2.0 in /usr/local/lib/python3.7/dist-packages (from pandas-profiling[notebook]) (3.2.2)
Collecting jupyter-client>=6.0.0; extra == "notebook"
  Downloading https://files.pythonhosted.org/packages/77/e8/c3cf72a32a697256608d5fa96360c431adec6e1c6709ba7f13f99ff5ee04/jupyter_client-6.1.12-py3-none-any.whl (112kB)
     |████████████████████████████████| 122kB 33.4MB/s 
Requirement already satisfied, skipping upgrade: jupyter-core>=4.6.3; extra == "notebook" in /usr/local/lib/python3.7/dist-packages (from pandas-profiling[notebook]) (4.7.1)
Requirement already satisfied, skipping upgrade: MarkupSafe>=0.23 in /usr/local/lib/python3.7/dist-packages (from jinja2>=2.11.1->pandas-profiling[notebook]) (1.1.1)
Requirement already satisfied, skipping upgrade: pyyaml in /usr/local/lib/python3.7/dist-packages (from confuse>=1.0.0->pandas-profiling[notebook]) (3.13)
Requirement already satisfied, skipping upgrade: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests>=2.24.0->pandas-profiling[notebook]) (1.24.3)
Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests>=2.24.0->pandas-profiling[notebook]) (2020.12.5)
Requirement already satisfied, skipping upgrade: chardet<5,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests>=2.24.0->pandas-profiling[notebook]) (3.0.4)
Requirement already satisfied, skipping upgrade: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests>=2.24.0->pandas-profiling[notebook]) (2.10)
Requirement already satisfied, skipping upgrade: ipykernel>=4.5.1 in /usr/local/lib/python3.7/dist-packages (from ipywidgets>=7.5.1->pandas-profiling[notebook]) (4.10.1)
Requirement already satisfied, skipping upgrade: widgetsnbextension~=3.5.0 in /usr/local/lib/python3.7/dist-packages (from ipywidgets>=7.5.1->pandas-profiling[notebook]) (3.5.1)
Requirement already satisfied, skipping upgrade: ipython>=4.0.0; python_version >= "3.3" in /usr/local/lib/python3.7/dist-packages (from ipywidgets>=7.5.1->pandas-profiling[notebook]) (5.5.0)
Requirement already satisfied, skipping upgrade: jupyterlab-widgets>=1.0.0; python_version >= "3.6" in /usr/local/lib/python3.7/dist-packages (from ipywidgets>=7.5.1->pandas-profiling[notebook]) (1.0.0)
Requirement already satisfied, skipping upgrade: traitlets>=4.3.1 in /usr/local/lib/python3.7/dist-packages (from ipywidgets>=7.5.1->pandas-profiling[notebook]) (5.0.5)
Requirement already satisfied, skipping upgrade: nbformat>=4.2.0 in /usr/local/lib/python3.7/dist-packages (from ipywidgets>=7.5.1->pandas-profiling[notebook]) (5.1.3)
Requirement already satisfied, skipping upgrade: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas!=1.0.0,!=1.0.1,!=1.0.2,!=1.1.0,>=0.25.3->pandas-profiling[notebook]) (2018.9)
Requirement already satisfied, skipping upgrade: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas!=1.0.0,!=1.0.1,!=1.0.2,!=1.1.0,>=0.25.3->pandas-profiling[notebook]) (2.8.1)
Requirement already satisfied, skipping upgrade: networkx>=2.4 in /usr/local/lib/python3.7/dist-packages (from visions[type_image_path]==0.6.0->pandas-profiling[notebook]) (2.5.1)
Collecting imagehash; extra == "type_image_path"
  Downloading https://files.pythonhosted.org/packages/8e/18/9dbb772b5ef73a3069c66bb5bf29b9fb4dd57af0d5790c781c3f559bcca6/ImageHash-4.2.0-py2.py3-none-any.whl (295kB)
     |████████████████████████████████| 296kB 34.5MB/s 
Requirement already satisfied, skipping upgrade: Pillow; extra == "type_image_path" in /usr/local/lib/python3.7/dist-packages (from visions[type_image_path]==0.6.0->pandas-profiling[notebook]) (7.1.2)
Requirement already satisfied, skipping upgrade: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=3.2.0->pandas-profiling[notebook]) (1.3.1)
Requirement already satisfied, skipping upgrade: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=3.2.0->pandas-profiling[notebook]) (2.4.7)
Requirement already satisfied, skipping upgrade: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=3.2.0->pandas-profiling[notebook]) (0.10.0)
Requirement already satisfied, skipping upgrade: tornado>=4.1 in /usr/local/lib/python3.7/dist-packages (from jupyter-client>=6.0.0; extra == "notebook"->pandas-profiling[notebook]) (5.1.1)
Requirement already satisfied, skipping upgrade: pyzmq>=13 in /usr/local/lib/python3.7/dist-packages (from jupyter-client>=6.0.0; extra == "notebook"->pandas-profiling[notebook]) (22.0.3)
Requirement already satisfied, skipping upgrade: notebook>=4.4.1 in /usr/local/lib/python3.7/dist-packages (from widgetsnbextension~=3.5.0->ipywidgets>=7.5.1->pandas-profiling[notebook]) (5.3.1)
Requirement already satisfied, skipping upgrade: setuptools>=18.5 in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.5.1->pandas-profiling[notebook]) (54.2.0)
Requirement already satisfied, skipping upgrade: simplegeneric>0.8 in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.5.1->pandas-profiling[notebook]) (0.8.1)
Requirement already satisfied, skipping upgrade: decorator in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.5.1->pandas-profiling[notebook]) (4.4.2)
Requirement already satisfied, skipping upgrade: pygments in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.5.1->pandas-profiling[notebook]) (2.6.1)
Requirement already satisfied, skipping upgrade: pexpect; sys_platform != "win32" in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.5.1->pandas-profiling[notebook]) (4.8.0)
Requirement already satisfied, skipping upgrade: prompt-toolkit<2.0.0,>=1.0.4 in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.5.1->pandas-profiling[notebook]) (1.0.18)
Requirement already satisfied, skipping upgrade: pickleshare in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.5.1->pandas-profiling[notebook]) (0.7.5)
Requirement already satisfied, skipping upgrade: ipython-genutils in /usr/local/lib/python3.7/dist-packages (from traitlets>=4.3.1->ipywidgets>=7.5.1->pandas-profiling[notebook]) (0.2.0)
Requirement already satisfied, skipping upgrade: jsonschema!=2.5.0,>=2.4 in /usr/local/lib/python3.7/dist-packages (from nbformat>=4.2.0->ipywidgets>=7.5.1->pandas-profiling[notebook]) (2.6.0)
Requirement already satisfied, skipping upgrade: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.7.3->pandas!=1.0.0,!=1.0.1,!=1.0.2,!=1.1.0,>=0.25.3->pandas-profiling[notebook]) (1.15.0)
Requirement already satisfied, skipping upgrade: PyWavelets in /usr/local/lib/python3.7/dist-packages (from imagehash; extra == "type_image_path"->visions[type_image_path]==0.6.0->pandas-profiling[notebook]) (1.1.1)
Requirement already satisfied, skipping upgrade: Send2Trash in /usr/local/lib/python3.7/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5.1->pandas-profiling[notebook]) (1.5.0)
Requirement already satisfied, skipping upgrade: nbconvert in /usr/local/lib/python3.7/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5.1->pandas-profiling[notebook]) (5.6.1)
Requirement already satisfied, skipping upgrade: terminado>=0.8.1 in /usr/local/lib/python3.7/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5.1->pandas-profiling[notebook]) (0.9.4)
Requirement already satisfied, skipping upgrade: ptyprocess>=0.5 in /usr/local/lib/python3.7/dist-packages (from pexpect; sys_platform != "win32"->ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.5.1->pandas-profiling[notebook]) (0.7.0)
Requirement already satisfied, skipping upgrade: wcwidth in /usr/local/lib/python3.7/dist-packages (from prompt-toolkit<2.0.0,>=1.0.4->ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.5.1->pandas-profiling[notebook]) (0.2.5)
Requirement already satisfied, skipping upgrade: testpath in /usr/local/lib/python3.7/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5.1->pandas-profiling[notebook]) (0.4.4)
Requirement already satisfied, skipping upgrade: bleach in /usr/local/lib/python3.7/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5.1->pandas-profiling[notebook]) (3.3.0)
Requirement already satisfied, skipping upgrade: pandocfilters>=1.4.1 in /usr/local/lib/python3.7/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5.1->pandas-profiling[notebook]) (1.4.3)
Requirement already satisfied, skipping upgrade: entrypoints>=0.2.2 in /usr/local/lib/python3.7/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5.1->pandas-profiling[notebook]) (0.3)
Requirement already satisfied, skipping upgrade: mistune<2,>=0.8.1 in /usr/local/lib/python3.7/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5.1->pandas-profiling[notebook]) (0.8.4)
Requirement already satisfied, skipping upgrade: defusedxml in /usr/local/lib/python3.7/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5.1->pandas-profiling[notebook]) (0.7.1)
Requirement already satisfied, skipping upgrade: webencodings in /usr/local/lib/python3.7/dist-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5.1->pandas-profiling[notebook]) (0.5.1)
Requirement already satisfied, skipping upgrade: packaging in /usr/local/lib/python3.7/dist-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5.1->pandas-profiling[notebook]) (20.9)
Building wheels for collected packages: htmlmin, phik
  Building wheel for htmlmin (setup.py) ... done
  Created wheel for htmlmin: filename=htmlmin-0.1.12-cp37-none-any.whl size=27085 sha256=b3c9829ca6281e5c408b84bf342337c7bce794b862c318d05d249513e13c855d
  Stored in directory: /root/.cache/pip/wheels/43/07/ac/7c5a9d708d65247ac1f94066cf1db075540b85716c30255459
  Building wheel for phik (setup.py) ... done
  Created wheel for phik: filename=phik-0.11.2-cp37-none-any.whl size=1107413 sha256=0ee96a901f309d439c2c54b2ba02fd150329d8700380d328d402e6b7f442767a
  Stored in directory: /root/.cache/pip/wheels/c0/a3/b0/f27b1cfe32ea131a3715169132ff6d85653789e80e966c3bf6
Successfully built htmlmin phik
ERROR: google-colab 1.0.0 has requirement requests~=2.23.0, but you'll have requests 2.25.1 which is incompatible.
ERROR: datascience 0.10.6 has requirement folium==0.2.1, but you'll have folium 0.8.3 which is incompatible.
ERROR: phik 0.11.2 has requirement scipy>=1.5.2, but you'll have scipy 1.4.1 which is incompatible.
Installing collected packages: confuse, tangled-up-in-unicode, htmlmin, requests, tqdm, imagehash, visions, phik, jupyter-client, pandas-profiling
  Found existing installation: requests 2.23.0
    Uninstalling requests-2.23.0:
      Successfully uninstalled requests-2.23.0
  Found existing installation: tqdm 4.41.1
    Uninstalling tqdm-4.41.1:
      Successfully uninstalled tqdm-4.41.1
  Found existing installation: jupyter-client 5.3.5
    Uninstalling jupyter-client-5.3.5:
      Successfully uninstalled jupyter-client-5.3.5
  Found existing installation: pandas-profiling 1.4.1
    Uninstalling pandas-profiling-1.4.1:
      Successfully uninstalled pandas-profiling-1.4.1
Successfully installed confuse-1.4.0 htmlmin-0.1.12 imagehash-4.2.0 jupyter-client-6.1.12 pandas-profiling-2.11.0 phik-0.11.2 requests-2.25.1 tangled-up-in-unicode-0.0.7 tqdm-4.60.0 visions-0.6.0
Enabling notebook extension jupyter-js-widgets/extension...
      - Validating: OK

Mise en route

Pour cet exemple, nous avons créé un script Python simple. Nous allons utiliser un fichier csv que nous avons déposé sur GitHub.

Après avoir exécuté le script, un nouveau fichier HTML appelé :  pandas_profile_course_hippique.html

sera créé dans le répertoire indiqué dans votre projet. Pour visualiser le rapport, cliquez avec le bouton droit de la souris sur le fichier HTML et sélectionnez Ouvrir dans le navigateur > Défaut.

import pandas as pd 
import pandas_profiling
from google.colab import drive

drive.mount('/content/drive')

path = '/content/drive/MyDrive/ia/variableturf.csv'
data = pd.read_csv(path,parse_dates=['date'],infer_datetime_format=True,dayfirst=True,sep=";")

prof = pandas_profiling.ProfileReport(df=data)
prof.to_file('/content/drive/MyDrive/ia/pandas_profile_course_hippique.html')

Rapport généré par Pandas Profiling

Vue d'ensemble

overview

La section Overview, la première section du rapport, présente des statistiques résumées pour l’ensemble des données. Elle renvoie le nombre de variables, qui correspond au nombre de colonnes incluses dans le DataFrame transmis. Le nombre d’observations est le nombre de lignes qui ont été reçues. La vue d’ensemble fournit également le nombre de cellules manquantes ou de lignes en double et un pourcentage du total des enregistrements qui ont été touchés.

Les statistiques sur les cellules manquantes et les rangées en double sont très importantes pour les spécialistes des données, car elles peuvent indiquer des problèmes de qualité des données ou des problèmes liés au code utilisé pour extraire les données. La section d’aperçu comprend également des données sur la taille de l’ensemble de données en mémoire, la taille moyenne des enregistrements en mémoire et les types de données reconnus.

warning

Sous l’onglet Warnings  de la section Overview, vous pouvez trouver des avertissements collationnés pour n’importe quelle variable de l’ensemble de données. Dans cet exemple, nous avons reçu un avertissement de cardinalité élevée pour M1, M2, M3, hippodrome etc. Dans ce contexte, la cardinalité élevée signifie que les colonnes qui ont été signalées contiennent un très grand nombre de valeurs distinctes, ce qui serait le cas pour le nom des hippodrome.

Les variables de type catégorie

m1 categorie

La section Variables du rapport analyse les colonnes du DataFrame transmis. Une variable catégorielle est une colonne qui contient des données représentant un type de chaîne Python.

Une métrique typique renvoyée pour les variables catégorielles est la longueur des chaînes de caractères dans la colonne. Pour visualiser l’histogramme généré, sélectionnez Toggle Details puis naviguez jusqu’à l’onglet Categories. L’onglet Overview contient également des statistiques concernant les valeurs maximale, médiane, moyenne et minimale de la longueur de la chaîne.

Variable de type numérique

nDistance

Pandas Profiling offre une analyse incroyablement approfondie des variables numériques couvrant les statistiques quantiles et descriptives. Il renvoie les valeurs minimales et maximales de l’ensemble de données et l’intervalle entre ces valeurs.

Il affiche les valeurs de quartile qui mesurent la distribution des valeurs ordonnées dans l’ensemble de données au-dessus et au-dessous de la médiane en divisant l’ensemble en quatre bacs. Lorsque l’on considère les valeurs des quartiles, si la distance entre le quartile 1 et la médiane est plus grande que celle entre la médiane et le quartile 3, cela signifie que les petites valeurs sont plus dispersées que les grandes. L’écart interquartile est simplement le résultat du quartile trois moins le quartile un.

L’écart-type reflète la distribution de l’ensemble de données par rapport à sa valeur moyenne. Un faible écart-type implique que les valeurs de l’ensemble de données sont plus proches de la moyenne, tandis qu’une valeur d’écart-type plus élevée implique que les valeurs de l’ensemble de données sont réparties sur une plus grande plage. Le coefficient de variation, également appelé écart-type relatif, est le rapport entre l’écart-type et la moyenne. Le kurtosis peut être utilisé pour décrire la forme des données en mesurant les valeurs dans les queues de la distribution par rapport à la moyenne de l’ensemble de données ordonné. La valeur du Kurtosis varie en fonction de la distribution des données et de la présence de valeurs extrêmes aberrantes.

L’écart absolu de la médiane est une autre mesure statistique qui reflète la distribution des données autour de la médiane et constitue une mesure plus robuste de la dispersion lorsqu’une valeur aberrante extrême est présente.

L’asymétrie (Skewness) reflète le niveau de distorsion par rapport à une distribution de probabilité standard en forme de cloche. Une asymétrie positive est considérée comme une asymétrie vers la droite et présente une queue plus longue à droite de la distribution et une négative à gauche.

Interaction et corrélations

interaction

C’est dans la sections Interaction que Pandas Profiling se démarque vraiment des autres outils exploratoires. Il analyse toutes les variables par paires et met en évidence toute variable fortement corrélée à l’aide des mesures de Pearson, Spearman, Kendal et Phik. Il fournit une représentation visuelle puissante et facile à comprendre de toutes les données fortement corrélées entre elles. En tant que spécialiste des données, c’est un excellent point de départ pour répondre aux questions sur les raisons de la corrélation de ces paires de données.

correlations

Valeurs manquantes

valeurs manquantes

La section Valeurs manquantes s’appuie sur la métrique des cellules manquantes de la section Aperçu. Elle représente visuellement où se trouvent les valeurs manquantes par rapport à toutes les colonnes du DataFrame. Cette section peut mettre en évidence des problèmes de qualité des données et peut exiger que les données manquantes soient mappées à une valeur par défaut que nous aborderons dans un article ultérieur.

Section échantillon

La section échantillon affiche un instantané des résultats de la tête et de la queue de l’ensemble de données. Si l’ensemble de données est ordonné sur une colonne particulière, vous pouvez utiliser cette section pour comprendre à quel type d’enregistrements sont associées les valeurs minimales et maximales de la colonne.

En résumé

Pandas Profiling est un outil open-source incroyable que tout scientifique des données devrait envisager d’ajouter à sa boîte à outils pour la phase d’exploration des données dans tout projet. Il constitue un moyen efficace de digérer et d’analyser un ensemble de données peu familier en fournissant des statistiques descriptives approfondies, des graphiques de distribution visuels et un ensemble puissant d’outils de corrélation.

Si vous voulez découvrir comment fonctionne la librairie pandas ou bien l’environnement Jupyter, n’hésitez pas à consulter les cours ci-dessous.

GCH anime

Je télécharge mon guide gratuit

Vous recevrez votre guide par email sans aucun engagement de votre part.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.