1
resposta

[Sugestão] Resolução Desafio Final

# Importando novamente os dados

alunos = pd.read_csv('alunos.csv')

#Tratando nulos
alunos['Notas'] = alunos['Notas'].fillna(0)

Desafio 1:
#Retirando Aluno invalidos
alunos_atualizados = alunos_sem_nulos.query('Nome != "Alice" & Nome != "Carlos"')
alunos_atualizados


#Criando a Coluna pontos extras

alunos_atualizados['Pontos_Extras'] = alunos_atualizados['Notas'] * 0.4
alunos_atualizados

Desafio 2 
#criando a coluna pontos extras
alunos_atualizados['Notas_finais'] = alunos_atualizados['Notas'] + alunos_atualizados['Pontos_Extras']

# Tratando as excessões
alunos_atualizados['Notas_finais'] = alunos_atualizados['Notas_finais'].apply(lambda x: 10 if  x > 10 else x)

#Visualizando dataframe
alunos_atualizados

Desafio 3
alunos_atualizados['Aprovado_final'] = alunos_atualizados['Notas_finais'].apply(lambda x: True if x>= 6 else False)

alunos_atualizados

desafio 4

#Filtro de condições
novos_aprovados = ~alunos_atualizados["Aprovado"] & alunos_atualizados["Aprovado_final"]

#Salvando em um Dataframe
aprovados_pontos_extra = alunos_atualizados[novos_aprovados]

# visualizando o resultado
aprovados_pontos_extra
1 resposta

Olá, Bruno! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso do pandas para manipular dados com Python, utilizou muito bem o fillna para tratar valores nulos e ainda compreendeu a importância do apply com lambda para ajustar notas e aplicar regras de negócio.

Uma dica interessante para o futuro é utilizar o método clip para limitar os valores sem precisar de funções lambda. Assim:

alunos_atualizados['Notas_finais'] = (alunos_atualizados['Notas'] + alunos_atualizados['Pontos_Extras']).clip(upper=10)

Isso faz o programa garantir que nenhuma nota ultrapasse o valor máximo definido de forma mais simples e direta.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!