1
resposta

Erro no código

from pandas.core.dtypes.cast import maybe_upcast
from sklearn.metrics.pairwise import euclidean_distances


cluster = list(projection_m[projection_m['song']== nome_musica]['cluster_pca'])[0]
musicas_recomendadas = projection_m[projection_m['cluster_pca']== cluster][[0, 1, 'song']]
x_musica = list(projection_m[projection_m['song']== nome_musica][0])[0]
y_musica = list(projection_m[projection_m['song']== nome_musica][1])[0]


distancias = euclidean_distances(musicas_recomendadas[[0, 1]], [[x_musica, y_musica]])
musicas_recomendadas['id'] = dados['id']
musicas_recomendadas['distancias'] = distancias
recomendada = musicas_recomendadas.sorte_values('distancias').head(10)
recomendada
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
C:\Users\GUILHE~1\AppData\Local\Temp/ipykernel_10656/2688943942.py in <module>
      3 
      4 
----> 5 cluster = list(projection_m[projection_m['song']== nome_musica]['cluster_pca'])[0]
      6 musicas_recomendadas = projection_m[projection_m['cluster_pca']== cluster][[0, 1, 'song']]
      7 x_musica = list(projection_m[projection_m['song']== nome_musica][0])[0]

IndexError: list index out of range
1 resposta

Olá, Guilherme, tudo bem?

Esse erro geralmente ocorre quando estamos tentando acessar um elemento em uma lista que está fora do intervalo de índices existentes. No caso, o erro está acontecendo na linha onde você tenta pegar o primeiro elemento ([0]) da lista gerada por list(projection_m[projection_m['song']== nome_musica]['cluster_pca']).

O que poder ter acontecido é que em algum momento de uma etapa anterior, a lista não foi criada corretamente. Portanto, peço que faça uma verificação no dataframe projection_m, se deixou de executar algum passo, ou algum código relacionado a ele.

Uma forma rápida de verificar isso, é acessando o repositório do curso e comparar com o seu código.

Caso surja alguma dúvida, compartilhe no fórum.

Abraços e bons estudos!

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