Calidad de datos con grandes expectativas en Python: ejemplos de código efectivos
- Claude Paugh
- hace 1 día
- 4 Min. de lectura
En ciencia y análisis de datos, garantizar la calidad de los datos es fundamental. Una calidad deficiente puede generar información engañosa, malas decisiones y una pérdida significativa de confianza en los procesos basados en datos. Una herramienta valiosa para ayudar a los profesionales de datos a mantener altos estándares de precisión es el marco Great Expectations . En esta publicación, exploraremos cómo implementar Great Expectations en Python, junto con ejemplos prácticos de código para ayudarte a dominar la calidad de los datos en tus proyectos.
¿Qué es Grandes esperanzas?

Great Expectations es una biblioteca de Python de código abierto diseñada para ayudar a los equipos de datos a crear, gestionar y mantener expectativas de calidad de los datos. Este marco permite a los usuarios definir expectativas específicas sobre sus datos y validar conjuntos de datos según estas expectativas. Una característica clave es su capacidad para generar documentación que comunica las métricas de calidad de los datos de forma eficaz. Al utilizar Great Expectations, los equipos de datos pueden garantizar que sus datos no solo sean precisos, sino también completos y fiables.
Por ejemplo, podría especificar que una columna debe tener valores únicos o que una columna numérica debe estar dentro de un rango definido. Automatizar la validación de estas expectativas permite a los equipos detectar problemas con antelación, evitando cualquier impacto negativo en los análisis.
Creando grandes expectativas
Para comenzar a usar Great Expectations en su entorno Python, puede instalar fácilmente la biblioteca usando pip:
-->bash
pip install great_expectations
Una vez instalado, crea un nuevo proyecto Great Expectations ejecutando el siguiente comando en tu terminal:
-->bash
great_expectations init
Este comando crea un directorio llamado `great_expectations` en su directorio de trabajo actual, completo con los archivos y carpetas necesarios para comenzar.
Creación de un contexto de datos
El Contexto de Datos sirve como la configuración central de su proyecto Great Expectations, abarcando todas las configuraciones, expectativas y fuentes de datos. Para crear un Contexto de Datos, acceda al directorio `great_expectations` y ejecute:
-->bash
great_expectations datasource new
Durante esta configuración, se conectará a diversas fuentes de datos. Por ejemplo, podrá conectarse a bases de datos SQL populares, leer datos de archivos CSV o incluso extraer datos de soluciones de almacenamiento en la nube como Amazon S3 y Google Cloud Storage.
Definiendo Expectativas
Una vez establecido el contexto de datos, puede empezar a definir las expectativas para sus datos. Supongamos que tiene un archivo CSV con datos de usuario y desea verificar que la columna "email" contenga direcciones de correo electrónico válidas. Así es como puede definir esta expectativa:
-->python
import great_expectations as ge
data = ge.read_csv("path/to/your/user_data.csv")
Crear una nueva Suite de Expectativas
suite = data.create_expectation_suite("user_data_expectations")
Definir una expectativa para la columna de correo electrónico
data.expect_column_values_to_be_in_set("email", ["valid_email@example.com", "another_valid@example.com"])
En este escenario, cargamos datos de usuario desde un archivo CSV, creamos un nuevo conjunto de expectativas y especificamos que la columna "correo electrónico" debe coincidir con direcciones válidas específicas.
Validación de datos
Después de definir sus expectativas, el siguiente paso es validar sus datos con respecto a estas afirmaciones. Utilice el siguiente código para la validación:
-->python
results = data.validate(expectation_suite_name="user_data_expectations")
print(results)
El método `validate` genera un objeto de resultados que revela qué expectativas se cumplieron y cuáles no. Esto permite identificar rápidamente cualquier problema de calidad de los datos.
Generando documentación
Una característica destacada de Great Expectations es su capacidad para crear documentación para las expectativas establecidas. Esta documentación es útil para compartir métricas de calidad de datos con las partes interesadas. Para generar documentación, ejecute:
-->bash
great_expectations suite edit user_data_expectations
Este comando abre una interfaz web para ver y editar sus expectativas. También puede generar un informe HTML estático ejecutando:
-->bash
great_expectations docs build
Estos comandos construyen colectivamente un directorio 'docs' que contiene la documentación generada, mejorando la visibilidad para todas las partes interesadas.

Expectativas avanzadas
Grandes Expectativas admite una gama de expectativas que van más allá de las simples comprobaciones. Aquí tienes algunos ejemplos avanzados que podrías considerar:
Comprobación de valores de columna con una expresión regular
Si desea verificar que todas las direcciones de correo electrónico en la columna `email` sean válidas, puede aplicar una expresión regular:
-->python
data.expect_column_values_to_match_strictly_regex("email", r"^[\w\.-]+@[\w\.-]+\.\w+$")
Cómo garantizar que los valores de las columnas sean únicos
Para confirmar que una columna incluye valores únicos, puede utilizar la siguiente expectativa:
-->python
data.expect_column_values_to_be_unique("user_id")
Validación de rangos numéricos
Para garantizar que una columna numérica, como la edad, se mantenga dentro de un rango específico, considere este ejemplo:
-->python
data.expect_column_values_to_be_between("age", min_value=18, max_value=100)
Integrando Grandes Expectativas con Canalizaciones de Datos
Great Expectations se puede integrar perfectamente en sus flujos de datos. Supongamos que utiliza Apache Airflow ; puede crear fácilmente una tarea que valide sus datos con Great Expectations. A continuación, un ejemplo sencillo:
-->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
Este fragmento define un DAG de Airflow que define una tarea para validar los datos. Si la validación falla, se genera un error que puede generar alertas o activar otras acciones necesarias en el flujo de datos.
Monitoreo continuo de la calidad de los datos
La calidad de los datos no es un esfuerzo único; requiere una supervisión continua. Great Expectations ofrece herramientas para ayudarle a monitorear constantemente la calidad de sus datos. Puede establecer un sistema de monitoreo que valide regularmente sus datos y le alerte sobre problemas emergentes.
Por ejemplo, al programar una tarea diaria para ejecutar los scripts de validación, puede registrar los resultados sistemáticamente. Esto ayuda a monitorear las tendencias en la calidad de los datos a lo largo del tiempo y a solucionar cualquier problema antes de que se agrave.
Terminando
Al implementar el marco de trabajo Great Expectations en sus proyectos de Python, puede mejorar significativamente su enfoque en la gestión de la calidad de los datos. Definir expectativas, validar datos y generar documentación garantiza que sus datos se mantengan precisos y confiables.
Los ejemplos de código proporcionados en esta publicación sientan las bases para utilizar Great Expectations en sus propias iniciativas. Tenga en cuenta que mantener la calidad de los datos es un proceso continuo, y herramientas como Great Expectations son invaluables para alcanzar altos estándares en sus iniciativas basadas en datos.
A medida que explore Great Expectations más a fondo, considere integrarlo en sus canales de datos y sistemas de monitoreo para garantizar la confiabilidad de sus datos a lo largo del tiempo. ¡Que disfrute programando!