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

- 20 de out
- 4 min de leitura
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?

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_expectationsApós a instalação, crie um novo projeto Great Expectations executando o seguinte comando no seu terminal:
-->bash
great_expectations initEste 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 newDurante 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_expectationsEste 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 buildEsses comandos criam coletivamente um diretório `docs` que contém a documentação gerada, melhorando a visibilidade para todas as partes interessadas.

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_taskEste 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!


