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!
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!
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)
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
Espero ter ajudado e bons estudos