<jupyter_start><jupyter_text>Relatório de Análise VIII - Identificando e Removendo Outliers<jupyter_code>%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
plt.rc('figure', figsize = (14, 6))<jupyter_output><empty_output><jupyter_text><jupyter_code>dados = pd.read_csv("aluguel.csv", sep = ';')
dados.head()
dados.boxplot(['Valor'])
dados[dados['Valor'] >= 500000]
valor = dados['Valor'] #Crio uma série para facilitar a análise
Q1 = valor.quantile(.25)
Q1

Q3 = valor.quantile(.75)
IIQ = Q3 - Q1
limite_inf = Q1 - 1.5 * IIQ
limite_sup = Q3 + 1.5 * IIQ
selecao = (valor >= limite_inf) & (valor <= limite_sup)
dados_new = dados[selecao]
dados_new
dados_new.boxplot(['Valor'])
dados.hist(['Valor'])
dados_new.hist(['Valor'])<jupyter_output><empty_output><jupyter_text>Parte II<jupyter_code>dados_ref = pd.read_csv('aluguel_refinado.csv', sep = ';')
dados_ref
dados_ref.boxplot(['Valor'], by = 'Tipo')
grupo_tipo = dados_ref.groupby('Tipo')
grupo_tipo
grupo_tipo = dados_ref.groupby('Tipo')['Valor']
grupo_tipo
grupo_tipo.groups
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
Q1
limite_superior['Apartamento']
for tipo in grupo_tipo.groups.keys():
    print(tipo)
dados_new = pd.DataFrame()
for tipo in grupo_tipo.groups.keys():
    eh_tipo = dados['Tipo'] == tipo
    eh_dentro_limite = (dados['Valor'] >= limite_inferior[tipo]) & (dados['Valor'] <= limite_superior[tipo])
    selecao = eh_tipo & eh_dentro_limite
    dados[selecao]
    dados_selecao = dados[selecao]
    dados_new = pd.concat([dados_new, dados_selecao])
dados_new.boxplot(['Valor'], by = ['Tipo'])
dados_new.to_csv('aluguel_residencial_sem_outliers.csv', sep = ';', index = False)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.15522054718034617, 'fraction_numerical': 0.021775544388609715, 'mean_word_length': 6.05511811023622, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 16, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '382961', 'license': 'MIT', 'n_tokens_mistral': 808, 'n_tokens_neox': 781, 'n_words': 129, 'path': 'DS_02_Python_Pandas_Tratando_e_Analisando_Dados/Aula9_removendo_outliers.ipynb', 'repo_name': 'rafaelborto/DataScience', 'size': '1791'}