Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro no FOR

Boa tarde, ao rodar o comando abaixo:

for index, row in nomes.iterrows(): id = row.id_aluno matriculas = row.matriculas for i in range(matriculas): mat = [id, np.random.choice(cursos.index, p = prob)] todas_matriculas.append(mat)

matriculas = pd.DataFrame(todas_matriculas,columns=['id_aluno','id_curso'])

Deu o seguinte erro:

TypeError Traceback (most recent call last) mtrand.pyx in numpy.random.mtrand.RandomState.choice()

TypeError: 'builtin_function_or_method' object cannot be interpreted as an integer

During handling of the above exception, another exception occurred:

ValueError Traceback (most recent call last) in () 3 matriculas = row.matriculas 4 for i in range(matriculas): ----> 5 mat = [id, np.random.choice(cursos.index, p = prob)] 6 todas_matriculas.append(mat) 7

mtrand.pyx in numpy.random.mtrand.RandomState.choice()

ValueError: a must be 1-dimensional or an integer

O que eu faço? :( Acho que está igual ao que foi feito na aula... Aguardo!

1 resposta
solução!

Olá Flávia,

Acredito que o valor de cursos.index não está no formato esperado pelo np.random.choice, verifica se não faltou executar alguma operação em cursos em códigos anteriores, talvez apenas reexecutar tudo do início resolva.

O valor esperado de cursos.index é esse:

print(cursos.index)

# Resultado
Int64Index([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
            20],
           dtype='int64', name='id')

Confere se não é esse o problema, qualquer coisa é só falar!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software