# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     language: python
#     name: python3
# ---

# # Preparación de datasets
#
# En este pequeño script tomamos el dataset original de kaggle [House Sales in King County](https://www.kaggle.com/harlfoxem/housesalesprediction) y lo dividimos en 3 ficheros:
# - historic: simulará la base de datos histórica de ventas (es decir, casas ya vendidas de las que disponemos de todas las features y del precio al que se vendieron),
# - to_stream: servirá como origen de datos para un generador pseudoaleatorio de "casas vendidas" (también disponemos de todas las features y del precio al que se acaba de vender, pero en el momento de entrar al stream no han alimentado aún el modelo),
# - unknown_target: simulará una base de datos de casas actualmente en venta (disponemos de las features pero aún no se han vendido y por tanto no conocemos su target.
#
# Cada dataset contendrá, respectivamente, un 40%, 50% y 10% del original.
#
# Hemos hecho un pequeño descarte inicial de varias columnas para simplificar el ejercicio.
#

import pandas as pd
import numpy as np
from ejercicios.houses import SEED, HISTORIC, TO_STREAM, UNKNOWN
np.random.seed(SEED)

# +
ds = pd.read_csv('data/kc_house_data.csv')
features = list(ds.columns)
features.remove('date')
features.remove('condition')
features.remove('grade')
features.remove('zipcode')
features.remove('lat')
features.remove('long')
features.remove('sqft_basement')
features.remove('sqft_above')
features.remove('sqft_living15')
features.remove('sqft_lot15')
features.remove('yr_renovated')

ds = ds[features]

# -

mask = np.random.rand(len(ds)) < 0.5
static = ds[mask]
to_stream = ds[~mask]

# +
mask = np.random.rand(len(static)) < 0.8
historic = static[mask]
unknown_target = static[~mask]

features.remove('price')
unknown_target = unknown_target[features]
# -

historic.to_csv(HISTORIC, index=False)
to_stream.to_csv(TO_STREAM, index=False)
unknown_target.to_csv(UNKNOWN, index=False)



StarcoderdataJupyterScriptsDedupFiltered