gershwin.pages.dev

Como criar um script para auditar a qualidade de dados de CPF em uma empresa?

A qualidade dos dados de CPF é crucial para a conformidade legal e a eficiência operacional de qualquer empresa. Um script automatizado não apenas economiza tempo, mas também elimina erros humanos, garantindo que todos os CPFs no banco de dados sejam válidos, formatados corretamente e livres de duplicatas.

Pré-requisitos

Passo 1: Script Python para validação de CPF

Crie um arquivo chamado validar_cpf.py com o seguinte código:

import pandas as pd
import re

def validar_cpf(cpf):
    cpf = re.sub(r'[^0-9]', '', str(cpf))
    if len(cpf) != 11:
        return False
    if cpf == cpf[0] * 11:
        return False
    # Cálculo do primeiro dígito verificador
    soma = sum(int(digit) * (10 - i) for i, digit in enumerate(cpf[:9]))
    resto = soma % 11
    digito1 = 0 if resto < 2 else 11 - resto
    # Cálculo do segundo dígito verificador
    soma = sum(int(digit) * (11 - i) for i, digit in enumerate(cpf[:10]))
    resto = soma % 11
    digito2 = 0 if resto < 2 else 11 - resto
    return int(cpf[9]) == digito1 and int(cpf[10]) == digito2

def auditar_cpf(arquivo):
    df = pd.read_csv(arquivo)
    df['cpf_limpo'] = df['cpf'].apply(lambda x: re.sub(r'[^0-9]', '', str(x)))
    df['cpf_valido'] = df['cpf_limpo'].apply(validar_cpf)
    df['cpf_formatado'] = df['cpf_limpo'].apply(lambda x: f'{x[:3]}.{x[3:6]}.{x[6:9]}-{x[9:]}' if len(x) == 11 else x)
    return df

if __name__ == "__main__":
    import sys
    if len(sys.argv) != 2:
        print("Uso: python validar_cpf.py arquivo.csv")
        sys.exit(1)
    arquivo = sys.argv[1]
    resultado = auditar_cpf(arquivo)
    resultado.to_csv('audit_cpf_result.csv', index=False)
    print("Auditoria concluída. Resultado salvo em audit_cpf_result.csv")

Passo 2: Executar o script

Abra o terminal, navegue até o diretório onde o script está salvo e execute:

python validar_cpf.py dados_cpf.csv

O script irá processar o arquivo dados_cpf.csv e gerar um novo arquivo chamado audit_cpf_result.csv com as colunas adicionais indicando a validade e o formato de cada CPF.

Passo 3: Analisar os resultados

Abra o arquivo audit_cpf_result.csv em uma planilha eletrônica. Filtre a coluna cpf_valido para identificar CPFs inválidos (valores False). Você também pode usar a coluna cpf_formatado para padronizar a exibição dos dados.

Exemplo Prático

cpf (entrada) cpf_limpo cpf_valido cpf_formatado
123.456.789-09 12345678909 True 123.456.789-09
111.111.111-11 11111111111 False 111.111.111-11
98765432100 98765432100 False 987.654.321-00
529.982.247-25 52998224725 True 529.982.247-25

Conclusão

Com este script, você automatiza a auditoria de qualidade de dados de CPF em questão de segundos, garantindo conformidade e precisão nos registros da sua empresa. A validação algorítmica dos dígitos verificadores e a formatação padronizada são passos essenciais para manter a integridade do banco de dados.