From 6867c226ed2305d3a043be4fd3e7c490794bc0bf Mon Sep 17 00:00:00 2001 From: cesarcamp Date: Mon, 23 Mar 2020 22:42:47 -0600 Subject: [PATCH 1/2] Archivo about-me.md modificado --- module-1/lab-resolving-git-conflicts/your-code/about-me.md | 1 + 1 file changed, 1 insertion(+) diff --git a/module-1/lab-resolving-git-conflicts/your-code/about-me.md b/module-1/lab-resolving-git-conflicts/your-code/about-me.md index 30a999d..d295a93 100755 --- a/module-1/lab-resolving-git-conflicts/your-code/about-me.md +++ b/module-1/lab-resolving-git-conflicts/your-code/about-me.md @@ -5,3 +5,4 @@ Ut porttitor iaculis tellus bibendum euismod. Morbi porta, ante nec tempus porta Suspendisse ut malesuada ex. Nulla ultricies nisl et nisi rhoncus sollicitudin. Vestibulum maximus iaculis ligula, nec commodo nunc ullamcorper nec. Duis quis condimentum sapien. Cras vestibulum interdum felis eu auctor. Quisque semper, magna at dapibus faucibus, felis risus semper ligula, id aliquam lectus ligula vel nisi. In hac habitasse platea dictumst. Donec arcu sapien, suscipit ac dictum et, imperdiet id tortor. Maecenas ornare sodales interdum. Mauris dictum felis eu eros vestibulum cursus. Phasellus accumsan, turpis ut malesuada sollicitudin, augue leo venenatis ante, vel convallis tellus diam sit amet lacus. Aenean eu mauris eros. Praesent ante lacus, gravida sit amet tellus nec, laoreet ultrices lacus. Integer commodo semper vestibulum. Fusce felis massa, consectetur facilisis rutrum nec, pulvinar et nisi. Morbi fermentum ultricies tortor, vehicula ultrices eros elementum a. Duis ornare aliquam facilisis. Proin aliquam tincidunt odio vitae dignissim. Sed malesuada lacinia massa, nec blandit urna auctor elementum. Duis auctor non tortor in consequat. Mauris id vestibulum risus. In eget erat sed lacus efficitur viverra sed eu est. Aliquam interdum consequat molestie. Aliquam metus nisi, blandit non semper ut, blandit vel leo. Cras dictum turpis erat, sed iaculis ligula facilisis dapibus. Aliquam posuere dignissim fermentum. Praesent at neque sit amet lectus ornare iaculis. Curabitur id urna quis lorem varius ultrices eu sit amet sapien. Curabitur maximus volutpat suscipit. Proin imperdiet elementum lacus a eleifend. Sed tempor lacus posuere diam vehicula iaculis. +Hola, soy Cesar! Me gusta la fotografia, la tecnologia, los numeros y un buen mezcal From 76e382f8b0a625ba186ba99e09fb582c0767b595 Mon Sep 17 00:00:00 2001 From: cesarcamp Date: Sun, 19 Apr 2020 18:34:48 -0500 Subject: [PATCH 2/2] bi-project --- .../python-bi-project/BOOTCAMP/Bootcamp.ipynb | 3082 +++++++++++++++++ module-2/python-bi-project/BOOTCAMP/readme.md | 54 + 2 files changed, 3136 insertions(+) create mode 100644 module-2/python-bi-project/BOOTCAMP/Bootcamp.ipynb create mode 100644 module-2/python-bi-project/BOOTCAMP/readme.md diff --git a/module-2/python-bi-project/BOOTCAMP/Bootcamp.ipynb b/module-2/python-bi-project/BOOTCAMP/Bootcamp.ipynb new file mode 100644 index 0000000..81a8331 --- /dev/null +++ b/module-2/python-bi-project/BOOTCAMP/Bootcamp.ipynb @@ -0,0 +1,3082 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# LIBRARIES" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pymongo\n", + "from pymongo import MongoClient\n", + "import pandas as pd\n", + "from pandas.io.json import json_normalize\n", + "import folium\n", + "from folium import plugins\n", + "from folium.plugins import MarkerCluster\n", + "import warnings\n", + "import requests\n", + "from bs4 import BeautifulSoup as bs\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "client=MongoClient()\n", + "db=client.Companies\n", + "colec=db.companies" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# MONGO QUERIES " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "a=list(colec.find({\n", + " '$and': [\n", + " {'$or':[{'offices.country_code': 'MEX'},\\\n", + " {'offices.country_code': 'USA'},\\\n", + " {'offices.country_code': 'CAN'}]},\\\n", + " {'founded_year':{'$lte':2012}},\\\n", + " {'number_of_employees':{'$gte':20}},\\\n", + " {'deadpooled_year': None}]},\\\n", + " {'_id':0,'name':1, 'category_code':1, 'number_of_employees':1, 'founded_year':1,'offices.city':1,'offices.latitude':1, 'offices.longitude':1, 'offices.country_code':1}))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# DATA CLEANING / TRANSFORMATION" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "df=pd.DataFrame(a)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 1988 entries, 0 to 1987\n", + "Data columns (total 5 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 name 1988 non-null object\n", + " 1 category_code 1972 non-null object\n", + " 2 number_of_employees 1988 non-null int64 \n", + " 3 founded_year 1988 non-null int64 \n", + " 4 offices 1988 non-null object\n", + "dtypes: int64(2), object(3)\n", + "memory usage: 77.8+ KB\n" + ] + } + ], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'city': 'Menlo Park',\n", + " 'country_code': 'USA',\n", + " 'latitude': 37.41605,\n", + " 'longitude': -122.151801},\n", + " {'city': 'Dublin',\n", + " 'country_code': 'IRL',\n", + " 'latitude': 53.344104,\n", + " 'longitude': -6.267494},\n", + " {'city': 'New York',\n", + " 'country_code': 'USA',\n", + " 'latitude': 40.7557162,\n", + " 'longitude': -73.9792469}]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.iloc[1]['offices'] " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "#create a column for every office that a company might have\n", + "\n", + "new_df = pd.DataFrame(index=[], columns=df.columns)\n", + "\n", + "for _, i in df.iterrows():\n", + " \n", + " flattened_d = [dict(i.to_dict(), offices=c) for c in i.offices]\n", + " \n", + " new_df = new_df.append(flattened_d )" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "scrolled": true + }, + "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", + "
indexnamecategory_codenumber_of_employeesfounded_yearoffices
00Diggnews602004{'city': 'San Francisco', 'country_code': 'USA...
10Facebooksocial52992004{'city': 'Menlo Park', 'country_code': 'USA', ...
21Facebooksocial52992004{'city': 'Dublin', 'country_code': 'IRL', 'lat...
32Facebooksocial52992004{'city': 'New York', 'country_code': 'USA', 'l...
40Twittersocial13002006{'city': 'San Francisco', 'country_code': 'USA...
.....................
34770Atlantic BTweb301998{'city': 'Raleigh', 'country_code': 'USA', 'la...
34780Treehouseeducation552011{'city': 'Orlando', 'country_code': 'USA', 'la...
34791Treehouseeducation552011{'city': 'Portland', 'country_code': 'USA', 'l...
34800NextLabsenterprise1002004{'city': 'San Mateo', 'country_code': 'USA', '...
34810QSGIsoftware1641967{'city': 'Palm Beach', 'country_code': 'USA', ...
\n", + "

3482 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " index name category_code number_of_employees founded_year \\\n", + "0 0 Digg news 60 2004 \n", + "1 0 Facebook social 5299 2004 \n", + "2 1 Facebook social 5299 2004 \n", + "3 2 Facebook social 5299 2004 \n", + "4 0 Twitter social 1300 2006 \n", + "... ... ... ... ... ... \n", + "3477 0 Atlantic BT web 30 1998 \n", + "3478 0 Treehouse education 55 2011 \n", + "3479 1 Treehouse education 55 2011 \n", + "3480 0 NextLabs enterprise 100 2004 \n", + "3481 0 QSGI software 164 1967 \n", + "\n", + " offices \n", + "0 {'city': 'San Francisco', 'country_code': 'USA... \n", + "1 {'city': 'Menlo Park', 'country_code': 'USA', ... \n", + "2 {'city': 'Dublin', 'country_code': 'IRL', 'lat... \n", + "3 {'city': 'New York', 'country_code': 'USA', 'l... \n", + "4 {'city': 'San Francisco', 'country_code': 'USA... \n", + "... ... \n", + "3477 {'city': 'Raleigh', 'country_code': 'USA', 'la... \n", + "3478 {'city': 'Orlando', 'country_code': 'USA', 'la... \n", + "3479 {'city': 'Portland', 'country_code': 'USA', 'l... \n", + "3480 {'city': 'San Mateo', 'country_code': 'USA', '... \n", + "3481 {'city': 'Palm Beach', 'country_code': 'USA', ... \n", + "\n", + "[3482 rows x 6 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_df.reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\danie\\anaconda3\\lib\\site-packages\\ipykernel_launcher.py:2: FutureWarning: pandas.io.json.json_normalize is deprecated, use pandas.json_normalize instead\n", + " \n" + ] + } + ], + "source": [ + "#flatten offices column\n", + "new_df1=json_normalize(new_df['offices'])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "new_df=new_df.reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "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", + "
indexnamecategory_codenumber_of_employeesfounded_yearoffices
00Diggnews602004{'city': 'San Francisco', 'country_code': 'USA...
10Facebooksocial52992004{'city': 'Menlo Park', 'country_code': 'USA', ...
21Facebooksocial52992004{'city': 'Dublin', 'country_code': 'IRL', 'lat...
32Facebooksocial52992004{'city': 'New York', 'country_code': 'USA', 'l...
40Twittersocial13002006{'city': 'San Francisco', 'country_code': 'USA...
\n", + "
" + ], + "text/plain": [ + " index name category_code number_of_employees founded_year \\\n", + "0 0 Digg news 60 2004 \n", + "1 0 Facebook social 5299 2004 \n", + "2 1 Facebook social 5299 2004 \n", + "3 2 Facebook social 5299 2004 \n", + "4 0 Twitter social 1300 2006 \n", + "\n", + " offices \n", + "0 {'city': 'San Francisco', 'country_code': 'USA... \n", + "1 {'city': 'Menlo Park', 'country_code': 'USA', ... \n", + "2 {'city': 'Dublin', 'country_code': 'IRL', 'lat... \n", + "3 {'city': 'New York', 'country_code': 'USA', 'l... \n", + "4 {'city': 'San Francisco', 'country_code': 'USA... " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_df.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "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", + "
citycountry_codelatitudelongitude
0San FranciscoUSA37.764726-122.394523
1Menlo ParkUSA37.416050-122.151801
2DublinIRL53.344104-6.267494
3New YorkUSA40.755716-73.979247
4San FranciscoUSA37.776805-122.416924
\n", + "
" + ], + "text/plain": [ + " city country_code latitude longitude\n", + "0 San Francisco USA 37.764726 -122.394523\n", + "1 Menlo Park USA 37.416050 -122.151801\n", + "2 Dublin IRL 53.344104 -6.267494\n", + "3 New York USA 40.755716 -73.979247\n", + "4 San Francisco USA 37.776805 -122.416924" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_df1.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "mergedDf = pd.concat([new_df, new_df1], axis=1, sort=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "bi=mergedDf.drop(columns='offices')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "bi=bi.drop(columns='index')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "scrolled": true + }, + "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", + "
namecategory_codenumber_of_employeesfounded_yearcitycountry_codelatitudelongitude
0Diggnews602004San FranciscoUSA37.764726-122.394523
1Facebooksocial52992004Menlo ParkUSA37.416050-122.151801
2Facebooksocial52992004DublinIRL53.344104-6.267494
3Facebooksocial52992004New YorkUSA40.755716-73.979247
4Twittersocial13002006San FranciscoUSA37.776805-122.416924
...........................
3475VSE Corpother19201959AlexandriaUSA38.797792-77.075720
3476RF Micro Devicessemiconductor40951991GreensboroUSA36.076288-79.965343
3477Atlantic BTweb301998RaleighUSA35.896906-78.680678
3480NextLabsenterprise1002004San MateoUSA37.553121-122.301534
3481QSGIsoftware1641967Palm BeachUSA26.705331-80.041395
\n", + "

2153 rows × 8 columns

\n", + "
" + ], + "text/plain": [ + " name category_code number_of_employees founded_year \\\n", + "0 Digg news 60 2004 \n", + "1 Facebook social 5299 2004 \n", + "2 Facebook social 5299 2004 \n", + "3 Facebook social 5299 2004 \n", + "4 Twitter social 1300 2006 \n", + "... ... ... ... ... \n", + "3475 VSE Corp other 1920 1959 \n", + "3476 RF Micro Devices semiconductor 4095 1991 \n", + "3477 Atlantic BT web 30 1998 \n", + "3480 NextLabs enterprise 100 2004 \n", + "3481 QSGI software 164 1967 \n", + "\n", + " city country_code latitude longitude \n", + "0 San Francisco USA 37.764726 -122.394523 \n", + "1 Menlo Park USA 37.416050 -122.151801 \n", + "2 Dublin IRL 53.344104 -6.267494 \n", + "3 New York USA 40.755716 -73.979247 \n", + "4 San Francisco USA 37.776805 -122.416924 \n", + "... ... ... ... ... \n", + "3475 Alexandria USA 38.797792 -77.075720 \n", + "3476 Greensboro USA 36.076288 -79.965343 \n", + "3477 Raleigh USA 35.896906 -78.680678 \n", + "3480 San Mateo USA 37.553121 -122.301534 \n", + "3481 Palm Beach USA 26.705331 -80.041395 \n", + "\n", + "[2153 rows x 8 columns]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bi.dropna()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "bi=bi.loc[(bi['country_code'] == 'USA') | (bi['country_code'] == 'MEX') | (bi['country_code'] == 'CAN')]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Int64Index: 2577 entries, 0 to 3481\n", + "Data columns (total 8 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 name 2577 non-null object \n", + " 1 category_code 2556 non-null object \n", + " 2 number_of_employees 2577 non-null object \n", + " 3 founded_year 2577 non-null object \n", + " 4 city 2573 non-null object \n", + " 5 country_code 2577 non-null object \n", + " 6 latitude 1860 non-null float64\n", + " 7 longitude 1860 non-null float64\n", + "dtypes: float64(2), object(6)\n", + "memory usage: 181.2+ KB\n" + ] + } + ], + "source": [ + "bi.info(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "bi=bi.dropna(axis=0, subset=['latitude'])" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "USA 1762\n", + "CAN 91\n", + "MEX 7\n", + "Name: country_code, dtype: int64" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bi['country_code'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "bi=bi[bi['country_code'] != 'MEX']" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['USA', 'CAN'], dtype=object)" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bi['country_code'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "bi.to_json('bi_project.json') " + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#create new collection\n", + "db.bootcamp_bi.insert_many(bi.to_dict('records'))" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'principal_2dsphere'" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#create 2d index\n", + "db.bootcamp_bi.create_index([('principal', '2dsphere')])" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "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", + "
namecategory_codenumber_of_employeesfounded_yearcitycountry_codelatitudelongitude
0Diggnews602004San FranciscoUSA37.764726-122.394523
1Facebooksocial52992004Menlo ParkUSA37.416050-122.151801
3Facebooksocial52992004New YorkUSA40.755716-73.979247
4Twittersocial13002006San FranciscoUSA37.776805-122.416924
5Scribdnews502007San FranciscoUSA37.789634-122.404052
\n", + "
" + ], + "text/plain": [ + " name category_code number_of_employees founded_year city \\\n", + "0 Digg news 60 2004 San Francisco \n", + "1 Facebook social 5299 2004 Menlo Park \n", + "3 Facebook social 5299 2004 New York \n", + "4 Twitter social 1300 2006 San Francisco \n", + "5 Scribd news 50 2007 San Francisco \n", + "\n", + " country_code latitude longitude \n", + "0 USA 37.764726 -122.394523 \n", + "1 USA 37.416050 -122.151801 \n", + "3 USA 40.755716 -73.979247 \n", + "4 USA 37.776805 -122.416924 \n", + "5 USA 37.789634 -122.404052 " + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bi.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# GEO QUERIES" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "map_= folium.Map(location=[41.500000, -100.000000],tiles='CartoDB positron', zoom_start=4)\n", + "\n", + "mc = MarkerCluster()\n", + "\n", + "for row in bi.itertuples():\n", + " mc.add_child(folium.Marker(location=[row.latitude, row.longitude], popup=row.name))\n", + " \n", + "\n", + "map_.add_child(mc)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# WEB SCRAPING FOR REAL STATE MARKET RATES" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "url='https://www.numbeo.com/property-investment/region_rankings.jsp?title=2020®ion=021'\n", + "\n", + "res=requests.get(url)\n", + "data=res.text\n", + "soup=bs(data, 'html.parser')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "table=soup.find_all('table', {'class':'stripe'})" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "table = table[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [], + "source": [ + "rows=table.find_all('tr')\n", + "\n", + "rows=[r.text.strip().split('\\n') for r in rows]\n", + "\n", + "final=[]\n", + "for e in rows:\n", + " tmp=[]\n", + " for st in e:\n", + " if st!='':\n", + " tmp.append(st)\n", + " final.append(tmp)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "city_ranking=pd.DataFrame(final)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "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", + "
012345678
0RankCityPrice To Income RatioGross Rental Yield City CentreGross Rental Yield Outside of CentrePrice To Rent Ratio City CentrePrice To Rent Ratio Outside Of City CentreMortgage As A Percentage Of IncomeAffordability Index
1Vancouver, Canada14.343.613.7027.7226.99102.300.98None
2Toronto, Canada13.914.154.1824.0823.9195.311.05None
3Coquitlam, Canada11.204.744.4821.1022.3279.951.25None
4New York, NY, United States10.764.915.7420.3817.4379.381.26None
\n", + "
" + ], + "text/plain": [ + " 0 1 2 \\\n", + "0 Rank City Price To Income Ratio \n", + "1 Vancouver, Canada 14.34 3.61 \n", + "2 Toronto, Canada 13.91 4.15 \n", + "3 Coquitlam, Canada 11.20 4.74 \n", + "4 New York, NY, United States 10.76 4.91 \n", + "\n", + " 3 4 \\\n", + "0 Gross Rental Yield City Centre Gross Rental Yield Outside of Centre \n", + "1 3.70 27.72 \n", + "2 4.18 24.08 \n", + "3 4.48 21.10 \n", + "4 5.74 20.38 \n", + "\n", + " 5 \\\n", + "0 Price To Rent Ratio City Centre \n", + "1 26.99 \n", + "2 23.91 \n", + "3 22.32 \n", + "4 17.43 \n", + "\n", + " 6 \\\n", + "0 Price To Rent Ratio Outside Of City Centre \n", + "1 102.30 \n", + "2 95.31 \n", + "3 79.95 \n", + "4 79.38 \n", + "\n", + " 7 8 \n", + "0 Mortgage As A Percentage Of Income Affordability Index \n", + "1 0.98 None \n", + "2 1.05 None \n", + "3 1.25 None \n", + "4 1.26 None " + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "city_ranking.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "city_ranking=city_ranking.rename(columns={0: \"City\", 1: \"Price To Income Ratio\",2 : 'Gross Rental Yield City Centre',3 : 'Gross Rental Yield Outside of Centre', 4: 'Price To Rent Ratio City Centre', 5: 'Price To Rent Ratio Outside Of City Centre', 6: 'Mortgage As A Percentage Of Income', 7: 'Affordability Index'})" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "city_ranking.drop([0],inplace =True)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "city_ranking.drop([8], axis = 1, inplace = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "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", + "
CityPrice To Income RatioGross Rental Yield City CentreGross Rental Yield Outside of CentrePrice To Rent Ratio City CentrePrice To Rent Ratio Outside Of City CentreMortgage As A Percentage Of IncomeAffordability Index
1Vancouver, Canada14.343.613.7027.7226.99102.300.98
2Toronto, Canada13.914.154.1824.0823.9195.311.05
3Coquitlam, Canada11.204.744.4821.1022.3279.951.25
4New York, NY, United States10.764.915.7420.3817.4379.381.26
5Brooklyn, NY, United States10.335.016.7619.9714.7877.101.30
6Burnaby, Canada9.594.345.3423.0618.7268.121.47
7Honolulu, HI, United States9.325.126.1819.5316.1870.031.43
8Brampton, Canada8.785.596.0917.8816.4262.391.60
9Mississauga, Canada8.435.775.6517.3417.6959.491.68
10Sunnyvale, CA, United States8.394.534.6222.0921.6263.291.58
11Santa Barbara, CA, United States8.385.255.6119.0317.8263.331.58
12Boston, MA, United States7.815.288.4818.9411.7957.871.73
13San Francisco, CA, United States7.785.876.2217.0516.0757.471.74
14Victoria, Canada7.655.156.8019.4314.7154.151.85
15Berkeley, CA, United States7.597.126.7514.0414.8157.751.73
16Fremont, CA, United States7.465.615.6217.8217.7955.491.80
17Cambridge, MA, United States7.465.595.4417.8918.3755.561.80
18Boulder, CO, United States7.374.766.3421.0015.7756.101.78
19Santa Cruz, CA, United States7.328.186.1812.2316.1955.331.81
20Los Angeles, CA, United States7.226.207.5516.1413.2453.081.88
21Montreal, Canada6.984.845.1420.6719.4448.452.06
22Arlington, VA, United States6.627.788.5112.8611.7549.892.00
23San Jose, CA, United States6.596.086.5616.4515.2448.752.05
24Long Beach, CA, United States6.556.436.9615.5414.3749.042.04
25New Orleans, LA, United States6.416.337.5715.8013.2048.422.07
26Oakland, CA, United States6.397.078.3414.1511.9947.352.11
27Bellingham, WA, United States5.856.187.1016.1714.0944.022.27
28Kelowna, Canada5.716.867.2014.5813.8841.122.43
29Seattle, WA, United States5.626.147.4016.2813.5241.362.42
30Jersey City, NJ, United States5.566.8110.8014.699.2641.592.40
31Charleston, SC, United States5.537.3110.1913.679.8141.602.40
32San Diego, CA, United States5.227.398.7013.5311.5038.282.61
33Irvine, CA, United States5.117.727.9912.9512.5237.702.65
34Santa Rosa, CA, United States5.018.948.3711.1911.9437.382.68
35Riverside, CA, United States4.839.2810.1210.779.8836.162.77
36Miami, FL, United States4.799.4511.5210.588.6836.482.74
37Winnipeg, Canada4.746.127.2916.3413.7132.853.04
38Sarasota, FL, United States4.748.9315.2511.206.5635.112.85
39Boise, ID, United States4.738.2510.0012.1210.0035.212.84
40Calgary, Canada4.725.066.4019.7415.6132.813.05
41Everett, WA, United States4.648.729.3011.4710.7535.172.84
42Ottawa, Canada4.646.057.8616.5212.7332.673.06
43Eugene, OR, United States4.528.198.7312.2211.4534.052.94
44Washington, DC, United States4.428.0111.2312.498.9032.333.09
45Bellevue, WA, United States4.396.747.4714.8413.4032.953.04
46Portland, ME, United States4.348.099.6512.3510.3632.613.07
47Portland, OR, United States4.338.609.3611.6310.6831.973.13
48Denver, CO, United States4.217.949.6612.5910.3531.153.21
49Ann Arbor, MI, United States4.159.839.0810.1711.0230.743.25
50Fort Lauderdale, FL, United States4.109.6812.7410.337.8530.403.29
\n", + "
" + ], + "text/plain": [ + " City Price To Income Ratio \\\n", + "1 Vancouver, Canada 14.34 \n", + "2 Toronto, Canada 13.91 \n", + "3 Coquitlam, Canada 11.20 \n", + "4 New York, NY, United States 10.76 \n", + "5 Brooklyn, NY, United States 10.33 \n", + "6 Burnaby, Canada 9.59 \n", + "7 Honolulu, HI, United States 9.32 \n", + "8 Brampton, Canada 8.78 \n", + "9 Mississauga, Canada 8.43 \n", + "10 Sunnyvale, CA, United States 8.39 \n", + "11 Santa Barbara, CA, United States 8.38 \n", + "12 Boston, MA, United States 7.81 \n", + "13 San Francisco, CA, United States 7.78 \n", + "14 Victoria, Canada 7.65 \n", + "15 Berkeley, CA, United States 7.59 \n", + "16 Fremont, CA, United States 7.46 \n", + "17 Cambridge, MA, United States 7.46 \n", + "18 Boulder, CO, United States 7.37 \n", + "19 Santa Cruz, CA, United States 7.32 \n", + "20 Los Angeles, CA, United States 7.22 \n", + "21 Montreal, Canada 6.98 \n", + "22 Arlington, VA, United States 6.62 \n", + "23 San Jose, CA, United States 6.59 \n", + "24 Long Beach, CA, United States 6.55 \n", + "25 New Orleans, LA, United States 6.41 \n", + "26 Oakland, CA, United States 6.39 \n", + "27 Bellingham, WA, United States 5.85 \n", + "28 Kelowna, Canada 5.71 \n", + "29 Seattle, WA, United States 5.62 \n", + "30 Jersey City, NJ, United States 5.56 \n", + "31 Charleston, SC, United States 5.53 \n", + "32 San Diego, CA, United States 5.22 \n", + "33 Irvine, CA, United States 5.11 \n", + "34 Santa Rosa, CA, United States 5.01 \n", + "35 Riverside, CA, United States 4.83 \n", + "36 Miami, FL, United States 4.79 \n", + "37 Winnipeg, Canada 4.74 \n", + "38 Sarasota, FL, United States 4.74 \n", + "39 Boise, ID, United States 4.73 \n", + "40 Calgary, Canada 4.72 \n", + "41 Everett, WA, United States 4.64 \n", + "42 Ottawa, Canada 4.64 \n", + "43 Eugene, OR, United States 4.52 \n", + "44 Washington, DC, United States 4.42 \n", + "45 Bellevue, WA, United States 4.39 \n", + "46 Portland, ME, United States 4.34 \n", + "47 Portland, OR, United States 4.33 \n", + "48 Denver, CO, United States 4.21 \n", + "49 Ann Arbor, MI, United States 4.15 \n", + "50 Fort Lauderdale, FL, United States 4.10 \n", + "\n", + " Gross Rental Yield City Centre Gross Rental Yield Outside of Centre \\\n", + "1 3.61 3.70 \n", + "2 4.15 4.18 \n", + "3 4.74 4.48 \n", + "4 4.91 5.74 \n", + "5 5.01 6.76 \n", + "6 4.34 5.34 \n", + "7 5.12 6.18 \n", + "8 5.59 6.09 \n", + "9 5.77 5.65 \n", + "10 4.53 4.62 \n", + "11 5.25 5.61 \n", + "12 5.28 8.48 \n", + "13 5.87 6.22 \n", + "14 5.15 6.80 \n", + "15 7.12 6.75 \n", + "16 5.61 5.62 \n", + "17 5.59 5.44 \n", + "18 4.76 6.34 \n", + "19 8.18 6.18 \n", + "20 6.20 7.55 \n", + "21 4.84 5.14 \n", + "22 7.78 8.51 \n", + "23 6.08 6.56 \n", + "24 6.43 6.96 \n", + "25 6.33 7.57 \n", + "26 7.07 8.34 \n", + "27 6.18 7.10 \n", + "28 6.86 7.20 \n", + "29 6.14 7.40 \n", + "30 6.81 10.80 \n", + "31 7.31 10.19 \n", + "32 7.39 8.70 \n", + "33 7.72 7.99 \n", + "34 8.94 8.37 \n", + "35 9.28 10.12 \n", + "36 9.45 11.52 \n", + "37 6.12 7.29 \n", + "38 8.93 15.25 \n", + "39 8.25 10.00 \n", + "40 5.06 6.40 \n", + "41 8.72 9.30 \n", + "42 6.05 7.86 \n", + "43 8.19 8.73 \n", + "44 8.01 11.23 \n", + "45 6.74 7.47 \n", + "46 8.09 9.65 \n", + "47 8.60 9.36 \n", + "48 7.94 9.66 \n", + "49 9.83 9.08 \n", + "50 9.68 12.74 \n", + "\n", + " Price To Rent Ratio City Centre Price To Rent Ratio Outside Of City Centre \\\n", + "1 27.72 26.99 \n", + "2 24.08 23.91 \n", + "3 21.10 22.32 \n", + "4 20.38 17.43 \n", + "5 19.97 14.78 \n", + "6 23.06 18.72 \n", + "7 19.53 16.18 \n", + "8 17.88 16.42 \n", + "9 17.34 17.69 \n", + "10 22.09 21.62 \n", + "11 19.03 17.82 \n", + "12 18.94 11.79 \n", + "13 17.05 16.07 \n", + "14 19.43 14.71 \n", + "15 14.04 14.81 \n", + "16 17.82 17.79 \n", + "17 17.89 18.37 \n", + "18 21.00 15.77 \n", + "19 12.23 16.19 \n", + "20 16.14 13.24 \n", + "21 20.67 19.44 \n", + "22 12.86 11.75 \n", + "23 16.45 15.24 \n", + "24 15.54 14.37 \n", + "25 15.80 13.20 \n", + "26 14.15 11.99 \n", + "27 16.17 14.09 \n", + "28 14.58 13.88 \n", + "29 16.28 13.52 \n", + "30 14.69 9.26 \n", + "31 13.67 9.81 \n", + "32 13.53 11.50 \n", + "33 12.95 12.52 \n", + "34 11.19 11.94 \n", + "35 10.77 9.88 \n", + "36 10.58 8.68 \n", + "37 16.34 13.71 \n", + "38 11.20 6.56 \n", + "39 12.12 10.00 \n", + "40 19.74 15.61 \n", + "41 11.47 10.75 \n", + "42 16.52 12.73 \n", + "43 12.22 11.45 \n", + "44 12.49 8.90 \n", + "45 14.84 13.40 \n", + "46 12.35 10.36 \n", + "47 11.63 10.68 \n", + "48 12.59 10.35 \n", + "49 10.17 11.02 \n", + "50 10.33 7.85 \n", + "\n", + " Mortgage As A Percentage Of Income Affordability Index \n", + "1 102.30 0.98 \n", + "2 95.31 1.05 \n", + "3 79.95 1.25 \n", + "4 79.38 1.26 \n", + "5 77.10 1.30 \n", + "6 68.12 1.47 \n", + "7 70.03 1.43 \n", + "8 62.39 1.60 \n", + "9 59.49 1.68 \n", + "10 63.29 1.58 \n", + "11 63.33 1.58 \n", + "12 57.87 1.73 \n", + "13 57.47 1.74 \n", + "14 54.15 1.85 \n", + "15 57.75 1.73 \n", + "16 55.49 1.80 \n", + "17 55.56 1.80 \n", + "18 56.10 1.78 \n", + "19 55.33 1.81 \n", + "20 53.08 1.88 \n", + "21 48.45 2.06 \n", + "22 49.89 2.00 \n", + "23 48.75 2.05 \n", + "24 49.04 2.04 \n", + "25 48.42 2.07 \n", + "26 47.35 2.11 \n", + "27 44.02 2.27 \n", + "28 41.12 2.43 \n", + "29 41.36 2.42 \n", + "30 41.59 2.40 \n", + "31 41.60 2.40 \n", + "32 38.28 2.61 \n", + "33 37.70 2.65 \n", + "34 37.38 2.68 \n", + "35 36.16 2.77 \n", + "36 36.48 2.74 \n", + "37 32.85 3.04 \n", + "38 35.11 2.85 \n", + "39 35.21 2.84 \n", + "40 32.81 3.05 \n", + "41 35.17 2.84 \n", + "42 32.67 3.06 \n", + "43 34.05 2.94 \n", + "44 32.33 3.09 \n", + "45 32.95 3.04 \n", + "46 32.61 3.07 \n", + "47 31.97 3.13 \n", + "48 31.15 3.21 \n", + "49 30.74 3.25 \n", + "50 30.40 3.29 " + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "city_ranking.head(50)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "for r in city_ranking['Price To Rent Ratio City Centre']:\n", + " r.strip()" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "price_rent=city_ranking[['City','Price To Rent Ratio City Centre']].sort_values(by='Price To Rent Ratio City Centre').head(30)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "price_rent['Price To Rent Ratio City Centre']=price_rent['Price To Rent Ratio City Centre'].astype(float)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "price_rent.sort_values(by='Price To Rent Ratio City Centre', inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "price_rent=price_rent.head(20)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#Best Price To Rent Ratio Centre" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],\n", + " )" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "x=price_rent['City']\n", + "y=price_rent['Price To Rent Ratio City Centre']\n", + "plt.scatter(x,y,s=12, c='#029386', marker='*',linewidths=1)\n", + "plt.xticks(rotation=80)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "Austin_df=bi.loc[(bi['city'] == 'Austin')]" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "Austin_df.reset_index(inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\danie\\anaconda3\\lib\\site-packages\\pandas\\core\\frame.py:3997: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " errors=errors,\n" + ] + } + ], + "source": [ + "Austin_df.drop(columns='index',inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "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", + "
namecategory_codeemployeesfounded_yearcitycountry_codelatitudelongitude
0Googlesearch280001998AustinUSA30.351416-97.751382
1Bazaarvoicesoftware6002005AustinUSA30.407545-97.717667
2Springboxweb652004AustinUSA30.269452-97.742682
3Yodleadvertising10002005AustinUSA30.378658-97.731249
4BreakingPoint Systemssecurity1092005AustinUSA30.384453-97.709809
5SKYLISTweb651996AustinUSA30.267200-97.742306
6Adlucentsoftware852005AustinUSA30.316226-97.718130
7Absolute Softwaresoftware3001993AustinUSA30.265006-97.746608
8Razorfishconsulting20001995AustinUSA30.269026-97.745671
9FIRST ROIadvertising1002006AustinUSA30.432421-97.732059
10Thinkwellsoftware301999AustinUSA30.265557-97.731510
11Cosentialsoftware401997AustinUSA30.264254-97.741290
12Zenosssoftware402005AustinUSA30.379593-97.765313
13NetSpendother3001999AustinUSA30.266700-97.742800
14Alereonsemiconductor752003AustinUSA30.375563-97.781920
15Manticore Technologysoftware252001AustinUSA30.382168-97.743141
16Troux Technologiesenterprise1002001AustinUSA30.381525-97.810484
17National Transcript Centerweb202006AustinUSA30.181709-97.880286
18Infoglide Software Corporationsoftware311996AustinUSA30.392018-97.848345
19NetQoSsoftware2601999AustinUSA30.348190-97.800580
20Cycorpsoftware251994AustinUSA30.361216-97.747637
21Interspiresoftware502003AustinUSA30.303746-97.758639
22TRUECartransportation3032005AustinUSA30.309694-97.939013
23Nomadeskenterprise282004AustinUSA51.0019753.616820
24Interspiresoftware502003AustinUSA30.303746-97.758639
25TRUECartransportation3032005AustinUSA30.309694-97.939013
26Nomadeskenterprise282004AustinUSA51.0019753.616820
27Gowallaweb222007AustinUSA30.272921-97.744386
28OneSource Information Servicesanalytics1851993AustinUSA30.261122-97.793038
29Enspire Learningeducation602001AustinUSA30.280364-97.742470
30Scio Consultingsoftware332003AustinUSA37.235298-121.782424
31Virtual Bridgessoftware452006AustinUSA30.279950-97.807274
32TicketCityother321990AustinUSA30.341865-97.754644
33SolarWindssoftware3541999AustinUSA30.245535-97.805621
34ReachForceenterprise402005AustinUSA30.389042-97.756264
35EyeBuyDirectecommerce2002005AustinUSA38.982533-77.093279
36BP3consulting202007AustinUSA30.342436-97.754300
37ePartnerssoftware2151992AustinUSA30.306468-97.827862
38Talent Allianceecommerce452001AustinUSA30.307955-97.828408
39Red McCombs Mediaadvertising282000AustinUSA30.374414-97.725204
40StoredIQenterprise602001AustinUSA30.213531-97.815012
41MyEdueducation202009AustinUSA30.288159-97.750154
42Infochimpsenterprise242009AustinUSA30.273482-97.758883
43Metreos Corporationsoftware202001AustinUSA30.235040-97.800130
44Bigfoot Networkshardware502006AustinUSA30.428450-97.748816
45SpectraLinearsemiconductor322006AustinUSA30.267153-97.743061
46AlterPointsoftware352001AustinUSA30.354768-97.798152
\n", + "
" + ], + "text/plain": [ + " name category_code employees founded_year \\\n", + "0 Google search 28000 1998 \n", + "1 Bazaarvoice software 600 2005 \n", + "2 Springbox web 65 2004 \n", + "3 Yodle advertising 1000 2005 \n", + "4 BreakingPoint Systems security 109 2005 \n", + "5 SKYLIST web 65 1996 \n", + "6 Adlucent software 85 2005 \n", + "7 Absolute Software software 300 1993 \n", + "8 Razorfish consulting 2000 1995 \n", + "9 FIRST ROI advertising 100 2006 \n", + "10 Thinkwell software 30 1999 \n", + "11 Cosential software 40 1997 \n", + "12 Zenoss software 40 2005 \n", + "13 NetSpend other 300 1999 \n", + "14 Alereon semiconductor 75 2003 \n", + "15 Manticore Technology software 25 2001 \n", + "16 Troux Technologies enterprise 100 2001 \n", + "17 National Transcript Center web 20 2006 \n", + "18 Infoglide Software Corporation software 31 1996 \n", + "19 NetQoS software 260 1999 \n", + "20 Cycorp software 25 1994 \n", + "21 Interspire software 50 2003 \n", + "22 TRUECar transportation 303 2005 \n", + "23 Nomadesk enterprise 28 2004 \n", + "24 Interspire software 50 2003 \n", + "25 TRUECar transportation 303 2005 \n", + "26 Nomadesk enterprise 28 2004 \n", + "27 Gowalla web 22 2007 \n", + "28 OneSource Information Services analytics 185 1993 \n", + "29 Enspire Learning education 60 2001 \n", + "30 Scio Consulting software 33 2003 \n", + "31 Virtual Bridges software 45 2006 \n", + "32 TicketCity other 32 1990 \n", + "33 SolarWinds software 354 1999 \n", + "34 ReachForce enterprise 40 2005 \n", + "35 EyeBuyDirect ecommerce 200 2005 \n", + "36 BP3 consulting 20 2007 \n", + "37 ePartners software 215 1992 \n", + "38 Talent Alliance ecommerce 45 2001 \n", + "39 Red McCombs Media advertising 28 2000 \n", + "40 StoredIQ enterprise 60 2001 \n", + "41 MyEdu education 20 2009 \n", + "42 Infochimps enterprise 24 2009 \n", + "43 Metreos Corporation software 20 2001 \n", + "44 Bigfoot Networks hardware 50 2006 \n", + "45 SpectraLinear semiconductor 32 2006 \n", + "46 AlterPoint software 35 2001 \n", + "\n", + " city country_code latitude longitude \n", + "0 Austin USA 30.351416 -97.751382 \n", + "1 Austin USA 30.407545 -97.717667 \n", + "2 Austin USA 30.269452 -97.742682 \n", + "3 Austin USA 30.378658 -97.731249 \n", + "4 Austin USA 30.384453 -97.709809 \n", + "5 Austin USA 30.267200 -97.742306 \n", + "6 Austin USA 30.316226 -97.718130 \n", + "7 Austin USA 30.265006 -97.746608 \n", + "8 Austin USA 30.269026 -97.745671 \n", + "9 Austin USA 30.432421 -97.732059 \n", + "10 Austin USA 30.265557 -97.731510 \n", + "11 Austin USA 30.264254 -97.741290 \n", + "12 Austin USA 30.379593 -97.765313 \n", + "13 Austin USA 30.266700 -97.742800 \n", + "14 Austin USA 30.375563 -97.781920 \n", + "15 Austin USA 30.382168 -97.743141 \n", + "16 Austin USA 30.381525 -97.810484 \n", + "17 Austin USA 30.181709 -97.880286 \n", + "18 Austin USA 30.392018 -97.848345 \n", + "19 Austin USA 30.348190 -97.800580 \n", + "20 Austin USA 30.361216 -97.747637 \n", + "21 Austin USA 30.303746 -97.758639 \n", + "22 Austin USA 30.309694 -97.939013 \n", + "23 Austin USA 51.001975 3.616820 \n", + "24 Austin USA 30.303746 -97.758639 \n", + "25 Austin USA 30.309694 -97.939013 \n", + "26 Austin USA 51.001975 3.616820 \n", + "27 Austin USA 30.272921 -97.744386 \n", + "28 Austin USA 30.261122 -97.793038 \n", + "29 Austin USA 30.280364 -97.742470 \n", + "30 Austin USA 37.235298 -121.782424 \n", + "31 Austin USA 30.279950 -97.807274 \n", + "32 Austin USA 30.341865 -97.754644 \n", + "33 Austin USA 30.245535 -97.805621 \n", + "34 Austin USA 30.389042 -97.756264 \n", + "35 Austin USA 38.982533 -77.093279 \n", + "36 Austin USA 30.342436 -97.754300 \n", + "37 Austin USA 30.306468 -97.827862 \n", + "38 Austin USA 30.307955 -97.828408 \n", + "39 Austin USA 30.374414 -97.725204 \n", + "40 Austin USA 30.213531 -97.815012 \n", + "41 Austin USA 30.288159 -97.750154 \n", + "42 Austin USA 30.273482 -97.758883 \n", + "43 Austin USA 30.235040 -97.800130 \n", + "44 Austin USA 30.428450 -97.748816 \n", + "45 Austin USA 30.267153 -97.743061 \n", + "46 Austin USA 30.354768 -97.798152 " + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Austin_df" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "software 18\n", + "enterprise 6\n", + "web 4\n", + "advertising 3\n", + "education 2\n", + "consulting 2\n", + "transportation 2\n", + "other 2\n", + "semiconductor 2\n", + "ecommerce 2\n", + "security 1\n", + "hardware 1\n", + "search 1\n", + "analytics 1\n", + "Name: category_code, dtype: int64" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Austin_df['category_code'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\danie\\anaconda3\\lib\\site-packages\\pandas\\core\\frame.py:4133: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " errors=errors,\n" + ] + } + ], + "source": [ + "Austin_df.rename(columns={'number_of_employees' : 'employees'}, inplace=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# SUGGESTED LOCATION" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "map_austin= folium.Map(location=[30.2671509, -97.7430573], zoom_start=11)\n", + "#mc = MarkerCluster()\n", + "\n", + "lat=30.288159\n", + "lon=-97.750154\n", + "\n", + "for row in Austin_df.itertuples():\n", + " folium.Marker(location=[row.latitude, row.longitude], popup=\"Company:\" \n", + " + row.name + \" \" \n", + " + \"Category:\" \n", + " + row.category_code).add_to(map_austin)\n", + "folium.Circle([lat,lon],\n", + " radius=5000\n", + " ).add_to(map_austin)\n", + " \n", + "\n", + "map_austin\n" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/module-2/python-bi-project/BOOTCAMP/readme.md b/module-2/python-bi-project/BOOTCAMP/readme.md new file mode 100644 index 0000000..6679a34 --- /dev/null +++ b/module-2/python-bi-project/BOOTCAMP/readme.md @@ -0,0 +1,54 @@ + + +### BI PROJECT + +___ + +Analysis to determine the ideal place to launch a web-dev/ux-ui/data analysis bootcamp. + + + +##### Description + +___ + +Through the analysis of a database containing over 18,000 records of companies around the world I intend to determine the most suitable place to launch a web-dev/ux-ui/data analysis bootcamp based on certain conditions listed below. + + + +###### Conditions + +___ + +1. The bootcamp must be located within USA, Canada or Mexico. +2. Located in a city with at least 50 companies that comply with the following requirements: + - Companies must be related to technology. + - Founded at least 7 years ago to prove stability. + - Have at least 20 employees. + - Must not have been deadpooled. + - The city must be within the top 50 cheapest cities to buy a property or have a a Price To Rent Ratio below 15 points. + - Ideally the bootcamp must be located in the city centre of the city determined. + - The owners have stated very clearly that they don't want the bootcamp to be located in either California or New York due to the high expenses related to living there. + + + +##### Tools used + +___ + +- **MongoDB** to query database. +- **Python** and **Pandas** for data manipulation, cleaning and transformation +- **Matplotlib** for graphs +- **Folium** for maps +- **Web scraping** for real state indicators + + + +##### Author + +___ + +César Campuzano + + +