1
resposta

MANIPULAÇÃO DE BASE DE DADOS

recebi uma base em txt, porém metade das informações veio ordenada de forma errada. como posso corrigir essa base, deslocando essas informações para as posições corretas e assim ter uma base que possa ser trabalhada.

no exemplo abaixo, mostro que metade das informações aparece como se fosse uma segunda linha, mas na verdade é continuação da linha de cima. que programação posso usar no SQL ou SAS para fazer todas essas linhas voltarem para o lugar certo?

ex. de como esta a base:

Nome,estado,canal,produto,valor,status
bruno,SP,Direto
carro,10,ativo
debora,RJ,Indireto,
moto,20,ativo
luis,MG,Direto,
carro,30,inativo
1 resposta

Oii, tudo bem?

Peço desculpas pela demora em obter o retorno.

Pode-se corrigir essa desordem das informações com a linguagem Python. É importante tratarmos dessa base de dados antes de importar para o SQL ou SAS, uma vez que essas linguagens não são apropriadas para lidar com correções em arquivos não estruturados.

Abaixo segue um código de exemplo:

# Abre o arquivo original para leitura 
with open('base.txt', 'r') as arquivo:
 linhas = arquivo.readlines() 

# Lista para armazenar as linhas corrigidas
linhas_corrigidas = [] 

# Loop para percorrer as linhas do arquivo 
i = 0
 while i < len(linhas): 
linha_atual = linhas[i].strip() 
if linha_atual.count(',') < 5: # Verifica se a linha não possui todos os campos
proxima_linha = linhas[i + 1].strip()
 linha_corrigida = linha_atual + proxima_linha 
linhas_corrigidas.append(linha_corrigida)
 i += 2 
else: 
linhas_corrigidas.append(linha_atual) 
i += 1 

# Abre um novo arquivo para escrita e insere as linhas corrigidas
 with open('base_corrigida.txt', 'w') as arquivo_corrigido: arquivo_corrigido.write('\n'.join(linhas_corrigidas))

Caso queira aprofundar mais na linguagem indico a seguinte formação da Alura:

Também é preciso ressaltar que como é um projeto externo ao do curso não temos acesso ao cenário no qual esses dados estão envolvidos, então outros testes deverão ser feitos. Porém, espero ter te ajudado a dar um salto inicial para a resolução.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!