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

Cursos repetidos por aluno

Olá, tudo bem?

No exemplo da aula, os cursos são atribuídos aos alunos conforme o número de matrículas. Porém existem alunos que estão matriculados mais de uma vez no mesmo curso. Utilizei o drop_duplicates() mas mesmo assim parece não funcionar.

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)] 
        qtd_matriculas.append(mat) 

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

matriculas = matriculas.drop_duplicates()

Como resolver? Obrigado!

3 respostas
solução!

Luiz,

Por favor poderia tentar com o trecho de código abaixo:

`

matriculas.drop_duplicates(subset =['id_aluno', 'id_curso'], keep = False, inplace = True)

`

Fonte: https://www.geeksforgeeks.org/python-pandas-dataframe-drop_duplicates/

Cleiton, obrigado pela ajuda.

Li o link que você enviou e apenas alterei uma informação. No keep ao invés de colocar False coloquei 'first', pois com o False ele apaga não só os valores duplicados e sim todos os valores dentro dos parâmetros.

Aproveitei também em fiz um check de quantos registros existiam antes e depois do drop_duplicate.

Segue abaixo o código.

l1 = len(matriculas)
l1

matriculas.drop_duplicates(subset =['id_aluno', 'id_curso'], keep = 'first', inplace = True)

l2 = len(matriculas)
l2

Muito obrigado pela ajuda!

Ia fazer essa pergunta também, o código sugerido pelo Cleiton e editado pelo Luis Felipe resolveu o caso.

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