Qualité des données avec de grandes attentes en Python : exemples de code efficaces
- Claude Paugh
- il y a 1 jour
- 5 min de lecture
En science des données et en analyse, garantir la qualité des données est primordial. Une mauvaise qualité des données peut engendrer des informations erronées, de mauvaises décisions et une perte de confiance significative dans les processus basés sur les données. Le framework Great Expectations est un outil précieux pour aider les professionnels des données à maintenir des normes élevées d'exactitude des données. Dans cet article, nous explorerons comment implémenter Great Expectations en Python, et vous présenterons des exemples de code concrets pour vous aider à maîtriser la qualité des données dans vos projets.
Qu'est-ce que Great Expectations ?

Great Expectations est une bibliothèque Python open source conçue pour aider les équipes de données à créer, gérer et maintenir des attentes en matière de qualité des données. Ce framework permet aux utilisateurs de définir des attentes spécifiques concernant leurs données et de valider les jeux de données par rapport à ces attentes. L'une de ses fonctionnalités clés est sa capacité à générer une documentation qui communique efficacement les indicateurs de qualité des données. Grâce à Great Expectations, les équipes de données peuvent garantir l'exactitude, l'exhaustivité et la fiabilité de leurs données.
Par exemple, vous pouvez spécifier qu'une colonne doit avoir des valeurs uniques ou qu'une colonne numérique doit être comprise dans une plage définie. L'automatisation de la validation de ces attentes permet aux équipes de détecter les problèmes en amont et d'éviter tout impact négatif sur les analyses.
Créer de grandes attentes
Pour commencer à utiliser Great Expectations dans votre environnement Python, vous pouvez facilement installer la bibliothèque à l'aide de pip :
-->bash
pip install great_expectations
Une fois installé, créez un nouveau projet Great Expectations en exécutant la commande suivante dans votre terminal :
-->bash
great_expectations init
Cette commande crée un répertoire nommé « great_expectations » dans votre répertoire de travail actuel, avec les fichiers et dossiers nécessaires pour démarrer.
Créer un contexte de données
Le contexte de données constitue la configuration centrale de votre projet Great Expectations et englobe toutes les configurations, attentes et sources de données. Pour créer un contexte de données, accédez au répertoire « great_expectations » et exécutez :
-->bash
great_expectations datasource new
Lors de cette configuration, vous vous connecterez à différentes sources de données. Par exemple, vous pourrez vous connecter à des bases de données SQL courantes, lire des données à partir de fichiers CSV ou même extraire des données de solutions de stockage cloud comme Amazon S3 et Google Cloud Storage.
Définir les attentes
Une fois votre contexte de données défini, vous pouvez définir vos attentes concernant vos données. Imaginons que vous disposez d'un fichier CSV de données utilisateur et que vous souhaitiez vérifier que la colonne « e-mail » contient des adresses e-mail valides. Voici comment définir cette attente :
-->python
import great_expectations as ge
data = ge.read_csv("path/to/your/user_data.csv")
Créer une nouvelle suite d'attentes
suite = data.create_expectation_suite("user_data_expectations")
Définir une attente pour la colonne email
data.expect_column_values_to_be_in_set("email", ["valid_email@example.com", "another_valid@example.com"])
Dans ce scénario, nous chargeons les données utilisateur à partir d'un fichier CSV, créons une nouvelle suite d'attentes et spécifions que la colonne « e-mail » doit correspondre à des adresses valides spécifiques.
Validation des données
Après avoir défini vos attentes, l'étape suivante consiste à valider vos données par rapport à ces affirmations. Utilisez le code suivant pour la validation :
-->python
results = data.validate(expectation_suite_name="user_data_expectations")
print(results)
La méthode « validate » génère un objet de résultats, révélant les attentes satisfaites et celles qui ne l'ont pas été. Cela permet d'identifier rapidement tout problème de qualité des données.
Génération de la documentation
L'une des fonctionnalités phares de Great Expectations est sa capacité à documenter vos attentes. Cette documentation est utile pour partager les indicateurs de qualité des données avec les parties prenantes. Pour générer la documentation, exécutez :
-->bash
great_expectations suite edit user_data_expectations
Cette commande ouvre une interface web pour visualiser et modifier vos attentes. Vous pouvez également générer un rapport HTML statique en exécutant :
-->bash
great_expectations docs build
Ces commandes créent collectivement un répertoire « docs » qui contient la documentation générée, améliorant ainsi la visibilité pour toutes les parties prenantes.

