%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
plt.rc('figure',figsize = (14,6))
datos = pd.read_csv('alquiler_residencial1.csv',sep = ';')
datos.head(10)
datos.boxplot(['Valor'])
datos[datos['Valor'] >= 500000]
valor = datos['Valor']
Q1 = valor.quantile(.25)
Q3 = valor.quantile(.75)
IIQ = Q3 - Q1
limite_inf = Q1 - 1.5 * IIQ
limite_sup = Q3 + 1.5 * IIQ
seleccion = ((valor >= limite_inf) & (valor <= limite_sup))
datos_new = datos[seleccion]
datos_new.boxplot(['Valor'])
datos.hist(['Valor'])
datos_new.hist(['Valor'])
datos.boxplot(['Valor'],by = ['Tipo'])
grupo_tipo = datos.groupby('Tipo')['Valor']
type(grupo_tipo)
pandas.core.groupby.generic.SeriesGroupBy
grupo_tipo.groups
Q1 = grupo_tipo.quantile(.25)
Q3 = grupo_tipo.quantile(.75)
IIQ = Q3 - Q1
limite_inf = Q1 - 1.5 * IIQ
limite_sup = Q3 + 1.5 * IIQ
Q1
limite_inf
datos_new = pd.DataFrame()
for tipo in grupo_tipo.groups.keys():
eh_tipo = datos['Tipo'] == tipo
eh_dentro_limite = (datos['Valor'] >= limite_inf[tipo]) & (datos['Valor'] <= limite_sup[tipo])
seleccion = eh_tipo & eh_dentro_limite
datos_seleccion = datos[seleccion]
datos_new = pd.concat([datos_new,datos_seleccion])
datos_new.boxplot(['Valor'],by = ['Tipo'])
datos_new.to_csv('alquiler_residencial_sin_outliers.csv',sep = ';',index = False)
#**Extra**
%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
plt.rc('figure',figsize = (25,20))
datos = pd.read_csv('alquiler_residencial_sin_outliers.csv',sep = ';')
datos.head(10)
area = plt.figure()
g1 = area.add_subplot(2,2,1)
g2 = area.add_subplot(2,2,2)
g3 = area.add_subplot(2,2,3)
g4 = area.add_subplot(2,2,4)
#Crear Graficos
g1.scatter(datos.Valor,datos.Area)
g1.set_title('VAlor por Area')
g2.hist(datos.Valor)
g2.set_title('Histograma')
datos_g3 = datos.Valor.sample(100)
datos_g3.index = range(datos_g3.shape[0])
g3.plot(datos_g3)
g3.set_title('Muestra de columna "Valor"')
grupo = datos.groupby('Tipo')['Valor']
label = grupo.mean().index
valores = grupo.mean().values
g4.bar(label,valores)
g4.set_title('Valor medio por Tipo')
area
area.savefig('graficos.png',dpi = 300, bbox_inches = 'tight')