DEV Community

Ana Carolina Fonseca Barreto for WoMakersCode

Posted on

Manipulação de dados desnormalizados em Python: Utilizando re e lstrip()

O tratamento de dados desnormalizados é essencial para garantir a qualidade e a consistência dos dados antes de realizar análises ou modelagem. Neste artigo, exploraremos duas ferramentas poderosas em Python para lidar com dados desnormalizados: o módulo re para manipulação de strings usando expressões regulares e o método lstrip() para remover espaços em branco e zeros à esquerda de uma string.

Manipulação de strings com o módulo re

O módulo re em Python fornece suporte para expressões regulares, permitindo a busca e manipulação de padrões em strings. Isso é útil para limpar e transformar dados desnormalizados, especialmente quando os dados estão em formatos complexos ou inconsistentes.

Padrão de expressão regular:

Antes de prosseguirmos para os exemplos, vamos analisar o padrão de expressão regular utilizado para identificar e normalizar números de telefone:

import re padrao = re.compile(r'\(?(\d{3})\)?[-\s]?(\d{4})[-\s]?(\d{4})') 
Enter fullscreen mode Exit fullscreen mode

Explicação do padrão:

  1. \(?(\d{3})\)? corresponde a um código de área de telefone de três dígitos opcional, que pode estar entre parênteses ou não. O \d{3} corresponde a três dígitos numéricos (0-9) para o código de área.

  2. [-\s]? corresponde a um hífen - ou a um espaço em branco \s, que podem ou não estar presentes após o código de área.

  3. (\d{4}) corresponde aos próximos quatro dígitos do número de telefone, que representam o prefixo do número.

  4. [-\s]? novamente, corresponde a um hífen - ou a um espaço em branco \s, que podem ou não estar presentes após o prefixo do número.

  5. (\d{4}) e por fim, corresponde aos últimos quatro dígitos do número de telefone, que representam a parte final do número.

Exemplo de uso:

Agora que entendemos o padrão de expressão regular, vamos aplicá-lo para normalizar números de telefone em diferentes formatos:

import re # String com números de telefone em diferentes formatos texto = "(123) 4156-7890, 123 4156 7890, 123-4156-7890" # Padronizar o formato dos números de telefone padrao = re.compile(r'\(?(\d{3})\)?[-\s]?(\d{4})[-\s]?(\d{4})') numeros_telefone = padrao.findall(texto) # Imprimir os números de telefone normalizados for numero in numeros_telefone: print(f"({numero[0]}) {numero[1]}-{numero[2]}") 
Enter fullscreen mode Exit fullscreen mode

Resultado após o tratamento:

(123) 4156-7890 (123) 4156-7890 (123) 4156-7890 
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, usamos uma expressão regular para identificar os números de telefone em diferentes formatos e os normalizamos para o formato (123) 4156-7890.

Remoção de dados extras à esquerda com lstrip()

O método lstrip() é uma função de string em Python que remove espaços em branco e zeros à esquerda de uma string. Isso é útil para limpar dados desnormalizados, especialmente quando há inconsistências e informações extras adicionadas à esquerda para preencher todos os caracteres de um campo.

Exemplo de uso:

Suponha que tenhamos uma lista de nomes de usuários, mas alguns deles possuem espaços em branco e zeros extras à esquerda. Podemos usar o método lstrip() para resolver esse problema.

# Lista de nomes de usuários com espaços em branco e 0 à esquerda nomes_usuarios = [" usuario1", "usuario2", "000usuario3"] # Remover espaços em branco dos nomes de usuários nomes_limpos = [nome.lstrip() for nome in nomes_usuarios] # Remover 0 à esquerda dos nomes de usuários nomes_limpos = [nome.lstrip('0') for nome in nomes_limpos] # Imprimir os nomes de usuários limpos for nome in nomes_limpos: print(nome) 
Enter fullscreen mode Exit fullscreen mode

Resultado após o tratamento:

usuario1 usuario2 usuario3 
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, usamos lstrip() para remover espaços em branco e lstrip('0') para zeros à esquerda dos nomes de usuários, garantindo consistência nos dados.

Conclusão

O tratamento de dados desnormalizados é uma etapa fundamental na preparação dos dados para análise e modelagem.
Nesse artigo vimos um pouco sobre o módulo re que é como uma varinha mágica, nos ajudando a encontrar e transformar padrões complexos em algo mais organizado. E o método lstrip() que dá aquela força com a limpeza de informações extras à esquerda.
Além dessas opções, existem outras abordagens disponíveis para lidar com dados desnormalizados:

Módulos de Processamento de Dados: Bibliotecas como pandas oferecem uma variedade de funções para limpeza e transformação de dados, sendo amplamente utilizadas em análise de dados.

Limpeza Manual: Em alguns casos, especialmente quando os dados apresentam padrões complexos, pode ser necessário realizar a limpeza manualmente, utilizando estruturas de controle em Python.

Bibliotecas de Aprendizado de Máquina: Para análise de dados voltada para aprendizado de máquina, bibliotecas como scikit-learn fornecem funcionalidades para lidar com dados desnormalizados, como a codificação de variáveis categóricas.

A escolha da abordagem mais adequada dependerá da natureza dos dados, dos requisitos do projeto e das preferências individuais.

Top comments (0)