Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Desafio: bora praticar?

import pandas as pd
import numpy as np
url = 'https://raw.githubusercontent.com/alura-cursos/pandas-conhecendo-a-biblioteca/main/desafios/alunos.csv'
dados = pd.read_csv(url, sep=',')
dados['Pontos_extras'] = dados['Notas'].apply(lambda x: x*0.4)
dados['Notas_finais'] = dados['Notas'] + dados['Pontos_extras']
dados['Aprovado_final'] = dados['Notas_finais'] >= 6

condicoes = [
    dados['Aprovado'],
    (~dados['Aprovado']) & (dados['Aprovado_final'])
]
selecao = [
    'O aluno já estava aprovado',
    'O aluno estava reprovado, mas foi aprovado após os pontos extras'
]

dados['Selecao'] = np.select(condicoes, selecao, default='O aluno continuou reprovado')
dados.head()
1 resposta

Oi, Paulo! Como vai?

Seu código ficou bem estruturado para praticar a manipulação de dados com Pandas. Você leu a base com read_csv(), criou novas colunas com os pontos extras e a nota final, além de usar np.select() para classificar a situação de cada estudante. Essa solução mostra bem como combinar regras condicionais com novas colunas em um DataFrame.

Dica: para deixar a leitura ainda mais clara, você pode separar os textos de classificação em mensagens mais curtas e conferir a distribuição dos resultados com value_counts():

dados['Selecao'].value_counts()

Esse comando ajuda a visualizar quantos alunos já estavam aprovados, quantos passaram após os pontos extras e quantos continuaram reprovados. Qual etapa você achou mais interessante: criar as novas colunas ou montar as condições com np.select()?

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