Olá! Segue uma possível resolução do desafio utilizando Pandas.
Primeiro, importamos a biblioteca e lemos o arquivo CSV:
import pandas as pd
dados = pd.read_csv('alunos.csv')
- Criando a coluna
Pontos_extras
Os pontos extras correspondem a 40% da nota atual de cada aluno:
dados['Pontos_extras'] = dados['Notas'] * 0.4
Também poderia ser feito com apply:
dados['Pontos_extras'] = dados['Notas'].apply(lambda x: x * 0.4)
- Criando a coluna
Notas_finais
A nota final será a soma da nota atual com os pontos extras:
dados['Notas_finais'] = dados['Notas'] + dados['Pontos_extras']
- Criando a coluna
Aprovado_final
Se a nota final for maior ou igual a 6, o aluno estará aprovado. Caso contrário, estará reprovado:
dados['Aprovado_final'] = dados['Notas_finais'].apply(lambda x: True if x >= 6 else False)
- Selecionando os alunos que não tinham sido aprovados antes, mas foram aprovados depois dos pontos extras:
dados.query('Aprovado == False & Aprovado_final == True')
Outra forma de fazer a mesma seleção seria:
selecao = (dados['Aprovado'] == False) & (dados['Aprovado_final'] == True)
dados[selecao]
Código completo:
import pandas as pd
dados = pd.read_csv('alunos.csv')
dados['Pontos_extras'] = dados['Notas'] * 0.4
dados['Notas_finais'] = dados['Notas'] + dados['Pontos_extras']
dados['Aprovado_final'] = dados['Notas_finais'].apply(lambda x: True if x >= 6 else False)
dados.query('Aprovado == False & Aprovado_final == True')