Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro com selecao de outliers

Meu código:

valor = dados['Valor']
valor
Q1 = valor.quantile(.25)
Q3 = valor.quantile(.75)
IIQ = Q3 - Q1
LimInf = Q1 - 1,5 * IIQ
LimSup = Q3 + 1,5 * IIQ
selecao = (valor >= LimInf) & (valor <= LimSup)
selecao

Está dando o seguinte erro:

ValueError                                Traceback (most recent call last)
<ipython-input-23-fc2b0fdabec5> in <module>
----> 1 selecao = (valor >= LimInf) & (valor <= LimSup)
      2 selecao

~\anaconda3\envs\alura_pandas\lib\site-packages\pandas\core\ops.py in wrapper(self, other, axis)
    877 
    878             with np.errstate(all='ignore'):
--> 879                 res = na_op(values, other)
    880             if is_scalar(res):
    881                 raise TypeError('Could not compare {typ} type with Series'

~\anaconda3\envs\alura_pandas\lib\site-packages\pandas\core\ops.py in na_op(x, y)
    814             try:
    815                 with np.errstate(all='ignore'):
--> 816                     result = getattr(x, name)(y)
    817                 if result is NotImplemented:
    818                     raise TypeError("invalid type comparison")

ValueError: operands could not be broadcast together with shapes (21826,) (2,) 

Porém quando faço com o código igual o do professor da certo, o que tem errado?

1 resposta
solução!

Olá Vitor,

Vi no seu código que você está usando vírgulas para escrever os termos numéricos. Isso está ocorrendo no seguinte trecho:

LimInf = Q1 - 1,5 * IIQ
LimSup = Q3 + 1,5 * IIQ

Para fazer o que você pretende, as unidades decimais dos números devem ser separadas com pontos. Assim:

LimInf = Q1 - 1.5 * IIQ
LimSup = Q3 + 1.5 * IIQ

Abs