2
respostas

Erro na criação de selecao

Preciso de uma ajuda. Ao tentar rodar o código para criar a variável 'selecao', obtive o seguinte erro:


ValueError Traceback (most recent call last) in ----> 1 selecao = (valor >=limite_inferior) & (valor <= limite_superior) 2 dados_new = dados[selecao]

D:\Users\55189\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'

D:\Users\55189\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,)

2 respostas

Olá, Glauber, tudo bem?

Você conseguiria compartilhar os trechos do código antes desse erro, os da variáveis valor, limite_inferior e limite_superior, e o que eles geram?

Acho que assim conseguiria te ajudar melhor nessa questão.

Fico no aguardo!

Forte abraço!

Tudo bem, prof.

Consegui resolver meu problema editando o código de linhas anteriores.

O problema estava nas variáveis Q1 e Q3, que estavam definidas dessa forma:

Q1 = dados.quantile(.25)

Q3 = dados.quantile(.75)

IIQ = Q3 - Q1

limite_inferior = Q1 - 1.5 * IIQ

limite_superior = Q3 + 1.5 * IIQ

*Consegui resolver editando para: *

Q1 = dados.Valor.quantile(.25)

Q3 = dados.Valor.quantile(.75)

IIQ = Q3 - Q1

limite_inferior = Q1 - 1.5 * IIQ

limite_superior = Q3 + 1.5 * IIQ