2
respostas

[Dúvida] Desafio Aula 1 - Tratar campos de uma Tabela

Ao tratar uma tabela para um sistema de recomendações da Aula 1 de Criação de um Sistema de Recomendações, esbarrei em uma dificuldade que não consigo resolver. A princípio atribui o caminho da tabela ==> caminho_Data_by_Artista = "dbfs:/FileStore/tables/Curso 4/data_by_artist.csv", verifiquei o tipo do campo ==> type(df_Artista.artists.iloc[0]) que me retornou uma String , joguei o conteudo da tabela em uma amostra ==> Amostra_Artista = df_Artista.iloc[0:9] e ao tratar o campo da amostra esbarrei na seguinte situação:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Preciso tratar o campo removendo as aspas tripas, duplas e simples, mas não estou conseguindo concluir o codigo. Apesar de rodar ele, não remove as aspas ==> Amostra_Artista['artists'] = Amostra_Artista.artists.str.replace(" """|" " , " ") . Já tentei várias situações e não resolveu. Alguém poderia me ajudar como ficaria a sintaxe da função replace

2 respostas

Oii, Luiz! Tudo bem?

O problema pode estar relacionado a expressão regular utilizada na função replace não está capturando todas as aspas que você deseja remover. As aspas triplas (""") e aspas duplas ("") são compostas por três e dois caracteres, respectivamente, e a expressão regular que você está usando (" """|" "") só captura aspas simples (').

Para resolver esse problema, você precisa usar uma expressão regular que capture aspas de diferentes tamanhos. Segue um exemplo de uma expressão:

r'"(.*?)"'

Essa expressão regular captura qualquer string entre aspas, independentemente do tamanho das aspas.

Pude ver que você terminou o curso, certo? Caso tenha resolvido o problema e se sinta confortável, compartilhe conosco a sua solução.

Abraço!

Terminei sim o modulo em questão, pois verifiquei como o Instrutor solucionou o problema. A principio ele explicou o codigo de uma maneira e na solução fez de outra maneira.

Esta solução foi aplicada em aula com mais complexidade

Tabela Data

df_data['artists'] = df_data.artists.str.replace("[|]|'", " ")

df_data['artists'] = df_data.artists.str.replace(",",";")

Esta solução foi passada no notebbok para tirar duvidas

Tabela dos Artistas

remoção dos mesmos caracteres

df_Artista['artists'] = df_Artista['artists'].str.replace('[','')

df_Artista['artists'] = df_Artista['artists'].str.replace(']','')

df_Artista['artists'] = df_Artista['artists'].str.replace("'", "")

df_Artista['artists'] = df_Artista['artists'].str.replace('"', '')

df_Artista['artists'] = df_Artista['artists'].str.replace(",", ";")

Apesar de escrever mais codigo achei mais facil esta solução