Profilage YData: rationalisation de l'analyse des données¶
YData Profiling se présente comme un outil puissant conçu pour simplifier et améliorer l'expérience d'exploration des données, répondant spécifiquement aux besoins des statisticiens et des data scientists. En mettant l'accent sur la fourniture d'une solution d'analyse exploratoire des données (EDA) en une seule ligne, YData Profiling fournit une analyse étendue de votre DataFrame, semblable à la commodité offerte par la fonction df.describe()
de pandas. Cette analyse peut être exportée de manière transparente dans différents formats tels que HTML et JSON.
Démarrage rapide:¶
Démarrer avec YData Profiling est simple. Commencez par installer la bibliothèque à l'aide de l'une des commandes suivantes:
%%capture
! pip install -U ydata-profiling ipywidgets scikit-learn
Principales caractéristiques:¶
- Inférence de type: Détecte automatiquement les types de données des colonnes, notamment catégoriques, numériques, date, etc.
- Avertissements: Résume les problèmes potentiels de qualité des données tels que les données manquantes, les inexactitudes, l'asymétrie, etc.
- Analyse univariée: Fournit des statistiques descriptives et des visualisations informatives telles que des histogrammes de distribution.
- Analyse multivariée: Comprend des corrélations, une analyse détaillée des données manquantes, des lignes en double et une prise en charge visuelle des interactions par paires.
- Analyse des séries chronologiques: Offre des informations statistiques relatives aux données dépendantes du temps, ainsi que des informations sur l'autocorrélation et la saisonnalité.
- Analyse de texte et de fichiers: Comprend la détection de catégories de texte et l'analyse de fichiers/images pour une exploration complète.
- Comparaison d'ensembles de données: Permet d'obtenir un rapport rapide et complet sur la comparaison d'ensembles de données avec une seule ligne de code.
Exemple de code:¶
Pour une démonstration pratique, considérons l'exemple suivant générant un rapport standard pour un ensemble de données Pokémon:
Génération d'un rapport standard¶
Cette cellule contient un script pour récupérer un ensemble de données Pokémon et afficher le « ProfileReport » par défaut à partir de « ydata_profiling ». Le rapport comprend des calculs de corrélation supplémentaires (voir ligne 23 ci-dessous). La ligne 34 profile_report.to_file("pokemon.html")
enregistre le rapport dans un fichier HTML que vous pouvez ouvrir dans un nouvel onglet de navigateur.
import numpy as np
import pandas as pd
from ydata_profiling import ProfileReport
from ydata_profiling.utils.cache import cache_file
file_name = cache_file(
"pokemon.csv",
"https://raw.githubusercontent.com/bryanpaget/html/main/pokemon.csv"
)
pokemon_df = pd.read_csv(file_name)
profile_report = ProfileReport(
pokemon_df,
sort=None,
html={
"style": {"full_width": True}
},
progress_bar=False,
correlations={
"auto": {"calculate": True},
"pearson": {"calculate": False},
"spearman": {"calculate": False},
"kendall": {"calculate": False},
"phi_k": {"calculate": True},
"cramers": {"calculate": True},
},
explorative=True,
title="Profiling Report"
)
profile_report.to_file("../output/pokemon.html")
profile_report
Comparaison d'ensembles de données¶
Nous pouvons également générer des rapports comparant deux ensembles de données. Cet exemple ci-dessous compare les ensembles de données d'entraînement et de test Pokémon. train_test_split
de scikit-learn
est utilisé pour créer les ensembles de données d'entraînement et de test.
import numpy as np
from sklearn.model_selection import train_test_split
from ydata_profiling import ProfileReport
file_name = cache_file(
"pokemon.csv",
"https://raw.githubusercontent.com/bryanpaget/html/main/pokemon.csv"
)
pokemon_df = pd.read_csv(file_name)
X = pokemon_df[['Total', 'HP', 'Attack', 'Defense', 'Sp. Atk', 'Sp. Def', 'Speed']]
y = pokemon_df[['Type 1', 'Type 2']]
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.33, random_state=42)
train_df = X_train
train_report = ProfileReport(train_df, title="Train")
test_df = X_test
test_report = ProfileReport(test_df, title="Test")
comparison_report = train_report.compare(test_report)
comparison_report.to_file("../output/comparison.html")
comparison_report
Analyse des données de séries chronologiques:¶
Pour les ensembles de données de séries chronologiques, YData Profiling introduit un mode de série chronologique spécialisé, comme l'illustre l'analyse du cours de l'action Microsoft:
import numpy as np
import pandas as pd
from ydata_profiling import ProfileReport
from ydata_profiling.utils.cache import cache_file
file_name = cache_file(
"msft.csv",
"https://raw.githubusercontent.com/bryanpaget/html/main/msft.csv"
)
msft_df = pd.read_csv(file_name)
msft_df["Date"] = pd.to_datetime(msft_df["Date"])
# Enable tsmode to True to automatically identify time-series variables
# Provide the column name that provides the chronological order of your time-series
profile = ProfileReport(msft_df, tsmode=True, sortby="Date", title="Time-Series EDA")
profile.to_file("../output/msft-report-timeseries.html")
profile
Explorez les capacités de YData Profiling et transformez votre flux de travail d'analyse de données en une expérience transparente et complète, alignée sur la familiarité d'Excel, Power BI et SAS.