Se modificarmos ligeiramente o exemplo da aula:
- Adicionando informações Atividade: Classificando Alunos
df = pd.DataFrame(
{
'alunos': ['Juca', 'Zeca', 'Ana', 'Rita', 'Lia', 'Beto'],
'notas': [8., 6.999999999, 10., 7., 6., 0.]
}
).set_index('alunos')
notas = [0,5.9,6.9,11]
rotulos = ['Reprovado','Recuperacao','Aprovado']
df['resultado'] = pd.cut(x=df.notas, bins=notas, labels=rotulos, include_lowest=True)
df
Claramente eh mais simples, excluir o limite superior, para não precisar se preocupar com arredondamento. Na minha cabeça faria mais sentido:
import pandas as pd
from pandasgui import show
import numpy as np
pd.options.display.float_format = '{:,.12f}'.format
menor_valor = np.finfo(np.float32).eps
notas = [0,6,7,10 +menor_valor ]
rotulos = ['Reprovado','Recuperacao','Aprovado']
df['resultado'] = pd.cut(x=df.notas, bins=notas, labels=rotulos, include_lowest=True, right=False)
df
Fica a sugestão!