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!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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