1
resposta

[Dúvida] Desafio

import pandas as pd

url = 'https://raw.githubusercontent.com/alura-cursos/pandas-conhecendo-a-biblioteca/main/desafios/alunos.csv'
df = pd.read_csv(url)

print(df)

# criando coluna pontos extras

df['Pontos_extras'] = df['Notas'] * 0.4
print(df)

df['Notas_finais'] = df['Notas'] + df['Pontos_extras']
print(df)

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

# quando fala em fazer uma seleção, é para usar o método query

selecao = df.query('Aprovado == False and Aprovado_final == True')
print(selecao)

Tudo certo com o código, mas quando somo a nota extra com a nota, para alguns alunos ultrapassa o limite de 10. Gostaria de fazer de tal forma que esse limite não fosse ultrapassado. Como procedo?

1 resposta

Olá Gabriel! Como vai?

Para limitar a nota máxima à 10, podemos utilizar o método clip do pandas. Esse método "poda" os valores de uma Series, e aceita parâmetros tanto para valor mínimo quanto para máximo. No nosso caso, utilizamos o parâmetro upper=10, que indica que 10 será o valor máximo.

O momento de utilizá-lo é após a soma da nota inicial com a nota extra, assim:

df['Notas_finais'] = df['Notas'] + df['Pontos_extras']
df['Notas_finais'] = df['Notas_finais'].clip(upper=10)
print(df)

Espero ter ajudado!

Continue praticando.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!