1
resposta

Erro ao gerar boxplot de grupos

Oi pessoal! Alguém pode me ajudar nisso?

Executo os comandos e só gera o boxplot de imóveis do tipo 'Quitinete'.

dados_new = pd.DataFrame()

for tipo in grupo_tipo.groups.keys():
    eh_tipo = dados['Tipo'] == tipo
    nao_eh_outlier = (dados['Valor'] >= limite_inferior[tipo]) & (dados['Valor'] <= limite_superior[tipo])
    selecao = eh_tipo & nao_eh_outlier 
    dados_selecao = dados[selecao] 
    dados_new = pd.concat([dados_new, dados_selecao])

dados_new.boxplot(['Valor'], by = ['Tipo'])

O resultado foi esse:

![Resultado do Boxplot](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )

Rodei o comando unique para verificar os tipos de imóveis no dados_new, mas só há 'Quitinete':

dados_new['Tipo'].unique()

![Tipos de imóveis no dados_new](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )

1 resposta

Olá Estudante, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

O código compartilhado por você está correto. Realizando testes em conjunto com o código utilizado na aula, foi apresentado o resultado esperado, criando um boxplot com cada tipo de imóvel. Isso indica que o DataFrame grupo_tipo criado em seu código está incompleto, faltando variáveis (colunas).

Peço que realize novamente a criação do DataFrame grupo_tipo. Deixo abaixo o código completo, basta copiá-lo para uma célula, e executar o código por completo, clicando em "Cell" na parte superior da tela e no menu suspenso que será aberto clique em "Run All":

%matplotlib inline 
import pandas as pd 
import matplotlib.pyplot as plt 
plt.rc('figure', figsize = (14,6)) 
 
dados = pd.read_csv('dados/aluguel_residencial.csv', sep= ';') 
grupo_tipo = dados.groupby('Tipo')['Valor'] 
 
Q1 = grupo_tipo.quantile(.25) 
Q3 = grupo_tipo.quantile(.75) 
IIQ = Q3 - Q1 
limite_inferior = Q1 - 1.5 * IIQ 
limite_superior = Q3 + 1.5 * IIQ 
  
dados_new = pd.DataFrame() 
  
for tipo in grupo_tipo.groups.keys(): 
    eh_tipo = dados['Tipo'] == tipo 
    nao_eh_outlier = (dados['Valor'] >= limite_inferior[tipo]) & (dados['Valor'] <= limite_superior[tipo]) 
    selecao = eh_tipo & nao_eh_outlier 
    dados_selecao = dados[selecao] 
    dados_new = pd.concat([dados_new, dados_selecao]) 
 
dados_new.boxplot(['Valor'], by = ['Tipo']) 
 
 

Após realizar a execução do código, basta dar continuidade na aula Identificando e Removendo Outliers por Grupo a partir do minuto 10:55

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!