Attentes avancées
Great Expectations prend en charge un éventail d'attentes allant au-delà de simples vérifications. Voici quelques exemples avancés que vous pourriez envisager :
Vérification des valeurs des colonnes par rapport à une expression régulière
Si vous souhaitez vérifier que toutes les adresses e-mail de la colonne « e-mail » sont valides, vous pouvez appliquer une expression régulière :
-->python
data.expect_column_values_to_match_strictly_regex("email", r"^[\w\.-]+@[\w\.-]+\.\w+$")
S'assurer que les valeurs des colonnes sont uniques
Pour confirmer qu’une colonne comprend des valeurs uniques, vous pouvez utiliser l’attente suivante :
-->python
data.expect_column_values_to_be_unique("user_id")
Validation des plages numériques
Pour garantir qu'une colonne numérique, telle que l'âge, reste dans une plage spécifique, considérez cet exemple :
-->python
data.expect_column_values_to_be_between("age", min_value=18, max_value=100)
Intégration de Great Expectations aux pipelines de données
Great Expectations s'intègre parfaitement à vos pipelines de données. Imaginons que vous utilisiez Apache Airflow ; vous pouvez facilement créer une tâche de validation de vos données avec Great Expectations. Voici un exemple simple :
-->python
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime
import great_expectations as ge
def validate_data():
data = ge.read_csv("path/to/your/user_data.csv")
results = data.validate(expectation_suite_name="user_data_expectations")
if not results["success"]:
raise ValueError("Data validation failed!")
dag = DAG('data_validation_dag', start_date=datetime(2023, 1, 1))
validate_task = PythonOperator(
task_id='validate_data',
python_callable=validate_data,
dag=dag,
)
validate_task
Cet extrait définit un DAG Airflow qui définit une tâche de validation des données. Si la validation échoue, une erreur est générée, ce qui peut déclencher des alertes ou d'autres actions nécessaires dans votre pipeline de données.
Surveillance continue de la qualité des données
La qualité des données n'est pas un effort ponctuel ; elle exige une surveillance continue. Great Expectations propose des outils pour vous aider à suivre régulièrement la qualité de vos données. Vous pouvez mettre en place un système de surveillance qui valide régulièrement vos données et vous alerte en cas de problème.
Par exemple, en programmant une tâche quotidienne pour exécuter vos scripts de validation, vous pouvez enregistrer les résultats de manière systématique. Cela permet de suivre l'évolution de la qualité des données au fil du temps et de résoudre les problèmes avant qu'ils ne s'aggravent.
Pour conclure
En implémentant le framework Great Expectations dans vos projets Python, vous pouvez considérablement améliorer votre approche de la gestion de la qualité des données. Définir les attentes, valider les données et générer la documentation garantit l'exactitude et la fiabilité de vos données.
Les exemples de code fournis dans cet article constituent une base solide pour l'utilisation de Great Expectations dans vos propres initiatives. Gardez à l'esprit que la qualité des données est un processus continu, et des outils comme Great Expectations sont indispensables pour atteindre des standards élevés dans vos efforts axés sur les données.
À mesure que vous explorez Great Expectations, pensez à l'intégrer à vos pipelines de données et à vos systèmes de surveillance afin de garantir la fiabilité de vos données au fil du temps. Bon codage !