Saudações! Eu estou fazendo um projeto para colocar em prática o que aprendi. Nesse meu projetinho, eu também tenho que remover outliers, e portanto agrupei meu dataset com groupby()
. Meu projeto consiste numa análise de apartamentos para alugar na minha cidade, e decidi os agrupar por bairro. Eles têm os seguintes atributos: Valor, Área, Nº de Vagas e Nº de Quartos. Eu quero fazer esse mesmo procedimento ensinado para todos os atributos, porém, na aula ele ensina apenas para um. Imagino que para fazer para mais, seja necessário que exista mais outro for
para iterar pelas colunas (atributos)
bairros = dados.groupby(by = "Bairro")
Q1 = bairros.quantile(0.25)
Q3 = bairros.quantile(0.75)
IIQ = Q3 - Q1
lim_inf = Q1 - 1.5*IIQ
lim_sup = Q3 + 1.5*IIQ
aluguel = pd.DataFrame()
for bairro in bairros.groups.keys():
qual_bairro = dados["Bairro"] == bairro
dentro = (dados["Valor"] >= lim_inf[bairro] & dados["Valor"] <= lim_sup[bairro])
selecao = qual_bairro & dentro
df_selecao = dados[selecao]
aluguel = pd.concat([aluguel, df_selecao])
Detalhe: por algum motivo esse código não funciona também. O erro que dá se lê: "ufunc 'bitwise_and' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''". Não sei muito bem o porquê do erro, mas ficam sendo essas duas dúvidas no ar. Obrigado pela ajuda!