1
resposta

dúvida em outra forma de fazer (erro)

Porque não posso fazer da seguinte maneira? Retorna um erro sempre.

selecao = (10 < alunos['Idade'])  < 20 | (alunos['Idade'] > 40)
alunos_idade = alunos[selecao]

O Python não aceita essa sintaxe matemática?

Agradeço!

1 resposta

Oi Vitório,

Acredito que o que você está tentando fazer é uma comparação como a do exemplo abaixo:

10 <= x <= 20 ou x > 70

Em Python isso é possível:

for i in range(10,110,10):
    if 10<=i<=20 or i>70:
        print(i)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Usando DataFrames do pandas isso dá erro porque cada comparação gera uma Series booleana. Para conseguir o mesmo resultado da seleção do exemplo anterior você deve proceder como abaixo.

import pandas as pd

alunos = pd.DataFrame({'Idade': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]})

selecao = (alunos['Idade']>=10) & (alunos['Idade']<=20) | (alunos['Idade']>70)
alunos_idade = alunos[selecao]
alunos_idade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Espero ter ajudado e bons estudos