{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Analyze Districts in Madrid to open a cafeteria" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Description" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Madrid is the capital of Spain and its largest city. It is located in the center of the peninsula, as the capital of Spain Madrid has the seat of government, the Court and is also the official residence of the King and Queen of Spain.\n", "On the economic level, Madrid is home to the headquarters of many national and international companies. Culturally, Madrid has world-famous museums such as the Prado Museum and the Reina Sofia Museum. Madrid's neighborhoods are full of history and peculiar characteristics that make them unique.\n", "\n", "\n", "Madrid stands out for the infinity of bars, restaurants and cafes in its streets. No doubt in every walk through the city we discover new places and the list of places to go is getting longer and longer.\n", "This project aims to help by analyzing the characteristics of the districts of Madrid, its impact on the COVID combined with the data and datasets of the city, will determine the best or possible locations for a new restaurant type cafeteria. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data description\n", "\n", "The data will be collected from different Madrid official soruces all of them with real and current data " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* COVID datasets distributed by districts: https://datos.comunidad.madrid/catalogo/dataset/covid19_tia_muni_y_distritos/resource/877fa8f5-cd6c-4e44-9df5-0fb60944a841\n", "* Neighborhoods an districts information: https://datos.gob.es/en/catalogo/a13002908-covid-19-tia-por-municipios-y-distritos-de-madrid1\n", "* Prominents Madrid's data: https://datos.madrid.es/portal/site/egob/menuitem.ca8ea3bd9f53b2811ff64a46a8a409a0/?vgnextoid=6db862c549810510VgnVCM1000008a4a900aRCRD&vgnextchannel=6db862c549810510VgnVCM1000008a4a900aRCRD&vgnextfmt=default\n", "* District's numbers: https://www.madrid.es/portales/munimadrid/es/Inicio/El-Ayuntamiento/Estadistica/Distritos-en-cifras/Distritos-en-cifras-Informacion-de-Distritos-/?vgnextfmt=default&vgnextoid=74b33ece5284c310VgnVCM1000000b205a0aRCRD&vgnextchannel=27002d05cb71b310VgnVCM1000000b205a0aRCRD#" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Venue data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The data will be extracted from the API Foursquare wich has large numbers of venues throughout the different districts" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Import libraries**" ] }, { "cell_type": "code", "execution_count": 434, "metadata": {}, "outputs": [], "source": [ "import random\n", "from IPython.display import Image\n", "from IPython.core.display import HTML\n", "from pandas.io.json import json_normalize\n", "import geocoder\n", "from geopy.geocoders import Nominatim\n", "import folium\n", "from folium import plugins\n", "import matplotlib.cm as cm\n", "import matplotlib.colors as colors\n", "from sklearn.preprocessing import StandardScaler\n", "import numpy as np\n", "from sklearn.cluster import KMeans \n", "from sklearn.datasets.samples_generator import make_blobs\n", "from bs4 import BeautifulSoup\n", "import requests\n", "import pandas as pd\n", "import plotly.express as px\n", "import matplotlib.pyplot as plt\n", "from sklearn.metrics import silhouette_score" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import warnings\n", "warnings.filterwarnings('ignore')\n", "warnings.simplefilter('ignore')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Data analysis and wrangling\n", "The csv file is taken from the links given above" ] }, { "cell_type": "code", "execution_count": 290, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OBJECTID_1DISTRICTNEIGHBORHOODDISTRICT_LATITUDEDISTRICT_LONGITUDEShape_LengShape_AreaCOD_DISCOD_DIS_TXBARRIO_MAYCOD_DISBARCOD_BARNUM_BARBARRIO_MTCOD_DISB
060CentroPalacio40.415347-3.7073715754,8227481469905,68411PALACIO11111PALACIO1_1
150CentroEmbajadores40.415347-3.7073714275,2276811033724,69811EMBAJADORES12122EMBAJADORES1_2
255CentroCortes40.415347-3.7073713731,07903591874,121911CORTES13133CORTES1_3
364CentroJusticia40.415347-3.7073713597,421427739414,33811JUSTICIA14144JUSTICIA1_4
466CentroUniversidad40.415347-3.7073714060,075813948027,077311UNIVERSIDAD15155UNIVERSIDAD1_5
\n", "
" ], "text/plain": [ " OBJECTID_1 DISTRICT NEIGHBORHOOD DISTRICT_LATITUDE DISTRICT_LONGITUDE \\\n", "0 60 Centro Palacio 40.415347 -3.707371 \n", "1 50 Centro Embajadores 40.415347 -3.707371 \n", "2 55 Centro Cortes 40.415347 -3.707371 \n", "3 64 Centro Justicia 40.415347 -3.707371 \n", "4 66 Centro Universidad 40.415347 -3.707371 \n", "\n", " Shape_Leng Shape_Area COD_DIS COD_DIS_TX BARRIO_MAY COD_DISBAR \\\n", "0 5754,822748 1469905,684 1 1 PALACIO 11 \n", "1 4275,227681 1033724,698 1 1 EMBAJADORES 12 \n", "2 3731,07903 591874,1219 1 1 CORTES 13 \n", "3 3597,421427 739414,338 1 1 JUSTICIA 14 \n", "4 4060,075813 948027,0773 1 1 UNIVERSIDAD 15 \n", "\n", " COD_BAR NUM_BAR BARRIO_MT COD_DISB \n", "0 11 1 PALACIO 1_1 \n", "1 12 2 EMBAJADORES 1_2 \n", "2 13 3 CORTES 1_3 \n", "3 14 4 JUSTICIA 1_4 \n", "4 15 5 UNIVERSIDAD 1_5 " ] }, "execution_count": 290, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_data = pd.read_csv('Barrios.csv', sep=\";\", encoding='latin-1')\n", "madrid_data.head()" ] }, { "cell_type": "code", "execution_count": 291, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DISTRICTNEIGHBORHOODDISTRICT_LATITUDEDISTRICT_LONGITUDECOD_DISCOD_DIS_TXBARRIO_MAYCOD_DISBARCOD_BARNUM_BARBARRIO_MTCOD_DISB
0CentroPalacio40.415347-3.70737111PALACIO11111PALACIO1_1
1CentroEmbajadores40.415347-3.70737111EMBAJADORES12122EMBAJADORES1_2
2CentroCortes40.415347-3.70737111CORTES13133CORTES1_3
3CentroJusticia40.415347-3.70737111JUSTICIA14144JUSTICIA1_4
4CentroUniversidad40.415347-3.70737111UNIVERSIDAD15155UNIVERSIDAD1_5
\n", "
" ], "text/plain": [ " DISTRICT NEIGHBORHOOD DISTRICT_LATITUDE DISTRICT_LONGITUDE COD_DIS \\\n", "0 Centro Palacio 40.415347 -3.707371 1 \n", "1 Centro Embajadores 40.415347 -3.707371 1 \n", "2 Centro Cortes 40.415347 -3.707371 1 \n", "3 Centro Justicia 40.415347 -3.707371 1 \n", "4 Centro Universidad 40.415347 -3.707371 1 \n", "\n", " COD_DIS_TX BARRIO_MAY COD_DISBAR COD_BAR NUM_BAR BARRIO_MT COD_DISB \n", "0 1 PALACIO 11 11 1 PALACIO 1_1 \n", "1 1 EMBAJADORES 12 12 2 EMBAJADORES 1_2 \n", "2 1 CORTES 13 13 3 CORTES 1_3 \n", "3 1 JUSTICIA 14 14 4 JUSTICIA 1_4 \n", "4 1 UNIVERSIDAD 15 15 5 UNIVERSIDAD 1_5 " ] }, "execution_count": 291, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_data.drop(['OBJECTID_1','Shape_Leng','Shape_Area', ], axis = 1, inplace=True)\n", "madrid_data.head()" ] }, { "cell_type": "code", "execution_count": 292, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DISTRICTNEIGHBORHOODDISTRICT_LATITUDEDISTRICT_LONGITUDE
0CentroPalacio40.415347-3.707371
1CentroEmbajadores40.415347-3.707371
2CentroCortes40.415347-3.707371
3CentroJusticia40.415347-3.707371
4CentroUniversidad40.415347-3.707371
\n", "
" ], "text/plain": [ " DISTRICT NEIGHBORHOOD DISTRICT_LATITUDE DISTRICT_LONGITUDE\n", "0 Centro Palacio 40.415347 -3.707371 \n", "1 Centro Embajadores 40.415347 -3.707371 \n", "2 Centro Cortes 40.415347 -3.707371 \n", "3 Centro Justicia 40.415347 -3.707371 \n", "4 Centro Universidad 40.415347 -3.707371 " ] }, "execution_count": 292, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_data.drop(['COD_DIS','COD_DIS_TX','BARRIO_MAY','COD_DISBAR','COD_BAR','NUM_BAR','BARRIO_MT','COD_DISB'], axis = 1, inplace=True)\n", "madrid_data.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Madrid latitude and longitude:" ] }, { "cell_type": "code", "execution_count": 293, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Madrid latitude: 40.4948384 \n", " Madrid longitude: -3.5740806206811313\n" ] } ], "source": [ "city = 'Madrid, MAD'\n", "geolocator = Nominatim(user_agent=\"madrid\")\n", "location = geolocator.geocode(city)\n", "latitude = location.latitude\n", "longitude = location.longitude\n", "print(\"Madrid latitude: \", location.latitude, \"\\n\", \"Madrid longitude: \", location.longitude)" ] }, { "cell_type": "code", "execution_count": 294, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Aeropuerto de Madrid-Barajas Adolfo Suárez, Barajas, Madrid, Área metropolitana de Madrid y Corredor del Henares, Comunidad de Madrid, 28001, España\n" ] } ], "source": [ "# this is another way using Nominatim passing the coordinates we can see its name\n", "\n", "geolocator = Nominatim(user_agent = \"url\")\n", "location = geolocator.reverse(\"40.4948384 , -3.5740806206811313\")\n", "print(location.address)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Madrid map with districts and neighborhoods:**" ] }, { "cell_type": "code", "execution_count": 295, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 295, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# create map of Madrid using latitude and longitude values\n", "madrid_map = folium.Map(location=[latitude, longitude], zoom_start=11)\n", "\n", "# add markers to map\n", "for lat, lng, district, neighborhood in zip(madrid_data['DISTRICT_LATITUDE'],madrid_data['DISTRICT_LONGITUDE'],madrid_data['DISTRICT'],madrid_data['NEIGHBORHOOD']):\n", " label = '{}, {}'.format(neighborhood,district)\n", " label = folium.Popup(label, parse_html=True)\n", " folium.CircleMarker(\n", " [lat, lng],\n", " radius=5,\n", " popup=label,\n", " color='blue',\n", " fill=True,\n", " fill_color='#3186cc',\n", " fill_opacity=0.7,\n", " parse_html=False).add_to(madrid_map)\n", "\n", "madrid_map\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Madrid COVID data**" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
municipio_distritolatitudelongitudefecha_informecasos_confirmados_activos_ultimos_14diastasa_incidencia_acumulada_activos_ultimos_14diascasos_confirmados_ultimos_14diastasa_incidencia_acumulada_ultimos_14diascasos_confirmados_totalespoblacion_distritotasa_incidencia_acumulada_totalcodigo_geometria
0Madrid-Retiro40.408072-3.67672929/06/2021 12:04NaNNaN105.087,2412414.0120238.010314,0679603.0
1Madrid-Salamanca40.430000-3.67777829/06/2021 12:04NaNNaN175.0118,3716615.0147349.011238,4379604.0
2Madrid-Centro40.415347-3.70737129/06/2021 12:04NaNNaN173.0123,1115821.0140360.011258,5879601.0
3Madrid-Arganzuela40.402733-3.69540329/06/2021 12:04NaNNaN206.0132,3516282.0156010.010460,7879602.0
4Madrid-Chamartín40.453333-3.67750029/06/2021 12:04NaNNaN182.0123,3515996.0147483.010841,1479605.0
\n", "
" ], "text/plain": [ " municipio_distrito latitude longitude fecha_informe \\\n", "0 Madrid-Retiro 40.408072 -3.676729 29/06/2021 12:04 \n", "1 Madrid-Salamanca 40.430000 -3.677778 29/06/2021 12:04 \n", "2 Madrid-Centro 40.415347 -3.707371 29/06/2021 12:04 \n", "3 Madrid-Arganzuela 40.402733 -3.695403 29/06/2021 12:04 \n", "4 Madrid-Chamartín 40.453333 -3.677500 29/06/2021 12:04 \n", "\n", " casos_confirmados_activos_ultimos_14dias \\\n", "0 NaN \n", "1 NaN \n", "2 NaN \n", "3 NaN \n", "4 NaN \n", "\n", " tasa_incidencia_acumulada_activos_ultimos_14dias \\\n", "0 NaN \n", "1 NaN \n", "2 NaN \n", "3 NaN \n", "4 NaN \n", "\n", " casos_confirmados_ultimos_14dias tasa_incidencia_acumulada_ultimos_14dias \\\n", "0 105.0 87,24 \n", "1 175.0 118,37 \n", "2 173.0 123,11 \n", "3 206.0 132,35 \n", "4 182.0 123,35 \n", "\n", " casos_confirmados_totales poblacion_distrito \\\n", "0 12414.0 120238.0 \n", "1 16615.0 147349.0 \n", "2 15821.0 140360.0 \n", "3 16282.0 156010.0 \n", "4 15996.0 147483.0 \n", "\n", " tasa_incidencia_acumulada_total codigo_geometria \n", "0 10314,06 79603.0 \n", "1 11238,43 79604.0 \n", "2 11258,58 79601.0 \n", "3 10460,78 79602.0 \n", "4 10841,14 79605.0 " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_covid = pd.read_csv('COVID_madrid.csv', sep=\";\", encoding='latin-1')\n", "madrid_covid.head()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "madrid_covid.drop(['tasa_incidencia_acumulada_activos_ultimos_14dias','tasa_incidencia_acumulada_ultimos_14dias','codigo_geometria','casos_confirmados_activos_ultimos_14dias'], axis=1, inplace=True)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", "
municipio_distritolatitudelongitudefecha_informecasos_confirmados_ultimos_14diascasos_confirmados_totalespoblacion_distritotasa_incidencia_acumulada_total
0Madrid-Retiro40.408072-3.67672929/06/2021 12:04105.012414.0120238.010314,06
1Madrid-Salamanca40.430000-3.67777829/06/2021 12:04175.016615.0147349.011238,43
2Madrid-Centro40.415347-3.70737129/06/2021 12:04173.015821.0140360.011258,58
3Madrid-Arganzuela40.402733-3.69540329/06/2021 12:04206.016282.0156010.010460,78
4Madrid-Chamartín40.453333-3.67750029/06/2021 12:04182.015996.0147483.010841,14
...........................
11509GetafeNaNNaN26/05/2020 7:0060.01463.0NaN797,82
11510RibatejadaNaNNaN26/05/2020 7:00NaNNaNNaN255,43
11511VillaconejosNaNNaN26/05/2020 7:00NaN9.0NaN265,64
11512Valdetorres de JaramaNaNNaN26/05/2020 7:00NaN18.0NaN400,27
11513Pozuelo de AlarcónNaNNaN26/05/2020 7:0025.0837.0NaN968,5
\n", "

11514 rows × 8 columns

\n", "
" ], "text/plain": [ " municipio_distrito latitude longitude fecha_informe \\\n", "0 Madrid-Retiro 40.408072 -3.676729 29/06/2021 12:04 \n", "1 Madrid-Salamanca 40.430000 -3.677778 29/06/2021 12:04 \n", "2 Madrid-Centro 40.415347 -3.707371 29/06/2021 12:04 \n", "3 Madrid-Arganzuela 40.402733 -3.695403 29/06/2021 12:04 \n", "4 Madrid-Chamartín 40.453333 -3.677500 29/06/2021 12:04 \n", "... ... ... ... ... \n", "11509 Getafe NaN NaN 26/05/2020 7:00 \n", "11510 Ribatejada NaN NaN 26/05/2020 7:00 \n", "11511 Villaconejos NaN NaN 26/05/2020 7:00 \n", "11512 Valdetorres de Jarama NaN NaN 26/05/2020 7:00 \n", "11513 Pozuelo de Alarcón NaN NaN 26/05/2020 7:00 \n", "\n", " casos_confirmados_ultimos_14dias casos_confirmados_totales \\\n", "0 105.0 12414.0 \n", "1 175.0 16615.0 \n", "2 173.0 15821.0 \n", "3 206.0 16282.0 \n", "4 182.0 15996.0 \n", "... ... ... \n", "11509 60.0 1463.0 \n", "11510 NaN NaN \n", "11511 NaN 9.0 \n", "11512 NaN 18.0 \n", "11513 25.0 837.0 \n", "\n", " poblacion_distrito tasa_incidencia_acumulada_total \n", "0 120238.0 10314,06 \n", "1 147349.0 11238,43 \n", "2 140360.0 11258,58 \n", "3 156010.0 10460,78 \n", "4 147483.0 10841,14 \n", "... ... ... \n", "11509 NaN 797,82 \n", "11510 NaN 255,43 \n", "11511 NaN 265,64 \n", "11512 NaN 400,27 \n", "11513 NaN 968,5 \n", "\n", "[11514 rows x 8 columns]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_covid" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Unnecessary rows are eliminated, leaving only the first 21 rows corresponding to the 21 districts of Madrid which have the most recent case reports. which have the most recent report of cases" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "madrid_covid=madrid_covid.iloc[0:21]" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(21, 8)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_covid.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\"Madrid-\" is removed from the municipio_distrito column since we only need the name of the district." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "madrid_covid['municipio_distrito']=madrid_covid['municipio_distrito'].replace({'Madrid-':''}, regex=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Columns names:\n", " * municipio_distrito: district name\n", " * fecha_informe: date of the report\n", " * casos_confirmados_ultimos_14dias: confirmed cases for the last 14 days\n", " * casos_confirmados_totales: total confirmed cases for each district\n", " * poblacion_distrito: district population\n", " * tasa_incidencia_acumulada_total: total cumulative incidence rate" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", "
municipio_distritolatitudelongitudefecha_informecasos_confirmados_ultimos_14diascasos_confirmados_totalespoblacion_distritotasa_incidencia_acumulada_total
0Retiro40.408072-3.67672929/06/2021 12:04105.012414.0120238.010314,06
1Salamanca40.430000-3.67777829/06/2021 12:04175.016615.0147349.011238,43
2Centro40.415347-3.70737129/06/2021 12:04173.015821.0140360.011258,58
3Arganzuela40.402733-3.69540329/06/2021 12:04206.016282.0156010.010460,78
4Chamartín40.453333-3.67750029/06/2021 12:04182.015996.0147483.010841,14
5Tetuán40.460556-3.70000029/06/2021 12:04128.017464.0161233.010821,06
6Chamberí40.432792-3.69718629/06/2021 12:04185.016486.0140516.011705,98
7Fuencarral-El Pardo40.478611-3.70972229/06/2021 12:04204.024499.0250655.09803,17
8Moncloa-Aravaca40.435151-3.71876529/06/2021 12:04113.014199.0121880.011670,67
9Latina40.402461-3.74129429/06/2021 12:04167.025016.0242447.010330,66
10Carabanchel40.383669-3.72798929/06/2021 12:04172.028794.0260801.011065,25
11Usera40.381336-3.70685629/06/2021 12:0497.016452.0143141.011499,02
12Puente de Vallecas40.398204-3.66905929/06/2021 12:04168.032344.0241901.013425,98
13San Blas - Canillejas40.426001-3.61276429/06/2021 12:04152.016636.0161696.010322,28
14Barajas40.470196-3.58489029/06/2021 12:0467.04907.050320.09817,34
15Moratalaz40.409869-3.64443629/06/2021 12:0490.010609.095375.011101,11
16Ciudad Lineal40.453333-3.65000029/06/2021 12:04155.024269.0220118.011036,83
17Hortaleza40.469457-3.64048229/06/2021 12:04206.019116.0194529.09893,13
18Villaverde40.345925-3.70935629/06/2021 12:0494.017744.0155149.011494,39
19Villa de Vallecas40.379600-3.62135029/06/2021 12:0454.011923.0115495.010417,38
20Vicálvaro40.404200-3.60806029/06/2021 12:0448.07441.074577.010054,86
\n", "
" ], "text/plain": [ " municipio_distrito latitude longitude fecha_informe \\\n", "0 Retiro 40.408072 -3.676729 29/06/2021 12:04 \n", "1 Salamanca 40.430000 -3.677778 29/06/2021 12:04 \n", "2 Centro 40.415347 -3.707371 29/06/2021 12:04 \n", "3 Arganzuela 40.402733 -3.695403 29/06/2021 12:04 \n", "4 Chamartín 40.453333 -3.677500 29/06/2021 12:04 \n", "5 Tetuán 40.460556 -3.700000 29/06/2021 12:04 \n", "6 Chamberí 40.432792 -3.697186 29/06/2021 12:04 \n", "7 Fuencarral-El Pardo 40.478611 -3.709722 29/06/2021 12:04 \n", "8 Moncloa-Aravaca 40.435151 -3.718765 29/06/2021 12:04 \n", "9 Latina 40.402461 -3.741294 29/06/2021 12:04 \n", "10 Carabanchel 40.383669 -3.727989 29/06/2021 12:04 \n", "11 Usera 40.381336 -3.706856 29/06/2021 12:04 \n", "12 Puente de Vallecas 40.398204 -3.669059 29/06/2021 12:04 \n", "13 San Blas - Canillejas 40.426001 -3.612764 29/06/2021 12:04 \n", "14 Barajas 40.470196 -3.584890 29/06/2021 12:04 \n", "15 Moratalaz 40.409869 -3.644436 29/06/2021 12:04 \n", "16 Ciudad Lineal 40.453333 -3.650000 29/06/2021 12:04 \n", "17 Hortaleza 40.469457 -3.640482 29/06/2021 12:04 \n", "18 Villaverde 40.345925 -3.709356 29/06/2021 12:04 \n", "19 Villa de Vallecas 40.379600 -3.621350 29/06/2021 12:04 \n", "20 Vicálvaro 40.404200 -3.608060 29/06/2021 12:04 \n", "\n", " casos_confirmados_ultimos_14dias casos_confirmados_totales \\\n", "0 105.0 12414.0 \n", "1 175.0 16615.0 \n", "2 173.0 15821.0 \n", "3 206.0 16282.0 \n", "4 182.0 15996.0 \n", "5 128.0 17464.0 \n", "6 185.0 16486.0 \n", "7 204.0 24499.0 \n", "8 113.0 14199.0 \n", "9 167.0 25016.0 \n", "10 172.0 28794.0 \n", "11 97.0 16452.0 \n", "12 168.0 32344.0 \n", "13 152.0 16636.0 \n", "14 67.0 4907.0 \n", "15 90.0 10609.0 \n", "16 155.0 24269.0 \n", "17 206.0 19116.0 \n", "18 94.0 17744.0 \n", "19 54.0 11923.0 \n", "20 48.0 7441.0 \n", "\n", " poblacion_distrito tasa_incidencia_acumulada_total \n", "0 120238.0 10314,06 \n", "1 147349.0 11238,43 \n", "2 140360.0 11258,58 \n", "3 156010.0 10460,78 \n", "4 147483.0 10841,14 \n", "5 161233.0 10821,06 \n", "6 140516.0 11705,98 \n", "7 250655.0 9803,17 \n", "8 121880.0 11670,67 \n", "9 242447.0 10330,66 \n", "10 260801.0 11065,25 \n", "11 143141.0 11499,02 \n", "12 241901.0 13425,98 \n", "13 161696.0 10322,28 \n", "14 50320.0 9817,34 \n", "15 95375.0 11101,11 \n", "16 220118.0 11036,83 \n", "17 194529.0 9893,13 \n", "18 155149.0 11494,39 \n", "19 115495.0 10417,38 \n", "20 74577.0 10054,86 " ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_covid" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "madrid_covid.set_index('municipio_distrito')['casos_confirmados_totales'].plot(kind='bar')" ] }, { "cell_type": "code", "execution_count": 487, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean: 17382.238095238095, Median: 16486.0, Mode: 0 4907.0 \n", "1 7441.0 \n", "2 10609.0\n", "3 11923.0\n", "4 12414.0\n", "5 14199.0\n", "6 15821.0\n", "7 15996.0\n", "8 16282.0\n", "9 16452.0\n", "10 16486.0\n", "11 16615.0\n", "12 16636.0\n", "13 17464.0\n", "14 17744.0\n", "15 19116.0\n", "16 24269.0\n", "17 24499.0\n", "18 25016.0\n", "19 28794.0\n", "20 32344.0\n", "dtype: float64\n" ] } ], "source": [ "mean = madrid_covid[\"casos_confirmados_totales\"].mean()\n", "median = madrid_covid[\"casos_confirmados_totales\"].median()\n", "mode = madrid_covid[\"casos_confirmados_totales\"].mode()\n", "print(\"Mean: {}, Median: {}, Mode: {}\".format(mean, median, mode))" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create map of Madrid using latitude and longitude values\n", "district_map = folium.Map(location=[latitude, longitude], zoom_start=11)\n", "\n", "# add markers to map\n", "for lat, lng, district, confirmed in zip(madrid_covid['latitude'],madrid_covid['longitude'],madrid_covid['municipio_distrito'], madrid_covid['casos_confirmados_totales']):\n", " label = '{}, {} Confirmed cases'.format(district, confirmed)\n", " label = folium.Popup(label, parse_html=True)\n", " folium.CircleMarker(\n", " [lat, lng],\n", " radius=10,\n", " popup=label,\n", " color='blue',\n", " fill=True,\n", " fill_color='#3186cc',\n", " fill_opacity=0.7,\n", " parse_html=False).add_to(district_map)\n", "\n", "district_map" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 Retiro\n", "1 Salamanca\n", "2 Centro\n", "3 Arganzuela\n", "4 Chamartín\n", "5 Tetuán\n", "6 Chamberí\n", "7 Fuencarral-El Pardo\n", "8 Moncloa-Aravaca\n", "9 Latina\n", "10 Carabanchel\n", "11 Usera\n", "12 Puente de Vallecas\n", "13 San Blas - Canillejas\n", "14 Barajas\n", "15 Moratalaz\n", "16 Ciudad Lineal\n", "17 Hortaleza\n", "18 Villaverde\n", "19 Villa de Vallecas\n", "20 Vicálvaro\n", "Name: municipio_distrito, dtype: object" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_covid['municipio_distrito']" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
municipio_distritolatitudelongitudefecha_informecasos_confirmados_ultimos_14diascasos_confirmados_totalespoblacion_distritotasa_incidencia_acumulada_total
0Retiro40.408072-3.67672929/06/2021 12:04105.012414.0120238.010314,06
1Salamanca40.430000-3.67777829/06/2021 12:04175.016615.0147349.011238,43
2Centro40.415347-3.70737129/06/2021 12:04173.015821.0140360.011258,58
3Arganzuela40.402733-3.69540329/06/2021 12:04206.016282.0156010.010460,78
4Chamartín40.453333-3.67750029/06/2021 12:04182.015996.0147483.010841,14
\n", "
" ], "text/plain": [ " municipio_distrito latitude longitude fecha_informe \\\n", "0 Retiro 40.408072 -3.676729 29/06/2021 12:04 \n", "1 Salamanca 40.430000 -3.677778 29/06/2021 12:04 \n", "2 Centro 40.415347 -3.707371 29/06/2021 12:04 \n", "3 Arganzuela 40.402733 -3.695403 29/06/2021 12:04 \n", "4 Chamartín 40.453333 -3.677500 29/06/2021 12:04 \n", "\n", " casos_confirmados_ultimos_14dias casos_confirmados_totales \\\n", "0 105.0 12414.0 \n", "1 175.0 16615.0 \n", "2 173.0 15821.0 \n", "3 206.0 16282.0 \n", "4 182.0 15996.0 \n", "\n", " poblacion_distrito tasa_incidencia_acumulada_total \n", "0 120238.0 10314,06 \n", "1 147349.0 11238,43 \n", "2 140360.0 11258,58 \n", "3 156010.0 10460,78 \n", "4 147483.0 10841,14 " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_covid.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Function that extracts the **category of the venue**" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "def categories_type(row):\n", " categories_list = row['venue.categories']\n", " if len(categories_list) == 0:\n", " return None\n", " else:\n", " return categories_list[0]['name']" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "foursquare_venues=pd.DataFrame()\n", "mdc = []" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "for latitude, longitude, distr, conf in zip(madrid_covid['latitude'],madrid_covid['longitude'],madrid_covid['municipio_distrito'],madrid_covid['casos_confirmados_totales']):\n", " url = 'https://api.foursquare.com/v2/venues/explore?&client_id={}&client_secret={}&v={}&ll={},{}&radius={}&limit={}'.format(\n", " CLIENT_ID, \n", " CLIENT_SECRET, \n", " VERSION, \n", " latitude, \n", " longitude, \n", " radius, \n", " LIMIT)\n", " results = requests.get(url).json()\n", " venues = pd.json_normalize(results['response']['groups'][0]['items'])\n", " filtered_columns = ['venue.id', 'venue.location.lat', 'venue.location.lng', 'venue.name', 'venue.categories']\n", " venues_df = venues[filtered_columns]\n", " venues_df['venue.categories'] = venues_df.apply(categories_type, axis=1)\n", " venues_df['district']=distr\n", " venues_df['confirmed']=conf\n", " mdc.append(venues_df) \n", " \n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Venues from the API Foursquare with each district and COVID confirmed cases" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
venue.idvenue.location.latvenue.location.lngvenue.namevenue.categoriesdistrictconfirmed
04da9810d8154abafc2948f8e40.410987-3.680377Rosaleda del RetiroGardenRetiro12414.0
14d28cb43342d6dcb624dfcca40.404065-3.677902El Rincón de FoggBurger JointRetiro12414.0
24bc201b0f8219c741615b41040.407648-3.680188Don GiovanniItalian RestaurantRetiro12414.0
34e6276311838ad3d0eceb6c940.412714-3.677826Jardines de Cecilio RodríguezGardenRetiro12414.0
44bc8a39e6501c9b6b88f402940.406407-3.681303EFTIArt GalleryRetiro12414.0
\n", "
" ], "text/plain": [ " venue.id venue.location.lat venue.location.lng \\\n", "0 4da9810d8154abafc2948f8e 40.410987 -3.680377 \n", "1 4d28cb43342d6dcb624dfcca 40.404065 -3.677902 \n", "2 4bc201b0f8219c741615b410 40.407648 -3.680188 \n", "3 4e6276311838ad3d0eceb6c9 40.412714 -3.677826 \n", "4 4bc8a39e6501c9b6b88f4029 40.406407 -3.681303 \n", "\n", " venue.name venue.categories district confirmed \n", "0 Rosaleda del Retiro Garden Retiro 12414.0 \n", "1 El Rincón de Fogg Burger Joint Retiro 12414.0 \n", "2 Don Giovanni Italian Restaurant Retiro 12414.0 \n", "3 Jardines de Cecilio Rodríguez Garden Retiro 12414.0 \n", "4 EFTI Art Gallery Retiro 12414.0 " ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "foursquare_venues = pd.concat(mdc)\n", "foursquare_venues.head()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1898, 7)" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "foursquare_venues.shape" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1898 venues were returned by Foursquare.\n" ] } ], "source": [ "print('{} venues were returned by Foursquare.'.format(foursquare_venues.shape[0]))" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Spanish Restaurant 174\n", "Restaurant 109\n", "Hotel 72\n", "Park 71\n", "Tapas Restaurant 65\n", " ... \n", "Soup Place 1\n", "Motorcycle Shop 1\n", "Board Shop 1\n", "Arcade 1\n", "Gas Station 1\n", "Name: venue.categories, Length: 214, dtype: int64" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "foursquare_venues['venue.categories'].value_counts()" ] }, { "cell_type": "code", "execution_count": 467, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
venue.idvenue.location.latvenue.location.lngvenue.namevenue.categoriesdistrictconfirmed
254b7137e0f964a520f23c2de340.479636-3.707357Starbucks CC La VaguadaCafeteriaFuencarral-El Pardo24499.0
284b6d7fddf964a52088782ce340.429069-3.715079Starbucks Princesa 40CafeteriaMoncloa-Aravaca14199.0
1459ea4524ccad6b7e88d32a8640.391304-3.701123Starbucks Plaza Río 2CafeteriaUsera16452.0
924b673c58f964a520fd422be340.462823-3.636758Starbucks CC DreamsCafeteriaCiudad Lineal24269.0
234b673c58f964a520fd422be340.462823-3.636758Starbucks CC DreamsCafeteriaHortaleza19116.0
\n", "
" ], "text/plain": [ " venue.id venue.location.lat venue.location.lng \\\n", "25 4b7137e0f964a520f23c2de3 40.479636 -3.707357 \n", "28 4b6d7fddf964a52088782ce3 40.429069 -3.715079 \n", "14 59ea4524ccad6b7e88d32a86 40.391304 -3.701123 \n", "92 4b673c58f964a520fd422be3 40.462823 -3.636758 \n", "23 4b673c58f964a520fd422be3 40.462823 -3.636758 \n", "\n", " venue.name venue.categories district confirmed \n", "25 Starbucks CC La Vaguada Cafeteria Fuencarral-El Pardo 24499.0 \n", "28 Starbucks Princesa 40 Cafeteria Moncloa-Aravaca 14199.0 \n", "14 Starbucks Plaza Río 2 Cafeteria Usera 16452.0 \n", "92 Starbucks CC Dreams Cafeteria Ciudad Lineal 24269.0 \n", "23 Starbucks CC Dreams Cafeteria Hortaleza 19116.0 " ] }, "execution_count": 467, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# cafeteria venues\n", "venues_cafeteria = foursquare_venues[foursquare_venues['venue.categories'] == 'Cafeteria']\n", "venues_cafeteria" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets start by exploring just the first district in our dataframe using Foursquare API." ] }, { "cell_type": "code", "execution_count": 385, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The district is Centro and it's district's coordinates are 40.415347 latitude and -3.7073709999999997 longitude\n" ] } ], "source": [ "district_name = madrid_data.loc[0, 'District']\n", "district_lat = madrid_data.loc[0, 'District_Latitude']\n", "district_long = madrid_data.loc[0, 'District_Longitude']\n", "\n", "print(\"The district is {} and it's district's coordinates are {} latitude and {} longitude\".format(district_name,\n", " district_lat, district_long))\n", "\n" ] }, { "cell_type": "code", "execution_count": 386, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'https://api.foursquare.com/v2/venues/explore?&client_id=IYJ1TPEJFEWISEQRDNZNXO4HJQ0MTMY0AVDGBJBOLUEYAGH0&client_secret=HSVKU5JZT2OEKVIW33NFPEGPDFT4Z1OLKCY2FDFRFO023T4B&v=20180604&ll=40.415347,-3.7073709999999997&radius=1000&limit=100'" ] }, "execution_count": 386, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# API Foursquare\n", "LIMIT = 100\n", "radius = 1000\n", "url = 'https://api.foursquare.com/v2/venues/explore?&client_id={}&client_secret={}&v={}&ll={},{}&radius={}&limit={}'.format(\n", " CLIENT_ID, \n", " CLIENT_SECRET, \n", " VERSION, \n", " district_lat, \n", " district_long, \n", " radius, \n", " LIMIT)\n", "url" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This function extracts the categories of venues" ] }, { "cell_type": "code", "execution_count": 388, "metadata": {}, "outputs": [], "source": [ "def get_category_type(row):\n", " try:\n", " categories_list = row['categories']\n", " except:\n", " categories_list = row['venue.categories']\n", " if len(categories_list) == 0:\n", " return None\n", " else:\n", " return categories_list[0]['name']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cleaning the json and structure it into a pandas dataframe" ] }, { "cell_type": "code", "execution_count": 389, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
namecategorieslatlng
0Mesón El ÁguilaSpanish Restaurant40.401573-3.607245
1Heladería Sienna - Sienna Winter CaféIce Cream Shop40.402532-3.606221
2Parque de ValdebernardoPark40.397950-3.606945
3AhorramásGrocery Store40.404239-3.605553
4La MadrinaPizza Place40.398139-3.606602
\n", "
" ], "text/plain": [ " name categories lat \\\n", "0 Mesón El Águila Spanish Restaurant 40.401573 \n", "1 Heladería Sienna - Sienna Winter Café Ice Cream Shop 40.402532 \n", "2 Parque de Valdebernardo Park 40.397950 \n", "3 Ahorramás Grocery Store 40.404239 \n", "4 La Madrina Pizza Place 40.398139 \n", "\n", " lng \n", "0 -3.607245 \n", "1 -3.606221 \n", "2 -3.606945 \n", "3 -3.605553 \n", "4 -3.606602 " ] }, "execution_count": 389, "metadata": {}, "output_type": "execute_result" } ], "source": [ "venues = results['response']['groups'][0]['items']\n", "\n", "nearby_venues = pd.json_normalize(venues) # flatten JSON\n", "\n", "# filter columns\n", "filtered_columns = ['venue.name', 'venue.categories', 'venue.location.lat', 'venue.location.lng']\n", "nearby_venues = nearby_venues.loc[:, filtered_columns]\n", "\n", "# filter the category for each row\n", "nearby_venues['venue.categories'] = nearby_venues.apply(get_category_type, axis=1)\n", "\n", "# clean columns\n", "nearby_venues.columns = [col.split(\".\")[-1] for col in nearby_venues.columns]\n", "\n", "nearby_venues.head()" ] }, { "cell_type": "code", "execution_count": 390, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "72 venues were returned for Centro by Foursquare\n" ] } ], "source": [ "print(\"{} venues were returned for {} by Foursquare\".format(len(nearby_venues), district_name))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Getting nearby venues for all districts by creating the function getNearbyVenues.This function extracts the venues data for the districts in Madrid" ] }, { "cell_type": "code", "execution_count": 397, "metadata": {}, "outputs": [], "source": [ "def getNearbyVenues(names, latitudes, longitudes, radius=500):\n", " \n", " venues_list=[]\n", " for name, lat, lng in zip(names, latitudes, longitudes):\n", " print(name)\n", " \n", " # create the API request URL\n", " url = 'https://api.foursquare.com/v2/venues/explore?&client_id={}&client_secret={}&v={}&ll={},{}&radius={}&limit={}'.format(\n", " CLIENT_ID, \n", " CLIENT_SECRET, \n", " VERSION, \n", " lat, \n", " lng, \n", " radius, \n", " LIMIT)\n", " \n", " # make the GET request\n", " results = requests.get(url).json()[\"response\"]['groups'][0]['items']\n", " \n", " # return only relevant information for each nearby venue\n", " venues_list.append([(\n", " name, \n", " lat, \n", " lng, \n", " v['venue']['name'], \n", " v['venue']['location']['lat'], \n", " v['venue']['location']['lng'], \n", " v['venue']['categories'][0]['name']) for v in results])\n", "\n", " nearby_venues = pd.DataFrame([item for venue_list in venues_list for item in venue_list])\n", " nearby_venues.columns = ['District',\n", " 'Latitude', \n", " 'Longitude', \n", " 'Venue', \n", " 'Venue Latitude', \n", " 'Venue Longitude', \n", " 'Venue Category']\n", " \n", " return(nearby_venues)" ] }, { "cell_type": "code", "execution_count": 398, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Centro\n", "Centro\n", "Centro\n", "Centro\n", "Centro\n", "Centro\n", "Arganzuela\n", "Arganzuela\n", "Arganzuela\n", "Arganzuela\n", "Arganzuela\n", "Arganzuela\n", "Arganzuela\n", "Retiro\n", "Retiro\n", "Retiro\n", "Retiro\n", "Retiro\n", "Retiro\n", "Salamanca\n", "Salamanca\n", "Salamanca\n", "Salamanca\n", "Salamanca\n", "Salamanca\n", "Chamartin\n", "Chamartin\n", "Chamartin\n", "Chamartin\n", "Chamartin\n", "Chamartin\n", "Tetuan\n", "Tetuan\n", "Tetuan\n", "Tetuan\n", "Tetuan\n", "Tetuan\n", "Chamberi\n", "Chamberi\n", "Chamberi\n", "Chamberi\n", "Chamberi\n", "Chamberi\n", "Fuencarral - El Pardo\n", "Fuencarral - El Pardo\n", "Fuencarral - El Pardo\n", "Fuencarral - El Pardo\n", "Fuencarral - El Pardo\n", "Fuencarral - El Pardo\n", "Fuencarral - El Pardo\n", "Fuencarral - El Pardo\n", "Moncloa - Aravaca\n", "Moncloa - Aravaca\n", "Moncloa - Aravaca\n", "Moncloa - Aravaca\n", "Moncloa - Aravaca\n", "Moncloa - Aravaca\n", "Moncloa - Aravaca\n", "Latina\n", "Latina\n", "Latina\n", "Latina\n", "Latina\n", "Latina\n", "Latina\n", "Carabanchel\n", "Carabanchel\n", "Carabanchel\n", "Carabanchel\n", "Carabanchel\n", "Carabanchel\n", "Carabanchel\n", "Usera\n", "Usera\n", "Usera\n", "Usera\n", "Usera\n", "Usera\n", "Usera\n", "Puente de Vallecas\n", "Puente de Vallecas\n", "Puente de Vallecas\n", "Puente de Vallecas\n", "Puente de Vallecas\n", "Puente de Vallecas\n", "Moratalaz\n", "Moratalaz\n", "Moratalaz\n", "Moratalaz\n", "Moratalaz\n", "Moratalaz\n", "Ciudad Lineal\n", "Ciudad Lineal\n", "Ciudad Lineal\n", "Ciudad Lineal\n", "Ciudad Lineal\n", "Ciudad Lineal\n", "Ciudad Lineal\n", "Ciudad Lineal\n", "Ciudad Lineal\n", "Hortaleza\n", "Hortaleza\n", "Hortaleza\n", "Hortaleza\n", "Hortaleza\n", "Hortaleza\n", "Villaverde\n", "Villaverde\n", "Villaverde\n", "Villaverde\n", "Villaverde\n", "Villa de Vallecas\n", "Villa de Vallecas\n", "Villa de Vallecas\n", "Vicalvaro\n", "Vicalvaro\n", "Vicalvaro\n", "Vicalvaro\n", "San Blas - Canillejas\n", "San Blas - Canillejas\n", "San Blas - Canillejas\n", "San Blas - Canillejas\n", "San Blas - Canillejas\n", "San Blas - Canillejas\n", "San Blas - Canillejas\n", "San Blas - Canillejas\n", "Barajas\n", "Barajas\n", "Barajas\n", "Barajas\n", "Barajas\n" ] } ], "source": [ "# we run the above function on each district and create a new dataframe called madrid_venues.\n", "madrid_venues = getNearbyVenues(names=madrid_data['District'],\n", " latitudes=madrid_data['District_Latitude'],\n", " longitudes=madrid_data['District_Longitude']\n", " )" ] }, { "cell_type": "code", "execution_count": 399, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(4707, 7)\n" ] }, { "data": { "text/html": [ "
\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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DistrictLatitudeLongitudeVenueVenue LatitudeVenue LongitudeVenue Category
0Centro40.415347-3.707371Plaza Mayor40.415527-3.707506Plaza
1Centro40.415347-3.707371Mercado de San Miguel40.415443-3.708943Market
2Centro40.415347-3.707371The Hat Madrid40.414343-3.707120Hotel
3Centro40.415347-3.707371La Taberna de Mister Pinkleton40.414536-3.708108Other Nightlife
4Centro40.415347-3.707371Plaza Menor40.414192-3.708494Lounge
\n", "
" ], "text/plain": [ " District Latitude Longitude Venue \\\n", "0 Centro 40.415347 -3.707371 Plaza Mayor \n", "1 Centro 40.415347 -3.707371 Mercado de San Miguel \n", "2 Centro 40.415347 -3.707371 The Hat Madrid \n", "3 Centro 40.415347 -3.707371 La Taberna de Mister Pinkleton \n", "4 Centro 40.415347 -3.707371 Plaza Menor \n", "\n", " Venue Latitude Venue Longitude Venue Category \n", "0 40.415527 -3.707506 Plaza \n", "1 40.415443 -3.708943 Market \n", "2 40.414343 -3.707120 Hotel \n", "3 40.414536 -3.708108 Other Nightlife \n", "4 40.414192 -3.708494 Lounge " ] }, "execution_count": 399, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(madrid_venues.shape)\n", "madrid_venues.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Counting venues grouped by district:" ] }, { "cell_type": "code", "execution_count": 400, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", "
LatitudeLongitudeVenueVenue LatitudeVenue LongitudeVenue Category
District
Arganzuela595595595595595595
Barajas155155155155155155
Carabanchel636363636363
Centro600600600600600600
Chamartin336336336336336336
Chamberi600600600600600600
Ciudad Lineal234234234234234234
Fuencarral - El Pardo312312312312312312
Hortaleza108108108108108108
Latina777777777777
Moncloa - Aravaca392392392392392392
Moratalaz727272727272
Puente de Vallecas156156156156156156
Retiro246246246246246246
Salamanca312312312312312312
San Blas - Canillejas808080808080
Tetuan192192192192192192
Usera848484848484
Vicalvaro444444444444
Villa de Vallecas242424242424
Villaverde252525252525
\n", "
" ], "text/plain": [ " Latitude Longitude Venue Venue Latitude \\\n", "District \n", "Arganzuela 595 595 595 595 \n", "Barajas 155 155 155 155 \n", "Carabanchel 63 63 63 63 \n", "Centro 600 600 600 600 \n", "Chamartin 336 336 336 336 \n", "Chamberi 600 600 600 600 \n", "Ciudad Lineal 234 234 234 234 \n", "Fuencarral - El Pardo 312 312 312 312 \n", "Hortaleza 108 108 108 108 \n", "Latina 77 77 77 77 \n", "Moncloa - Aravaca 392 392 392 392 \n", "Moratalaz 72 72 72 72 \n", "Puente de Vallecas 156 156 156 156 \n", "Retiro 246 246 246 246 \n", "Salamanca 312 312 312 312 \n", "San Blas - Canillejas 80 80 80 80 \n", "Tetuan 192 192 192 192 \n", "Usera 84 84 84 84 \n", "Vicalvaro 44 44 44 44 \n", "Villa de Vallecas 24 24 24 24 \n", "Villaverde 25 25 25 25 \n", "\n", " Venue Longitude Venue Category \n", "District \n", "Arganzuela 595 595 \n", "Barajas 155 155 \n", "Carabanchel 63 63 \n", "Centro 600 600 \n", "Chamartin 336 336 \n", "Chamberi 600 600 \n", "Ciudad Lineal 234 234 \n", "Fuencarral - El Pardo 312 312 \n", "Hortaleza 108 108 \n", "Latina 77 77 \n", "Moncloa - Aravaca 392 392 \n", "Moratalaz 72 72 \n", "Puente de Vallecas 156 156 \n", "Retiro 246 246 \n", "Salamanca 312 312 \n", "San Blas - Canillejas 80 80 \n", "Tetuan 192 192 \n", "Usera 84 84 \n", "Vicalvaro 44 44 \n", "Villa de Vallecas 24 24 \n", "Villaverde 25 25 " ] }, "execution_count": 400, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_venues.groupby('District').count()" ] }, { "cell_type": "code", "execution_count": 401, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "There are 165 unique categories\n" ] } ], "source": [ "print(\"There are {} unique categories\".format(len(madrid_venues['Venue Category'].unique())))" ] }, { "cell_type": "code", "execution_count": 402, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DistrictAmerican RestaurantArepa RestaurantArgentinian RestaurantArt GalleryArt MuseumArt StudioArts & Crafts StoreAsian RestaurantAthletics & SportsAuto WorkshopBBQ JointBakeryBarBeer BarBeer GardenBig Box StoreBistroBoard ShopBookstoreBoutiqueBoxing GymBrazilian RestaurantBreakfast SpotBreweryBubble Tea ShopBurger JointBurrito PlaceBus LineBus StationCafeteriaCaféCandy StoreCantonese RestaurantChinese RestaurantChocolate ShopCircusClothing StoreCocktail BarCoffee ShopConcert HallCosmetics ShopCreperieCuban RestaurantCupcake ShopDance StudioDepartment StoreDessert ShopDinerDog RunDonut ShopDumpling RestaurantEastern European RestaurantElectronics StoreFabric ShopFalafel RestaurantFarmers MarketFast Food RestaurantFish MarketFlea MarketFoodFood & Drink ShopFood StandFood TruckFrench RestaurantFried Chicken JointFrozen Yogurt ShopFurniture / Home StoreGardenGas StationGastropubGeneral EntertainmentGerman RestaurantGourmet ShopGreek RestaurantGrocery StoreGymGym / Fitness CenterGymnastics GymHealth & Beauty ServiceHealth Food StoreHerbs & Spices StoreHistoric SiteHistory MuseumHostelHot Dog JointHotelIce Cream ShopIndian RestaurantIndie Movie TheaterIndie TheaterItalian RestaurantJapanese RestaurantJuice BarKebab RestaurantKorean RestaurantLatin American RestaurantLebanese RestaurantLiquor StoreLoungeMarketMediterranean RestaurantMetro StationMexican RestaurantMiddle Eastern RestaurantMobile Phone ShopMotorcycle ShopMovie TheaterMultiplexMuseumMusic VenueNightclubNoodle HouseOpera HouseOther Great OutdoorsOther NightlifeOutdoors & RecreationParkPastry ShopPeruvian RestaurantPet StorePharmacyPie ShopPizza PlacePlatformPlaygroundPlazaPolish RestaurantPubRamen RestaurantResortRestaurantRoadSalad PlaceSandwich PlaceScenic LookoutScience MuseumSeafood RestaurantShopping MallSmoothie ShopSnack PlaceSoccer FieldSouth American RestaurantSpaSpanish RestaurantSporting Goods ShopSteakhouseSupermarketSushi RestaurantTapas RestaurantTattoo ParlorTea RoomThai RestaurantTheaterTheme RestaurantThrift / Vintage StoreToy / Game StoreTrade SchoolTrainTrain StationUdon RestaurantVegetarian / Vegan RestaurantVideo Game StoreWine BarWine ShopWomen's Store
0Centro000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000
1Centro000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000
2Centro000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000
3Centro000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000
4Centro000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000
\n", "
" ], "text/plain": [ " District American Restaurant Arepa Restaurant Argentinian Restaurant \\\n", "0 Centro 0 0 0 \n", "1 Centro 0 0 0 \n", "2 Centro 0 0 0 \n", "3 Centro 0 0 0 \n", "4 Centro 0 0 0 \n", "\n", " Art Gallery Art Museum Art Studio Arts & Crafts Store Asian Restaurant \\\n", "0 0 0 0 0 0 \n", "1 0 0 0 0 0 \n", "2 0 0 0 0 0 \n", "3 0 0 0 0 0 \n", "4 0 0 0 0 0 \n", "\n", " Athletics & Sports Auto Workshop BBQ Joint Bakery Bar Beer Bar \\\n", "0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 \n", "\n", " Beer Garden Big Box Store Bistro Board Shop Bookstore Boutique \\\n", "0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 \n", "\n", " Boxing Gym Brazilian Restaurant Breakfast Spot Brewery Bubble Tea Shop \\\n", "0 0 0 0 0 0 \n", "1 0 0 0 0 0 \n", "2 0 0 0 0 0 \n", "3 0 0 0 0 0 \n", "4 0 0 0 0 0 \n", "\n", " Burger Joint Burrito Place Bus Line Bus Station Cafeteria Café \\\n", "0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 \n", "\n", " Candy Store Cantonese Restaurant Chinese Restaurant Chocolate Shop \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", "\n", " Circus Clothing Store Cocktail Bar Coffee Shop Concert Hall \\\n", "0 0 0 0 0 0 \n", "1 0 0 0 0 0 \n", "2 0 0 0 0 0 \n", "3 0 0 0 0 0 \n", "4 0 0 0 0 0 \n", "\n", " Cosmetics Shop Creperie Cuban Restaurant Cupcake Shop Dance Studio \\\n", "0 0 0 0 0 0 \n", "1 0 0 0 0 0 \n", "2 0 0 0 0 0 \n", "3 0 0 0 0 0 \n", "4 0 0 0 0 0 \n", "\n", " Department Store Dessert Shop Diner Dog Run Donut Shop \\\n", "0 0 0 0 0 0 \n", "1 0 0 0 0 0 \n", "2 0 0 0 0 0 \n", "3 0 0 0 0 0 \n", "4 0 0 0 0 0 \n", "\n", " Dumpling Restaurant Eastern European Restaurant Electronics Store \\\n", "0 0 0 0 \n", "1 0 0 0 \n", "2 0 0 0 \n", "3 0 0 0 \n", "4 0 0 0 \n", "\n", " Fabric Shop Falafel Restaurant Farmers Market Fast Food Restaurant \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", "\n", " Fish Market Flea Market Food Food & Drink Shop Food Stand Food Truck \\\n", "0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 \n", "\n", " French Restaurant Fried Chicken Joint Frozen Yogurt Shop \\\n", "0 0 0 0 \n", "1 0 0 0 \n", "2 0 0 0 \n", "3 0 0 0 \n", "4 0 0 0 \n", "\n", " Furniture / Home Store Garden Gas Station Gastropub \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", "\n", " General Entertainment German Restaurant Gourmet Shop Greek Restaurant \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", "\n", " Grocery Store Gym Gym / Fitness Center Gymnastics Gym \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", "\n", " Health & Beauty Service Health Food Store Herbs & Spices Store \\\n", "0 0 0 0 \n", "1 0 0 0 \n", "2 0 0 0 \n", "3 0 0 0 \n", "4 0 0 0 \n", "\n", " Historic Site History Museum Hostel Hot Dog Joint Hotel \\\n", "0 0 0 0 0 0 \n", "1 0 0 0 0 0 \n", "2 0 0 0 0 1 \n", "3 0 0 0 0 0 \n", "4 0 0 0 0 0 \n", "\n", " Ice Cream Shop Indian Restaurant Indie Movie Theater Indie Theater \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", "\n", " Italian Restaurant Japanese Restaurant Juice Bar Kebab Restaurant \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", "\n", " Korean Restaurant Latin American Restaurant Lebanese Restaurant \\\n", "0 0 0 0 \n", "1 0 0 0 \n", "2 0 0 0 \n", "3 0 0 0 \n", "4 0 0 0 \n", "\n", " Liquor Store Lounge Market Mediterranean Restaurant Metro Station \\\n", "0 0 0 0 0 0 \n", "1 0 0 1 0 0 \n", "2 0 0 0 0 0 \n", "3 0 0 0 0 0 \n", "4 0 1 0 0 0 \n", "\n", " Mexican Restaurant Middle Eastern Restaurant Mobile Phone Shop \\\n", "0 0 0 0 \n", "1 0 0 0 \n", "2 0 0 0 \n", "3 0 0 0 \n", "4 0 0 0 \n", "\n", " Motorcycle Shop Movie Theater Multiplex Museum Music Venue Nightclub \\\n", "0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 \n", "\n", " Noodle House Opera House Other Great Outdoors Other Nightlife \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 1 \n", "4 0 0 0 0 \n", "\n", " Outdoors & Recreation Park Pastry Shop Peruvian Restaurant Pet Store \\\n", "0 0 0 0 0 0 \n", "1 0 0 0 0 0 \n", "2 0 0 0 0 0 \n", "3 0 0 0 0 0 \n", "4 0 0 0 0 0 \n", "\n", " Pharmacy Pie Shop Pizza Place Platform Playground Plaza \\\n", "0 0 0 0 0 0 1 \n", "1 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 \n", "\n", " Polish Restaurant Pub Ramen Restaurant Resort Restaurant Road \\\n", "0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 \n", "\n", " Salad Place Sandwich Place Scenic Lookout Science Museum \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", "\n", " Seafood Restaurant Shopping Mall Smoothie Shop Snack Place \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", "\n", " Soccer Field South American Restaurant Spa Spanish Restaurant \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", "\n", " Sporting Goods Shop Steakhouse Supermarket Sushi Restaurant \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", "\n", " Tapas Restaurant Tattoo Parlor Tea Room Thai Restaurant Theater \\\n", "0 0 0 0 0 0 \n", "1 0 0 0 0 0 \n", "2 0 0 0 0 0 \n", "3 0 0 0 0 0 \n", "4 0 0 0 0 0 \n", "\n", " Theme Restaurant Thrift / Vintage Store Toy / Game Store Trade School \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", "\n", " Train Train Station Udon Restaurant Vegetarian / Vegan Restaurant \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", "\n", " Video Game Store Wine Bar Wine Shop Women's Store \n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 " ] }, "execution_count": 402, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# one hot encoding\n", "madrid_onehot = pd.get_dummies(madrid_venues[['Venue Category']], prefix=\"\", prefix_sep=\"\")\n", "\n", "# add disctrict column back to dataframe\n", "madrid_onehot['District'] = madrid_venues['District'] \n", "\n", "# move neighborhood column to the first column\n", "fixed_columns = [madrid_onehot.columns[-1]] + list(madrid_onehot.columns[:-1])\n", "madrid_onehot = madrid_onehot[fixed_columns]\n", "\n", "madrid_onehot.head(5)" ] }, { "cell_type": "code", "execution_count": 403, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", "
DistrictAmerican RestaurantArepa RestaurantArgentinian RestaurantArt GalleryArt MuseumArt StudioArts & Crafts StoreAsian RestaurantAthletics & SportsAuto WorkshopBBQ JointBakeryBarBeer BarBeer GardenBig Box StoreBistroBoard ShopBookstoreBoutiqueBoxing GymBrazilian RestaurantBreakfast SpotBreweryBubble Tea ShopBurger JointBurrito PlaceBus LineBus StationCafeteriaCaféCandy StoreCantonese RestaurantChinese RestaurantChocolate ShopCircusClothing StoreCocktail BarCoffee ShopConcert HallCosmetics ShopCreperieCuban RestaurantCupcake ShopDance StudioDepartment StoreDessert ShopDinerDog RunDonut ShopDumpling RestaurantEastern European RestaurantElectronics StoreFabric ShopFalafel RestaurantFarmers MarketFast Food RestaurantFish MarketFlea MarketFoodFood & Drink ShopFood StandFood TruckFrench RestaurantFried Chicken JointFrozen Yogurt ShopFurniture / Home StoreGardenGas StationGastropubGeneral EntertainmentGerman RestaurantGourmet ShopGreek RestaurantGrocery StoreGymGym / Fitness CenterGymnastics GymHealth & Beauty ServiceHealth Food StoreHerbs & Spices StoreHistoric SiteHistory MuseumHostelHot Dog JointHotelIce Cream ShopIndian RestaurantIndie Movie TheaterIndie TheaterItalian RestaurantJapanese RestaurantJuice BarKebab RestaurantKorean RestaurantLatin American RestaurantLebanese RestaurantLiquor StoreLoungeMarketMediterranean RestaurantMetro StationMexican RestaurantMiddle Eastern RestaurantMobile Phone ShopMotorcycle ShopMovie TheaterMultiplexMuseumMusic VenueNightclubNoodle HouseOpera HouseOther Great OutdoorsOther NightlifeOutdoors & RecreationParkPastry ShopPeruvian RestaurantPet StorePharmacyPie ShopPizza PlacePlatformPlaygroundPlazaPolish RestaurantPubRamen RestaurantResortRestaurantRoadSalad PlaceSandwich PlaceScenic LookoutScience MuseumSeafood RestaurantShopping MallSmoothie ShopSnack PlaceSoccer FieldSouth American RestaurantSpaSpanish RestaurantSporting Goods ShopSteakhouseSupermarketSushi RestaurantTapas RestaurantTattoo ParlorTea RoomThai RestaurantTheaterTheme RestaurantThrift / Vintage StoreToy / Game StoreTrade SchoolTrainTrain StationUdon RestaurantVegetarian / Vegan RestaurantVideo Game StoreWine BarWine ShopWomen's Store
0Arganzuela0.000.0235290.0000000.0000000.000.000000.0000000.0117650.0000000.000000.0000000.0588240.0000000.0117650.0235290.0000000.0000000.0000000.0000000.0000000.0000000.00000.0235290.0117650.0000000.0235290.0000000.0000000.0000000.0000000.0000000.000.000.0117650.0000000.0117650.0000000.0000000.0117650.0117650.0000000.000.0117650.0000000.0000000.0000000.0117650.0000000.000000.0000000.0000000.0000000.0117650.0000000.0235290.0117650.0000000.0000000.0117650.0000000.000000.000.0000000.000.0000000.0000000.0000000.000000.00.0117650.0000000.0000000.000000.000000.0705880.0117650.0352940.0000000.0000000.000.000.000.0000000.000.000.0235290.0000000.000000.000.0117650.0117650.0000000.0000000.0000000.0000000.0117650.0000000.0000000.0000000.0235290.0000000.0000000.0000000.0000000.0000000.000000.0117650.000.0117650.0117650.0000000.0000000.000.0117650.000.0117650.0000000.0000000.0000000.000.0000000.000.0235290.0000.0000000.0117650.000000.0000000.0000000.000000.1176470.000.0000000.0117650.0000000.0117650.0000000.0000000.000.0117650.0000000.0000000.000.0941180.0000000.0000000.0117650.0000000.0470590.0117650.000.0117650.0000000.0117650.0117650.0000000.0117650.00.0117650.0000000.000.0000000.0000000.0000000.000000
1Barajas0.000.0000000.0322580.0000000.000.000000.0000000.0000000.0000000.000000.0000000.0000000.0322580.0000000.0000000.0000000.0322580.0000000.0000000.0000000.0000000.00000.0000000.0322580.0000000.0000000.0000000.0000000.0000000.0000000.0322580.000.000.0000000.0000000.0000000.0000000.0000000.0645160.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0322580.0000000.0000000.0000000.000000.000.0000000.000.0000000.0000000.0000000.000000.00.0322580.0000000.0000000.000000.000000.0322580.0000000.0000000.0000000.0000000.000.000.000.0000000.000.000.1935480.0000000.000000.000.0000000.0000000.0322580.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0322580.0000000.0322580.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.0000.0000000.0000000.000000.0000000.0000000.000000.1290320.000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.000.0967740.0000000.0000000.0322580.0000000.0645160.0000000.000.0322580.0000000.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0322580.0000000.000000
2Carabanchel0.000.0000000.0000000.0000000.000.000000.0000000.0000000.0000000.000000.0000000.1111110.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.00000.0000000.0000000.0000000.1111110.0000000.0000000.0000000.0000000.0000000.000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.1111110.0000000.0000000.0000000.000000.000.0000000.000.0000000.0000000.0000000.000000.00.0000000.0000000.0000000.000000.000000.0000000.0000000.0000000.0000000.0000000.000.000.000.0000000.000.000.0000000.0000000.000000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.1111110.0000000.0000000.0000000.000000.0000000.000.0000000.0000000.1111110.0000000.000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.1111110.0000.0000000.1111110.000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.1111110.0000000.000.0000000.0000000.0000000.0000000.0000000.1111110.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0000000.0000000.000000
3Centro0.010.0000000.0000000.0000000.000.000000.0000000.0000000.0000000.000000.0000000.0000000.0200000.0000000.0000000.0000000.0100000.0000000.0300000.0000000.0000000.00000.0100000.0000000.0000000.0200000.0000000.0000000.0000000.0000000.0200000.010.010.0000000.0100000.0000000.0000000.0200000.0100000.0000000.0100000.010.0000000.0000000.0000000.0100000.0100000.0000000.000000.0000000.0100000.0000000.0200000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.000.0000000.010.0000000.0000000.0000000.010000.00.0100000.0000000.0000000.010000.000000.0000000.0100000.0200000.0000000.0000000.000.000.020.0100000.040.000.0300000.0400000.000000.010.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0100000.0100000.0000000.0000000.0000000.0000000.0000000.000000.0000000.010.0000000.0000000.0000000.0000000.010.0000000.010.0000000.0000000.0200000.0000000.000.0000000.010.0000000.0000.0000000.1000000.000000.0000000.0100000.000000.0100000.010.0000000.0000000.0000000.0000000.0100000.0000000.010.0000000.0000000.0000000.000.1300000.0000000.0000000.0000000.0000000.1200000.0000000.000.0000000.0200000.0000000.0000000.0000000.0000000.00.0000000.0000000.010.0000000.0200000.0000000.000000
4Chamartin0.000.0000000.0000000.0000000.000.000000.0000000.0000000.0000000.000000.0000000.0535710.0178570.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.00000.0000000.0000000.0000000.0000000.0000000.0000000.0178570.0000000.0535710.000.000.0000000.0000000.0000000.0000000.0000000.0357140.0000000.0000000.000.0000000.0000000.0000000.0000000.0178570.0178570.000000.0000000.0000000.0178570.0000000.0000000.0000000.0000000.0000000.0178570.0000000.0000000.000000.000.0000000.000.0178570.0000000.0178570.000000.00.0357140.0000000.0178570.000000.000000.0535710.0000000.0000000.0000000.0178570.000.000.000.0000000.000.000.0178570.0000000.000000.000.0000000.0000000.0357140.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0178570.0000000.0000000.0178570.0000000.0178570.000000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.0357140.0000000.0000000.000.0000000.000.0357140.0000.0000000.0000000.000000.0178570.0000000.000000.1428570.000.0000000.0178570.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.000.1428570.0000000.0000000.0178570.0178570.0535710.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0000000.0000000.000000
5Chamberi0.010.0000000.0000000.0100000.010.000000.0000000.0200000.0000000.000000.0100000.0200000.0600000.0000000.0000000.0000000.0100000.0000000.0200000.0000000.0000000.00000.0100000.0500000.0000000.0200000.0000000.0000000.0000000.0000000.0300000.000.000.0100000.0000000.0000000.0000000.0200000.0200000.0100000.0000000.000.0000000.0000000.0000000.0000000.0000000.0100000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.010.0000000.020.0000000.0000000.0000000.000000.00.0100000.0000000.0000000.000000.010000.0000000.0000000.0000000.0000000.0000000.010.010.000.0100000.000.010.0200000.0100000.000000.000.0000000.0400000.0400000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0200000.0100000.0000000.0300000.0000000.0000000.000000.0100000.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.0000000.0000000.0000000.010.0100000.010.0100000.0000.0000000.0300000.000000.0100000.0000000.000000.0700000.000.0000000.0000000.0000000.0000000.0100000.0000000.000.0100000.0000000.0000000.010.1200000.0000000.0100000.0000000.0000000.0300000.0000000.010.0000000.0100000.0000000.0000000.0100000.0000000.00.0000000.0000000.000.0000000.0100000.0000000.000000
6Ciudad Lineal0.000.0000000.0769230.0000000.000.000000.0000000.0000000.0000000.000000.0000000.0384620.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.00000.0000000.0000000.0000000.0384620.0000000.0384620.0000000.0000000.0384620.000.000.0000000.0000000.0000000.0000000.0384620.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.000.0000000.000.0000000.0000000.0000000.000000.00.0769230.0000000.0000000.000000.000000.0769230.0000000.0000000.0000000.0000000.000.000.000.0000000.000.000.0384620.0384620.000000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0384620.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.0769230.0000000.0000000.000.0384620.000.0000000.0000.0000000.0000000.000000.0000000.0000000.000000.1153850.000.0000000.0000000.0000000.0000000.0000000.0384620.000.0000000.0000000.0000000.000.1153850.0000000.0000000.0384620.0000000.0384620.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0000000.0000000.000000
7Fuencarral - El Pardo0.000.0000000.0000000.0000000.000.000000.0000000.0000000.0000000.000000.0000000.0256410.0000000.0000000.0000000.0256410.0000000.0000000.0000000.0256410.0000000.00000.0000000.0000000.0000000.0512820.0000000.0000000.0000000.0256410.0000000.000.000.0000000.0256410.0000000.1282050.0000000.0000000.0000000.0256410.000.0000000.0000000.0000000.0256410.0000000.0256410.000000.0256410.0000000.0000000.0000000.0000000.0000000.0000000.0512820.0000000.0256410.0000000.000000.000.0000000.000.0000000.0256410.0000000.000000.00.0000000.0256410.0000000.000000.000000.0000000.0000000.0000000.0000000.0000000.000.000.000.0000000.000.000.0000000.0256410.000000.000.0000000.0512820.0000000.0000000.0256410.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0256410.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.0256410.0000000.0000000.000.0256410.000.0256410.0000.0000000.0000000.000000.0000000.0000000.000000.0256410.000.0000000.0256410.0000000.0000000.0000000.0256410.000.0000000.0000000.0000000.000.0256410.0256410.0000000.0000000.0000000.0512820.0000000.000.0000000.0000000.0000000.0000000.0256410.0000000.00.0000000.0256410.000.0256410.0000000.0000000.000000
8Hortaleza0.000.0000000.0555560.0000000.000.000000.0000000.0000000.0000000.000000.0000000.0555560.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.00000.1666670.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.000.0555560.0000000.0000000.0555560.0000000.0000000.0000000.0000000.000.0000000.0000000.0555560.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0555560.000000.000.0000000.000.0000000.0000000.0000000.000000.00.0000000.0000000.0000000.000000.000000.0000000.0000000.0000000.0000000.0000000.000.000.000.0000000.000.000.0000000.0000000.000000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.1111110.0000.0000000.0555560.000000.0555560.0000000.000000.0555560.000.0000000.0555560.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.000.0555560.0000000.0000000.1111110.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0000000.0000000.000000
9Latina0.000.0000000.0000000.0000000.000.000000.0909090.0909090.0000000.000000.0000000.0909090.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.00000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0909090.0000000.0909090.0000000.0000000.0000000.000000.000.0000000.000.0000000.0000000.0000000.000000.00.0000000.0000000.0000000.000000.000000.0909090.0000000.0000000.0000000.0000000.000.000.000.0000000.000.000.0000000.0000000.000000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0909090.0000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.0909090.0000000.0000000.000.0000000.000.1818180.0000.0000000.0000000.000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.00.0909090.0000000.000.0000000.0000000.0000000.000000
10Moncloa - Aravaca0.000.0000000.0000000.0000000.000.000000.0000000.0178570.0178570.000000.0000000.0357140.0357140.0000000.0178570.0000000.0000000.0178570.0178570.0000000.0178570.00000.0000000.0000000.0000000.0178570.0178570.0000000.0000000.0000000.0178570.000.000.0178570.0000000.0000000.0178570.0000000.0357140.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0178570.000000.0000000.0178570.0000000.0000000.0178570.0000000.0000000.0000000.0000000.0000000.0000000.000000.000.0000000.000.0000000.0000000.0000000.000000.00.0178570.0000000.0000000.000000.000000.0178570.0000000.0000000.0000000.0000000.000.000.000.0178570.000.000.0178570.0357140.000000.000.0000000.0357140.0357140.0000000.0178570.0178570.0000000.0000000.0000000.0000000.0000000.0357140.0000000.0000000.0178570.0000000.000000.0178570.000.0000000.0000000.0178570.0000000.000.0000000.000.0178570.0000000.0000000.0000000.000.0000000.000.0357140.0000.0000000.0000000.000000.0357140.0000000.000000.0714290.000.0178570.0178570.0178570.0000000.0000000.0000000.000.0000000.0000000.0000000.000.0535710.0000000.0000000.0000000.0000000.0535710.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0000000.0000000.017857
11Moratalaz0.000.0000000.0000000.0000000.000.000000.0000000.0000000.0000000.000000.0000000.0833330.1666670.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.00000.0000000.0833330.0000000.0000000.0000000.0000000.0000000.0000000.0833330.000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.000.0833330.000.0000000.0000000.0000000.000000.00.0000000.0000000.0000000.000000.000000.0000000.0000000.0000000.0000000.0000000.000.000.000.0000000.000.000.0000000.0833330.000000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.000.0000000.0000000.0833330.0000000.000.0000000.000.0000000.0833330.0000000.0000000.000.0000000.000.0833330.0000.0000000.0833330.000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0833330.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0000000.0000000.000000
12Puente de Vallecas0.000.0000000.0000000.0000000.000.000000.0000000.0000000.0000000.000000.0384620.0384620.0384620.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.00000.0384620.0000000.0000000.0384620.0000000.0000000.0000000.0000000.0769230.000.000.0000000.0000000.0000000.0000000.0000000.0384620.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.1153850.0000000.0000000.0000000.000000.000.0000000.000.0000000.0000000.0000000.000000.00.0000000.0000000.0000000.000000.000000.0769230.0769230.0000000.0000000.0000000.000.000.000.0000000.000.000.0769230.0384620.000000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0384620.0000000.0000000.0000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.0000000.0000000.0384620.000.0000000.000.0000000.0000.0000000.0000000.000000.0384620.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0384620.000.0384620.0000000.0000000.0769230.0000000.0384620.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0000000.0000000.000000
13Retiro0.000.0000000.0000000.0243900.000.000000.0000000.0000000.0000000.024390.0000000.0243900.0487800.0000000.0000000.0000000.0000000.0243900.0000000.0243900.0000000.00000.0000000.0243900.0000000.0243900.0000000.0000000.0000000.0000000.0000000.000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0243900.0243900.024390.0000000.0000000.0000000.0000000.0000000.0000000.0243900.0000000.0000000.0000000.0000000.024390.000.0000000.000.0000000.0000000.0000000.024390.00.0000000.0000000.0000000.024390.024390.0243900.0243900.0000000.0000000.0000000.000.000.000.0000000.000.000.0000000.0243900.024390.000.0000000.0243900.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0243900.0000000.0243900.0000000.0000000.000000.0000000.000.0487800.0000000.0000000.0000000.000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0243900.0000.0243900.0243900.024390.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.000.1463410.0243900.0000000.0487800.0000000.0487800.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0000000.0000000.000000
14Salamanca0.000.0000000.0000000.0192310.000.000000.0000000.0000000.0000000.000000.0000000.0192310.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.00000.0192310.0000000.0000000.0384620.0000000.0000000.0000000.0192310.0000000.000.000.0000000.0000000.0000000.0384620.0000000.0000000.0000000.0000000.000.0000000.0192310.0000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.000.0000000.000.0000000.0000000.0000000.000000.00.0000000.0000000.0000000.000000.000000.0192310.0192310.0000000.0192310.0000000.000.000.000.0000000.000.000.0000000.0000000.000000.000.0000000.0192310.0192310.0192310.0000000.0000000.0000000.0000000.0192310.0192310.0000000.0576920.0000000.0384620.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.0000000.0192310.0000000.000.0000000.000.0000000.0000.0192310.0192310.000000.0000000.0192310.000000.1346150.000.0000000.0000000.0000000.0000000.0576920.0000000.000.0000000.0000000.0000000.000.1730770.0192310.0192310.0384620.0000000.0384620.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0000000.0192310.000000
15San Blas - Canillejas0.000.0000000.0000000.0000000.000.000000.0000000.1000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.00000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.000.0000000.000.0000000.0000000.0000000.000000.10.0000000.0000000.0000000.000000.000000.1000000.1000000.0000000.0000000.0000000.000.000.000.0000000.000.000.0000000.0000000.000000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.2000000.0000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.1000000.0000.0000000.0000000.000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.0000000.1000000.000.1000000.0000000.0000000.000.0000000.0000000.0000000.1000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0000000.0000000.000000
16Tetuan0.000.0000000.0000000.0000000.000.031250.0000000.0312500.0000000.000000.0000000.0312500.0312500.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.06250.0312500.0312500.0000000.0000000.0000000.0000000.0000000.0312500.0000000.000.000.0625000.0000000.0000000.0312500.0000000.0312500.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0312500.0000000.0000000.0000000.0000000.000000.000.0000000.000.0000000.0000000.0000000.000000.00.0000000.0000000.0000000.000000.000000.0625000.0000000.0312500.0000000.0000000.000.000.000.0000000.000.000.0312500.0000000.000000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.031250.0000000.000.0000000.0312500.0000000.0000000.000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0312500.0000.0000000.0000000.000000.0000000.0000000.031250.0312500.000.0000000.0000000.0000000.0000000.0312500.0000000.000.0000000.0000000.0000000.000.1562500.0000000.0000000.0625000.0312500.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0000000.0000000.000000
17Usera0.000.0000000.0000000.0000000.000.000000.0000000.0833330.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.00000.0000000.0000000.0833330.0000000.0000000.0000000.0000000.0000000.0000000.000.000.1666670.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0833330.0000000.0000000.0000000.000000.000.0000000.000.0000000.0000000.0000000.000000.00.0000000.0000000.0000000.000000.000000.0000000.0000000.0000000.0000000.0000000.000.000.000.0000000.000.000.0000000.0000000.000000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0833330.000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.0000.0000000.0833330.000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.1666670.0000000.000.0000000.0000000.0000000.000.1666670.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0833330.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0000000.0000000.000000
18Vicalvaro0.000.0000000.0000000.0000000.000.000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0909090.0000000.0000000.0000000.0000000.0000000.0000000.0000000.00000.0909090.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0909090.000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0909090.0000000.0000000.0000000.000000.000.0000000.000.0000000.0000000.0000000.000000.00.0000000.0000000.0000000.000000.000000.0909090.0000000.0000000.0000000.0000000.000.000.000.0000000.000.000.0000000.0909090.000000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.1818180.0000.0000000.0000000.000000.0000000.0000000.000000.0000000.000.0000000.0909090.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.000.1818180.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0000000.0000000.000000
19Villa de Vallecas0.000.0000000.0000000.0000000.000.000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.00000.1250000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.1250000.000000.000.0000000.000.0000000.0000000.0000000.000000.00.0000000.0000000.0000000.000000.000000.1250000.0000000.0000000.0000000.0000000.000.000.000.0000000.000.000.0000000.0000000.000000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.1250000.0000000.0000000.000.0000000.000.0000000.1250.0000000.0000000.000000.0000000.0000000.000000.0000000.000.0000000.1250000.0000000.0000000.0000000.0000000.000.0000000.1250000.0000000.000.1250000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.00.0000000.0000000.000.0000000.0000000.0000000.000000
20Villaverde0.000.0000000.0000000.0000000.000.000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.00000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.2000000.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.000.0000000.000.0000000.0000000.0000000.000000.00.0000000.0000000.0000000.000000.000000.0000000.0000000.0000000.0000000.0000000.000.000.000.0000000.000.000.0000000.0000000.000000.000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.0000000.0000000.0000000.0000000.000.0000000.000.2000000.0000.0000000.2000000.000000.0000000.0000000.000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.000.2000000.0000000.0000000.0000000.0000000.0000000.0000000.000.0000000.0000000.0000000.0000000.0000000.0000000.20.0000000.0000000.000.0000000.0000000.0000000.000000
\n", "
" ], "text/plain": [ " District American Restaurant Arepa Restaurant \\\n", "0 Arganzuela 0.00 0.023529 \n", "1 Barajas 0.00 0.000000 \n", "2 Carabanchel 0.00 0.000000 \n", "3 Centro 0.01 0.000000 \n", "4 Chamartin 0.00 0.000000 \n", "5 Chamberi 0.01 0.000000 \n", "6 Ciudad Lineal 0.00 0.000000 \n", "7 Fuencarral - El Pardo 0.00 0.000000 \n", "8 Hortaleza 0.00 0.000000 \n", "9 Latina 0.00 0.000000 \n", "10 Moncloa - Aravaca 0.00 0.000000 \n", "11 Moratalaz 0.00 0.000000 \n", "12 Puente de Vallecas 0.00 0.000000 \n", "13 Retiro 0.00 0.000000 \n", "14 Salamanca 0.00 0.000000 \n", "15 San Blas - Canillejas 0.00 0.000000 \n", "16 Tetuan 0.00 0.000000 \n", "17 Usera 0.00 0.000000 \n", "18 Vicalvaro 0.00 0.000000 \n", "19 Villa de Vallecas 0.00 0.000000 \n", "20 Villaverde 0.00 0.000000 \n", "\n", " Argentinian Restaurant Art Gallery Art Museum Art Studio \\\n", "0 0.000000 0.000000 0.00 0.00000 \n", "1 0.032258 0.000000 0.00 0.00000 \n", "2 0.000000 0.000000 0.00 0.00000 \n", "3 0.000000 0.000000 0.00 0.00000 \n", "4 0.000000 0.000000 0.00 0.00000 \n", "5 0.000000 0.010000 0.01 0.00000 \n", "6 0.076923 0.000000 0.00 0.00000 \n", "7 0.000000 0.000000 0.00 0.00000 \n", "8 0.055556 0.000000 0.00 0.00000 \n", "9 0.000000 0.000000 0.00 0.00000 \n", "10 0.000000 0.000000 0.00 0.00000 \n", "11 0.000000 0.000000 0.00 0.00000 \n", "12 0.000000 0.000000 0.00 0.00000 \n", "13 0.000000 0.024390 0.00 0.00000 \n", "14 0.000000 0.019231 0.00 0.00000 \n", "15 0.000000 0.000000 0.00 0.00000 \n", "16 0.000000 0.000000 0.00 0.03125 \n", "17 0.000000 0.000000 0.00 0.00000 \n", "18 0.000000 0.000000 0.00 0.00000 \n", "19 0.000000 0.000000 0.00 0.00000 \n", "20 0.000000 0.000000 0.00 0.00000 \n", "\n", " Arts & Crafts Store Asian Restaurant Athletics & Sports Auto Workshop \\\n", "0 0.000000 0.011765 0.000000 0.00000 \n", "1 0.000000 0.000000 0.000000 0.00000 \n", "2 0.000000 0.000000 0.000000 0.00000 \n", "3 0.000000 0.000000 0.000000 0.00000 \n", "4 0.000000 0.000000 0.000000 0.00000 \n", "5 0.000000 0.020000 0.000000 0.00000 \n", "6 0.000000 0.000000 0.000000 0.00000 \n", "7 0.000000 0.000000 0.000000 0.00000 \n", "8 0.000000 0.000000 0.000000 0.00000 \n", "9 0.090909 0.090909 0.000000 0.00000 \n", "10 0.000000 0.017857 0.017857 0.00000 \n", "11 0.000000 0.000000 0.000000 0.00000 \n", "12 0.000000 0.000000 0.000000 0.00000 \n", "13 0.000000 0.000000 0.000000 0.02439 \n", "14 0.000000 0.000000 0.000000 0.00000 \n", "15 0.000000 0.100000 0.000000 0.00000 \n", "16 0.000000 0.031250 0.000000 0.00000 \n", "17 0.000000 0.083333 0.000000 0.00000 \n", "18 0.000000 0.000000 0.000000 0.00000 \n", "19 0.000000 0.000000 0.000000 0.00000 \n", "20 0.000000 0.000000 0.000000 0.00000 \n", "\n", " BBQ Joint Bakery Bar Beer Bar Beer Garden Big Box Store \\\n", "0 0.000000 0.058824 0.000000 0.011765 0.023529 0.000000 \n", "1 0.000000 0.000000 0.032258 0.000000 0.000000 0.000000 \n", "2 0.000000 0.111111 0.000000 0.000000 0.000000 0.000000 \n", "3 0.000000 0.000000 0.020000 0.000000 0.000000 0.000000 \n", "4 0.000000 0.053571 0.017857 0.000000 0.000000 0.000000 \n", "5 0.010000 0.020000 0.060000 0.000000 0.000000 0.000000 \n", "6 0.000000 0.038462 0.000000 0.000000 0.000000 0.000000 \n", "7 0.000000 0.025641 0.000000 0.000000 0.000000 0.025641 \n", "8 0.000000 0.055556 0.000000 0.000000 0.000000 0.000000 \n", "9 0.000000 0.090909 0.000000 0.000000 0.000000 0.000000 \n", "10 0.000000 0.035714 0.035714 0.000000 0.017857 0.000000 \n", "11 0.000000 0.083333 0.166667 0.000000 0.000000 0.000000 \n", "12 0.038462 0.038462 0.038462 0.000000 0.000000 0.000000 \n", "13 0.000000 0.024390 0.048780 0.000000 0.000000 0.000000 \n", "14 0.000000 0.019231 0.000000 0.000000 0.000000 0.000000 \n", "15 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "16 0.000000 0.031250 0.031250 0.000000 0.000000 0.000000 \n", "17 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "18 0.000000 0.000000 0.000000 0.090909 0.000000 0.000000 \n", "19 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "20 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "\n", " Bistro Board Shop Bookstore Boutique Boxing Gym \\\n", "0 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "1 0.032258 0.000000 0.000000 0.000000 0.000000 \n", "2 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "3 0.010000 0.000000 0.030000 0.000000 0.000000 \n", "4 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "5 0.010000 0.000000 0.020000 0.000000 0.000000 \n", "6 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "7 0.000000 0.000000 0.000000 0.025641 0.000000 \n", "8 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "9 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "10 0.000000 0.017857 0.017857 0.000000 0.017857 \n", "11 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "12 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "13 0.000000 0.024390 0.000000 0.024390 0.000000 \n", "14 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "15 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "16 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "17 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "18 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "19 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "20 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "\n", " Brazilian Restaurant Breakfast Spot Brewery Bubble Tea Shop \\\n", "0 0.0000 0.023529 0.011765 0.000000 \n", "1 0.0000 0.000000 0.032258 0.000000 \n", "2 0.0000 0.000000 0.000000 0.000000 \n", "3 0.0000 0.010000 0.000000 0.000000 \n", "4 0.0000 0.000000 0.000000 0.000000 \n", "5 0.0000 0.010000 0.050000 0.000000 \n", "6 0.0000 0.000000 0.000000 0.000000 \n", "7 0.0000 0.000000 0.000000 0.000000 \n", "8 0.0000 0.166667 0.000000 0.000000 \n", "9 0.0000 0.000000 0.000000 0.000000 \n", "10 0.0000 0.000000 0.000000 0.000000 \n", "11 0.0000 0.000000 0.083333 0.000000 \n", "12 0.0000 0.038462 0.000000 0.000000 \n", "13 0.0000 0.000000 0.024390 0.000000 \n", "14 0.0000 0.019231 0.000000 0.000000 \n", "15 0.0000 0.000000 0.000000 0.000000 \n", "16 0.0625 0.031250 0.031250 0.000000 \n", "17 0.0000 0.000000 0.000000 0.083333 \n", "18 0.0000 0.090909 0.000000 0.000000 \n", "19 0.0000 0.125000 0.000000 0.000000 \n", "20 0.0000 0.000000 0.000000 0.000000 \n", "\n", " Burger Joint Burrito Place Bus Line Bus Station Cafeteria Café \\\n", "0 0.023529 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "1 0.000000 0.000000 0.000000 0.000000 0.000000 0.032258 \n", "2 0.111111 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "3 0.020000 0.000000 0.000000 0.000000 0.000000 0.020000 \n", "4 0.000000 0.000000 0.000000 0.017857 0.000000 0.053571 \n", "5 0.020000 0.000000 0.000000 0.000000 0.000000 0.030000 \n", "6 0.038462 0.000000 0.038462 0.000000 0.000000 0.038462 \n", "7 0.051282 0.000000 0.000000 0.000000 0.025641 0.000000 \n", "8 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "9 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "10 0.017857 0.017857 0.000000 0.000000 0.000000 0.017857 \n", "11 0.000000 0.000000 0.000000 0.000000 0.000000 0.083333 \n", "12 0.038462 0.000000 0.000000 0.000000 0.000000 0.076923 \n", "13 0.024390 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "14 0.038462 0.000000 0.000000 0.000000 0.019231 0.000000 \n", "15 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "16 0.000000 0.000000 0.000000 0.000000 0.031250 0.000000 \n", "17 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "18 0.000000 0.000000 0.000000 0.000000 0.000000 0.090909 \n", "19 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "20 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "\n", " Candy Store Cantonese Restaurant Chinese Restaurant Chocolate Shop \\\n", "0 0.00 0.00 0.011765 0.000000 \n", "1 0.00 0.00 0.000000 0.000000 \n", "2 0.00 0.00 0.000000 0.000000 \n", "3 0.01 0.01 0.000000 0.010000 \n", "4 0.00 0.00 0.000000 0.000000 \n", "5 0.00 0.00 0.010000 0.000000 \n", "6 0.00 0.00 0.000000 0.000000 \n", "7 0.00 0.00 0.000000 0.025641 \n", "8 0.00 0.00 0.055556 0.000000 \n", "9 0.00 0.00 0.000000 0.000000 \n", "10 0.00 0.00 0.017857 0.000000 \n", "11 0.00 0.00 0.000000 0.000000 \n", "12 0.00 0.00 0.000000 0.000000 \n", "13 0.00 0.00 0.000000 0.000000 \n", "14 0.00 0.00 0.000000 0.000000 \n", "15 0.00 0.00 0.000000 0.000000 \n", "16 0.00 0.00 0.062500 0.000000 \n", "17 0.00 0.00 0.166667 0.000000 \n", "18 0.00 0.00 0.000000 0.000000 \n", "19 0.00 0.00 0.000000 0.000000 \n", "20 0.00 0.00 0.000000 0.000000 \n", "\n", " Circus Clothing Store Cocktail Bar Coffee Shop Concert Hall \\\n", "0 0.011765 0.000000 0.000000 0.011765 0.011765 \n", "1 0.000000 0.000000 0.000000 0.064516 0.000000 \n", "2 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "3 0.000000 0.000000 0.020000 0.010000 0.000000 \n", "4 0.000000 0.000000 0.000000 0.035714 0.000000 \n", "5 0.000000 0.000000 0.020000 0.020000 0.010000 \n", "6 0.000000 0.000000 0.038462 0.000000 0.000000 \n", "7 0.000000 0.128205 0.000000 0.000000 0.000000 \n", "8 0.000000 0.055556 0.000000 0.000000 0.000000 \n", "9 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "10 0.000000 0.017857 0.000000 0.035714 0.000000 \n", "11 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "12 0.000000 0.000000 0.000000 0.038462 0.000000 \n", "13 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "14 0.000000 0.038462 0.000000 0.000000 0.000000 \n", "15 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "16 0.000000 0.031250 0.000000 0.031250 0.000000 \n", "17 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "18 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "19 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "20 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "\n", " Cosmetics Shop Creperie Cuban Restaurant Cupcake Shop Dance Studio \\\n", "0 0.000000 0.00 0.011765 0.000000 0.000000 \n", "1 0.000000 0.00 0.000000 0.000000 0.000000 \n", "2 0.000000 0.00 0.000000 0.000000 0.000000 \n", "3 0.010000 0.01 0.000000 0.000000 0.000000 \n", "4 0.000000 0.00 0.000000 0.000000 0.000000 \n", "5 0.000000 0.00 0.000000 0.000000 0.000000 \n", "6 0.000000 0.00 0.000000 0.000000 0.000000 \n", "7 0.025641 0.00 0.000000 0.000000 0.000000 \n", "8 0.000000 0.00 0.000000 0.000000 0.055556 \n", "9 0.000000 0.00 0.000000 0.000000 0.000000 \n", "10 0.000000 0.00 0.000000 0.000000 0.000000 \n", "11 0.000000 0.00 0.000000 0.000000 0.000000 \n", "12 0.000000 0.00 0.000000 0.000000 0.000000 \n", "13 0.000000 0.00 0.000000 0.000000 0.000000 \n", "14 0.000000 0.00 0.000000 0.019231 0.000000 \n", "15 0.000000 0.00 0.000000 0.000000 0.000000 \n", "16 0.000000 0.00 0.000000 0.000000 0.000000 \n", "17 0.000000 0.00 0.000000 0.000000 0.000000 \n", "18 0.000000 0.00 0.000000 0.000000 0.000000 \n", "19 0.000000 0.00 0.000000 0.000000 0.000000 \n", "20 0.000000 0.00 0.000000 0.000000 0.000000 \n", "\n", " Department Store Dessert Shop Diner Dog Run Donut Shop \\\n", "0 0.000000 0.011765 0.000000 0.00000 0.000000 \n", "1 0.000000 0.000000 0.000000 0.00000 0.000000 \n", "2 0.000000 0.000000 0.000000 0.00000 0.000000 \n", "3 0.010000 0.010000 0.000000 0.00000 0.000000 \n", "4 0.000000 0.017857 0.017857 0.00000 0.000000 \n", "5 0.000000 0.000000 0.010000 0.00000 0.000000 \n", "6 0.000000 0.000000 0.000000 0.00000 0.000000 \n", "7 0.025641 0.000000 0.025641 0.00000 0.025641 \n", "8 0.000000 0.000000 0.000000 0.00000 0.000000 \n", "9 0.000000 0.000000 0.000000 0.00000 0.000000 \n", "10 0.000000 0.000000 0.017857 0.00000 0.000000 \n", "11 0.000000 0.000000 0.000000 0.00000 0.000000 \n", "12 0.000000 0.000000 0.000000 0.00000 0.000000 \n", "13 0.000000 0.024390 0.024390 0.02439 0.000000 \n", "14 0.000000 0.000000 0.000000 0.00000 0.000000 \n", "15 0.000000 0.000000 0.000000 0.00000 0.000000 \n", "16 0.000000 0.000000 0.000000 0.00000 0.000000 \n", "17 0.000000 0.000000 0.000000 0.00000 0.000000 \n", "18 0.000000 0.000000 0.000000 0.00000 0.000000 \n", "19 0.000000 0.000000 0.000000 0.00000 0.000000 \n", "20 0.000000 0.000000 0.200000 0.00000 0.000000 \n", "\n", " Dumpling Restaurant Eastern European Restaurant Electronics Store \\\n", "0 0.000000 0.000000 0.011765 \n", "1 0.000000 0.000000 0.000000 \n", "2 0.000000 0.000000 0.000000 \n", "3 0.010000 0.000000 0.020000 \n", "4 0.000000 0.017857 0.000000 \n", "5 0.000000 0.000000 0.000000 \n", "6 0.000000 0.000000 0.000000 \n", "7 0.000000 0.000000 0.000000 \n", "8 0.000000 0.000000 0.000000 \n", "9 0.000000 0.000000 0.000000 \n", "10 0.017857 0.000000 0.000000 \n", "11 0.000000 0.000000 0.000000 \n", "12 0.000000 0.000000 0.000000 \n", "13 0.000000 0.000000 0.000000 \n", "14 0.000000 0.000000 0.000000 \n", "15 0.000000 0.000000 0.000000 \n", "16 0.000000 0.000000 0.000000 \n", "17 0.000000 0.000000 0.000000 \n", "18 0.000000 0.000000 0.000000 \n", "19 0.000000 0.000000 0.000000 \n", "20 0.000000 0.000000 0.000000 \n", "\n", " Fabric Shop Falafel Restaurant Farmers Market Fast Food Restaurant \\\n", "0 0.000000 0.023529 0.011765 0.000000 \n", "1 0.000000 0.000000 0.000000 0.032258 \n", "2 0.000000 0.000000 0.000000 0.111111 \n", "3 0.000000 0.000000 0.000000 0.000000 \n", "4 0.000000 0.000000 0.000000 0.000000 \n", "5 0.000000 0.000000 0.000000 0.000000 \n", "6 0.000000 0.000000 0.000000 0.000000 \n", "7 0.000000 0.000000 0.000000 0.051282 \n", "8 0.000000 0.000000 0.000000 0.000000 \n", "9 0.000000 0.090909 0.000000 0.090909 \n", "10 0.017857 0.000000 0.000000 0.000000 \n", "11 0.000000 0.000000 0.000000 0.000000 \n", "12 0.000000 0.000000 0.000000 0.115385 \n", "13 0.000000 0.000000 0.024390 0.000000 \n", "14 0.000000 0.000000 0.000000 0.000000 \n", "15 0.000000 0.000000 0.000000 0.000000 \n", "16 0.000000 0.000000 0.031250 0.000000 \n", "17 0.000000 0.000000 0.000000 0.083333 \n", "18 0.000000 0.000000 0.000000 0.090909 \n", "19 0.000000 0.000000 0.000000 0.000000 \n", "20 0.000000 0.000000 0.000000 0.000000 \n", "\n", " Fish Market Flea Market Food Food & Drink Shop Food Stand \\\n", "0 0.000000 0.011765 0.000000 0.00000 0.00 \n", "1 0.000000 0.000000 0.000000 0.00000 0.00 \n", "2 0.000000 0.000000 0.000000 0.00000 0.00 \n", "3 0.000000 0.000000 0.000000 0.00000 0.00 \n", "4 0.017857 0.000000 0.000000 0.00000 0.00 \n", "5 0.000000 0.000000 0.000000 0.00000 0.01 \n", "6 0.000000 0.000000 0.000000 0.00000 0.00 \n", "7 0.000000 0.025641 0.000000 0.00000 0.00 \n", "8 0.000000 0.000000 0.055556 0.00000 0.00 \n", "9 0.000000 0.000000 0.000000 0.00000 0.00 \n", "10 0.000000 0.000000 0.000000 0.00000 0.00 \n", "11 0.000000 0.000000 0.000000 0.00000 0.00 \n", "12 0.000000 0.000000 0.000000 0.00000 0.00 \n", "13 0.000000 0.000000 0.000000 0.02439 0.00 \n", "14 0.000000 0.000000 0.000000 0.00000 0.00 \n", "15 0.000000 0.000000 0.000000 0.00000 0.00 \n", "16 0.000000 0.000000 0.000000 0.00000 0.00 \n", "17 0.000000 0.000000 0.000000 0.00000 0.00 \n", "18 0.000000 0.000000 0.000000 0.00000 0.00 \n", "19 0.000000 0.000000 0.125000 0.00000 0.00 \n", "20 0.000000 0.000000 0.000000 0.00000 0.00 \n", "\n", " Food Truck French Restaurant Fried Chicken Joint Frozen Yogurt Shop \\\n", "0 0.000000 0.00 0.000000 0.000000 \n", "1 0.000000 0.00 0.000000 0.000000 \n", "2 0.000000 0.00 0.000000 0.000000 \n", "3 0.000000 0.01 0.000000 0.000000 \n", "4 0.000000 0.00 0.017857 0.000000 \n", "5 0.000000 0.02 0.000000 0.000000 \n", "6 0.000000 0.00 0.000000 0.000000 \n", "7 0.000000 0.00 0.000000 0.025641 \n", "8 0.000000 0.00 0.000000 0.000000 \n", "9 0.000000 0.00 0.000000 0.000000 \n", "10 0.000000 0.00 0.000000 0.000000 \n", "11 0.083333 0.00 0.000000 0.000000 \n", "12 0.000000 0.00 0.000000 0.000000 \n", "13 0.000000 0.00 0.000000 0.000000 \n", "14 0.000000 0.00 0.000000 0.000000 \n", "15 0.000000 0.00 0.000000 0.000000 \n", "16 0.000000 0.00 0.000000 0.000000 \n", "17 0.000000 0.00 0.000000 0.000000 \n", "18 0.000000 0.00 0.000000 0.000000 \n", "19 0.000000 0.00 0.000000 0.000000 \n", "20 0.000000 0.00 0.000000 0.000000 \n", "\n", " Furniture / Home Store Garden Gas Station Gastropub \\\n", "0 0.000000 0.00000 0.0 0.011765 \n", "1 0.000000 0.00000 0.0 0.032258 \n", "2 0.000000 0.00000 0.0 0.000000 \n", "3 0.000000 0.01000 0.0 0.010000 \n", "4 0.017857 0.00000 0.0 0.035714 \n", "5 0.000000 0.00000 0.0 0.010000 \n", "6 0.000000 0.00000 0.0 0.076923 \n", "7 0.000000 0.00000 0.0 0.000000 \n", "8 0.000000 0.00000 0.0 0.000000 \n", "9 0.000000 0.00000 0.0 0.000000 \n", "10 0.000000 0.00000 0.0 0.017857 \n", "11 0.000000 0.00000 0.0 0.000000 \n", "12 0.000000 0.00000 0.0 0.000000 \n", "13 0.000000 0.02439 0.0 0.000000 \n", "14 0.000000 0.00000 0.0 0.000000 \n", "15 0.000000 0.00000 0.1 0.000000 \n", "16 0.000000 0.00000 0.0 0.000000 \n", "17 0.000000 0.00000 0.0 0.000000 \n", "18 0.000000 0.00000 0.0 0.000000 \n", "19 0.000000 0.00000 0.0 0.000000 \n", "20 0.000000 0.00000 0.0 0.000000 \n", "\n", " General Entertainment German Restaurant Gourmet Shop Greek Restaurant \\\n", "0 0.000000 0.000000 0.00000 0.00000 \n", "1 0.000000 0.000000 0.00000 0.00000 \n", "2 0.000000 0.000000 0.00000 0.00000 \n", "3 0.000000 0.000000 0.01000 0.00000 \n", "4 0.000000 0.017857 0.00000 0.00000 \n", "5 0.000000 0.000000 0.00000 0.01000 \n", "6 0.000000 0.000000 0.00000 0.00000 \n", "7 0.025641 0.000000 0.00000 0.00000 \n", "8 0.000000 0.000000 0.00000 0.00000 \n", "9 0.000000 0.000000 0.00000 0.00000 \n", "10 0.000000 0.000000 0.00000 0.00000 \n", "11 0.000000 0.000000 0.00000 0.00000 \n", "12 0.000000 0.000000 0.00000 0.00000 \n", "13 0.000000 0.000000 0.02439 0.02439 \n", "14 0.000000 0.000000 0.00000 0.00000 \n", "15 0.000000 0.000000 0.00000 0.00000 \n", "16 0.000000 0.000000 0.00000 0.00000 \n", "17 0.000000 0.000000 0.00000 0.00000 \n", "18 0.000000 0.000000 0.00000 0.00000 \n", "19 0.000000 0.000000 0.00000 0.00000 \n", "20 0.000000 0.000000 0.00000 0.00000 \n", "\n", " Grocery Store Gym Gym / Fitness Center Gymnastics Gym \\\n", "0 0.070588 0.011765 0.035294 0.000000 \n", "1 0.032258 0.000000 0.000000 0.000000 \n", "2 0.000000 0.000000 0.000000 0.000000 \n", "3 0.000000 0.010000 0.020000 0.000000 \n", "4 0.053571 0.000000 0.000000 0.000000 \n", "5 0.000000 0.000000 0.000000 0.000000 \n", "6 0.076923 0.000000 0.000000 0.000000 \n", "7 0.000000 0.000000 0.000000 0.000000 \n", "8 0.000000 0.000000 0.000000 0.000000 \n", "9 0.090909 0.000000 0.000000 0.000000 \n", "10 0.017857 0.000000 0.000000 0.000000 \n", "11 0.000000 0.000000 0.000000 0.000000 \n", "12 0.076923 0.076923 0.000000 0.000000 \n", "13 0.024390 0.024390 0.000000 0.000000 \n", "14 0.019231 0.019231 0.000000 0.019231 \n", "15 0.100000 0.100000 0.000000 0.000000 \n", "16 0.062500 0.000000 0.031250 0.000000 \n", "17 0.000000 0.000000 0.000000 0.000000 \n", "18 0.090909 0.000000 0.000000 0.000000 \n", "19 0.125000 0.000000 0.000000 0.000000 \n", "20 0.000000 0.000000 0.000000 0.000000 \n", "\n", " Health & Beauty Service Health Food Store Herbs & Spices Store \\\n", "0 0.000000 0.00 0.00 \n", "1 0.000000 0.00 0.00 \n", "2 0.000000 0.00 0.00 \n", "3 0.000000 0.00 0.00 \n", "4 0.017857 0.00 0.00 \n", "5 0.000000 0.01 0.01 \n", "6 0.000000 0.00 0.00 \n", "7 0.000000 0.00 0.00 \n", "8 0.000000 0.00 0.00 \n", "9 0.000000 0.00 0.00 \n", "10 0.000000 0.00 0.00 \n", "11 0.000000 0.00 0.00 \n", "12 0.000000 0.00 0.00 \n", "13 0.000000 0.00 0.00 \n", "14 0.000000 0.00 0.00 \n", "15 0.000000 0.00 0.00 \n", "16 0.000000 0.00 0.00 \n", "17 0.000000 0.00 0.00 \n", "18 0.000000 0.00 0.00 \n", "19 0.000000 0.00 0.00 \n", "20 0.000000 0.00 0.00 \n", "\n", " Historic Site History Museum Hostel Hot Dog Joint Hotel \\\n", "0 0.00 0.000000 0.00 0.00 0.023529 \n", "1 0.00 0.000000 0.00 0.00 0.193548 \n", "2 0.00 0.000000 0.00 0.00 0.000000 \n", "3 0.02 0.010000 0.04 0.00 0.030000 \n", "4 0.00 0.000000 0.00 0.00 0.017857 \n", "5 0.00 0.010000 0.00 0.01 0.020000 \n", "6 0.00 0.000000 0.00 0.00 0.038462 \n", "7 0.00 0.000000 0.00 0.00 0.000000 \n", "8 0.00 0.000000 0.00 0.00 0.000000 \n", "9 0.00 0.000000 0.00 0.00 0.000000 \n", "10 0.00 0.017857 0.00 0.00 0.017857 \n", "11 0.00 0.000000 0.00 0.00 0.000000 \n", "12 0.00 0.000000 0.00 0.00 0.076923 \n", "13 0.00 0.000000 0.00 0.00 0.000000 \n", "14 0.00 0.000000 0.00 0.00 0.000000 \n", "15 0.00 0.000000 0.00 0.00 0.000000 \n", "16 0.00 0.000000 0.00 0.00 0.031250 \n", "17 0.00 0.000000 0.00 0.00 0.000000 \n", "18 0.00 0.000000 0.00 0.00 0.000000 \n", "19 0.00 0.000000 0.00 0.00 0.000000 \n", "20 0.00 0.000000 0.00 0.00 0.000000 \n", "\n", " Ice Cream Shop Indian Restaurant Indie Movie Theater Indie Theater \\\n", "0 0.000000 0.00000 0.00 0.011765 \n", "1 0.000000 0.00000 0.00 0.000000 \n", "2 0.000000 0.00000 0.00 0.000000 \n", "3 0.040000 0.00000 0.01 0.000000 \n", "4 0.000000 0.00000 0.00 0.000000 \n", "5 0.010000 0.00000 0.00 0.000000 \n", "6 0.038462 0.00000 0.00 0.000000 \n", "7 0.025641 0.00000 0.00 0.000000 \n", "8 0.000000 0.00000 0.00 0.000000 \n", "9 0.000000 0.00000 0.00 0.000000 \n", "10 0.035714 0.00000 0.00 0.000000 \n", "11 0.083333 0.00000 0.00 0.000000 \n", "12 0.038462 0.00000 0.00 0.000000 \n", "13 0.024390 0.02439 0.00 0.000000 \n", "14 0.000000 0.00000 0.00 0.000000 \n", "15 0.000000 0.00000 0.00 0.000000 \n", "16 0.000000 0.00000 0.00 0.000000 \n", "17 0.000000 0.00000 0.00 0.000000 \n", "18 0.090909 0.00000 0.00 0.000000 \n", "19 0.000000 0.00000 0.00 0.000000 \n", "20 0.000000 0.00000 0.00 0.000000 \n", "\n", " Italian Restaurant Japanese Restaurant Juice Bar Kebab Restaurant \\\n", "0 0.011765 0.000000 0.000000 0.000000 \n", "1 0.000000 0.032258 0.000000 0.000000 \n", "2 0.000000 0.000000 0.000000 0.000000 \n", "3 0.000000 0.000000 0.000000 0.000000 \n", "4 0.000000 0.035714 0.000000 0.000000 \n", "5 0.040000 0.040000 0.000000 0.000000 \n", "6 0.000000 0.000000 0.000000 0.000000 \n", "7 0.051282 0.000000 0.000000 0.025641 \n", "8 0.000000 0.000000 0.000000 0.000000 \n", "9 0.000000 0.000000 0.000000 0.000000 \n", "10 0.035714 0.035714 0.000000 0.017857 \n", "11 0.000000 0.000000 0.000000 0.000000 \n", "12 0.000000 0.000000 0.000000 0.000000 \n", "13 0.024390 0.000000 0.000000 0.000000 \n", "14 0.019231 0.019231 0.019231 0.000000 \n", "15 0.000000 0.000000 0.000000 0.000000 \n", "16 0.000000 0.000000 0.000000 0.000000 \n", "17 0.000000 0.000000 0.000000 0.000000 \n", "18 0.000000 0.000000 0.000000 0.000000 \n", "19 0.000000 0.000000 0.000000 0.000000 \n", "20 0.000000 0.000000 0.000000 0.000000 \n", "\n", " Korean Restaurant Latin American Restaurant Lebanese Restaurant \\\n", "0 0.000000 0.011765 0.000000 \n", "1 0.000000 0.000000 0.000000 \n", "2 0.000000 0.000000 0.000000 \n", "3 0.000000 0.000000 0.000000 \n", "4 0.000000 0.000000 0.000000 \n", "5 0.000000 0.000000 0.000000 \n", "6 0.000000 0.000000 0.038462 \n", "7 0.000000 0.000000 0.000000 \n", "8 0.000000 0.000000 0.000000 \n", "9 0.000000 0.000000 0.000000 \n", "10 0.017857 0.000000 0.000000 \n", "11 0.000000 0.000000 0.000000 \n", "12 0.000000 0.000000 0.000000 \n", "13 0.000000 0.000000 0.000000 \n", "14 0.000000 0.000000 0.000000 \n", "15 0.000000 0.000000 0.000000 \n", "16 0.000000 0.000000 0.000000 \n", "17 0.000000 0.000000 0.000000 \n", "18 0.000000 0.000000 0.000000 \n", "19 0.000000 0.000000 0.000000 \n", "20 0.000000 0.000000 0.000000 \n", "\n", " Liquor Store Lounge Market Mediterranean Restaurant Metro Station \\\n", "0 0.000000 0.000000 0.023529 0.000000 0.000000 \n", "1 0.000000 0.000000 0.000000 0.032258 0.000000 \n", "2 0.000000 0.000000 0.000000 0.000000 0.111111 \n", "3 0.000000 0.010000 0.010000 0.000000 0.000000 \n", "4 0.000000 0.000000 0.017857 0.000000 0.000000 \n", "5 0.000000 0.000000 0.020000 0.010000 0.000000 \n", "6 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "7 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "8 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "9 0.000000 0.000000 0.000000 0.000000 0.090909 \n", "10 0.000000 0.000000 0.000000 0.035714 0.000000 \n", "11 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "12 0.000000 0.000000 0.038462 0.000000 0.000000 \n", "13 0.000000 0.000000 0.000000 0.024390 0.000000 \n", "14 0.019231 0.019231 0.000000 0.057692 0.000000 \n", "15 0.000000 0.000000 0.000000 0.000000 0.200000 \n", "16 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "17 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "18 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "19 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "20 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "\n", " Mexican Restaurant Middle Eastern Restaurant Mobile Phone Shop \\\n", "0 0.000000 0.000000 0.000000 \n", "1 0.032258 0.000000 0.000000 \n", "2 0.000000 0.000000 0.000000 \n", "3 0.000000 0.000000 0.000000 \n", "4 0.017857 0.000000 0.017857 \n", "5 0.030000 0.000000 0.000000 \n", "6 0.000000 0.000000 0.000000 \n", "7 0.000000 0.000000 0.000000 \n", "8 0.000000 0.000000 0.000000 \n", "9 0.000000 0.000000 0.000000 \n", "10 0.000000 0.017857 0.000000 \n", "11 0.000000 0.000000 0.000000 \n", "12 0.000000 0.000000 0.000000 \n", "13 0.024390 0.000000 0.000000 \n", "14 0.038462 0.000000 0.000000 \n", "15 0.000000 0.000000 0.000000 \n", "16 0.000000 0.000000 0.000000 \n", "17 0.000000 0.000000 0.000000 \n", "18 0.000000 0.000000 0.000000 \n", "19 0.000000 0.000000 0.000000 \n", "20 0.000000 0.000000 0.000000 \n", "\n", " Motorcycle Shop Movie Theater Multiplex Museum Music Venue \\\n", "0 0.00000 0.011765 0.00 0.011765 0.011765 \n", "1 0.00000 0.000000 0.00 0.000000 0.000000 \n", "2 0.00000 0.000000 0.00 0.000000 0.000000 \n", "3 0.00000 0.000000 0.01 0.000000 0.000000 \n", "4 0.00000 0.000000 0.00 0.000000 0.000000 \n", "5 0.00000 0.010000 0.00 0.000000 0.000000 \n", "6 0.00000 0.000000 0.00 0.000000 0.000000 \n", "7 0.00000 0.025641 0.00 0.000000 0.000000 \n", "8 0.00000 0.000000 0.00 0.000000 0.000000 \n", "9 0.00000 0.000000 0.00 0.000000 0.000000 \n", "10 0.00000 0.017857 0.00 0.000000 0.000000 \n", "11 0.00000 0.000000 0.00 0.000000 0.000000 \n", "12 0.00000 0.000000 0.00 0.000000 0.000000 \n", "13 0.00000 0.000000 0.00 0.048780 0.000000 \n", "14 0.00000 0.000000 0.00 0.000000 0.000000 \n", "15 0.00000 0.000000 0.00 0.000000 0.000000 \n", "16 0.03125 0.000000 0.00 0.000000 0.031250 \n", "17 0.00000 0.000000 0.00 0.000000 0.000000 \n", "18 0.00000 0.000000 0.00 0.000000 0.000000 \n", "19 0.00000 0.000000 0.00 0.000000 0.000000 \n", "20 0.00000 0.000000 0.00 0.000000 0.000000 \n", "\n", " Nightclub Noodle House Opera House Other Great Outdoors \\\n", "0 0.000000 0.000000 0.00 0.011765 \n", "1 0.000000 0.000000 0.00 0.000000 \n", "2 0.111111 0.000000 0.00 0.000000 \n", "3 0.000000 0.000000 0.01 0.000000 \n", "4 0.000000 0.000000 0.00 0.000000 \n", "5 0.000000 0.000000 0.00 0.000000 \n", "6 0.000000 0.000000 0.00 0.000000 \n", "7 0.000000 0.000000 0.00 0.000000 \n", "8 0.000000 0.000000 0.00 0.000000 \n", "9 0.000000 0.000000 0.00 0.000000 \n", "10 0.017857 0.000000 0.00 0.000000 \n", "11 0.083333 0.000000 0.00 0.000000 \n", "12 0.000000 0.000000 0.00 0.000000 \n", "13 0.000000 0.000000 0.00 0.000000 \n", "14 0.000000 0.000000 0.00 0.000000 \n", "15 0.000000 0.000000 0.00 0.000000 \n", "16 0.000000 0.000000 0.00 0.000000 \n", "17 0.000000 0.083333 0.00 0.000000 \n", "18 0.000000 0.000000 0.00 0.000000 \n", "19 0.000000 0.000000 0.00 0.000000 \n", "20 0.000000 0.000000 0.00 0.000000 \n", "\n", " Other Nightlife Outdoors & Recreation Park Pastry Shop \\\n", "0 0.00 0.011765 0.000000 0.000000 \n", "1 0.00 0.000000 0.000000 0.000000 \n", "2 0.00 0.000000 0.000000 0.000000 \n", "3 0.01 0.000000 0.000000 0.020000 \n", "4 0.00 0.000000 0.035714 0.000000 \n", "5 0.00 0.000000 0.000000 0.000000 \n", "6 0.00 0.000000 0.076923 0.000000 \n", "7 0.00 0.000000 0.025641 0.000000 \n", "8 0.00 0.000000 0.000000 0.000000 \n", "9 0.00 0.000000 0.090909 0.000000 \n", "10 0.00 0.017857 0.000000 0.000000 \n", "11 0.00 0.000000 0.083333 0.000000 \n", "12 0.00 0.000000 0.000000 0.000000 \n", "13 0.00 0.000000 0.000000 0.000000 \n", "14 0.00 0.000000 0.000000 0.019231 \n", "15 0.00 0.000000 0.000000 0.000000 \n", "16 0.00 0.000000 0.000000 0.000000 \n", "17 0.00 0.000000 0.000000 0.000000 \n", "18 0.00 0.000000 0.000000 0.000000 \n", "19 0.00 0.000000 0.125000 0.000000 \n", "20 0.00 0.000000 0.000000 0.000000 \n", "\n", " Peruvian Restaurant Pet Store Pharmacy Pie Shop Pizza Place Platform \\\n", "0 0.000000 0.00 0.000000 0.00 0.023529 0.000 \n", "1 0.000000 0.00 0.000000 0.00 0.000000 0.000 \n", "2 0.000000 0.00 0.000000 0.00 0.111111 0.000 \n", "3 0.000000 0.00 0.000000 0.01 0.000000 0.000 \n", "4 0.000000 0.00 0.000000 0.00 0.035714 0.000 \n", "5 0.000000 0.01 0.010000 0.01 0.010000 0.000 \n", "6 0.000000 0.00 0.038462 0.00 0.000000 0.000 \n", "7 0.000000 0.00 0.025641 0.00 0.025641 0.000 \n", "8 0.000000 0.00 0.000000 0.00 0.111111 0.000 \n", "9 0.000000 0.00 0.000000 0.00 0.181818 0.000 \n", "10 0.000000 0.00 0.000000 0.00 0.035714 0.000 \n", "11 0.000000 0.00 0.000000 0.00 0.083333 0.000 \n", "12 0.038462 0.00 0.000000 0.00 0.000000 0.000 \n", "13 0.000000 0.00 0.000000 0.00 0.024390 0.000 \n", "14 0.000000 0.00 0.000000 0.00 0.000000 0.000 \n", "15 0.000000 0.00 0.000000 0.00 0.100000 0.000 \n", "16 0.000000 0.00 0.000000 0.00 0.031250 0.000 \n", "17 0.000000 0.00 0.000000 0.00 0.000000 0.000 \n", "18 0.000000 0.00 0.000000 0.00 0.181818 0.000 \n", "19 0.000000 0.00 0.000000 0.00 0.000000 0.125 \n", "20 0.000000 0.00 0.000000 0.00 0.200000 0.000 \n", "\n", " Playground Plaza Polish Restaurant Pub Ramen Restaurant \\\n", "0 0.000000 0.011765 0.00000 0.000000 0.000000 \n", "1 0.000000 0.000000 0.00000 0.000000 0.000000 \n", "2 0.000000 0.111111 0.00000 0.000000 0.000000 \n", "3 0.000000 0.100000 0.00000 0.000000 0.010000 \n", "4 0.000000 0.000000 0.00000 0.017857 0.000000 \n", "5 0.000000 0.030000 0.00000 0.010000 0.000000 \n", "6 0.000000 0.000000 0.00000 0.000000 0.000000 \n", "7 0.000000 0.000000 0.00000 0.000000 0.000000 \n", "8 0.000000 0.055556 0.00000 0.055556 0.000000 \n", "9 0.000000 0.000000 0.00000 0.000000 0.000000 \n", "10 0.000000 0.000000 0.00000 0.035714 0.000000 \n", "11 0.000000 0.083333 0.00000 0.000000 0.000000 \n", "12 0.000000 0.000000 0.00000 0.038462 0.000000 \n", "13 0.024390 0.024390 0.02439 0.000000 0.000000 \n", "14 0.019231 0.019231 0.00000 0.000000 0.019231 \n", "15 0.000000 0.000000 0.00000 0.000000 0.000000 \n", "16 0.000000 0.000000 0.00000 0.000000 0.000000 \n", "17 0.000000 0.083333 0.00000 0.000000 0.000000 \n", "18 0.000000 0.000000 0.00000 0.000000 0.000000 \n", "19 0.000000 0.000000 0.00000 0.000000 0.000000 \n", "20 0.000000 0.200000 0.00000 0.000000 0.000000 \n", "\n", " Resort Restaurant Road Salad Place Sandwich Place Scenic Lookout \\\n", "0 0.00000 0.117647 0.00 0.000000 0.011765 0.000000 \n", "1 0.00000 0.129032 0.00 0.000000 0.000000 0.000000 \n", "2 0.00000 0.000000 0.00 0.000000 0.000000 0.000000 \n", "3 0.00000 0.010000 0.01 0.000000 0.000000 0.000000 \n", "4 0.00000 0.142857 0.00 0.000000 0.017857 0.000000 \n", "5 0.00000 0.070000 0.00 0.000000 0.000000 0.000000 \n", "6 0.00000 0.115385 0.00 0.000000 0.000000 0.000000 \n", "7 0.00000 0.025641 0.00 0.000000 0.025641 0.000000 \n", "8 0.00000 0.055556 0.00 0.000000 0.055556 0.000000 \n", "9 0.00000 0.000000 0.00 0.000000 0.000000 0.000000 \n", "10 0.00000 0.071429 0.00 0.017857 0.017857 0.017857 \n", "11 0.00000 0.000000 0.00 0.000000 0.000000 0.000000 \n", "12 0.00000 0.000000 0.00 0.000000 0.000000 0.000000 \n", "13 0.00000 0.000000 0.00 0.000000 0.000000 0.000000 \n", "14 0.00000 0.134615 0.00 0.000000 0.000000 0.000000 \n", "15 0.00000 0.000000 0.00 0.000000 0.000000 0.000000 \n", "16 0.03125 0.031250 0.00 0.000000 0.000000 0.000000 \n", "17 0.00000 0.000000 0.00 0.000000 0.000000 0.000000 \n", "18 0.00000 0.000000 0.00 0.000000 0.090909 0.000000 \n", "19 0.00000 0.000000 0.00 0.000000 0.125000 0.000000 \n", "20 0.00000 0.000000 0.00 0.000000 0.000000 0.000000 \n", "\n", " Science Museum Seafood Restaurant Shopping Mall Smoothie Shop \\\n", "0 0.011765 0.000000 0.000000 0.00 \n", "1 0.000000 0.000000 0.000000 0.00 \n", "2 0.000000 0.000000 0.000000 0.00 \n", "3 0.000000 0.010000 0.000000 0.01 \n", "4 0.000000 0.000000 0.000000 0.00 \n", "5 0.000000 0.010000 0.000000 0.00 \n", "6 0.000000 0.000000 0.038462 0.00 \n", "7 0.000000 0.000000 0.025641 0.00 \n", "8 0.000000 0.000000 0.000000 0.00 \n", "9 0.000000 0.000000 0.000000 0.00 \n", "10 0.000000 0.000000 0.000000 0.00 \n", "11 0.000000 0.000000 0.000000 0.00 \n", "12 0.000000 0.000000 0.000000 0.00 \n", "13 0.000000 0.000000 0.000000 0.00 \n", "14 0.000000 0.057692 0.000000 0.00 \n", "15 0.000000 0.000000 0.100000 0.00 \n", "16 0.000000 0.031250 0.000000 0.00 \n", "17 0.000000 0.166667 0.000000 0.00 \n", "18 0.000000 0.000000 0.000000 0.00 \n", "19 0.000000 0.000000 0.000000 0.00 \n", "20 0.000000 0.000000 0.000000 0.00 \n", "\n", " Snack Place Soccer Field South American Restaurant Spa \\\n", "0 0.011765 0.000000 0.000000 0.00 \n", "1 0.000000 0.000000 0.000000 0.00 \n", "2 0.000000 0.111111 0.000000 0.00 \n", "3 0.000000 0.000000 0.000000 0.00 \n", "4 0.000000 0.000000 0.000000 0.00 \n", "5 0.010000 0.000000 0.000000 0.01 \n", "6 0.000000 0.000000 0.000000 0.00 \n", "7 0.000000 0.000000 0.000000 0.00 \n", "8 0.000000 0.000000 0.000000 0.00 \n", "9 0.000000 0.000000 0.000000 0.00 \n", "10 0.000000 0.000000 0.000000 0.00 \n", "11 0.000000 0.083333 0.000000 0.00 \n", "12 0.000000 0.000000 0.038462 0.00 \n", "13 0.000000 0.000000 0.000000 0.00 \n", "14 0.000000 0.000000 0.000000 0.00 \n", "15 0.100000 0.000000 0.000000 0.00 \n", "16 0.000000 0.000000 0.000000 0.00 \n", "17 0.000000 0.000000 0.000000 0.00 \n", "18 0.000000 0.000000 0.000000 0.00 \n", "19 0.000000 0.125000 0.000000 0.00 \n", "20 0.000000 0.000000 0.000000 0.00 \n", "\n", " Spanish Restaurant Sporting Goods Shop Steakhouse Supermarket \\\n", "0 0.094118 0.000000 0.000000 0.011765 \n", "1 0.096774 0.000000 0.000000 0.032258 \n", "2 0.000000 0.000000 0.000000 0.000000 \n", "3 0.130000 0.000000 0.000000 0.000000 \n", "4 0.142857 0.000000 0.000000 0.017857 \n", "5 0.120000 0.000000 0.010000 0.000000 \n", "6 0.115385 0.000000 0.000000 0.038462 \n", "7 0.025641 0.025641 0.000000 0.000000 \n", "8 0.055556 0.000000 0.000000 0.111111 \n", "9 0.000000 0.000000 0.000000 0.000000 \n", "10 0.053571 0.000000 0.000000 0.000000 \n", "11 0.000000 0.000000 0.000000 0.000000 \n", "12 0.038462 0.000000 0.000000 0.076923 \n", "13 0.146341 0.024390 0.000000 0.048780 \n", "14 0.173077 0.019231 0.019231 0.038462 \n", "15 0.000000 0.000000 0.000000 0.100000 \n", "16 0.156250 0.000000 0.000000 0.062500 \n", "17 0.166667 0.000000 0.000000 0.000000 \n", "18 0.181818 0.000000 0.000000 0.000000 \n", "19 0.125000 0.000000 0.000000 0.000000 \n", "20 0.200000 0.000000 0.000000 0.000000 \n", "\n", " Sushi Restaurant Tapas Restaurant Tattoo Parlor Tea Room \\\n", "0 0.000000 0.047059 0.011765 0.00 \n", "1 0.000000 0.064516 0.000000 0.00 \n", "2 0.000000 0.111111 0.000000 0.00 \n", "3 0.000000 0.120000 0.000000 0.00 \n", "4 0.017857 0.053571 0.000000 0.00 \n", "5 0.000000 0.030000 0.000000 0.01 \n", "6 0.000000 0.038462 0.000000 0.00 \n", "7 0.000000 0.051282 0.000000 0.00 \n", "8 0.000000 0.000000 0.000000 0.00 \n", "9 0.000000 0.000000 0.000000 0.00 \n", "10 0.000000 0.053571 0.000000 0.00 \n", "11 0.000000 0.000000 0.000000 0.00 \n", "12 0.000000 0.038462 0.000000 0.00 \n", "13 0.000000 0.048780 0.000000 0.00 \n", "14 0.000000 0.038462 0.000000 0.00 \n", "15 0.000000 0.000000 0.000000 0.00 \n", "16 0.031250 0.000000 0.000000 0.00 \n", "17 0.000000 0.000000 0.000000 0.00 \n", "18 0.000000 0.000000 0.000000 0.00 \n", "19 0.000000 0.000000 0.000000 0.00 \n", "20 0.000000 0.000000 0.000000 0.00 \n", "\n", " Thai Restaurant Theater Theme Restaurant Thrift / Vintage Store \\\n", "0 0.011765 0.000000 0.011765 0.011765 \n", "1 0.032258 0.000000 0.000000 0.000000 \n", "2 0.000000 0.000000 0.000000 0.000000 \n", "3 0.000000 0.020000 0.000000 0.000000 \n", "4 0.000000 0.000000 0.000000 0.000000 \n", "5 0.000000 0.010000 0.000000 0.000000 \n", "6 0.000000 0.000000 0.000000 0.000000 \n", "7 0.000000 0.000000 0.000000 0.000000 \n", "8 0.000000 0.000000 0.000000 0.000000 \n", "9 0.000000 0.000000 0.000000 0.000000 \n", "10 0.000000 0.000000 0.000000 0.000000 \n", "11 0.000000 0.000000 0.000000 0.000000 \n", "12 0.000000 0.000000 0.000000 0.000000 \n", "13 0.000000 0.000000 0.000000 0.000000 \n", "14 0.000000 0.000000 0.000000 0.000000 \n", "15 0.000000 0.000000 0.000000 0.000000 \n", "16 0.000000 0.000000 0.000000 0.000000 \n", "17 0.000000 0.083333 0.000000 0.000000 \n", "18 0.000000 0.000000 0.000000 0.000000 \n", "19 0.000000 0.000000 0.000000 0.000000 \n", "20 0.000000 0.000000 0.000000 0.000000 \n", "\n", " Toy / Game Store Trade School Train Train Station Udon Restaurant \\\n", "0 0.000000 0.011765 0.0 0.011765 0.000000 \n", "1 0.000000 0.000000 0.0 0.000000 0.000000 \n", "2 0.000000 0.000000 0.0 0.000000 0.000000 \n", "3 0.000000 0.000000 0.0 0.000000 0.000000 \n", "4 0.000000 0.000000 0.0 0.000000 0.000000 \n", "5 0.010000 0.000000 0.0 0.000000 0.000000 \n", "6 0.000000 0.000000 0.0 0.000000 0.000000 \n", "7 0.025641 0.000000 0.0 0.000000 0.025641 \n", "8 0.000000 0.000000 0.0 0.000000 0.000000 \n", "9 0.000000 0.000000 0.0 0.090909 0.000000 \n", "10 0.000000 0.000000 0.0 0.000000 0.000000 \n", "11 0.000000 0.000000 0.0 0.000000 0.000000 \n", "12 0.000000 0.000000 0.0 0.000000 0.000000 \n", "13 0.000000 0.000000 0.0 0.000000 0.000000 \n", "14 0.000000 0.000000 0.0 0.000000 0.000000 \n", "15 0.000000 0.000000 0.0 0.000000 0.000000 \n", "16 0.000000 0.000000 0.0 0.000000 0.000000 \n", "17 0.000000 0.000000 0.0 0.000000 0.000000 \n", "18 0.000000 0.000000 0.0 0.000000 0.000000 \n", "19 0.000000 0.000000 0.0 0.000000 0.000000 \n", "20 0.000000 0.000000 0.2 0.000000 0.000000 \n", "\n", " Vegetarian / Vegan Restaurant Video Game Store Wine Bar Wine Shop \\\n", "0 0.00 0.000000 0.000000 0.000000 \n", "1 0.00 0.000000 0.032258 0.000000 \n", "2 0.00 0.000000 0.000000 0.000000 \n", "3 0.01 0.000000 0.020000 0.000000 \n", "4 0.00 0.000000 0.000000 0.000000 \n", "5 0.00 0.000000 0.010000 0.000000 \n", "6 0.00 0.000000 0.000000 0.000000 \n", "7 0.00 0.025641 0.000000 0.000000 \n", "8 0.00 0.000000 0.000000 0.000000 \n", "9 0.00 0.000000 0.000000 0.000000 \n", "10 0.00 0.000000 0.000000 0.000000 \n", "11 0.00 0.000000 0.000000 0.000000 \n", "12 0.00 0.000000 0.000000 0.000000 \n", "13 0.00 0.000000 0.000000 0.000000 \n", "14 0.00 0.000000 0.000000 0.019231 \n", "15 0.00 0.000000 0.000000 0.000000 \n", "16 0.00 0.000000 0.000000 0.000000 \n", "17 0.00 0.000000 0.000000 0.000000 \n", "18 0.00 0.000000 0.000000 0.000000 \n", "19 0.00 0.000000 0.000000 0.000000 \n", "20 0.00 0.000000 0.000000 0.000000 \n", "\n", " Women's Store \n", "0 0.000000 \n", "1 0.000000 \n", "2 0.000000 \n", "3 0.000000 \n", "4 0.000000 \n", "5 0.000000 \n", "6 0.000000 \n", "7 0.000000 \n", "8 0.000000 \n", "9 0.000000 \n", "10 0.017857 \n", "11 0.000000 \n", "12 0.000000 \n", "13 0.000000 \n", "14 0.000000 \n", "15 0.000000 \n", "16 0.000000 \n", "17 0.000000 \n", "18 0.000000 \n", "19 0.000000 \n", "20 0.000000 " ] }, "execution_count": 403, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_grouped = madrid_onehot.groupby('District').mean().reset_index()\n", "madrid_grouped" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Displaying the top 5 venues of all districts" ] }, { "cell_type": "code", "execution_count": 404, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "----Arganzuela----\n", " venue freq\n", "0 Restaurant 0.12\n", "1 Spanish Restaurant 0.09\n", "2 Grocery Store 0.07\n", "3 Bakery 0.06\n", "4 Tapas Restaurant 0.05\n", "\n", "\n", "----Barajas----\n", " venue freq\n", "0 Hotel 0.19\n", "1 Restaurant 0.13\n", "2 Spanish Restaurant 0.10\n", "3 Coffee Shop 0.06\n", "4 Tapas Restaurant 0.06\n", "\n", "\n", "----Carabanchel----\n", " venue freq\n", "0 Plaza 0.11\n", "1 Bakery 0.11\n", "2 Fast Food Restaurant 0.11\n", "3 Nightclub 0.11\n", "4 Soccer Field 0.11\n", "\n", "\n", "----Centro----\n", " venue freq\n", "0 Spanish Restaurant 0.13\n", "1 Tapas Restaurant 0.12\n", "2 Plaza 0.10\n", "3 Ice Cream Shop 0.04\n", "4 Hostel 0.04\n", "\n", "\n", "----Chamartin----\n", " venue freq\n", "0 Restaurant 0.14\n", "1 Spanish Restaurant 0.14\n", "2 Café 0.05\n", "3 Bakery 0.05\n", "4 Grocery Store 0.05\n", "\n", "\n", "----Chamberi----\n", " venue freq\n", "0 Spanish Restaurant 0.12\n", "1 Restaurant 0.07\n", "2 Bar 0.06\n", "3 Brewery 0.05\n", "4 Italian Restaurant 0.04\n", "\n", "\n", "----Ciudad Lineal----\n", " venue freq\n", "0 Spanish Restaurant 0.12\n", "1 Restaurant 0.12\n", "2 Grocery Store 0.08\n", "3 Argentinian Restaurant 0.08\n", "4 Park 0.08\n", "\n", "\n", "----Fuencarral - El Pardo----\n", " venue freq\n", "0 Clothing Store 0.13\n", "1 Italian Restaurant 0.05\n", "2 Fast Food Restaurant 0.05\n", "3 Tapas Restaurant 0.05\n", "4 Burger Joint 0.05\n", "\n", "\n", "----Hortaleza----\n", " venue freq\n", "0 Breakfast Spot 0.17\n", "1 Pizza Place 0.11\n", "2 Supermarket 0.11\n", "3 Pub 0.06\n", "4 Bakery 0.06\n", "\n", "\n", "----Latina----\n", " venue freq\n", "0 Pizza Place 0.18\n", "1 Fast Food Restaurant 0.09\n", "2 Metro Station 0.09\n", "3 Arts & Crafts Store 0.09\n", "4 Asian Restaurant 0.09\n", "\n", "\n", "----Moncloa - Aravaca----\n", " venue freq\n", "0 Restaurant 0.07\n", "1 Tapas Restaurant 0.05\n", "2 Spanish Restaurant 0.05\n", "3 Pizza Place 0.04\n", "4 Japanese Restaurant 0.04\n", "\n", "\n", "----Moratalaz----\n", " venue freq\n", "0 Bar 0.17\n", "1 Ice Cream Shop 0.08\n", "2 Bakery 0.08\n", "3 Pizza Place 0.08\n", "4 Park 0.08\n", "\n", "\n", "----Puente de Vallecas----\n", " venue freq\n", "0 Fast Food Restaurant 0.12\n", "1 Gym 0.08\n", "2 Café 0.08\n", "3 Hotel 0.08\n", "4 Supermarket 0.08\n", "\n", "\n", "----Retiro----\n", " venue freq\n", "0 Spanish Restaurant 0.15\n", "1 Museum 0.05\n", "2 Bar 0.05\n", "3 Supermarket 0.05\n", "4 Tapas Restaurant 0.05\n", "\n", "\n", "----Salamanca----\n", " venue freq\n", "0 Spanish Restaurant 0.17\n", "1 Restaurant 0.13\n", "2 Mediterranean Restaurant 0.06\n", "3 Seafood Restaurant 0.06\n", "4 Clothing Store 0.04\n", "\n", "\n", "----San Blas - Canillejas----\n", " venue freq\n", "0 Metro Station 0.2 \n", "1 Snack Place 0.1 \n", "2 Pizza Place 0.1 \n", "3 Supermarket 0.1 \n", "4 Shopping Mall 0.1 \n", "\n", "\n", "----Tetuan----\n", " venue freq\n", "0 Spanish Restaurant 0.16\n", "1 Chinese Restaurant 0.06\n", "2 Brazilian Restaurant 0.06\n", "3 Supermarket 0.06\n", "4 Grocery Store 0.06\n", "\n", "\n", "----Usera----\n", " venue freq\n", "0 Spanish Restaurant 0.17\n", "1 Seafood Restaurant 0.17\n", "2 Chinese Restaurant 0.17\n", "3 Asian Restaurant 0.08\n", "4 Noodle House 0.08\n", "\n", "\n", "----Vicalvaro----\n", " venue freq\n", "0 Pizza Place 0.18\n", "1 Spanish Restaurant 0.18\n", "2 Grocery Store 0.09\n", "3 Sandwich Place 0.09\n", "4 Fast Food Restaurant 0.09\n", "\n", "\n", "----Villa de Vallecas----\n", " venue freq\n", "0 Breakfast Spot 0.12\n", "1 Grocery Store 0.12\n", "2 Park 0.12\n", "3 Sandwich Place 0.12\n", "4 Food 0.12\n", "\n", "\n", "----Villaverde----\n", " venue freq\n", "0 Spanish Restaurant 0.2 \n", "1 Pizza Place 0.2 \n", "2 Plaza 0.2 \n", "3 Diner 0.2 \n", "4 Train 0.2 \n", "\n", "\n" ] } ], "source": [ "num_top_venues = 5\n", "\n", "for n in madrid_grouped['District']:\n", " print(\"----\"+n+\"----\")\n", " temp = madrid_grouped[madrid_grouped['District']==n].T.reset_index()\n", " temp.columns = ['venue', 'freq']\n", " temp = temp.iloc[1:]\n", " temp['freq'] = temp['freq'].astype(float)\n", " temp = temp.round({'freq': 2})\n", " print(temp.sort_values('freq', ascending=False).reset_index(drop=True).head(num_top_venues))\n", " print('\\n')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Putting the previous into a pandas dataframe" ] }, { "cell_type": "code", "execution_count": 405, "metadata": {}, "outputs": [], "source": [ "def return_most_common_venues(row, num_top_venues):\n", " row_categories = row.iloc[1:]\n", " row_categories_sorted = row_categories.sort_values(ascending=False)\n", " \n", " return row_categories_sorted.index.values[0:num_top_venues]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's create the new dataframe and display the top 10 venues for each neighborhood" ] }, { "cell_type": "code", "execution_count": 406, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
District1st Most Common Venue2nd Most Common Venue3rd Most Common Venue4th Most Common Venue5th Most Common Venue6th Most Common Venue7th Most Common Venue8th Most Common Venue9th Most Common Venue10th Most Common Venue
0ArganzuelaRestaurantSpanish RestaurantGrocery StoreBakeryTapas RestaurantGym / Fitness CenterBeer GardenMarketFalafel RestaurantBurger Joint
1BarajasHotelRestaurantSpanish RestaurantCoffee ShopTapas RestaurantBarFast Food RestaurantBreweryMexican RestaurantCafé
2CarabanchelPizza PlaceNightclubFast Food RestaurantBurger JointTapas RestaurantBakerySoccer FieldMetro StationPlazaDiner
3CentroSpanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
4ChamartinSpanish RestaurantRestaurantBakeryGrocery StoreTapas RestaurantCaféGastropubParkCoffee ShopJapanese Restaurant
5ChamberiSpanish RestaurantRestaurantBarBreweryItalian RestaurantJapanese RestaurantCaféPlazaMexican RestaurantTapas Restaurant
6Ciudad LinealRestaurantSpanish RestaurantParkGrocery StoreArgentinian RestaurantGastropubTapas RestaurantPharmacyCaféBus Line
7Fuencarral - El PardoClothing StoreBurger JointTapas RestaurantFast Food RestaurantItalian RestaurantShopping MallSpanish RestaurantBig Box StoreFlea MarketBoutique
8HortalezaBreakfast SpotSupermarketPizza PlaceSandwich PlacePubSpanish RestaurantBakeryPlazaChinese RestaurantRestaurant
9LatinaPizza PlaceFast Food RestaurantParkGrocery StoreTrain StationArts & Crafts StoreAsian RestaurantFalafel RestaurantMetro StationBakery
10Moncloa - AravacaRestaurantTapas RestaurantSpanish RestaurantPizza PlaceItalian RestaurantPubBakeryBarCoffee ShopMediterranean Restaurant
11MoratalazBarPizza PlaceIce Cream ShopFood TruckCaféBreweryNightclubBakerySoccer FieldPlaza
12Puente de VallecasFast Food RestaurantGymGrocery StoreCaféHotelSupermarketTapas RestaurantBarBurger JointBreakfast Spot
13RetiroSpanish RestaurantMuseumSupermarketTapas RestaurantBarGymFarmers MarketBoutiqueBreweryFood & Drink Shop
14SalamancaSpanish RestaurantRestaurantMediterranean RestaurantSeafood RestaurantBurger JointClothing StoreMexican RestaurantTapas RestaurantSupermarketPlaza
15San Blas - CanillejasMetro StationAsian RestaurantShopping MallSupermarketSnack PlacePizza PlaceGas StationGrocery StoreGymFabric Shop
16TetuanSpanish RestaurantGrocery StoreBrazilian RestaurantChinese RestaurantSupermarketBreakfast SpotClothing StoreResortCafeteriaSeafood Restaurant
17UseraSpanish RestaurantSeafood RestaurantChinese RestaurantTheaterAsian RestaurantBubble Tea ShopNoodle HouseFast Food RestaurantPlazaDiner
18VicalvaroPizza PlaceSpanish RestaurantBeer BarFast Food RestaurantGrocery StoreIce Cream ShopSandwich PlaceBreakfast SpotCaféFish Market
19Villa de VallecasBreakfast SpotParkPlatformGrocery StoreSpanish RestaurantFoodSoccer FieldSandwich PlaceEastern European RestaurantFast Food Restaurant
20VillaverdePizza PlaceTrainPlazaDinerSpanish RestaurantGrocery StoreDog RunFarmers MarketFalafel RestaurantFabric Shop
\n", "
" ], "text/plain": [ " District 1st Most Common Venue 2nd Most Common Venue \\\n", "0 Arganzuela Restaurant Spanish Restaurant \n", "1 Barajas Hotel Restaurant \n", "2 Carabanchel Pizza Place Nightclub \n", "3 Centro Spanish Restaurant Tapas Restaurant \n", "4 Chamartin Spanish Restaurant Restaurant \n", "5 Chamberi Spanish Restaurant Restaurant \n", "6 Ciudad Lineal Restaurant Spanish Restaurant \n", "7 Fuencarral - El Pardo Clothing Store Burger Joint \n", "8 Hortaleza Breakfast Spot Supermarket \n", "9 Latina Pizza Place Fast Food Restaurant \n", "10 Moncloa - Aravaca Restaurant Tapas Restaurant \n", "11 Moratalaz Bar Pizza Place \n", "12 Puente de Vallecas Fast Food Restaurant Gym \n", "13 Retiro Spanish Restaurant Museum \n", "14 Salamanca Spanish Restaurant Restaurant \n", "15 San Blas - Canillejas Metro Station Asian Restaurant \n", "16 Tetuan Spanish Restaurant Grocery Store \n", "17 Usera Spanish Restaurant Seafood Restaurant \n", "18 Vicalvaro Pizza Place Spanish Restaurant \n", "19 Villa de Vallecas Breakfast Spot Park \n", "20 Villaverde Pizza Place Train \n", "\n", " 3rd Most Common Venue 4th Most Common Venue 5th Most Common Venue \\\n", "0 Grocery Store Bakery Tapas Restaurant \n", "1 Spanish Restaurant Coffee Shop Tapas Restaurant \n", "2 Fast Food Restaurant Burger Joint Tapas Restaurant \n", "3 Plaza Hostel Ice Cream Shop \n", "4 Bakery Grocery Store Tapas Restaurant \n", "5 Bar Brewery Italian Restaurant \n", "6 Park Grocery Store Argentinian Restaurant \n", "7 Tapas Restaurant Fast Food Restaurant Italian Restaurant \n", "8 Pizza Place Sandwich Place Pub \n", "9 Park Grocery Store Train Station \n", "10 Spanish Restaurant Pizza Place Italian Restaurant \n", "11 Ice Cream Shop Food Truck Café \n", "12 Grocery Store Café Hotel \n", "13 Supermarket Tapas Restaurant Bar \n", "14 Mediterranean Restaurant Seafood Restaurant Burger Joint \n", "15 Shopping Mall Supermarket Snack Place \n", "16 Brazilian Restaurant Chinese Restaurant Supermarket \n", "17 Chinese Restaurant Theater Asian Restaurant \n", "18 Beer Bar Fast Food Restaurant Grocery Store \n", "19 Platform Grocery Store Spanish Restaurant \n", "20 Plaza Diner Spanish Restaurant \n", "\n", " 6th Most Common Venue 7th Most Common Venue 8th Most Common Venue \\\n", "0 Gym / Fitness Center Beer Garden Market \n", "1 Bar Fast Food Restaurant Brewery \n", "2 Bakery Soccer Field Metro Station \n", "3 Bookstore Hotel Pastry Shop \n", "4 Café Gastropub Park \n", "5 Japanese Restaurant Café Plaza \n", "6 Gastropub Tapas Restaurant Pharmacy \n", "7 Shopping Mall Spanish Restaurant Big Box Store \n", "8 Spanish Restaurant Bakery Plaza \n", "9 Arts & Crafts Store Asian Restaurant Falafel Restaurant \n", "10 Pub Bakery Bar \n", "11 Brewery Nightclub Bakery \n", "12 Supermarket Tapas Restaurant Bar \n", "13 Gym Farmers Market Boutique \n", "14 Clothing Store Mexican Restaurant Tapas Restaurant \n", "15 Pizza Place Gas Station Grocery Store \n", "16 Breakfast Spot Clothing Store Resort \n", "17 Bubble Tea Shop Noodle House Fast Food Restaurant \n", "18 Ice Cream Shop Sandwich Place Breakfast Spot \n", "19 Food Soccer Field Sandwich Place \n", "20 Grocery Store Dog Run Farmers Market \n", "\n", " 9th Most Common Venue 10th Most Common Venue \n", "0 Falafel Restaurant Burger Joint \n", "1 Mexican Restaurant Café \n", "2 Plaza Diner \n", "3 Cocktail Bar Gym / Fitness Center \n", "4 Coffee Shop Japanese Restaurant \n", "5 Mexican Restaurant Tapas Restaurant \n", "6 Café Bus Line \n", "7 Flea Market Boutique \n", "8 Chinese Restaurant Restaurant \n", "9 Metro Station Bakery \n", "10 Coffee Shop Mediterranean Restaurant \n", "11 Soccer Field Plaza \n", "12 Burger Joint Breakfast Spot \n", "13 Brewery Food & Drink Shop \n", "14 Supermarket Plaza \n", "15 Gym Fabric Shop \n", "16 Cafeteria Seafood Restaurant \n", "17 Plaza Diner \n", "18 Café Fish Market \n", "19 Eastern European Restaurant Fast Food Restaurant \n", "20 Falafel Restaurant Fabric Shop " ] }, "execution_count": 406, "metadata": {}, "output_type": "execute_result" } ], "source": [ "num_top_venues = 10\n", "\n", "indicators = ['st', 'nd', 'rd']\n", "\n", "# create columns according to number of top venues\n", "columns = ['District']\n", "for ind in np.arange(num_top_venues):\n", " try:\n", " columns.append('{}{} Most Common Venue'.format(ind+1, indicators[ind]))\n", " except:\n", " columns.append('{}th Most Common Venue'.format(ind+1))\n", "\n", "# create a new dataframe\n", "neighborhoods_venues_sorted = pd.DataFrame(columns=columns)\n", "neighborhoods_venues_sorted['District'] = madrid_grouped['District']\n", "\n", "for ind in np.arange(madrid_grouped.shape[0]):\n", " neighborhoods_venues_sorted.iloc[ind, 1:] = return_most_common_venues(madrid_grouped.iloc[ind, :], num_top_venues)\n", "\n", "neighborhoods_venues_sorted" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cluster Districts\n", "\n", "Run k-means to cluster districts." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following is to determine how many clusters should we use, for this we will use the Silhouette Score - https://scikit-learn.org/stable/modules/generated/sklearn.metrics.silhouette_score.html" ] }, { "cell_type": "code", "execution_count": 407, "metadata": {}, "outputs": [], "source": [ "def plot(x, y):\n", " fig = plt.figure(figsize=(12,6))\n", " plt.plot(x, y, 'o-')\n", " plt.xlabel('Number of clusters')\n", " plt.ylabel('Silhouette Scores')\n", " plt.title('Checking Optimum Number of Clusters')\n", " ax = plt.gca()\n", " ax.spines['right'].set_visible(False)\n", " ax.spines['top'].set_visible(False)" ] }, { "cell_type": "code", "execution_count": 408, "metadata": {}, "outputs": [], "source": [ "maxk = 15\n", "scores = []\n", "kval = []\n", "\n", "for k in range(2, maxk+1):\n", " cl_df = madrid_grouped.drop('District', axis=1)\n", " kmeans = KMeans(n_clusters=k, init=\"k-means++\", random_state=0).fit_predict(cl_df) #Choose any random_state\n", " \n", " score = silhouette_score(cl_df, kmeans, metric='euclidean', random_state=0)\n", " kval.append(k)\n", " scores.append(score)" ] }, { "cell_type": "code", "execution_count": 409, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.1903125726032766, 0.1620096375806738, 0.1940931157107913, 0.18574859973350114, 0.15799897660811957, 0.14931739548789957, 0.11691430041648038, 0.15547870618207524, 0.14334680215501786, 0.041599156450781376, 0.04124564442032303, 0.04168433945809237, 0.029124446627720606, 0.032561698923450386]\n", "[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "print(scores)\n", "print(kval)\n", "plot(kval, scores)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Acording to the previous we can use 3 or 4 clusters given that it provides the highest silhouette score. Also note that it decreases as the number of clusters increases " ] }, { "cell_type": "code", "execution_count": 410, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 0, 1, 0, 0, 0, 0, 0, 0, 3])" ] }, "execution_count": 410, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# set number of clusters\n", "kclusters = 4\n", "\n", "madrid_grouped_clustering = madrid_grouped.drop('District', 1)\n", "\n", "# run k-means clustering\n", "\n", "kmeans = KMeans(n_clusters=kclusters, random_state=0).fit(madrid_grouped_clustering)\n", "\n", "# check cluster labels generated for each row in the dataframe\n", "\n", "kmeans.labels_[0:10]" ] }, { "cell_type": "code", "execution_count": 411, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DistrictNeighborhoodDistrict_LatitudeDistrict_LongitudeCluster Labels1st Most Common Venue2nd Most Common Venue3rd Most Common Venue4th Most Common Venue5th Most Common Venue6th Most Common Venue7th Most Common Venue8th Most Common Venue9th Most Common Venue10th Most Common Venue
0CentroPalacio40.415347-3.7073710Spanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
1CentroEmbajadores40.415347-3.7073710Spanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
2CentroCortes40.415347-3.7073710Spanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
3CentroJusticia40.415347-3.7073710Spanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
4CentroUniversidad40.415347-3.7073710Spanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
\n", "
" ], "text/plain": [ " District Neighborhood District_Latitude District_Longitude \\\n", "0 Centro Palacio 40.415347 -3.707371 \n", "1 Centro Embajadores 40.415347 -3.707371 \n", "2 Centro Cortes 40.415347 -3.707371 \n", "3 Centro Justicia 40.415347 -3.707371 \n", "4 Centro Universidad 40.415347 -3.707371 \n", "\n", " Cluster Labels 1st Most Common Venue 2nd Most Common Venue \\\n", "0 0 Spanish Restaurant Tapas Restaurant \n", "1 0 Spanish Restaurant Tapas Restaurant \n", "2 0 Spanish Restaurant Tapas Restaurant \n", "3 0 Spanish Restaurant Tapas Restaurant \n", "4 0 Spanish Restaurant Tapas Restaurant \n", "\n", " 3rd Most Common Venue 4th Most Common Venue 5th Most Common Venue \\\n", "0 Plaza Hostel Ice Cream Shop \n", "1 Plaza Hostel Ice Cream Shop \n", "2 Plaza Hostel Ice Cream Shop \n", "3 Plaza Hostel Ice Cream Shop \n", "4 Plaza Hostel Ice Cream Shop \n", "\n", " 6th Most Common Venue 7th Most Common Venue 8th Most Common Venue \\\n", "0 Bookstore Hotel Pastry Shop \n", "1 Bookstore Hotel Pastry Shop \n", "2 Bookstore Hotel Pastry Shop \n", "3 Bookstore Hotel Pastry Shop \n", "4 Bookstore Hotel Pastry Shop \n", "\n", " 9th Most Common Venue 10th Most Common Venue \n", "0 Cocktail Bar Gym / Fitness Center \n", "1 Cocktail Bar Gym / Fitness Center \n", "2 Cocktail Bar Gym / Fitness Center \n", "3 Cocktail Bar Gym / Fitness Center \n", "4 Cocktail Bar Gym / Fitness Center " ] }, "execution_count": 411, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# add clustering labels\n", "neighborhoods_venues_sorted.insert(0, 'Cluster Labels', kmeans.labels_)\n", "\n", "madrid_merged = madrid_data\n", "\n", "# merge manhattan_grouped with manhattan_data to add latitude/longitude for each neighborhood\n", "madrid_merged = madrid_merged.join(neighborhoods_venues_sorted.set_index('District'), on='District')\n", "\n", "madrid_merged.head() # check the last columns!" ] }, { "cell_type": "code", "execution_count": 488, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DistrictNeighborhoodDistrict_LatitudeDistrict_Longitude
0CentroPalacio40.415347-3.707371
1CentroEmbajadores40.415347-3.707371
2CentroCortes40.415347-3.707371
3CentroJusticia40.415347-3.707371
4CentroUniversidad40.415347-3.707371
5CentroSol40.415347-3.707371
6ArganzuelaImperial40.402733-3.695403
7ArganzuelaAcacias40.402733-3.695403
8ArganzuelaChopera40.402733-3.695403
9ArganzuelaLegazpi40.402733-3.695403
10ArganzuelaDelicias40.402733-3.695403
11ArganzuelaPalos de Moguer40.402733-3.695403
12ArganzuelaAtocha40.402733-3.695403
13RetiroPacífico40.408072-3.676729
14RetiroAdelfas40.408072-3.676729
15RetiroEstrella40.408072-3.676729
16RetiroIbiza40.408072-3.676729
17RetiroJerónimos40.408072-3.676729
18RetiroNiño Jesús40.408072-3.676729
19SalamancaRecoletos40.430000-3.677778
20SalamancaGoya40.430000-3.677778
21SalamancaFuente del Berro40.430000-3.677778
22SalamancaGuindalera40.430000-3.677778
23SalamancaLista40.430000-3.677778
24SalamancaCastellana40.430000-3.677778
25ChamartinEl Viso40.453333-3.677500
26ChamartinProsperidad40.453333-3.677500
27ChamartinCiudad Jardín40.453333-3.677500
28ChamartinHispanoamérica40.453333-3.677500
29ChamartinNueva España40.453333-3.677500
30ChamartinCastilla40.453333-3.677500
31TetuanBellas Vistas40.460556-3.700000
32TetuanCuatro Caminos40.460556-3.700000
33TetuanCastillejos40.460556-3.700000
34TetuanAlmenara40.460556-3.700000
35TetuanValdeacederas40.460556-3.700000
36TetuanBerruguete40.460556-3.700000
37ChamberiGaztambide40.432792-3.697186
38ChamberiArapiles40.432792-3.697186
39ChamberiTrafalgar40.432792-3.697186
40ChamberiAlmagro40.432792-3.697186
41ChamberiRios Rosas40.432792-3.697186
42ChamberiVallehermoso40.432792-3.697186
43Fuencarral - El PardoEl Pardo40.478611-3.709722
44Fuencarral - El PardoFuentelareina40.478611-3.709722
45Fuencarral - El PardoPeñagrande40.478611-3.709722
46Fuencarral - El PardoPilar40.478611-3.709722
47Fuencarral - El PardoLa Paz40.478611-3.709722
48Fuencarral - El PardoValverde40.478611-3.709722
49Fuencarral - El PardoMirasierra40.478611-3.709722
50Fuencarral - El PardoEl Goloso40.478611-3.709722
51Moncloa - AravacaCasa de Campo40.435151-3.718765
52Moncloa - AravacaArgüelles40.435151-3.718765
53Moncloa - AravacaCiudad Universitaria40.435151-3.718765
54Moncloa - AravacaValdezarza40.435151-3.718765
55Moncloa - AravacaValdemarín40.435151-3.718765
56Moncloa - AravacaEl Plantío40.435151-3.718765
57Moncloa - AravacaAravaca40.435151-3.718765
58LatinaCármenes40.402461-3.741294
59LatinaPuerta del Ángel40.402461-3.741294
60LatinaLucero40.402461-3.741294
61LatinaAluche40.402461-3.741294
62LatinaCampamento40.402461-3.741294
63LatinaCuatro Vientos40.402461-3.741294
64LatinaÁguilas40.402461-3.741294
65CarabanchelComillas40.383669-3.727989
66CarabanchelOpañel40.383669-3.727989
67CarabanchelSan Isidro40.383669-3.727989
68CarabanchelVista Alegre40.383669-3.727989
69CarabanchelPuerta Bonita40.383669-3.727989
70CarabanchelBuenavista40.383669-3.727989
71CarabanchelAbrantes40.383669-3.727989
72UseraOrcasitas40.381336-3.706856
73UseraOrcasur40.381336-3.706856
74UseraSan Fermín40.381336-3.706856
75UseraAlmendrales40.381336-3.706856
76UseraMoscardó40.381336-3.706856
77UseraZofío40.381336-3.706856
78UseraPradolongo40.381336-3.706856
79Puente de VallecasEntrevías40.398204-3.669059
80Puente de VallecasSan Diego40.398204-3.669059
81Puente de VallecasPalomeras Bajas40.398204-3.669059
82Puente de VallecasPalomeras Sureste40.398204-3.669059
83Puente de VallecasPortazgo40.398204-3.669059
84Puente de VallecasNumancia40.398204-3.669059
85MoratalazPavones40.409869-3.644436
86MoratalazHorcajo40.409869-3.644436
87MoratalazMarroquina40.409869-3.644436
88MoratalazMedia Legua40.409869-3.644436
89MoratalazFontarrón40.409869-3.644436
90MoratalazVinateros40.409869-3.644436
91Ciudad LinealVentas40.453333-3.650000
92Ciudad LinealPueblo Nuevo40.453333-3.650000
93Ciudad LinealQuintana40.453333-3.650000
94Ciudad LinealConcepción40.453333-3.650000
95Ciudad LinealSan Pascual40.453333-3.650000
96Ciudad LinealSan Juan Bautista40.453333-3.650000
97Ciudad LinealColina40.453333-3.650000
98Ciudad LinealAtalaya40.453333-3.650000
99Ciudad LinealCostillares40.453333-3.650000
100HortalezaPalomas40.469457-3.640482
101HortalezaPiovera40.469457-3.640482
102HortalezaCanillas40.469457-3.640482
103HortalezaPinar del Rey40.469457-3.640482
104HortalezaApostol Santiago40.469457-3.640482
105HortalezaValdefuentes40.469457-3.640482
106VillaverdeVillaverde Alto, Casco Histórico de Villaverde40.345925-3.709356
107VillaverdeSan Cristóbal40.345925-3.709356
108VillaverdeButarque40.345925-3.709356
109VillaverdeLos Rosales40.345925-3.709356
110VillaverdeLos Ángeles40.345925-3.709356
111Villa de VallecasCasco Histórico de Vallecas40.379600-3.621350
112Villa de VallecasSanta Eugenia40.379600-3.621350
113Villa de VallecasEnsanche de Vallecas40.379600-3.621350
114VicalvaroCasco Histórico de Vicálvaro40.404200-3.608060
115VicalvaroValdebernardo40.404200-3.608060
116VicalvaroValderrivas40.404200-3.608060
117VicalvaroEl Cañaveral40.404200-3.608060
118San Blas - CanillejasSimancas40.426001-3.612764
119San Blas - CanillejasHellín40.426001-3.612764
120San Blas - CanillejasAmposta40.426001-3.612764
121San Blas - CanillejasArcos40.426001-3.612764
122San Blas - CanillejasRosas40.426001-3.612764
123San Blas - CanillejasRejas40.426001-3.612764
124San Blas - CanillejasCanillejas40.426001-3.612764
125San Blas - CanillejasSalvador40.426001-3.612764
126BarajasAlameda de Osuna40.470196-3.584890
127BarajasAeropuerto40.470196-3.584890
128BarajasCasco Histórico de Barajas40.470196-3.584890
129BarajasTimón40.470196-3.584890
130BarajasCorralejos40.470196-3.584890
\n", "
" ], "text/plain": [ " District Neighborhood \\\n", "0 Centro Palacio \n", "1 Centro Embajadores \n", "2 Centro Cortes \n", "3 Centro Justicia \n", "4 Centro Universidad \n", "5 Centro Sol \n", "6 Arganzuela Imperial \n", "7 Arganzuela Acacias \n", "8 Arganzuela Chopera \n", "9 Arganzuela Legazpi \n", "10 Arganzuela Delicias \n", "11 Arganzuela Palos de Moguer \n", "12 Arganzuela Atocha \n", "13 Retiro Pacífico \n", "14 Retiro Adelfas \n", "15 Retiro Estrella \n", "16 Retiro Ibiza \n", "17 Retiro Jerónimos \n", "18 Retiro Niño Jesús \n", "19 Salamanca Recoletos \n", "20 Salamanca Goya \n", "21 Salamanca Fuente del Berro \n", "22 Salamanca Guindalera \n", "23 Salamanca Lista \n", "24 Salamanca Castellana \n", "25 Chamartin El Viso \n", "26 Chamartin Prosperidad \n", "27 Chamartin Ciudad Jardín \n", "28 Chamartin Hispanoamérica \n", "29 Chamartin Nueva España \n", "30 Chamartin Castilla \n", "31 Tetuan Bellas Vistas \n", "32 Tetuan Cuatro Caminos \n", "33 Tetuan Castillejos \n", "34 Tetuan Almenara \n", "35 Tetuan Valdeacederas \n", "36 Tetuan Berruguete \n", "37 Chamberi Gaztambide \n", "38 Chamberi Arapiles \n", "39 Chamberi Trafalgar \n", "40 Chamberi Almagro \n", "41 Chamberi Rios Rosas \n", "42 Chamberi Vallehermoso \n", "43 Fuencarral - El Pardo El Pardo \n", "44 Fuencarral - El Pardo Fuentelareina \n", "45 Fuencarral - El Pardo Peñagrande \n", "46 Fuencarral - El Pardo Pilar \n", "47 Fuencarral - El Pardo La Paz \n", "48 Fuencarral - El Pardo Valverde \n", "49 Fuencarral - El Pardo Mirasierra \n", "50 Fuencarral - El Pardo El Goloso \n", "51 Moncloa - Aravaca Casa de Campo \n", "52 Moncloa - Aravaca Argüelles \n", "53 Moncloa - Aravaca Ciudad Universitaria \n", "54 Moncloa - Aravaca Valdezarza \n", "55 Moncloa - Aravaca Valdemarín \n", "56 Moncloa - Aravaca El Plantío \n", "57 Moncloa - Aravaca Aravaca \n", "58 Latina Cármenes \n", "59 Latina Puerta del Ángel \n", "60 Latina Lucero \n", "61 Latina Aluche \n", "62 Latina Campamento \n", "63 Latina Cuatro Vientos \n", "64 Latina Águilas \n", "65 Carabanchel Comillas \n", "66 Carabanchel Opañel \n", "67 Carabanchel San Isidro \n", "68 Carabanchel Vista Alegre \n", "69 Carabanchel Puerta Bonita \n", "70 Carabanchel Buenavista \n", "71 Carabanchel Abrantes \n", "72 Usera Orcasitas \n", "73 Usera Orcasur \n", "74 Usera San Fermín \n", "75 Usera Almendrales \n", "76 Usera Moscardó \n", "77 Usera Zofío \n", "78 Usera Pradolongo \n", "79 Puente de Vallecas Entrevías \n", "80 Puente de Vallecas San Diego \n", "81 Puente de Vallecas Palomeras Bajas \n", "82 Puente de Vallecas Palomeras Sureste \n", "83 Puente de Vallecas Portazgo \n", "84 Puente de Vallecas Numancia \n", "85 Moratalaz Pavones \n", "86 Moratalaz Horcajo \n", "87 Moratalaz Marroquina \n", "88 Moratalaz Media Legua \n", "89 Moratalaz Fontarrón \n", "90 Moratalaz Vinateros \n", "91 Ciudad Lineal Ventas \n", "92 Ciudad Lineal Pueblo Nuevo \n", "93 Ciudad Lineal Quintana \n", "94 Ciudad Lineal Concepción \n", "95 Ciudad Lineal San Pascual \n", "96 Ciudad Lineal San Juan Bautista \n", "97 Ciudad Lineal Colina \n", "98 Ciudad Lineal Atalaya \n", "99 Ciudad Lineal Costillares \n", "100 Hortaleza Palomas \n", "101 Hortaleza Piovera \n", "102 Hortaleza Canillas \n", "103 Hortaleza Pinar del Rey \n", "104 Hortaleza Apostol Santiago \n", "105 Hortaleza Valdefuentes \n", "106 Villaverde Villaverde Alto, Casco Histórico de Villaverde \n", "107 Villaverde San Cristóbal \n", "108 Villaverde Butarque \n", "109 Villaverde Los Rosales \n", "110 Villaverde Los Ángeles \n", "111 Villa de Vallecas Casco Histórico de Vallecas \n", "112 Villa de Vallecas Santa Eugenia \n", "113 Villa de Vallecas Ensanche de Vallecas \n", "114 Vicalvaro Casco Histórico de Vicálvaro \n", "115 Vicalvaro Valdebernardo \n", "116 Vicalvaro Valderrivas \n", "117 Vicalvaro El Cañaveral \n", "118 San Blas - Canillejas Simancas \n", "119 San Blas - Canillejas Hellín \n", "120 San Blas - Canillejas Amposta \n", "121 San Blas - Canillejas Arcos \n", "122 San Blas - Canillejas Rosas \n", "123 San Blas - Canillejas Rejas \n", "124 San Blas - Canillejas Canillejas \n", "125 San Blas - Canillejas Salvador \n", "126 Barajas Alameda de Osuna \n", "127 Barajas Aeropuerto \n", "128 Barajas Casco Histórico de Barajas \n", "129 Barajas Timón \n", "130 Barajas Corralejos \n", "\n", " District_Latitude District_Longitude \n", "0 40.415347 -3.707371 \n", "1 40.415347 -3.707371 \n", "2 40.415347 -3.707371 \n", "3 40.415347 -3.707371 \n", "4 40.415347 -3.707371 \n", "5 40.415347 -3.707371 \n", "6 40.402733 -3.695403 \n", "7 40.402733 -3.695403 \n", "8 40.402733 -3.695403 \n", "9 40.402733 -3.695403 \n", "10 40.402733 -3.695403 \n", "11 40.402733 -3.695403 \n", "12 40.402733 -3.695403 \n", "13 40.408072 -3.676729 \n", "14 40.408072 -3.676729 \n", "15 40.408072 -3.676729 \n", "16 40.408072 -3.676729 \n", "17 40.408072 -3.676729 \n", "18 40.408072 -3.676729 \n", "19 40.430000 -3.677778 \n", "20 40.430000 -3.677778 \n", "21 40.430000 -3.677778 \n", "22 40.430000 -3.677778 \n", "23 40.430000 -3.677778 \n", "24 40.430000 -3.677778 \n", "25 40.453333 -3.677500 \n", "26 40.453333 -3.677500 \n", "27 40.453333 -3.677500 \n", "28 40.453333 -3.677500 \n", "29 40.453333 -3.677500 \n", "30 40.453333 -3.677500 \n", "31 40.460556 -3.700000 \n", "32 40.460556 -3.700000 \n", "33 40.460556 -3.700000 \n", "34 40.460556 -3.700000 \n", "35 40.460556 -3.700000 \n", "36 40.460556 -3.700000 \n", "37 40.432792 -3.697186 \n", "38 40.432792 -3.697186 \n", "39 40.432792 -3.697186 \n", "40 40.432792 -3.697186 \n", "41 40.432792 -3.697186 \n", "42 40.432792 -3.697186 \n", "43 40.478611 -3.709722 \n", "44 40.478611 -3.709722 \n", "45 40.478611 -3.709722 \n", "46 40.478611 -3.709722 \n", "47 40.478611 -3.709722 \n", "48 40.478611 -3.709722 \n", "49 40.478611 -3.709722 \n", "50 40.478611 -3.709722 \n", "51 40.435151 -3.718765 \n", "52 40.435151 -3.718765 \n", "53 40.435151 -3.718765 \n", "54 40.435151 -3.718765 \n", "55 40.435151 -3.718765 \n", "56 40.435151 -3.718765 \n", "57 40.435151 -3.718765 \n", "58 40.402461 -3.741294 \n", "59 40.402461 -3.741294 \n", "60 40.402461 -3.741294 \n", "61 40.402461 -3.741294 \n", "62 40.402461 -3.741294 \n", "63 40.402461 -3.741294 \n", "64 40.402461 -3.741294 \n", "65 40.383669 -3.727989 \n", "66 40.383669 -3.727989 \n", "67 40.383669 -3.727989 \n", "68 40.383669 -3.727989 \n", "69 40.383669 -3.727989 \n", "70 40.383669 -3.727989 \n", "71 40.383669 -3.727989 \n", "72 40.381336 -3.706856 \n", "73 40.381336 -3.706856 \n", "74 40.381336 -3.706856 \n", "75 40.381336 -3.706856 \n", "76 40.381336 -3.706856 \n", "77 40.381336 -3.706856 \n", "78 40.381336 -3.706856 \n", "79 40.398204 -3.669059 \n", "80 40.398204 -3.669059 \n", "81 40.398204 -3.669059 \n", "82 40.398204 -3.669059 \n", "83 40.398204 -3.669059 \n", "84 40.398204 -3.669059 \n", "85 40.409869 -3.644436 \n", "86 40.409869 -3.644436 \n", "87 40.409869 -3.644436 \n", "88 40.409869 -3.644436 \n", "89 40.409869 -3.644436 \n", "90 40.409869 -3.644436 \n", "91 40.453333 -3.650000 \n", "92 40.453333 -3.650000 \n", "93 40.453333 -3.650000 \n", "94 40.453333 -3.650000 \n", "95 40.453333 -3.650000 \n", "96 40.453333 -3.650000 \n", "97 40.453333 -3.650000 \n", "98 40.453333 -3.650000 \n", "99 40.453333 -3.650000 \n", "100 40.469457 -3.640482 \n", "101 40.469457 -3.640482 \n", "102 40.469457 -3.640482 \n", "103 40.469457 -3.640482 \n", "104 40.469457 -3.640482 \n", "105 40.469457 -3.640482 \n", "106 40.345925 -3.709356 \n", "107 40.345925 -3.709356 \n", "108 40.345925 -3.709356 \n", "109 40.345925 -3.709356 \n", "110 40.345925 -3.709356 \n", "111 40.379600 -3.621350 \n", "112 40.379600 -3.621350 \n", "113 40.379600 -3.621350 \n", "114 40.404200 -3.608060 \n", "115 40.404200 -3.608060 \n", "116 40.404200 -3.608060 \n", "117 40.404200 -3.608060 \n", "118 40.426001 -3.612764 \n", "119 40.426001 -3.612764 \n", "120 40.426001 -3.612764 \n", "121 40.426001 -3.612764 \n", "122 40.426001 -3.612764 \n", "123 40.426001 -3.612764 \n", "124 40.426001 -3.612764 \n", "125 40.426001 -3.612764 \n", "126 40.470196 -3.584890 \n", "127 40.470196 -3.584890 \n", "128 40.470196 -3.584890 \n", "129 40.470196 -3.584890 \n", "130 40.470196 -3.584890 " ] }, "execution_count": 488, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Had to do this the column's names were giving error\n", "madrid_data = madrid_data.rename(columns={'DISTRICT': 'District', 'NEIGHBORHOOD':'Neighborhood', 'DISTRICT_LATITUDE':'District_Latitude',\n", " 'DISTRICT_LONGITUDE':'District_Longitude'})\n", "madrid_data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, let's visualize the resulting clusters" ] }, { "cell_type": "code", "execution_count": 414, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 414, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# create map\n", "map_clusters = folium.Map(location=[latitude, longitude], zoom_start=11)\n", "\n", "# set color scheme for the clusters\n", "x = np.arange(kclusters)\n", "ys = [i+x+(i*x)**2 for i in range(kclusters)]\n", "colors_array = cm.rainbow(np.linspace(0, 1, len(ys)))\n", "rainbow = [colors.rgb2hex(i) for i in colors_array]\n", "\n", "# add markers to the map\n", "markers_colors = []\n", "for lat, lon, poi, cluster in zip(madrid_merged['District_Latitude'], madrid_merged['District_Longitude'], madrid_merged['District'], madrid_merged['Cluster Labels']):\n", " label = folium.Popup(str(poi) + ' Cluster ' + str(cluster), parse_html=True)\n", " folium.CircleMarker(\n", " [lat, lon],\n", " radius=5,\n", " popup=label,\n", " color=rainbow[cluster-1],\n", " fill=True,\n", " fill_color=rainbow[cluster-1],\n", " fill_opacity=0.7).add_to(map_clusters)\n", " \n", "map_clusters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cluster 1" ] }, { "cell_type": "code", "execution_count": 421, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DistrictNeighborhood1st Most Common Venue2nd Most Common Venue3rd Most Common Venue4th Most Common Venue5th Most Common Venue6th Most Common Venue7th Most Common Venue8th Most Common Venue9th Most Common Venue10th Most Common Venue
0CentroPalacioSpanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
1CentroEmbajadoresSpanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
2CentroCortesSpanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
3CentroJusticiaSpanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
4CentroUniversidadSpanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
5CentroSolSpanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
6ArganzuelaImperialRestaurantSpanish RestaurantGrocery StoreBakeryTapas RestaurantGym / Fitness CenterBeer GardenMarketFalafel RestaurantBurger Joint
7ArganzuelaAcaciasRestaurantSpanish RestaurantGrocery StoreBakeryTapas RestaurantGym / Fitness CenterBeer GardenMarketFalafel RestaurantBurger Joint
8ArganzuelaChoperaRestaurantSpanish RestaurantGrocery StoreBakeryTapas RestaurantGym / Fitness CenterBeer GardenMarketFalafel RestaurantBurger Joint
9ArganzuelaLegazpiRestaurantSpanish RestaurantGrocery StoreBakeryTapas RestaurantGym / Fitness CenterBeer GardenMarketFalafel RestaurantBurger Joint
10ArganzuelaDeliciasRestaurantSpanish RestaurantGrocery StoreBakeryTapas RestaurantGym / Fitness CenterBeer GardenMarketFalafel RestaurantBurger Joint
11ArganzuelaPalos de MoguerRestaurantSpanish RestaurantGrocery StoreBakeryTapas RestaurantGym / Fitness CenterBeer GardenMarketFalafel RestaurantBurger Joint
12ArganzuelaAtochaRestaurantSpanish RestaurantGrocery StoreBakeryTapas RestaurantGym / Fitness CenterBeer GardenMarketFalafel RestaurantBurger Joint
13RetiroPacíficoSpanish RestaurantMuseumSupermarketTapas RestaurantBarGymFarmers MarketBoutiqueBreweryFood & Drink Shop
14RetiroAdelfasSpanish RestaurantMuseumSupermarketTapas RestaurantBarGymFarmers MarketBoutiqueBreweryFood & Drink Shop
15RetiroEstrellaSpanish RestaurantMuseumSupermarketTapas RestaurantBarGymFarmers MarketBoutiqueBreweryFood & Drink Shop
16RetiroIbizaSpanish RestaurantMuseumSupermarketTapas RestaurantBarGymFarmers MarketBoutiqueBreweryFood & Drink Shop
17RetiroJerónimosSpanish RestaurantMuseumSupermarketTapas RestaurantBarGymFarmers MarketBoutiqueBreweryFood & Drink Shop
18RetiroNiño JesúsSpanish RestaurantMuseumSupermarketTapas RestaurantBarGymFarmers MarketBoutiqueBreweryFood & Drink Shop
19SalamancaRecoletosSpanish RestaurantRestaurantMediterranean RestaurantSeafood RestaurantBurger JointClothing StoreMexican RestaurantTapas RestaurantSupermarketPlaza
20SalamancaGoyaSpanish RestaurantRestaurantMediterranean RestaurantSeafood RestaurantBurger JointClothing StoreMexican RestaurantTapas RestaurantSupermarketPlaza
21SalamancaFuente del BerroSpanish RestaurantRestaurantMediterranean RestaurantSeafood RestaurantBurger JointClothing StoreMexican RestaurantTapas RestaurantSupermarketPlaza
22SalamancaGuindaleraSpanish RestaurantRestaurantMediterranean RestaurantSeafood RestaurantBurger JointClothing StoreMexican RestaurantTapas RestaurantSupermarketPlaza
23SalamancaListaSpanish RestaurantRestaurantMediterranean RestaurantSeafood RestaurantBurger JointClothing StoreMexican RestaurantTapas RestaurantSupermarketPlaza
24SalamancaCastellanaSpanish RestaurantRestaurantMediterranean RestaurantSeafood RestaurantBurger JointClothing StoreMexican RestaurantTapas RestaurantSupermarketPlaza
25ChamartinEl VisoSpanish RestaurantRestaurantBakeryGrocery StoreTapas RestaurantCaféGastropubParkCoffee ShopJapanese Restaurant
26ChamartinProsperidadSpanish RestaurantRestaurantBakeryGrocery StoreTapas RestaurantCaféGastropubParkCoffee ShopJapanese Restaurant
27ChamartinCiudad JardínSpanish RestaurantRestaurantBakeryGrocery StoreTapas RestaurantCaféGastropubParkCoffee ShopJapanese Restaurant
28ChamartinHispanoaméricaSpanish RestaurantRestaurantBakeryGrocery StoreTapas RestaurantCaféGastropubParkCoffee ShopJapanese Restaurant
29ChamartinNueva EspañaSpanish RestaurantRestaurantBakeryGrocery StoreTapas RestaurantCaféGastropubParkCoffee ShopJapanese Restaurant
30ChamartinCastillaSpanish RestaurantRestaurantBakeryGrocery StoreTapas RestaurantCaféGastropubParkCoffee ShopJapanese Restaurant
31TetuanBellas VistasSpanish RestaurantGrocery StoreBrazilian RestaurantChinese RestaurantSupermarketBreakfast SpotClothing StoreResortCafeteriaSeafood Restaurant
32TetuanCuatro CaminosSpanish RestaurantGrocery StoreBrazilian RestaurantChinese RestaurantSupermarketBreakfast SpotClothing StoreResortCafeteriaSeafood Restaurant
33TetuanCastillejosSpanish RestaurantGrocery StoreBrazilian RestaurantChinese RestaurantSupermarketBreakfast SpotClothing StoreResortCafeteriaSeafood Restaurant
34TetuanAlmenaraSpanish RestaurantGrocery StoreBrazilian RestaurantChinese RestaurantSupermarketBreakfast SpotClothing StoreResortCafeteriaSeafood Restaurant
35TetuanValdeacederasSpanish RestaurantGrocery StoreBrazilian RestaurantChinese RestaurantSupermarketBreakfast SpotClothing StoreResortCafeteriaSeafood Restaurant
36TetuanBerrugueteSpanish RestaurantGrocery StoreBrazilian RestaurantChinese RestaurantSupermarketBreakfast SpotClothing StoreResortCafeteriaSeafood Restaurant
37ChamberiGaztambideSpanish RestaurantRestaurantBarBreweryItalian RestaurantJapanese RestaurantCaféPlazaMexican RestaurantTapas Restaurant
38ChamberiArapilesSpanish RestaurantRestaurantBarBreweryItalian RestaurantJapanese RestaurantCaféPlazaMexican RestaurantTapas Restaurant
39ChamberiTrafalgarSpanish RestaurantRestaurantBarBreweryItalian RestaurantJapanese RestaurantCaféPlazaMexican RestaurantTapas Restaurant
40ChamberiAlmagroSpanish RestaurantRestaurantBarBreweryItalian RestaurantJapanese RestaurantCaféPlazaMexican RestaurantTapas Restaurant
41ChamberiRios RosasSpanish RestaurantRestaurantBarBreweryItalian RestaurantJapanese RestaurantCaféPlazaMexican RestaurantTapas Restaurant
42ChamberiVallehermosoSpanish RestaurantRestaurantBarBreweryItalian RestaurantJapanese RestaurantCaféPlazaMexican RestaurantTapas Restaurant
43Fuencarral - El PardoEl PardoClothing StoreBurger JointTapas RestaurantFast Food RestaurantItalian RestaurantShopping MallSpanish RestaurantBig Box StoreFlea MarketBoutique
44Fuencarral - El PardoFuentelareinaClothing StoreBurger JointTapas RestaurantFast Food RestaurantItalian RestaurantShopping MallSpanish RestaurantBig Box StoreFlea MarketBoutique
45Fuencarral - El PardoPeñagrandeClothing StoreBurger JointTapas RestaurantFast Food RestaurantItalian RestaurantShopping MallSpanish RestaurantBig Box StoreFlea MarketBoutique
46Fuencarral - El PardoPilarClothing StoreBurger JointTapas RestaurantFast Food RestaurantItalian RestaurantShopping MallSpanish RestaurantBig Box StoreFlea MarketBoutique
47Fuencarral - El PardoLa PazClothing StoreBurger JointTapas RestaurantFast Food RestaurantItalian RestaurantShopping MallSpanish RestaurantBig Box StoreFlea MarketBoutique
48Fuencarral - El PardoValverdeClothing StoreBurger JointTapas RestaurantFast Food RestaurantItalian RestaurantShopping MallSpanish RestaurantBig Box StoreFlea MarketBoutique
49Fuencarral - El PardoMirasierraClothing StoreBurger JointTapas RestaurantFast Food RestaurantItalian RestaurantShopping MallSpanish RestaurantBig Box StoreFlea MarketBoutique
50Fuencarral - El PardoEl GolosoClothing StoreBurger JointTapas RestaurantFast Food RestaurantItalian RestaurantShopping MallSpanish RestaurantBig Box StoreFlea MarketBoutique
51Moncloa - AravacaCasa de CampoRestaurantTapas RestaurantSpanish RestaurantPizza PlaceItalian RestaurantPubBakeryBarCoffee ShopMediterranean Restaurant
52Moncloa - AravacaArgüellesRestaurantTapas RestaurantSpanish RestaurantPizza PlaceItalian RestaurantPubBakeryBarCoffee ShopMediterranean Restaurant
53Moncloa - AravacaCiudad UniversitariaRestaurantTapas RestaurantSpanish RestaurantPizza PlaceItalian RestaurantPubBakeryBarCoffee ShopMediterranean Restaurant
54Moncloa - AravacaValdezarzaRestaurantTapas RestaurantSpanish RestaurantPizza PlaceItalian RestaurantPubBakeryBarCoffee ShopMediterranean Restaurant
55Moncloa - AravacaValdemarínRestaurantTapas RestaurantSpanish RestaurantPizza PlaceItalian RestaurantPubBakeryBarCoffee ShopMediterranean Restaurant
56Moncloa - AravacaEl PlantíoRestaurantTapas RestaurantSpanish RestaurantPizza PlaceItalian RestaurantPubBakeryBarCoffee ShopMediterranean Restaurant
57Moncloa - AravacaAravacaRestaurantTapas RestaurantSpanish RestaurantPizza PlaceItalian RestaurantPubBakeryBarCoffee ShopMediterranean Restaurant
72UseraOrcasitasSpanish RestaurantSeafood RestaurantChinese RestaurantTheaterAsian RestaurantBubble Tea ShopNoodle HouseFast Food RestaurantPlazaDiner
73UseraOrcasurSpanish RestaurantSeafood RestaurantChinese RestaurantTheaterAsian RestaurantBubble Tea ShopNoodle HouseFast Food RestaurantPlazaDiner
74UseraSan FermínSpanish RestaurantSeafood RestaurantChinese RestaurantTheaterAsian RestaurantBubble Tea ShopNoodle HouseFast Food RestaurantPlazaDiner
75UseraAlmendralesSpanish RestaurantSeafood RestaurantChinese RestaurantTheaterAsian RestaurantBubble Tea ShopNoodle HouseFast Food RestaurantPlazaDiner
76UseraMoscardóSpanish RestaurantSeafood RestaurantChinese RestaurantTheaterAsian RestaurantBubble Tea ShopNoodle HouseFast Food RestaurantPlazaDiner
77UseraZofíoSpanish RestaurantSeafood RestaurantChinese RestaurantTheaterAsian RestaurantBubble Tea ShopNoodle HouseFast Food RestaurantPlazaDiner
78UseraPradolongoSpanish RestaurantSeafood RestaurantChinese RestaurantTheaterAsian RestaurantBubble Tea ShopNoodle HouseFast Food RestaurantPlazaDiner
79Puente de VallecasEntrevíasFast Food RestaurantGymGrocery StoreCaféHotelSupermarketTapas RestaurantBarBurger JointBreakfast Spot
80Puente de VallecasSan DiegoFast Food RestaurantGymGrocery StoreCaféHotelSupermarketTapas RestaurantBarBurger JointBreakfast Spot
81Puente de VallecasPalomeras BajasFast Food RestaurantGymGrocery StoreCaféHotelSupermarketTapas RestaurantBarBurger JointBreakfast Spot
82Puente de VallecasPalomeras SuresteFast Food RestaurantGymGrocery StoreCaféHotelSupermarketTapas RestaurantBarBurger JointBreakfast Spot
83Puente de VallecasPortazgoFast Food RestaurantGymGrocery StoreCaféHotelSupermarketTapas RestaurantBarBurger JointBreakfast Spot
84Puente de VallecasNumanciaFast Food RestaurantGymGrocery StoreCaféHotelSupermarketTapas RestaurantBarBurger JointBreakfast Spot
91Ciudad LinealVentasRestaurantSpanish RestaurantParkGrocery StoreArgentinian RestaurantGastropubTapas RestaurantPharmacyCaféBus Line
92Ciudad LinealPueblo NuevoRestaurantSpanish RestaurantParkGrocery StoreArgentinian RestaurantGastropubTapas RestaurantPharmacyCaféBus Line
93Ciudad LinealQuintanaRestaurantSpanish RestaurantParkGrocery StoreArgentinian RestaurantGastropubTapas RestaurantPharmacyCaféBus Line
94Ciudad LinealConcepciónRestaurantSpanish RestaurantParkGrocery StoreArgentinian RestaurantGastropubTapas RestaurantPharmacyCaféBus Line
95Ciudad LinealSan PascualRestaurantSpanish RestaurantParkGrocery StoreArgentinian RestaurantGastropubTapas RestaurantPharmacyCaféBus Line
96Ciudad LinealSan Juan BautistaRestaurantSpanish RestaurantParkGrocery StoreArgentinian RestaurantGastropubTapas RestaurantPharmacyCaféBus Line
97Ciudad LinealColinaRestaurantSpanish RestaurantParkGrocery StoreArgentinian RestaurantGastropubTapas RestaurantPharmacyCaféBus Line
98Ciudad LinealAtalayaRestaurantSpanish RestaurantParkGrocery StoreArgentinian RestaurantGastropubTapas RestaurantPharmacyCaféBus Line
99Ciudad LinealCostillaresRestaurantSpanish RestaurantParkGrocery StoreArgentinian RestaurantGastropubTapas RestaurantPharmacyCaféBus Line
100HortalezaPalomasBreakfast SpotSupermarketPizza PlaceSandwich PlacePubSpanish RestaurantBakeryPlazaChinese RestaurantRestaurant
101HortalezaPioveraBreakfast SpotSupermarketPizza PlaceSandwich PlacePubSpanish RestaurantBakeryPlazaChinese RestaurantRestaurant
102HortalezaCanillasBreakfast SpotSupermarketPizza PlaceSandwich PlacePubSpanish RestaurantBakeryPlazaChinese RestaurantRestaurant
103HortalezaPinar del ReyBreakfast SpotSupermarketPizza PlaceSandwich PlacePubSpanish RestaurantBakeryPlazaChinese RestaurantRestaurant
104HortalezaApostol SantiagoBreakfast SpotSupermarketPizza PlaceSandwich PlacePubSpanish RestaurantBakeryPlazaChinese RestaurantRestaurant
105HortalezaValdefuentesBreakfast SpotSupermarketPizza PlaceSandwich PlacePubSpanish RestaurantBakeryPlazaChinese RestaurantRestaurant
111Villa de VallecasCasco Histórico de VallecasBreakfast SpotParkPlatformGrocery StoreSpanish RestaurantFoodSoccer FieldSandwich PlaceEastern European RestaurantFast Food Restaurant
112Villa de VallecasSanta EugeniaBreakfast SpotParkPlatformGrocery StoreSpanish RestaurantFoodSoccer FieldSandwich PlaceEastern European RestaurantFast Food Restaurant
113Villa de VallecasEnsanche de VallecasBreakfast SpotParkPlatformGrocery StoreSpanish RestaurantFoodSoccer FieldSandwich PlaceEastern European RestaurantFast Food Restaurant
114VicalvaroCasco Histórico de VicálvaroPizza PlaceSpanish RestaurantBeer BarFast Food RestaurantGrocery StoreIce Cream ShopSandwich PlaceBreakfast SpotCaféFish Market
115VicalvaroValdebernardoPizza PlaceSpanish RestaurantBeer BarFast Food RestaurantGrocery StoreIce Cream ShopSandwich PlaceBreakfast SpotCaféFish Market
116VicalvaroValderrivasPizza PlaceSpanish RestaurantBeer BarFast Food RestaurantGrocery StoreIce Cream ShopSandwich PlaceBreakfast SpotCaféFish Market
117VicalvaroEl CañaveralPizza PlaceSpanish RestaurantBeer BarFast Food RestaurantGrocery StoreIce Cream ShopSandwich PlaceBreakfast SpotCaféFish Market
126BarajasAlameda de OsunaHotelRestaurantSpanish RestaurantCoffee ShopTapas RestaurantBarFast Food RestaurantBreweryMexican RestaurantCafé
127BarajasAeropuertoHotelRestaurantSpanish RestaurantCoffee ShopTapas RestaurantBarFast Food RestaurantBreweryMexican RestaurantCafé
128BarajasCasco Histórico de BarajasHotelRestaurantSpanish RestaurantCoffee ShopTapas RestaurantBarFast Food RestaurantBreweryMexican RestaurantCafé
129BarajasTimónHotelRestaurantSpanish RestaurantCoffee ShopTapas RestaurantBarFast Food RestaurantBreweryMexican RestaurantCafé
130BarajasCorralejosHotelRestaurantSpanish RestaurantCoffee ShopTapas RestaurantBarFast Food RestaurantBreweryMexican RestaurantCafé
\n", "
" ], "text/plain": [ " District Neighborhood \\\n", "0 Centro Palacio \n", "1 Centro Embajadores \n", "2 Centro Cortes \n", "3 Centro Justicia \n", "4 Centro Universidad \n", "5 Centro Sol \n", "6 Arganzuela Imperial \n", "7 Arganzuela Acacias \n", "8 Arganzuela Chopera \n", "9 Arganzuela Legazpi \n", "10 Arganzuela Delicias \n", "11 Arganzuela Palos de Moguer \n", "12 Arganzuela Atocha \n", "13 Retiro Pacífico \n", "14 Retiro Adelfas \n", "15 Retiro Estrella \n", "16 Retiro Ibiza \n", "17 Retiro Jerónimos \n", "18 Retiro Niño Jesús \n", "19 Salamanca Recoletos \n", "20 Salamanca Goya \n", "21 Salamanca Fuente del Berro \n", "22 Salamanca Guindalera \n", "23 Salamanca Lista \n", "24 Salamanca Castellana \n", "25 Chamartin El Viso \n", "26 Chamartin Prosperidad \n", "27 Chamartin Ciudad Jardín \n", "28 Chamartin Hispanoamérica \n", "29 Chamartin Nueva España \n", "30 Chamartin Castilla \n", "31 Tetuan Bellas Vistas \n", "32 Tetuan Cuatro Caminos \n", "33 Tetuan Castillejos \n", "34 Tetuan Almenara \n", "35 Tetuan Valdeacederas \n", "36 Tetuan Berruguete \n", "37 Chamberi Gaztambide \n", "38 Chamberi Arapiles \n", "39 Chamberi Trafalgar \n", "40 Chamberi Almagro \n", "41 Chamberi Rios Rosas \n", "42 Chamberi Vallehermoso \n", "43 Fuencarral - El Pardo El Pardo \n", "44 Fuencarral - El Pardo Fuentelareina \n", "45 Fuencarral - El Pardo Peñagrande \n", "46 Fuencarral - El Pardo Pilar \n", "47 Fuencarral - El Pardo La Paz \n", "48 Fuencarral - El Pardo Valverde \n", "49 Fuencarral - El Pardo Mirasierra \n", "50 Fuencarral - El Pardo El Goloso \n", "51 Moncloa - Aravaca Casa de Campo \n", "52 Moncloa - Aravaca Argüelles \n", "53 Moncloa - Aravaca Ciudad Universitaria \n", "54 Moncloa - Aravaca Valdezarza \n", "55 Moncloa - Aravaca Valdemarín \n", "56 Moncloa - Aravaca El Plantío \n", "57 Moncloa - Aravaca Aravaca \n", "72 Usera Orcasitas \n", "73 Usera Orcasur \n", "74 Usera San Fermín \n", "75 Usera Almendrales \n", "76 Usera Moscardó \n", "77 Usera Zofío \n", "78 Usera Pradolongo \n", "79 Puente de Vallecas Entrevías \n", "80 Puente de Vallecas San Diego \n", "81 Puente de Vallecas Palomeras Bajas \n", "82 Puente de Vallecas Palomeras Sureste \n", "83 Puente de Vallecas Portazgo \n", "84 Puente de Vallecas Numancia \n", "91 Ciudad Lineal Ventas \n", "92 Ciudad Lineal Pueblo Nuevo \n", "93 Ciudad Lineal Quintana \n", "94 Ciudad Lineal Concepción \n", "95 Ciudad Lineal San Pascual \n", "96 Ciudad Lineal San Juan Bautista \n", "97 Ciudad Lineal Colina \n", "98 Ciudad Lineal Atalaya \n", "99 Ciudad Lineal Costillares \n", "100 Hortaleza Palomas \n", "101 Hortaleza Piovera \n", "102 Hortaleza Canillas \n", "103 Hortaleza Pinar del Rey \n", "104 Hortaleza Apostol Santiago \n", "105 Hortaleza Valdefuentes \n", "111 Villa de Vallecas Casco Histórico de Vallecas \n", "112 Villa de Vallecas Santa Eugenia \n", "113 Villa de Vallecas Ensanche de Vallecas \n", "114 Vicalvaro Casco Histórico de Vicálvaro \n", "115 Vicalvaro Valdebernardo \n", "116 Vicalvaro Valderrivas \n", "117 Vicalvaro El Cañaveral \n", "126 Barajas Alameda de Osuna \n", "127 Barajas Aeropuerto \n", "128 Barajas Casco Histórico de Barajas \n", "129 Barajas Timón \n", "130 Barajas Corralejos \n", "\n", " 1st Most Common Venue 2nd Most Common Venue 3rd Most Common Venue \\\n", "0 Spanish Restaurant Tapas Restaurant Plaza \n", "1 Spanish Restaurant Tapas Restaurant Plaza \n", "2 Spanish Restaurant Tapas Restaurant Plaza \n", "3 Spanish Restaurant Tapas Restaurant Plaza \n", "4 Spanish Restaurant Tapas Restaurant Plaza \n", "5 Spanish Restaurant Tapas Restaurant Plaza \n", "6 Restaurant Spanish Restaurant Grocery Store \n", "7 Restaurant Spanish Restaurant Grocery Store \n", "8 Restaurant Spanish Restaurant Grocery Store \n", "9 Restaurant Spanish Restaurant Grocery Store \n", "10 Restaurant Spanish Restaurant Grocery Store \n", "11 Restaurant Spanish Restaurant Grocery Store \n", "12 Restaurant Spanish Restaurant Grocery Store \n", "13 Spanish Restaurant Museum Supermarket \n", "14 Spanish Restaurant Museum Supermarket \n", "15 Spanish Restaurant Museum Supermarket \n", "16 Spanish Restaurant Museum Supermarket \n", "17 Spanish Restaurant Museum Supermarket \n", "18 Spanish Restaurant Museum Supermarket \n", "19 Spanish Restaurant Restaurant Mediterranean Restaurant \n", "20 Spanish Restaurant Restaurant Mediterranean Restaurant \n", "21 Spanish Restaurant Restaurant Mediterranean Restaurant \n", "22 Spanish Restaurant Restaurant Mediterranean Restaurant \n", "23 Spanish Restaurant Restaurant Mediterranean Restaurant \n", "24 Spanish Restaurant Restaurant Mediterranean Restaurant \n", "25 Spanish Restaurant Restaurant Bakery \n", "26 Spanish Restaurant Restaurant Bakery \n", "27 Spanish Restaurant Restaurant Bakery \n", "28 Spanish Restaurant Restaurant Bakery \n", "29 Spanish Restaurant Restaurant Bakery \n", "30 Spanish Restaurant Restaurant Bakery \n", "31 Spanish Restaurant Grocery Store Brazilian Restaurant \n", "32 Spanish Restaurant Grocery Store Brazilian Restaurant \n", "33 Spanish Restaurant Grocery Store Brazilian Restaurant \n", "34 Spanish Restaurant Grocery Store Brazilian Restaurant \n", "35 Spanish Restaurant Grocery Store Brazilian Restaurant \n", "36 Spanish Restaurant Grocery Store Brazilian Restaurant \n", "37 Spanish Restaurant Restaurant Bar \n", "38 Spanish Restaurant Restaurant Bar \n", "39 Spanish Restaurant Restaurant Bar \n", "40 Spanish Restaurant Restaurant Bar \n", "41 Spanish Restaurant Restaurant Bar \n", "42 Spanish Restaurant Restaurant Bar \n", "43 Clothing Store Burger Joint Tapas Restaurant \n", "44 Clothing Store Burger Joint Tapas Restaurant \n", "45 Clothing Store Burger Joint Tapas Restaurant \n", "46 Clothing Store Burger Joint Tapas Restaurant \n", "47 Clothing Store Burger Joint Tapas Restaurant \n", "48 Clothing Store Burger Joint Tapas Restaurant \n", "49 Clothing Store Burger Joint Tapas Restaurant \n", "50 Clothing Store Burger Joint Tapas Restaurant \n", "51 Restaurant Tapas Restaurant Spanish Restaurant \n", "52 Restaurant Tapas Restaurant Spanish Restaurant \n", "53 Restaurant Tapas Restaurant Spanish Restaurant \n", "54 Restaurant Tapas Restaurant Spanish Restaurant \n", "55 Restaurant Tapas Restaurant Spanish Restaurant \n", "56 Restaurant Tapas Restaurant Spanish Restaurant \n", "57 Restaurant Tapas Restaurant Spanish Restaurant \n", "72 Spanish Restaurant Seafood Restaurant Chinese Restaurant \n", "73 Spanish Restaurant Seafood Restaurant Chinese Restaurant \n", "74 Spanish Restaurant Seafood Restaurant Chinese Restaurant \n", "75 Spanish Restaurant Seafood Restaurant Chinese Restaurant \n", "76 Spanish Restaurant Seafood Restaurant Chinese Restaurant \n", "77 Spanish Restaurant Seafood Restaurant Chinese Restaurant \n", "78 Spanish Restaurant Seafood Restaurant Chinese Restaurant \n", "79 Fast Food Restaurant Gym Grocery Store \n", "80 Fast Food Restaurant Gym Grocery Store \n", "81 Fast Food Restaurant Gym Grocery Store \n", "82 Fast Food Restaurant Gym Grocery Store \n", "83 Fast Food Restaurant Gym Grocery Store \n", "84 Fast Food Restaurant Gym Grocery Store \n", "91 Restaurant Spanish Restaurant Park \n", "92 Restaurant Spanish Restaurant Park \n", "93 Restaurant Spanish Restaurant Park \n", "94 Restaurant Spanish Restaurant Park \n", "95 Restaurant Spanish Restaurant Park \n", "96 Restaurant Spanish Restaurant Park \n", "97 Restaurant Spanish Restaurant Park \n", "98 Restaurant Spanish Restaurant Park \n", "99 Restaurant Spanish Restaurant Park \n", "100 Breakfast Spot Supermarket Pizza Place \n", "101 Breakfast Spot Supermarket Pizza Place \n", "102 Breakfast Spot Supermarket Pizza Place \n", "103 Breakfast Spot Supermarket Pizza Place \n", "104 Breakfast Spot Supermarket Pizza Place \n", "105 Breakfast Spot Supermarket Pizza Place \n", "111 Breakfast Spot Park Platform \n", "112 Breakfast Spot Park Platform \n", "113 Breakfast Spot Park Platform \n", "114 Pizza Place Spanish Restaurant Beer Bar \n", "115 Pizza Place Spanish Restaurant Beer Bar \n", "116 Pizza Place Spanish Restaurant Beer Bar \n", "117 Pizza Place Spanish Restaurant Beer Bar \n", "126 Hotel Restaurant Spanish Restaurant \n", "127 Hotel Restaurant Spanish Restaurant \n", "128 Hotel Restaurant Spanish Restaurant \n", "129 Hotel Restaurant Spanish Restaurant \n", "130 Hotel Restaurant Spanish Restaurant \n", "\n", " 4th Most Common Venue 5th Most Common Venue 6th Most Common Venue \\\n", "0 Hostel Ice Cream Shop Bookstore \n", "1 Hostel Ice Cream Shop Bookstore \n", "2 Hostel Ice Cream Shop Bookstore \n", "3 Hostel Ice Cream Shop Bookstore \n", "4 Hostel Ice Cream Shop Bookstore \n", "5 Hostel Ice Cream Shop Bookstore \n", "6 Bakery Tapas Restaurant Gym / Fitness Center \n", "7 Bakery Tapas Restaurant Gym / Fitness Center \n", "8 Bakery Tapas Restaurant Gym / Fitness Center \n", "9 Bakery Tapas Restaurant Gym / Fitness Center \n", "10 Bakery Tapas Restaurant Gym / Fitness Center \n", "11 Bakery Tapas Restaurant Gym / Fitness Center \n", "12 Bakery Tapas Restaurant Gym / Fitness Center \n", "13 Tapas Restaurant Bar Gym \n", "14 Tapas Restaurant Bar Gym \n", "15 Tapas Restaurant Bar Gym \n", "16 Tapas Restaurant Bar Gym \n", "17 Tapas Restaurant Bar Gym \n", "18 Tapas Restaurant Bar Gym \n", "19 Seafood Restaurant Burger Joint Clothing Store \n", "20 Seafood Restaurant Burger Joint Clothing Store \n", "21 Seafood Restaurant Burger Joint Clothing Store \n", "22 Seafood Restaurant Burger Joint Clothing Store \n", "23 Seafood Restaurant Burger Joint Clothing Store \n", "24 Seafood Restaurant Burger Joint Clothing Store \n", "25 Grocery Store Tapas Restaurant Café \n", "26 Grocery Store Tapas Restaurant Café \n", "27 Grocery Store Tapas Restaurant Café \n", "28 Grocery Store Tapas Restaurant Café \n", "29 Grocery Store Tapas Restaurant Café \n", "30 Grocery Store Tapas Restaurant Café \n", "31 Chinese Restaurant Supermarket Breakfast Spot \n", "32 Chinese Restaurant Supermarket Breakfast Spot \n", "33 Chinese Restaurant Supermarket Breakfast Spot \n", "34 Chinese Restaurant Supermarket Breakfast Spot \n", "35 Chinese Restaurant Supermarket Breakfast Spot \n", "36 Chinese Restaurant Supermarket Breakfast Spot \n", "37 Brewery Italian Restaurant Japanese Restaurant \n", "38 Brewery Italian Restaurant Japanese Restaurant \n", "39 Brewery Italian Restaurant Japanese Restaurant \n", "40 Brewery Italian Restaurant Japanese Restaurant \n", "41 Brewery Italian Restaurant Japanese Restaurant \n", "42 Brewery Italian Restaurant Japanese Restaurant \n", "43 Fast Food Restaurant Italian Restaurant Shopping Mall \n", "44 Fast Food Restaurant Italian Restaurant Shopping Mall \n", "45 Fast Food Restaurant Italian Restaurant Shopping Mall \n", "46 Fast Food Restaurant Italian Restaurant Shopping Mall \n", "47 Fast Food Restaurant Italian Restaurant Shopping Mall \n", "48 Fast Food Restaurant Italian Restaurant Shopping Mall \n", "49 Fast Food Restaurant Italian Restaurant Shopping Mall \n", "50 Fast Food Restaurant Italian Restaurant Shopping Mall \n", "51 Pizza Place Italian Restaurant Pub \n", "52 Pizza Place Italian Restaurant Pub \n", "53 Pizza Place Italian Restaurant Pub \n", "54 Pizza Place Italian Restaurant Pub \n", "55 Pizza Place Italian Restaurant Pub \n", "56 Pizza Place Italian Restaurant Pub \n", "57 Pizza Place Italian Restaurant Pub \n", "72 Theater Asian Restaurant Bubble Tea Shop \n", "73 Theater Asian Restaurant Bubble Tea Shop \n", "74 Theater Asian Restaurant Bubble Tea Shop \n", "75 Theater Asian Restaurant Bubble Tea Shop \n", "76 Theater Asian Restaurant Bubble Tea Shop \n", "77 Theater Asian Restaurant Bubble Tea Shop \n", "78 Theater Asian Restaurant Bubble Tea Shop \n", "79 Café Hotel Supermarket \n", "80 Café Hotel Supermarket \n", "81 Café Hotel Supermarket \n", "82 Café Hotel Supermarket \n", "83 Café Hotel Supermarket \n", "84 Café Hotel Supermarket \n", "91 Grocery Store Argentinian Restaurant Gastropub \n", "92 Grocery Store Argentinian Restaurant Gastropub \n", "93 Grocery Store Argentinian Restaurant Gastropub \n", "94 Grocery Store Argentinian Restaurant Gastropub \n", "95 Grocery Store Argentinian Restaurant Gastropub \n", "96 Grocery Store Argentinian Restaurant Gastropub \n", "97 Grocery Store Argentinian Restaurant Gastropub \n", "98 Grocery Store Argentinian Restaurant Gastropub \n", "99 Grocery Store Argentinian Restaurant Gastropub \n", "100 Sandwich Place Pub Spanish Restaurant \n", "101 Sandwich Place Pub Spanish Restaurant \n", "102 Sandwich Place Pub Spanish Restaurant \n", "103 Sandwich Place Pub Spanish Restaurant \n", "104 Sandwich Place Pub Spanish Restaurant \n", "105 Sandwich Place Pub Spanish Restaurant \n", "111 Grocery Store Spanish Restaurant Food \n", "112 Grocery Store Spanish Restaurant Food \n", "113 Grocery Store Spanish Restaurant Food \n", "114 Fast Food Restaurant Grocery Store Ice Cream Shop \n", "115 Fast Food Restaurant Grocery Store Ice Cream Shop \n", "116 Fast Food Restaurant Grocery Store Ice Cream Shop \n", "117 Fast Food Restaurant Grocery Store Ice Cream Shop \n", "126 Coffee Shop Tapas Restaurant Bar \n", "127 Coffee Shop Tapas Restaurant Bar \n", "128 Coffee Shop Tapas Restaurant Bar \n", "129 Coffee Shop Tapas Restaurant Bar \n", "130 Coffee Shop Tapas Restaurant Bar \n", "\n", " 7th Most Common Venue 8th Most Common Venue 9th Most Common Venue \\\n", "0 Hotel Pastry Shop Cocktail Bar \n", "1 Hotel Pastry Shop Cocktail Bar \n", "2 Hotel Pastry Shop Cocktail Bar \n", "3 Hotel Pastry Shop Cocktail Bar \n", "4 Hotel Pastry Shop Cocktail Bar \n", "5 Hotel Pastry Shop Cocktail Bar \n", "6 Beer Garden Market Falafel Restaurant \n", "7 Beer Garden Market Falafel Restaurant \n", "8 Beer Garden Market Falafel Restaurant \n", "9 Beer Garden Market Falafel Restaurant \n", "10 Beer Garden Market Falafel Restaurant \n", "11 Beer Garden Market Falafel Restaurant \n", "12 Beer Garden Market Falafel Restaurant \n", "13 Farmers Market Boutique Brewery \n", "14 Farmers Market Boutique Brewery \n", "15 Farmers Market Boutique Brewery \n", "16 Farmers Market Boutique Brewery \n", "17 Farmers Market Boutique Brewery \n", "18 Farmers Market Boutique Brewery \n", "19 Mexican Restaurant Tapas Restaurant Supermarket \n", "20 Mexican Restaurant Tapas Restaurant Supermarket \n", "21 Mexican Restaurant Tapas Restaurant Supermarket \n", "22 Mexican Restaurant Tapas Restaurant Supermarket \n", "23 Mexican Restaurant Tapas Restaurant Supermarket \n", "24 Mexican Restaurant Tapas Restaurant Supermarket \n", "25 Gastropub Park Coffee Shop \n", "26 Gastropub Park Coffee Shop \n", "27 Gastropub Park Coffee Shop \n", "28 Gastropub Park Coffee Shop \n", "29 Gastropub Park Coffee Shop \n", "30 Gastropub Park Coffee Shop \n", "31 Clothing Store Resort Cafeteria \n", "32 Clothing Store Resort Cafeteria \n", "33 Clothing Store Resort Cafeteria \n", "34 Clothing Store Resort Cafeteria \n", "35 Clothing Store Resort Cafeteria \n", "36 Clothing Store Resort Cafeteria \n", "37 Café Plaza Mexican Restaurant \n", "38 Café Plaza Mexican Restaurant \n", "39 Café Plaza Mexican Restaurant \n", "40 Café Plaza Mexican Restaurant \n", "41 Café Plaza Mexican Restaurant \n", "42 Café Plaza Mexican Restaurant \n", "43 Spanish Restaurant Big Box Store Flea Market \n", "44 Spanish Restaurant Big Box Store Flea Market \n", "45 Spanish Restaurant Big Box Store Flea Market \n", "46 Spanish Restaurant Big Box Store Flea Market \n", "47 Spanish Restaurant Big Box Store Flea Market \n", "48 Spanish Restaurant Big Box Store Flea Market \n", "49 Spanish Restaurant Big Box Store Flea Market \n", "50 Spanish Restaurant Big Box Store Flea Market \n", "51 Bakery Bar Coffee Shop \n", "52 Bakery Bar Coffee Shop \n", "53 Bakery Bar Coffee Shop \n", "54 Bakery Bar Coffee Shop \n", "55 Bakery Bar Coffee Shop \n", "56 Bakery Bar Coffee Shop \n", "57 Bakery Bar Coffee Shop \n", "72 Noodle House Fast Food Restaurant Plaza \n", "73 Noodle House Fast Food Restaurant Plaza \n", "74 Noodle House Fast Food Restaurant Plaza \n", "75 Noodle House Fast Food Restaurant Plaza \n", "76 Noodle House Fast Food Restaurant Plaza \n", "77 Noodle House Fast Food Restaurant Plaza \n", "78 Noodle House Fast Food Restaurant Plaza \n", "79 Tapas Restaurant Bar Burger Joint \n", "80 Tapas Restaurant Bar Burger Joint \n", "81 Tapas Restaurant Bar Burger Joint \n", "82 Tapas Restaurant Bar Burger Joint \n", "83 Tapas Restaurant Bar Burger Joint \n", "84 Tapas Restaurant Bar Burger Joint \n", "91 Tapas Restaurant Pharmacy Café \n", "92 Tapas Restaurant Pharmacy Café \n", "93 Tapas Restaurant Pharmacy Café \n", "94 Tapas Restaurant Pharmacy Café \n", "95 Tapas Restaurant Pharmacy Café \n", "96 Tapas Restaurant Pharmacy Café \n", "97 Tapas Restaurant Pharmacy Café \n", "98 Tapas Restaurant Pharmacy Café \n", "99 Tapas Restaurant Pharmacy Café \n", "100 Bakery Plaza Chinese Restaurant \n", "101 Bakery Plaza Chinese Restaurant \n", "102 Bakery Plaza Chinese Restaurant \n", "103 Bakery Plaza Chinese Restaurant \n", "104 Bakery Plaza Chinese Restaurant \n", "105 Bakery Plaza Chinese Restaurant \n", "111 Soccer Field Sandwich Place Eastern European Restaurant \n", "112 Soccer Field Sandwich Place Eastern European Restaurant \n", "113 Soccer Field Sandwich Place Eastern European Restaurant \n", "114 Sandwich Place Breakfast Spot Café \n", "115 Sandwich Place Breakfast Spot Café \n", "116 Sandwich Place Breakfast Spot Café \n", "117 Sandwich Place Breakfast Spot Café \n", "126 Fast Food Restaurant Brewery Mexican Restaurant \n", "127 Fast Food Restaurant Brewery Mexican Restaurant \n", "128 Fast Food Restaurant Brewery Mexican Restaurant \n", "129 Fast Food Restaurant Brewery Mexican Restaurant \n", "130 Fast Food Restaurant Brewery Mexican Restaurant \n", "\n", " 10th Most Common Venue \n", "0 Gym / Fitness Center \n", "1 Gym / Fitness Center \n", "2 Gym / Fitness Center \n", "3 Gym / Fitness Center \n", "4 Gym / Fitness Center \n", "5 Gym / Fitness Center \n", "6 Burger Joint \n", "7 Burger Joint \n", "8 Burger Joint \n", "9 Burger Joint \n", "10 Burger Joint \n", "11 Burger Joint \n", "12 Burger Joint \n", "13 Food & Drink Shop \n", "14 Food & Drink Shop \n", "15 Food & Drink Shop \n", "16 Food & Drink Shop \n", "17 Food & Drink Shop \n", "18 Food & Drink Shop \n", "19 Plaza \n", "20 Plaza \n", "21 Plaza \n", "22 Plaza \n", "23 Plaza \n", "24 Plaza \n", "25 Japanese Restaurant \n", "26 Japanese Restaurant \n", "27 Japanese Restaurant \n", "28 Japanese Restaurant \n", "29 Japanese Restaurant \n", "30 Japanese Restaurant \n", "31 Seafood Restaurant \n", "32 Seafood Restaurant \n", "33 Seafood Restaurant \n", "34 Seafood Restaurant \n", "35 Seafood Restaurant \n", "36 Seafood Restaurant \n", "37 Tapas Restaurant \n", "38 Tapas Restaurant \n", "39 Tapas Restaurant \n", "40 Tapas Restaurant \n", "41 Tapas Restaurant \n", "42 Tapas Restaurant \n", "43 Boutique \n", "44 Boutique \n", "45 Boutique \n", "46 Boutique \n", "47 Boutique \n", "48 Boutique \n", "49 Boutique \n", "50 Boutique \n", "51 Mediterranean Restaurant \n", "52 Mediterranean Restaurant \n", "53 Mediterranean Restaurant \n", "54 Mediterranean Restaurant \n", "55 Mediterranean Restaurant \n", "56 Mediterranean Restaurant \n", "57 Mediterranean Restaurant \n", "72 Diner \n", "73 Diner \n", "74 Diner \n", "75 Diner \n", "76 Diner \n", "77 Diner \n", "78 Diner \n", "79 Breakfast Spot \n", "80 Breakfast Spot \n", "81 Breakfast Spot \n", "82 Breakfast Spot \n", "83 Breakfast Spot \n", "84 Breakfast Spot \n", "91 Bus Line \n", "92 Bus Line \n", "93 Bus Line \n", "94 Bus Line \n", "95 Bus Line \n", "96 Bus Line \n", "97 Bus Line \n", "98 Bus Line \n", "99 Bus Line \n", "100 Restaurant \n", "101 Restaurant \n", "102 Restaurant \n", "103 Restaurant \n", "104 Restaurant \n", "105 Restaurant \n", "111 Fast Food Restaurant \n", "112 Fast Food Restaurant \n", "113 Fast Food Restaurant \n", "114 Fish Market \n", "115 Fish Market \n", "116 Fish Market \n", "117 Fish Market \n", "126 Café \n", "127 Café \n", "128 Café \n", "129 Café \n", "130 Café " ] }, "execution_count": 421, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_merged.loc[madrid_merged['Cluster Labels'] == 0, madrid_merged.columns[[0] + [1] + list(range(5, madrid_merged.shape[1]))]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cluster 2" ] }, { "cell_type": "code", "execution_count": 422, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", "
DistrictNeighborhood1st Most Common Venue2nd Most Common Venue3rd Most Common Venue4th Most Common Venue5th Most Common Venue6th Most Common Venue7th Most Common Venue8th Most Common Venue9th Most Common Venue10th Most Common Venue
65CarabanchelComillasPizza PlaceNightclubFast Food RestaurantBurger JointTapas RestaurantBakerySoccer FieldMetro StationPlazaDiner
66CarabanchelOpañelPizza PlaceNightclubFast Food RestaurantBurger JointTapas RestaurantBakerySoccer FieldMetro StationPlazaDiner
67CarabanchelSan IsidroPizza PlaceNightclubFast Food RestaurantBurger JointTapas RestaurantBakerySoccer FieldMetro StationPlazaDiner
68CarabanchelVista AlegrePizza PlaceNightclubFast Food RestaurantBurger JointTapas RestaurantBakerySoccer FieldMetro StationPlazaDiner
69CarabanchelPuerta BonitaPizza PlaceNightclubFast Food RestaurantBurger JointTapas RestaurantBakerySoccer FieldMetro StationPlazaDiner
70CarabanchelBuenavistaPizza PlaceNightclubFast Food RestaurantBurger JointTapas RestaurantBakerySoccer FieldMetro StationPlazaDiner
71CarabanchelAbrantesPizza PlaceNightclubFast Food RestaurantBurger JointTapas RestaurantBakerySoccer FieldMetro StationPlazaDiner
85MoratalazPavonesBarPizza PlaceIce Cream ShopFood TruckCaféBreweryNightclubBakerySoccer FieldPlaza
86MoratalazHorcajoBarPizza PlaceIce Cream ShopFood TruckCaféBreweryNightclubBakerySoccer FieldPlaza
87MoratalazMarroquinaBarPizza PlaceIce Cream ShopFood TruckCaféBreweryNightclubBakerySoccer FieldPlaza
88MoratalazMedia LeguaBarPizza PlaceIce Cream ShopFood TruckCaféBreweryNightclubBakerySoccer FieldPlaza
89MoratalazFontarrónBarPizza PlaceIce Cream ShopFood TruckCaféBreweryNightclubBakerySoccer FieldPlaza
90MoratalazVinaterosBarPizza PlaceIce Cream ShopFood TruckCaféBreweryNightclubBakerySoccer FieldPlaza
\n", "
" ], "text/plain": [ " District Neighborhood 1st Most Common Venue 2nd Most Common Venue \\\n", "65 Carabanchel Comillas Pizza Place Nightclub \n", "66 Carabanchel Opañel Pizza Place Nightclub \n", "67 Carabanchel San Isidro Pizza Place Nightclub \n", "68 Carabanchel Vista Alegre Pizza Place Nightclub \n", "69 Carabanchel Puerta Bonita Pizza Place Nightclub \n", "70 Carabanchel Buenavista Pizza Place Nightclub \n", "71 Carabanchel Abrantes Pizza Place Nightclub \n", "85 Moratalaz Pavones Bar Pizza Place \n", "86 Moratalaz Horcajo Bar Pizza Place \n", "87 Moratalaz Marroquina Bar Pizza Place \n", "88 Moratalaz Media Legua Bar Pizza Place \n", "89 Moratalaz Fontarrón Bar Pizza Place \n", "90 Moratalaz Vinateros Bar Pizza Place \n", "\n", " 3rd Most Common Venue 4th Most Common Venue 5th Most Common Venue \\\n", "65 Fast Food Restaurant Burger Joint Tapas Restaurant \n", "66 Fast Food Restaurant Burger Joint Tapas Restaurant \n", "67 Fast Food Restaurant Burger Joint Tapas Restaurant \n", "68 Fast Food Restaurant Burger Joint Tapas Restaurant \n", "69 Fast Food Restaurant Burger Joint Tapas Restaurant \n", "70 Fast Food Restaurant Burger Joint Tapas Restaurant \n", "71 Fast Food Restaurant Burger Joint Tapas Restaurant \n", "85 Ice Cream Shop Food Truck Café \n", "86 Ice Cream Shop Food Truck Café \n", "87 Ice Cream Shop Food Truck Café \n", "88 Ice Cream Shop Food Truck Café \n", "89 Ice Cream Shop Food Truck Café \n", "90 Ice Cream Shop Food Truck Café \n", "\n", " 6th Most Common Venue 7th Most Common Venue 8th Most Common Venue \\\n", "65 Bakery Soccer Field Metro Station \n", "66 Bakery Soccer Field Metro Station \n", "67 Bakery Soccer Field Metro Station \n", "68 Bakery Soccer Field Metro Station \n", "69 Bakery Soccer Field Metro Station \n", "70 Bakery Soccer Field Metro Station \n", "71 Bakery Soccer Field Metro Station \n", "85 Brewery Nightclub Bakery \n", "86 Brewery Nightclub Bakery \n", "87 Brewery Nightclub Bakery \n", "88 Brewery Nightclub Bakery \n", "89 Brewery Nightclub Bakery \n", "90 Brewery Nightclub Bakery \n", "\n", " 9th Most Common Venue 10th Most Common Venue \n", "65 Plaza Diner \n", "66 Plaza Diner \n", "67 Plaza Diner \n", "68 Plaza Diner \n", "69 Plaza Diner \n", "70 Plaza Diner \n", "71 Plaza Diner \n", "85 Soccer Field Plaza \n", "86 Soccer Field Plaza \n", "87 Soccer Field Plaza \n", "88 Soccer Field Plaza \n", "89 Soccer Field Plaza \n", "90 Soccer Field Plaza " ] }, "execution_count": 422, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_merged.loc[madrid_merged['Cluster Labels'] == 1, madrid_merged.columns[[0] + [1] + list(range(5, madrid_merged.shape[1]))]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cluster 3" ] }, { "cell_type": "code", "execution_count": 424, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DistrictNeighborhood1st Most Common Venue2nd Most Common Venue3rd Most Common Venue4th Most Common Venue5th Most Common Venue6th Most Common Venue7th Most Common Venue8th Most Common Venue9th Most Common Venue10th Most Common Venue
106VillaverdeVillaverde Alto, Casco Histórico de VillaverdePizza PlaceTrainPlazaDinerSpanish RestaurantGrocery StoreDog RunFarmers MarketFalafel RestaurantFabric Shop
107VillaverdeSan CristóbalPizza PlaceTrainPlazaDinerSpanish RestaurantGrocery StoreDog RunFarmers MarketFalafel RestaurantFabric Shop
108VillaverdeButarquePizza PlaceTrainPlazaDinerSpanish RestaurantGrocery StoreDog RunFarmers MarketFalafel RestaurantFabric Shop
109VillaverdeLos RosalesPizza PlaceTrainPlazaDinerSpanish RestaurantGrocery StoreDog RunFarmers MarketFalafel RestaurantFabric Shop
110VillaverdeLos ÁngelesPizza PlaceTrainPlazaDinerSpanish RestaurantGrocery StoreDog RunFarmers MarketFalafel RestaurantFabric Shop
\n", "
" ], "text/plain": [ " District Neighborhood \\\n", "106 Villaverde Villaverde Alto, Casco Histórico de Villaverde \n", "107 Villaverde San Cristóbal \n", "108 Villaverde Butarque \n", "109 Villaverde Los Rosales \n", "110 Villaverde Los Ángeles \n", "\n", " 1st Most Common Venue 2nd Most Common Venue 3rd Most Common Venue \\\n", "106 Pizza Place Train Plaza \n", "107 Pizza Place Train Plaza \n", "108 Pizza Place Train Plaza \n", "109 Pizza Place Train Plaza \n", "110 Pizza Place Train Plaza \n", "\n", " 4th Most Common Venue 5th Most Common Venue 6th Most Common Venue \\\n", "106 Diner Spanish Restaurant Grocery Store \n", "107 Diner Spanish Restaurant Grocery Store \n", "108 Diner Spanish Restaurant Grocery Store \n", "109 Diner Spanish Restaurant Grocery Store \n", "110 Diner Spanish Restaurant Grocery Store \n", "\n", " 7th Most Common Venue 8th Most Common Venue 9th Most Common Venue \\\n", "106 Dog Run Farmers Market Falafel Restaurant \n", "107 Dog Run Farmers Market Falafel Restaurant \n", "108 Dog Run Farmers Market Falafel Restaurant \n", "109 Dog Run Farmers Market Falafel Restaurant \n", "110 Dog Run Farmers Market Falafel Restaurant \n", "\n", " 10th Most Common Venue \n", "106 Fabric Shop \n", "107 Fabric Shop \n", "108 Fabric Shop \n", "109 Fabric Shop \n", "110 Fabric Shop " ] }, "execution_count": 424, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_merged.loc[madrid_merged['Cluster Labels'] == 2, madrid_merged.columns[[0] + [1] + list(range(5, madrid_merged.shape[1]))]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cluster 4" ] }, { "cell_type": "code", "execution_count": 425, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", "
DistrictNeighborhood1st Most Common Venue2nd Most Common Venue3rd Most Common Venue4th Most Common Venue5th Most Common Venue6th Most Common Venue7th Most Common Venue8th Most Common Venue9th Most Common Venue10th Most Common Venue
58LatinaCármenesPizza PlaceFast Food RestaurantParkGrocery StoreTrain StationArts & Crafts StoreAsian RestaurantFalafel RestaurantMetro StationBakery
59LatinaPuerta del ÁngelPizza PlaceFast Food RestaurantParkGrocery StoreTrain StationArts & Crafts StoreAsian RestaurantFalafel RestaurantMetro StationBakery
60LatinaLuceroPizza PlaceFast Food RestaurantParkGrocery StoreTrain StationArts & Crafts StoreAsian RestaurantFalafel RestaurantMetro StationBakery
61LatinaAluchePizza PlaceFast Food RestaurantParkGrocery StoreTrain StationArts & Crafts StoreAsian RestaurantFalafel RestaurantMetro StationBakery
62LatinaCampamentoPizza PlaceFast Food RestaurantParkGrocery StoreTrain StationArts & Crafts StoreAsian RestaurantFalafel RestaurantMetro StationBakery
63LatinaCuatro VientosPizza PlaceFast Food RestaurantParkGrocery StoreTrain StationArts & Crafts StoreAsian RestaurantFalafel RestaurantMetro StationBakery
64LatinaÁguilasPizza PlaceFast Food RestaurantParkGrocery StoreTrain StationArts & Crafts StoreAsian RestaurantFalafel RestaurantMetro StationBakery
118San Blas - CanillejasSimancasMetro StationAsian RestaurantShopping MallSupermarketSnack PlacePizza PlaceGas StationGrocery StoreGymFabric Shop
119San Blas - CanillejasHellínMetro StationAsian RestaurantShopping MallSupermarketSnack PlacePizza PlaceGas StationGrocery StoreGymFabric Shop
120San Blas - CanillejasAmpostaMetro StationAsian RestaurantShopping MallSupermarketSnack PlacePizza PlaceGas StationGrocery StoreGymFabric Shop
121San Blas - CanillejasArcosMetro StationAsian RestaurantShopping MallSupermarketSnack PlacePizza PlaceGas StationGrocery StoreGymFabric Shop
122San Blas - CanillejasRosasMetro StationAsian RestaurantShopping MallSupermarketSnack PlacePizza PlaceGas StationGrocery StoreGymFabric Shop
123San Blas - CanillejasRejasMetro StationAsian RestaurantShopping MallSupermarketSnack PlacePizza PlaceGas StationGrocery StoreGymFabric Shop
124San Blas - CanillejasCanillejasMetro StationAsian RestaurantShopping MallSupermarketSnack PlacePizza PlaceGas StationGrocery StoreGymFabric Shop
125San Blas - CanillejasSalvadorMetro StationAsian RestaurantShopping MallSupermarketSnack PlacePizza PlaceGas StationGrocery StoreGymFabric Shop
\n", "
" ], "text/plain": [ " District Neighborhood 1st Most Common Venue \\\n", "58 Latina Cármenes Pizza Place \n", "59 Latina Puerta del Ángel Pizza Place \n", "60 Latina Lucero Pizza Place \n", "61 Latina Aluche Pizza Place \n", "62 Latina Campamento Pizza Place \n", "63 Latina Cuatro Vientos Pizza Place \n", "64 Latina Águilas Pizza Place \n", "118 San Blas - Canillejas Simancas Metro Station \n", "119 San Blas - Canillejas Hellín Metro Station \n", "120 San Blas - Canillejas Amposta Metro Station \n", "121 San Blas - Canillejas Arcos Metro Station \n", "122 San Blas - Canillejas Rosas Metro Station \n", "123 San Blas - Canillejas Rejas Metro Station \n", "124 San Blas - Canillejas Canillejas Metro Station \n", "125 San Blas - Canillejas Salvador Metro Station \n", "\n", " 2nd Most Common Venue 3rd Most Common Venue 4th Most Common Venue \\\n", "58 Fast Food Restaurant Park Grocery Store \n", "59 Fast Food Restaurant Park Grocery Store \n", "60 Fast Food Restaurant Park Grocery Store \n", "61 Fast Food Restaurant Park Grocery Store \n", "62 Fast Food Restaurant Park Grocery Store \n", "63 Fast Food Restaurant Park Grocery Store \n", "64 Fast Food Restaurant Park Grocery Store \n", "118 Asian Restaurant Shopping Mall Supermarket \n", "119 Asian Restaurant Shopping Mall Supermarket \n", "120 Asian Restaurant Shopping Mall Supermarket \n", "121 Asian Restaurant Shopping Mall Supermarket \n", "122 Asian Restaurant Shopping Mall Supermarket \n", "123 Asian Restaurant Shopping Mall Supermarket \n", "124 Asian Restaurant Shopping Mall Supermarket \n", "125 Asian Restaurant Shopping Mall Supermarket \n", "\n", " 5th Most Common Venue 6th Most Common Venue 7th Most Common Venue \\\n", "58 Train Station Arts & Crafts Store Asian Restaurant \n", "59 Train Station Arts & Crafts Store Asian Restaurant \n", "60 Train Station Arts & Crafts Store Asian Restaurant \n", "61 Train Station Arts & Crafts Store Asian Restaurant \n", "62 Train Station Arts & Crafts Store Asian Restaurant \n", "63 Train Station Arts & Crafts Store Asian Restaurant \n", "64 Train Station Arts & Crafts Store Asian Restaurant \n", "118 Snack Place Pizza Place Gas Station \n", "119 Snack Place Pizza Place Gas Station \n", "120 Snack Place Pizza Place Gas Station \n", "121 Snack Place Pizza Place Gas Station \n", "122 Snack Place Pizza Place Gas Station \n", "123 Snack Place Pizza Place Gas Station \n", "124 Snack Place Pizza Place Gas Station \n", "125 Snack Place Pizza Place Gas Station \n", "\n", " 8th Most Common Venue 9th Most Common Venue 10th Most Common Venue \n", "58 Falafel Restaurant Metro Station Bakery \n", "59 Falafel Restaurant Metro Station Bakery \n", "60 Falafel Restaurant Metro Station Bakery \n", "61 Falafel Restaurant Metro Station Bakery \n", "62 Falafel Restaurant Metro Station Bakery \n", "63 Falafel Restaurant Metro Station Bakery \n", "64 Falafel Restaurant Metro Station Bakery \n", "118 Grocery Store Gym Fabric Shop \n", "119 Grocery Store Gym Fabric Shop \n", "120 Grocery Store Gym Fabric Shop \n", "121 Grocery Store Gym Fabric Shop \n", "122 Grocery Store Gym Fabric Shop \n", "123 Grocery Store Gym Fabric Shop \n", "124 Grocery Store Gym Fabric Shop \n", "125 Grocery Store Gym Fabric Shop " ] }, "execution_count": 425, "metadata": {}, "output_type": "execute_result" } ], "source": [ "madrid_merged.loc[madrid_merged['Cluster Labels'] == 3, madrid_merged.columns[[0] + [1] + list(range(5, madrid_merged.shape[1]))]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Results and discussion" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By segmenting into clusters we can distinguish the different districts of the city of Madrid and their respective venues according to Foursquare, by using Silhouette Score the best number of clusters were 3 and 4, in this exercise we used 4 clusters.\n", "\n", "When analyzing the different clusters, cluster number 1 has in fourth, sixth, seventh, ninth and tenth place categories cafeteria and derivatives, it is also cluster number 1 the longest one where more districts and neighborhoods are located.\n", "According to the above Madrid is a city where there are quite a few cafeteria type places partly also because of its strong tourist area especially in the central and most touristic part of the city, districts such as Chamartin, Barajas, Hortaleza, Puente de Vallecas have quite a few venues in cafeteria.\n", "\n", "A good option for a possible interested in starting a cafeteria type project would be in the mentioned districts due to its touristic nature, for example Moratalaz presents in the second cluster a fifth place in cafeteria venues." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**This is the cluster number 1 wich has the most cafeteria venue:**" ] }, { "cell_type": "code", "execution_count": 469, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \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", " \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", " \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", " \n", "
DistrictNeighborhoodDistrict_LatitudeDistrict_Longitude1st Most Common Venue2nd Most Common Venue3rd Most Common Venue4th Most Common Venue5th Most Common Venue6th Most Common Venue7th Most Common Venue8th Most Common Venue9th Most Common Venue10th Most Common Venue
0CentroPalacio40.415347-3.707371Spanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
1CentroEmbajadores40.415347-3.707371Spanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
2CentroCortes40.415347-3.707371Spanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
3CentroJusticia40.415347-3.707371Spanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
4CentroUniversidad40.415347-3.707371Spanish RestaurantTapas RestaurantPlazaHostelIce Cream ShopBookstoreHotelPastry ShopCocktail BarGym / Fitness Center
\n", "
" ], "text/plain": [ " District Neighborhood District_Latitude District_Longitude \\\n", "0 Centro Palacio 40.415347 -3.707371 \n", "1 Centro Embajadores 40.415347 -3.707371 \n", "2 Centro Cortes 40.415347 -3.707371 \n", "3 Centro Justicia 40.415347 -3.707371 \n", "4 Centro Universidad 40.415347 -3.707371 \n", "\n", " 1st Most Common Venue 2nd Most Common Venue 3rd Most Common Venue \\\n", "0 Spanish Restaurant Tapas Restaurant Plaza \n", "1 Spanish Restaurant Tapas Restaurant Plaza \n", "2 Spanish Restaurant Tapas Restaurant Plaza \n", "3 Spanish Restaurant Tapas Restaurant Plaza \n", "4 Spanish Restaurant Tapas Restaurant Plaza \n", "\n", " 4th Most Common Venue 5th Most Common Venue 6th Most Common Venue \\\n", "0 Hostel Ice Cream Shop Bookstore \n", "1 Hostel Ice Cream Shop Bookstore \n", "2 Hostel Ice Cream Shop Bookstore \n", "3 Hostel Ice Cream Shop Bookstore \n", "4 Hostel Ice Cream Shop Bookstore \n", "\n", " 7th Most Common Venue 8th Most Common Venue 9th Most Common Venue \\\n", "0 Hotel Pastry Shop Cocktail Bar \n", "1 Hotel Pastry Shop Cocktail Bar \n", "2 Hotel Pastry Shop Cocktail Bar \n", "3 Hotel Pastry Shop Cocktail Bar \n", "4 Hotel Pastry Shop Cocktail Bar \n", "\n", " 10th Most Common Venue \n", "0 Gym / Fitness Center \n", "1 Gym / Fitness Center \n", "2 Gym / Fitness Center \n", "3 Gym / Fitness Center \n", "4 Gym / Fitness Center " ] }, "execution_count": 469, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cafeteria_districts = madrid_merged.loc[madrid_merged['Cluster Labels'] == 0, madrid_merged.columns[[0, 1, 2, 3] + list(range(5, madrid_merged.shape[1]))]]\n", "cafeteria_districts.head()" ] }, { "cell_type": "code", "execution_count": 470, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 470, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cafe_locations = folium.Map(location=[latitude, longitude], zoom_start=10)\n", "tooltip = \"Click me!\"\n", "\n", "\n", "for lat, lng, location, neighborhood in zip(cafeteria_districts['District_Latitude'], cafeteria_districts['District_Longitude'],\n", " cafeteria_districts['District'], cafeteria_districts['Neighborhood']):\n", " label = '{}, {}'.format(neighborhood, location)\n", " folium.Marker([lat, lng], popup='{} has geographical coordinates ({:.4f}, {:.4f})'.format(label, lat, lng),\n", " icon=folium.Icon(color='lightred')).add_to(cafe_locations)\n", " \n", " label = folium.Popup(label, parse_html=True)\n", " folium.CircleMarker(\n", " [lat, lng],\n", " radius=5,\n", " popup=label,\n", " color='yellow',\n", " fill=True,\n", " fill_color='#3186cc',\n", " fill_opacity=0.7,\n", " parse_html=False).add_to(cafe_locations) \n", "\n", "cafe_locations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conclusion" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This exercise shows on the map where most coffee is consumed in the most touristic area of Madrid, but at the same time there are areas where there are many confirmed cases of COVID, for example Puente de Vallecas with more than 30000 confirmed cases is a good district due to the venues in cafeteria but is well above the average of infections, Moratalaz can be interesting as it does not have as many infections as other districts and Barajas also has the lowest number of infections and has a fourth place in venus of cafeteria.\n", "\n", "\n", "Villa de Vallecas and Hortaleza have in first place the Breakfast Spot venue which can be a good idea for a stakeholder as it can be related to cafeteria but at the same time they are districts with high confirmed cases.\n", "Therefore cluster number 1 is indicated for a new coffee shop or cafeteria due to its touristic nature and the amount of venues related to groceries, restaurants, breakfast, etc, that this cluster has but without neglecting the COVID issue." ] } ], "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.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }