Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Método alternativo

Usando o seguinte código obtemos o mesmo resultado:

texto = dados_normal_listings.loc[:, 'imovel_caracteristicas_propriedade'].apply(lambda x : x[1:-1].replace("'", "").split(', '))

Estou percebendo que usar o lambda costuma resultar em um código mais limpo, no exemplo da aula temos que ficar colocando str a cada vez que vamos chamar uma função de string, e pelo menos pra mim isso parece meio bagunçado.

Minha dúvida fica pela questão de performance. Eu não sei qual método seria mais rápido, mas supondo que seja pouca diferença, devemos optar pelo que tem melhor desempenho, ou pelo que fica mais simples de entender? (Supondo que o mais lento seja o código mais limpo)

2 respostas
solução!

No geral o lambda nao deveria deixar o codigo mais lento. Mas eh necessario entender o que cada funcao no lambda fica responsavel. Pode ser que alguma funcao no lambda esteja percorrendo uma mesma lista varias vezes por exemplo. Entao eh necessario sempre tomar cuidado com isso e debugar para ter certeza que uma refatoracao de codigo nao tenha mudado a forma de percorrer determinado objeto. (lista, banco de dados, array, etc).

Mas entre codigo mais limpo e performance. Sempre opte pela performance. Mas acredito que sao conceitos que caminham juntos e nao deve atrapalhar um ao outro.

Eu fiz um teste com o %%timeit e o lambda ficou mais rápido, só tinha ficado essa dúvida sobre performance/código limpo que vc respondeu. Obrigado!