diff --git a/project.es.ipynb b/project.es.ipynb
new file mode 100644
index 000000000..ba9ee9193
--- /dev/null
+++ b/project.es.ipynb
@@ -0,0 +1,965 @@
+{
+ "cells": [
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "innocent-university",
+ "metadata": {},
+ "source": [
+ "# Limpieza de bienes raíces\n",
+ "\n",
+ "Este es un conjunto de datos (dataset) reales que fue descargado usando técnicas de we scraping. La data contiene registros de fotocasa, el cual es uno de los sitios mas populares de bienes raíces en España. Por favor no hagas estos (web scraping) a no ser que sea para propósitos académicos.\n",
+ "\n",
+ "El dataset fue descargado hace algunos años por Henry Navarro y en ningún caso se obtuvo beneficio económico de ello.\n",
+ "\n",
+ "Contiene miles de datos de casas reales publicadas en la web www.fotocasa.com. Tu objetivo es extraer tanta información como sea posible con el conocimiento que tienes hasta ahora de ciencia de datos, por ejemplo ¿cuál es la casa mas cara en todo el dataset?\n",
+ "\n",
+ "Empecemos precisamente con esa pregunta... ¡Buena suerte!\n",
+ "\n",
+ "Let's start with precisely that question... Good luck!"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "multiple-glass",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 00. Lee el dataset assets/real_estate.csv e intenta visualizar la tabla (★☆☆)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "frank-heath",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Unnamed: 0 | \n",
+ " id_realEstates | \n",
+ " isNew | \n",
+ " realEstate_name | \n",
+ " phone_realEstate | \n",
+ " url_inmueble | \n",
+ " rooms | \n",
+ " bathrooms | \n",
+ " surface | \n",
+ " price | \n",
+ " ... | \n",
+ " level4Id | \n",
+ " level5Id | \n",
+ " level6Id | \n",
+ " level7Id | \n",
+ " level8Id | \n",
+ " accuracy | \n",
+ " latitude | \n",
+ " longitude | \n",
+ " zipCode | \n",
+ " customZone | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 153771986 | \n",
+ " False | \n",
+ " ferrari 57 inmobiliaria | \n",
+ " 912177526.0 | \n",
+ " https://www.fotocasa.es/es/comprar/vivienda/ma... | \n",
+ " 3.0 | \n",
+ " 2.0 | \n",
+ " 103.0 | \n",
+ " 195000 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 40,2948276786438 | \n",
+ " -3,44402412135624 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 153867863 | \n",
+ " False | \n",
+ " tecnocasa fuenlabrada ferrocarril | \n",
+ " 916358736.0 | \n",
+ " https://www.fotocasa.es/es/comprar/vivienda/ma... | \n",
+ " 3.0 | \n",
+ " 1.0 | \n",
+ " NaN | \n",
+ " 89000 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 40,28674 | \n",
+ " -3,79351 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 3 | \n",
+ " 153430440 | \n",
+ " False | \n",
+ " look find boadilla | \n",
+ " 916350408.0 | \n",
+ " https://www.fotocasa.es/es/comprar/vivienda/ma... | \n",
+ " 2.0 | \n",
+ " 2.0 | \n",
+ " 99.0 | \n",
+ " 390000 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 40,4115646786438 | \n",
+ " -3,90662252135624 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 152776331 | \n",
+ " False | \n",
+ " tecnocasa fuenlabrada ferrocarril | \n",
+ " 916358736.0 | \n",
+ " https://www.fotocasa.es/es/comprar/vivienda/ma... | \n",
+ " 3.0 | \n",
+ " 1.0 | \n",
+ " 86.0 | \n",
+ " 89000 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 40,2853785786438 | \n",
+ " -3,79508142135624 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 153180188 | \n",
+ " False | \n",
+ " ferrari 57 inmobiliaria | \n",
+ " 912177526.0 | \n",
+ " https://www.fotocasa.es/es/comprar/vivienda/ma... | \n",
+ " 2.0 | \n",
+ " 2.0 | \n",
+ " 106.0 | \n",
+ " 172000 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 40,2998774864376 | \n",
+ " -3,45226301356237 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 15330 | \n",
+ " 15331 | \n",
+ " 153901377 | \n",
+ " False | \n",
+ " infocasa consulting | \n",
+ " 911360461.0 | \n",
+ " https://www.fotocasa.es/es/comprar/vivienda/ma... | \n",
+ " 2.0 | \n",
+ " 1.0 | \n",
+ " 96.0 | \n",
+ " 259470 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 40,45416 | \n",
+ " -3,70286 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 15331 | \n",
+ " 15332 | \n",
+ " 150394373 | \n",
+ " False | \n",
+ " inmobiliaria pulpon | \n",
+ " 912788039.0 | \n",
+ " https://www.fotocasa.es/es/comprar/vivienda/ma... | \n",
+ " 3.0 | \n",
+ " 1.0 | \n",
+ " 150.0 | \n",
+ " 165000 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 40,36652 | \n",
+ " -3,48951 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 15332 | \n",
+ " 15333 | \n",
+ " 153901397 | \n",
+ " False | \n",
+ " tecnocasa torrelodones | \n",
+ " 912780348.0 | \n",
+ " https://www.fotocasa.es/es/comprar/vivienda/ma... | \n",
+ " 4.0 | \n",
+ " 2.0 | \n",
+ " 175.0 | \n",
+ " 495000 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 40,57444 | \n",
+ " -3,92124 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 15333 | \n",
+ " 15334 | \n",
+ " 152607440 | \n",
+ " False | \n",
+ " inmobiliaria pulpon | \n",
+ " 912788039.0 | \n",
+ " https://www.fotocasa.es/es/comprar/vivienda/ma... | \n",
+ " 3.0 | \n",
+ " 2.0 | \n",
+ " 101.0 | \n",
+ " 195000 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 40,36967 | \n",
+ " -3,48105 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 15334 | \n",
+ " 15335 | \n",
+ " 153901356 | \n",
+ " False | \n",
+ " infocasa consulting | \n",
+ " 911360461.0 | \n",
+ " https://www.fotocasa.es/es/comprar/vivienda/ma... | \n",
+ " 3.0 | \n",
+ " 2.0 | \n",
+ " 152.0 | \n",
+ " 765000 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 40,45773 | \n",
+ " -3,69068 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
15335 rows × 37 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Unnamed: 0 id_realEstates isNew realEstate_name \\\n",
+ "0 1 153771986 False ferrari 57 inmobiliaria \n",
+ "1 2 153867863 False tecnocasa fuenlabrada ferrocarril \n",
+ "2 3 153430440 False look find boadilla \n",
+ "3 4 152776331 False tecnocasa fuenlabrada ferrocarril \n",
+ "4 5 153180188 False ferrari 57 inmobiliaria \n",
+ "... ... ... ... ... \n",
+ "15330 15331 153901377 False infocasa consulting \n",
+ "15331 15332 150394373 False inmobiliaria pulpon \n",
+ "15332 15333 153901397 False tecnocasa torrelodones \n",
+ "15333 15334 152607440 False inmobiliaria pulpon \n",
+ "15334 15335 153901356 False infocasa consulting \n",
+ "\n",
+ " phone_realEstate url_inmueble \\\n",
+ "0 912177526.0 https://www.fotocasa.es/es/comprar/vivienda/ma... \n",
+ "1 916358736.0 https://www.fotocasa.es/es/comprar/vivienda/ma... \n",
+ "2 916350408.0 https://www.fotocasa.es/es/comprar/vivienda/ma... \n",
+ "3 916358736.0 https://www.fotocasa.es/es/comprar/vivienda/ma... \n",
+ "4 912177526.0 https://www.fotocasa.es/es/comprar/vivienda/ma... \n",
+ "... ... ... \n",
+ "15330 911360461.0 https://www.fotocasa.es/es/comprar/vivienda/ma... \n",
+ "15331 912788039.0 https://www.fotocasa.es/es/comprar/vivienda/ma... \n",
+ "15332 912780348.0 https://www.fotocasa.es/es/comprar/vivienda/ma... \n",
+ "15333 912788039.0 https://www.fotocasa.es/es/comprar/vivienda/ma... \n",
+ "15334 911360461.0 https://www.fotocasa.es/es/comprar/vivienda/ma... \n",
+ "\n",
+ " rooms bathrooms surface price ... level4Id level5Id level6Id \\\n",
+ "0 3.0 2.0 103.0 195000 ... 0 0 0 \n",
+ "1 3.0 1.0 NaN 89000 ... 0 0 0 \n",
+ "2 2.0 2.0 99.0 390000 ... 0 0 0 \n",
+ "3 3.0 1.0 86.0 89000 ... 0 0 0 \n",
+ "4 2.0 2.0 106.0 172000 ... 0 0 0 \n",
+ "... ... ... ... ... ... ... ... ... \n",
+ "15330 2.0 1.0 96.0 259470 ... 0 0 0 \n",
+ "15331 3.0 1.0 150.0 165000 ... 0 0 0 \n",
+ "15332 4.0 2.0 175.0 495000 ... 0 0 0 \n",
+ "15333 3.0 2.0 101.0 195000 ... 0 0 0 \n",
+ "15334 3.0 2.0 152.0 765000 ... 0 0 0 \n",
+ "\n",
+ " level7Id level8Id accuracy latitude longitude zipCode \\\n",
+ "0 0 0 0 40,2948276786438 -3,44402412135624 NaN \n",
+ "1 0 0 1 40,28674 -3,79351 NaN \n",
+ "2 0 0 0 40,4115646786438 -3,90662252135624 NaN \n",
+ "3 0 0 0 40,2853785786438 -3,79508142135624 NaN \n",
+ "4 0 0 0 40,2998774864376 -3,45226301356237 NaN \n",
+ "... ... ... ... ... ... ... \n",
+ "15330 0 0 0 40,45416 -3,70286 NaN \n",
+ "15331 0 0 0 40,36652 -3,48951 NaN \n",
+ "15332 0 0 0 40,57444 -3,92124 NaN \n",
+ "15333 0 0 0 40,36967 -3,48105 NaN \n",
+ "15334 0 0 0 40,45773 -3,69068 NaN \n",
+ "\n",
+ " customZone \n",
+ "0 NaN \n",
+ "1 NaN \n",
+ "2 NaN \n",
+ "3 NaN \n",
+ "4 NaN \n",
+ "... ... \n",
+ "15330 NaN \n",
+ "15331 NaN \n",
+ "15332 NaN \n",
+ "15333 NaN \n",
+ "15334 NaN \n",
+ "\n",
+ "[15335 rows x 37 columns]"
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "\n",
+ "# this CSV file contains semicolons instead of comas as separator\n",
+ "ds = pd.read_csv('assets/real_estate.csv', sep=';')\n",
+ "ds"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "latin-guest",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 01. ¿Cuál es la casa mas cara en el todo el dataset? (★☆☆)\n",
+ "\n",
+ "Imprime la direccion y el precio de la casa seleccionada. Por ejemplo:\n",
+ "\n",
+ "`The house with address General Street Nº5 is the most expensive and its price is 5000000 USD`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "developing-optimum",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "lesser-cosmetic",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 02. ¿Cuál es la casa mas barata del dataset? (★☆☆)\n",
+ "\n",
+ "Imprime la dirección y el precio de la casa seleccionada. Por ejemplo:\n",
+ "\n",
+ "`The house with address Concrete Street Nº1 is the cheapest and its price is 12000 USD`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "lovely-oasis",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "compliant-fellowship",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 03. ¿Cuál es la casa mas grande y la mas pequeña del dataset? (★☆☆)\n",
+ "\n",
+ "Imprime la dirección y el area de las casas seleccionadas. Por ejemplo:\n",
+ "\n",
+ "`The bigger house is located on Yukka Street Nº10 and its surface is 5000 meters`\n",
+ "\n",
+ "`The smaller house is located on County Road 1 N and its surface is 200 meters`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "every-tiffany",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "danish-spirit",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 04. ¿Cuantas poblaciones (columna level5) contiene el dataset? (★☆☆)\n",
+ "\n",
+ "Imprime el nombre de las poblaciones separadas por coma. Por ejemplo:\n",
+ "\n",
+ "`> print(populations)`\n",
+ "\n",
+ "`population1, population2, population3,...`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "exciting-accreditation",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "crazy-blame",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 05. ¿El data set contiene valores no admitidos (NAs)? (★☆☆)\n",
+ "\n",
+ "Imprima un booleano (`true` o `fase`) seguido de la fila/columna que contiene el NAs."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "transparent-poetry",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "italic-hydrogen",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 06. Elimina los NAs del data set, si aplica (★★☆)\n",
+ "\n",
+ "Imprima una comparación entre las dimensiones del DataFrame original versus el DataFrame después de las eliminaciones.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "administrative-roads",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "middle-china",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 07. ¿Cuál la media de precios en la población (columna level5) de \"Arroyomolinos (Madrid)\"? (★★☆)\n",
+ "\n",
+ "Imprima el valor obtenido"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "nuclear-belief",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "concerned-radical",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 08. Trazar el histograma de los precios para la población (level5 column) de \"Arroyomolinos (Madrid)\" y explica qué observas (★★☆)\n",
+ "\n",
+ "Imprime el histograma de los precios y escribe en la celda del Markdown un breve análisis del trazado.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "sudden-message",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO: Code"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "impressed-combination",
+ "metadata": {},
+ "source": [
+ "**TODO: Markdown**. Para escribir aquí, has doble click en este celda y elimina este contenido y coloca lo que quieras escribir. Luego ejecuta la celda."
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "actual-edinburgh",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 09. ¿ Son los precios promedios de \"Valdemorillo\" y \"Galapagar\" los mismos? (★★☆)\n",
+ "\n",
+ "Imprime ambos promedio y escribe una conclusion acerca de ellos"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "numeric-commerce",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "lonely-article",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 10. ¿Son los promedios de precio por metro cuadrado (price/m2) de \"Valdemorillo\" y \"Galapagar\" los mismos? (★★☆)\n",
+ "\n",
+ "Imprime ambos promedios de precio y escribe una conclusion acerca de ellos.\n",
+ "\n",
+ "Pista: Crea una nueva columna llamada `pps` (price per square) y luego analiza los valore.s"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "hourly-globe",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "pleasant-invite",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 11. Analiza la relación entre la superficie y el precio de las casas. (★★☆)\n",
+ "\n",
+ "Pista: Puedes hacer un `scatter plot` y luego escribir una conclusion al respecto."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "common-drilling",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO: Código"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "ahead-liquid",
+ "metadata": {},
+ "source": [
+ "**TODO: Markdown**. Escribe aquí, haz doble click en este celda y elimina este contenido y reemplázalo por el texto que quires escribir. Luego ejecuta la celda."
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "coordinate-sunrise",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 12. ¿Cuántas agencia de bienes raíces contiene el dataset? (★★☆)\n",
+ "\n",
+ "Imprime el valor obtenido."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "valid-honolulu",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "binding-ebony",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 13. ¿Cuál es la población (columna level5) que contiene la mayor cantidad de casas?(★★☆)\n",
+ "\n",
+ "Imprima la población y el número de casas."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "static-perry",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "entire-classification",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 14. Ahora vamos a trabajar con el \"cinturón sur\" de Madrid. Has un subconjunto del Dataframe original que contenga las siguientes poblaciones (columna level5): \"Fuenlabrada\",\"Leganés\",\"Getafe\",\"Alcorcón\" (★★☆)\n",
+ "\n",
+ "Pista: Filtra el Dataframe original usando la columna `level5` y la función `isin`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "binary-input",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "severe-fisher",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 15. Traza un gráfico de barra de la media de los precios y explica lo que observas (debes usar el subconjunto obtenido de la pregunta 14) (★★★)\n",
+ "\n",
+ "Imprima un gráfico de barra de la media de precios y escriba en la celda Markdown un breve análisis del sector."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "lyric-bunch",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO: Code"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "sublime-newspaper",
+ "metadata": {},
+ "source": [
+ "**TODO: Markdown**. Para escribir aquí, has doble click en esta celda, elimina este contenido y coloca en su lugar el texto que quieres escribir. Luego, ejecuta la celda."
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "speaking-diamond",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 16. Calcula la media y la varianza dela muestra para las siguientes variables: precio, habitaciones, superficie y baños (debes usar el subconjunto obtenido en la pregunta 14) (★★★)\n",
+ "\n",
+ "Imprime ambos valores por cada variable."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "random-feeling",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "revolutionary-matrix",
+ "metadata": {},
+ "source": [
+ "#### Exercise 17. What is the most expensive house of each population? You must use the subset obtained in the question 14 (★★☆)\n",
+ "\n",
+ "Print both the address and the price of the selected house of each population. You can print a DataFrame or a single line for each population"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "fifteen-browse",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "activated-knight",
+ "metadata": {},
+ "source": [
+ "#### Exercise 18. Normalize the variable of prices for each population and plot the 4 histograms in the same plot (you must use the subset obtained in the question 14) (★★★)\n",
+ "\n",
+ "For the normalization method you can use the one you consider to, there is not a single correct answer to this question. Print the plot and write in the Markdown cell a brief analysis about the plot\n",
+ "\n",
+ "Hint: You can help yourself reviewing the multihist demo of Matplotlib"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "civic-meditation",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "precise-heavy",
+ "metadata": {},
+ "source": [
+ "**TODO: Markdown**. To write here, double click to this cell and just remove this content and place the text you want to write. Then, execute the cell."
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "patent-jonathan",
+ "metadata": {},
+ "source": [
+ "#### Exercise 19. What can you say about the price per square meter (price/m2) between the towns of \"Getafe\" and \"Alcorcón\"? You must use the subset obtained in the question 14 (★★☆)\n",
+ "\n",
+ "Hint: Create a new column called `pps` (price per square) and then analyse the values"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "initial-liverpool",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "enhanced-moscow",
+ "metadata": {},
+ "source": [
+ "#### Exercise 20. Make the same plot for 4 different populations (level5 column) and rearrange them on the same graph? You must use the subset obtained in the question 14 (★★☆) \n",
+ "Hint: make a scatter plot of each population using subplots."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "accepting-airfare",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "blocked-effects",
+ "metadata": {},
+ "source": [
+ "#### Ejercicio 21. Realiza un trazado de las coordenadas (columnas latitud y longitud) del cinturón ur de Madrid por color d cada población (debes usar el subconjunto obtenido en la pregunta 14) (★★★★)\n",
+ "\n",
+ "Ejecuta la siguiente celda y luego comienza a codear en la siguiente. Debes implementar u código simple que transforme las columnas de coordenadas en un diccionario de python (agrega más información si es necesario) y agrégala al mapa."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "headed-privacy",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from ipyleaflet import Map, basemaps\n",
+ "\n",
+ "# Mapa centrado en (60 grados latitud et -2.2 grados longitud)\n",
+ "# Latitud, longitud\n",
+ "map = Map(center = (60, -2.2), zoom = 2, min_zoom = 1, max_zoom = 20, \n",
+ " basemap=basemaps.Stamen.Terrain)\n",
+ "map"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "present-mistress",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "## Aquí: traza la coordenadas de los estados\n",
+ "\n",
+ "## PON TU CÓDIGO AQUÍ:\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/project.ipynb b/project.ipynb
index 9cea05336..449eeeae8 100644
--- a/project.ipynb
+++ b/project.ipynb
@@ -623,7 +623,7 @@
"id": "actual-edinburgh",
"metadata": {},
"source": [
- "#### Exercise 09. Is the average of \"Valdemorillo\" and \"Galapagar\" prices the same? (★★☆)\n",
+ "#### Exercise 09. Are the averages of \"Valdemorillo\" and \"Galapagar\" prices the same? (★★☆)\n",
"\n",
"Print the both average prices and then write a conclusion about them"
]
@@ -644,7 +644,7 @@
"id": "lonely-article",
"metadata": {},
"source": [
- "#### Exercise 10. Is the average of \"Valdemorillo\" and \"Galapagar\" price per square meter (price/m2) the same? (★★☆)\n",
+ "#### Exercise 10. Are the averages of \"Valdemorillo\" and \"Galapagar\" price per square meter (price/m2) the same? (★★☆)\n",
"\n",
"Print the both average prices and then write a conclusion about\n",
"\n",