#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Nov 15 11:30:36 2021

@author: mydoctor
"""

# Carga de librerías
import os
import pandas as pd
import numpy as np

# Definición de la ruta de trabajo
os.chdir(r'/home/mydoctor/Documents/03.Trabajos/25.Bootcamp Cámara Comercio Bilbao (310h) 2021-11/Modulo 0 - Introducción/Modificaciones basicas Python')

# 1. Cargar los datos de Train.
train=pd.read_csv("train.csv",sep=';',encoding='latin-1')
train

train.dtypes


# 2. En la variable “MSZoning”, del valor “C (all)” eliminar el “ (all)” (sustituirlo por “”).
train['MSZoning'].value_counts()

train["MSZoning"]=train["MSZoning"].astype('str')
train["MSZoning"]=train["MSZoning"].str.replace("(all)","")
train['MSZoning'].value_counts()
# ¿Qué ha pasado? ¿Funciona?

train["MSZoning"]=train["MSZoning"].str.replace("\(all\)","")
train["MSZoning"]=train["MSZoning"].str.replace(r"\s*\([^()]*\)","")

#3. Comprobar que se ha realizado correctamente el cambio.
train['MSZoning'].value_counts()

# 5. Crear una nueva variable que se llame Crisis.
train['Crisis'] = ''

# 6. Transformar la variable anterior para determinar 
# (Debe tomar los valores Sí y No), basándose en la variable “YrSold”, 
# si la casa se vendió en el periodo precrisis (antes de 2008) o durante la crisis (a partir de 2008).
train['Crisis'] = train['Crisis'].astype('bool')
train.dtypes

train['Crisis'][train['YrSold'] < 2008] = False
train['Crisis'][train['YrSold'] >= 2008] = True
# Compruebo
train [['YrSold', 'Crisis']]

# Otra manera, sin usar booleanos
train['Crisis2'] = ''
train['Crisis2'] = train['Crisis'].astype('str')
train.dtypes

train['Crisis2'][train['YrSold'] < 2008] = 'No'
train['Crisis2'][train['YrSold'] >= 2008] = 'Sí'

# Compruebo
train [['YrSold', 'Crisis', 'Crisis2']]

# 8.Crear un nuevo grupo de datos con las 10 casas más caras, en función de la variable “SalePrice”.
Top10 = train.SalePrice.sort_values(ascending=False).head(10)

# 9. Determinar la calle en la que se encuentra la casa más cara.
train['Street'][train['SalePrice']==train['SalePrice'].max()]

# 10. Crear una variable llamada “Reforma” y que muestre los años que pasaron entre la última reforma y la venta (YrSold-YearRemodAdd).
train ['Reforma'] = train ['YrSold'] -  train ['YearRemodAdd']
#Comprobación
train [['YrSold', 'YearRemodAdd', 'Reforma']]

# 11. Guardar los datos, write.csv (datos, “trainmod.csv”, row.names=FALSE).
train.to_csv('trainmod.csv')
# Por defecto guarda el csv con separador = ,
# Vamos a guardar el csv con otro separador
train.to_csv('trainmod2.csv', sep = "|")

