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.
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")
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.
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.
| 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 |
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.