1
resposta

Desafio - resolução

#Desafio 1

#criando coluna
dados['Pontos_extras'] = dados['Notas'] * 0.4
dados

#Desafio 2

#usando o método assign para criar uma coluna nova somando a nota com os pontos extras
dados = dados.assign(Notas_finais = dados.Notas + dados.Pontos_extras)

#algumas notas finais superaram a nota 10
#essa função lamba é para corrigir as notas acima de 10 e deixá-las só com 10
dados['Notas_finais'] = dados.Notas_finais.apply(lambda x: x if x <= 10 else x - (x - 10))
dados

#Desafio 3

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

#Desafio 4

dados.query('Aprovado == False and Aprovado_final == True')
1 resposta

Olá, Vinicius! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de manipulação de DataFrames para criar novas colunas, utilizou muito bem o método assign para somar notas e pontos extras e ainda compreendeu a importância de aplicar funções lambda para corrigir valores que ultrapassam o limite máximo.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é simplificar a correção das notas finais usando a função clip, que já trata limites de valores de forma direta. Assim:

# corrigindo notas finais acima de 10 com clip
dados['Notas_finais'] = (dados.Notas + dados.Pontos_extras).clip(upper=10)

# criando coluna de aprovação final
dados['Aprovado_final'] = dados['Notas_finais'] >= 6

# filtrando alunos que não foram aprovados inicialmente mas passaram na nota final
dados.query('Aprovado == False and Aprovado_final == True')

Isso faz com que o código fique mais legível e aproveite recursos nativos do Pandas.

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!