top of page

Qualidade de dados com grandes expectativas em Python: exemplos de código eficazes

Em ciência e análise de dados, garantir a qualidade dos dados é extremamente importante. Dados de baixa qualidade podem resultar em insights enganosos, decisões equivocadas e uma perda significativa de confiança nos processos baseados em dados. Uma ferramenta valiosa para ajudar profissionais de dados a manter altos padrões de precisão de dados é o framework Great Expectations . Neste post, exploraremos como implementar o Great Expectations em Python, juntamente com exemplos práticos de código para ajudar você a dominar a qualidade de dados em seus projetos.


O que é Grandes Esperanças?


python grandes expectativas cumpridas

Great Expectations é uma biblioteca Python de código aberto projetada para auxiliar equipes de dados na criação, gerenciamento e manutenção de expectativas de qualidade de dados. Essa estrutura permite que os usuários definam expectativas específicas sobre seus dados e validem conjuntos de dados em relação a essas expectativas. Um recurso fundamental é a capacidade de gerar documentação que comunica métricas de qualidade de dados de forma eficaz. Ao utilizar o Great Expectations, as equipes de dados podem garantir que seus dados não sejam apenas precisos, mas também completos e confiáveis.


Por exemplo, você pode especificar que uma coluna deve ter valores únicos ou que uma coluna numérica deve estar dentro de um intervalo definido. Automatizar a validação dessas expectativas permite que as equipes identifiquem problemas precocemente, evitando qualquer impacto prejudicial nas análises.


Criando Grandes Expectativas

Para começar a usar Great Expectations em seu ambiente Python, você pode facilmente instalar a biblioteca usando pip:

-->bash
pip install great_expectations

Após a instalação, crie um novo projeto Great Expectations executando o seguinte comando no seu terminal:

-->bash
great_expectations init

Este comando cria um diretório chamado `great_expectations` no seu diretório de trabalho atual, completo com os arquivos e pastas necessários para começar.


Criando um contexto de dados

O Contexto de Dados serve como a configuração central para o seu projeto Great Expectations, abrangendo todas as configurações, expectativas e fontes de dados. Para criar um Contexto de Dados, navegue até o diretório `great_expectations` e execute:

-->bash
great_expectations datasource new

Durante esta configuração, você se conectará a diversas fontes de dados. Por exemplo, você pode se conectar a bancos de dados SQL populares, ler dados de arquivos CSV ou até mesmo extrair dados de soluções de armazenamento em nuvem como Amazon S3 e Google Cloud Storage.


Definindo Expectativas

Depois que seu Contexto de Dados estiver definido, você pode começar a definir expectativas para seus dados. Vamos supor que você tenha um arquivo CSV com dados de usuários e queira verificar se a coluna `email` contém endereços de e-mail válidos. Veja como definir essa expectativa:

-->python
import great_expectations as ge
data = ge.read_csv("path/to/your/user_data.csv")

Crie um novo Expectation Suite

suite = data.create_expectation_suite("user_data_expectations")

Defina uma expectativa para a coluna de e-mail

data.expect_column_values_to_be_in_set("email", ["valid_email@example.com", "another_valid@example.com"])

Neste cenário, carregamos dados do usuário de um arquivo CSV, criamos um novo conjunto de expectativas e especificamos que a coluna `email` deve corresponder a endereços válidos específicos.


Validando Dados

Depois de definir suas expectativas, o próximo passo é validar seus dados em relação a essas afirmações. Use o seguinte código para validação:

-->python
results = data.validate(expectation_suite_name="user_data_expectations")
print(results)

O método `validate` gera um objeto de resultados, revelando quais expectativas foram atendidas e quais não. Isso permite a identificação rápida de quaisquer problemas de qualidade dos dados.


Gerando Documentação

Um recurso de destaque do Great Expectations é a capacidade de criar documentação para as suas expectativas estabelecidas. Essa documentação é útil para compartilhar métricas de qualidade de dados com as partes interessadas. Para gerar a documentação, execute:

-->bash
great_expectations suite edit user_data_expectations

Este comando abre uma interface web para visualizar e editar suas expectativas. Você também pode gerar um relatório HTML estático executando:

-->bash
great_expectations docs build

Esses comandos criam coletivamente um diretório `docs` que contém a documentação gerada, melhorando a visibilidade para todas as partes interessadas.


Visão ao nível dos olhos de um painel de visualização de dados
A data visualization dashboard showcasing various metrics.

Expectativas Avançadas

O Great Expectations oferece suporte a uma série de expectativas que vão além de simples verificações. Aqui estão alguns exemplos avançados que você pode considerar:


Verificando valores de coluna em relação a uma expressão regular

Se você quiser verificar se todos os endereços de e-mail na coluna `email` são válidos, você pode aplicar uma expressão regular:

-->python
data.expect_column_values_to_match_strictly_regex("email", r"^[\w\.-]+@[\w\.-]+\.\w+$")

Garantindo que os valores das colunas sejam exclusivos

Para confirmar que uma coluna contém valores exclusivos, você pode usar a seguinte expectativa:

-->python
data.expect_column_values_to_be_unique("user_id")

Validando intervalos numéricos

Para garantir que uma coluna numérica, como idade, permaneça dentro de um intervalo específico, considere este exemplo:

-->python
data.expect_column_values_to_be_between("age", min_value=18, max_value=100)

Integrando Grandes Expectativas com Pipelines de Dados

O Great Expectations pode ser perfeitamente integrado aos seus pipelines de dados. Suponha que você use o Apache Airflow ; você pode facilmente criar uma tarefa que valide seus dados com o Great Expectations. Aqui está um exemplo simples:

-->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 snippet define um DAG do Airflow que define uma tarefa para validar dados. Se a validação falhar, um erro será gerado, o que pode gerar alertas ou desencadear outras ações necessárias no seu pipeline de dados.


Monitoramento contínuo da qualidade dos dados

A qualidade dos dados não é um esforço único; requer supervisão contínua. O Great Expectations oferece ferramentas para ajudar você a monitorar consistentemente a qualidade dos seus dados. Você pode estabelecer um sistema de monitoramento que valide seus dados regularmente e o alerte sobre problemas emergentes.


Por exemplo, ao agendar uma tarefa diária para executar seus scripts de validação, você pode registrar os resultados sistematicamente. Isso ajuda a monitorar tendências na qualidade dos dados ao longo do tempo e a resolver quaisquer problemas antes que eles se agravem.


Concluindo

Ao implementar o framework Great Expectations em seus projetos Python, você pode aprimorar significativamente sua abordagem de gerenciamento de qualidade de dados. Definir expectativas, validar dados e gerar documentação garante que seus dados permaneçam precisos e confiáveis.


Os exemplos de código fornecidos neste post estabelecem uma base sólida para a utilização do Great Expectations em suas próprias iniciativas. Lembre-se de que manter a qualidade dos dados é uma jornada contínua, e ferramentas como o Great Expectations são inestimáveis para atingir altos padrões em seus esforços orientados por dados.


À medida que você explora o Great Expectations mais a fundo, pense em integrá-lo aos seus pipelines de dados e sistemas de monitoramento para proteger a confiabilidade dos seus dados ao longo do tempo. Boa programação!

bottom of page