Parece que o código tem um problema no controle de fluxo das condições if e else. Especificamente, o bloco de if para verificar quando quantidade é menor que 2000 está sendo executado independentemente de outras condições, o que pode gerar resultados inesperados, como adicionar a cor AMARELO várias vezes, ou adicionar a cor AMARELO_CLARO mesmo quando quantidade é maior ou igual a 2000, mas menor que 3000.
Problema:
O primeiro if verifica se a quantidade é maior ou igual a 3000 e, se for, adiciona a cor AMARELO.
O segundo if verifica se a quantidade é menor que 2000 e, se for, adiciona a cor VERMELHO. Este segundo if será executado independentemente da primeira condição, o que pode causar conflitos.
O else será executado quando quantidade for maior ou igual a 2000, mas nunca será executado quando a quantidade for menor que 2000.
Solução:
Você precisa ajustar a lógica para garantir que as condições sejam mutuamente exclusivas e não haja sobreposição no uso das cores. Isso pode ser feito utilizando uma estrutura if-elif-else, onde as condições são verificadas de forma hierárquica e somente uma delas será executada.
Código corrigido:
cores = []
for i in frutas.index:
if frutas.loc[i, "quantidade"] >= 3000:
cores.append(AMARELO)
elif frutas.loc[i, "quantidade"] < 2000:
cores.append(VERMELHO)
else:
cores.append(AMARELO_CLARO)