Skip to content

Instantly share code, notes, and snippets.

@MasoudAali
Created May 1, 2020 18:48
Show Gist options
  • Save MasoudAali/c73366c352fe73196a4bb95442299e9b to your computer and use it in GitHub Desktop.
Save MasoudAali/c73366c352fe73196a4bb95442299e9b to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"#The Objective is to define the most valued industry in provinces of Canada by 2030\n",
"# The input data is the historical value for over 30 industries and their values from 2001 to 2019\n",
"#Data cleaning is required\n",
"# I may need to uses a polynomial regression to extrapolate the value of each industry by 2030 and then rank them from most toleast valued industry\n",
"# the next step is to use follium to plot them on the map\n",
"#lets get started!!!\n",
"\n",
"import pandas as pd\n",
"import numpy as np\n",
"import os\n",
"import matplotlib.pylab as plt\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3063: DtypeWarning: Columns (14) have mixed types.Specify dtype option on import or set low_memory=False.\n",
" interactivity=interactivity, compiler=compiler, result=result)\n"
]
}
],
"source": [
"df = pd.read_csv (\"myfile.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>REF_DATE</th>\n",
" <th>GEO</th>\n",
" <th>DGUID</th>\n",
" <th>Type of employee</th>\n",
" <th>North American Industry Classification System (NAICS)</th>\n",
" <th>UOM</th>\n",
" <th>UOM_ID</th>\n",
" <th>SCALAR_FACTOR</th>\n",
" <th>SCALAR_ID</th>\n",
" <th>VECTOR</th>\n",
" <th>COORDINATE</th>\n",
" <th>VALUE</th>\n",
" <th>STATUS</th>\n",
" <th>SYMBOL</th>\n",
" <th>TERMINATED</th>\n",
" <th>DECIMALS</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>2016A000011124</td>\n",
" <td>All employees</td>\n",
" <td>Industrial aggregate including unclassified bu...</td>\n",
" <td>Persons</td>\n",
" <td>249</td>\n",
" <td>units</td>\n",
" <td>0</td>\n",
" <td>v1695625</td>\n",
" <td>1.1.1</td>\n",
" <td>12956950.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>2016A000011124</td>\n",
" <td>All employees</td>\n",
" <td>Industrial aggregate excluding unclassified bu...</td>\n",
" <td>Persons</td>\n",
" <td>249</td>\n",
" <td>units</td>\n",
" <td>0</td>\n",
" <td>v1696045</td>\n",
" <td>1.1.2</td>\n",
" <td>12880367.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>2016A000011124</td>\n",
" <td>All employees</td>\n",
" <td>Goods producing industries [11-33N]</td>\n",
" <td>Persons</td>\n",
" <td>249</td>\n",
" <td>units</td>\n",
" <td>0</td>\n",
" <td>v1696577</td>\n",
" <td>1.1.3</td>\n",
" <td>2869609.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>2016A000011124</td>\n",
" <td>All employees</td>\n",
" <td>Forestry, logging and support [11N]</td>\n",
" <td>Persons</td>\n",
" <td>249</td>\n",
" <td>units</td>\n",
" <td>0</td>\n",
" <td>v1697106</td>\n",
" <td>1.1.4</td>\n",
" <td>68149.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>2016A000011124</td>\n",
" <td>All employees</td>\n",
" <td>Forestry and logging [113]</td>\n",
" <td>Persons</td>\n",
" <td>249</td>\n",
" <td>units</td>\n",
" <td>0</td>\n",
" <td>v1697648</td>\n",
" <td>1.1.5</td>\n",
" <td>48766.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" REF_DATE GEO DGUID Type of employee \\\n",
"0 2001 Canada 2016A000011124 All employees \n",
"1 2001 Canada 2016A000011124 All employees \n",
"2 2001 Canada 2016A000011124 All employees \n",
"3 2001 Canada 2016A000011124 All employees \n",
"4 2001 Canada 2016A000011124 All employees \n",
"\n",
" North American Industry Classification System (NAICS) UOM UOM_ID \\\n",
"0 Industrial aggregate including unclassified bu... Persons 249 \n",
"1 Industrial aggregate excluding unclassified bu... Persons 249 \n",
"2 Goods producing industries [11-33N] Persons 249 \n",
"3 Forestry, logging and support [11N] Persons 249 \n",
"4 Forestry and logging [113] Persons 249 \n",
"\n",
" SCALAR_FACTOR SCALAR_ID VECTOR COORDINATE VALUE STATUS SYMBOL \\\n",
"0 units 0 v1695625 1.1.1 12956950.0 NaN NaN \n",
"1 units 0 v1696045 1.1.2 12880367.0 NaN NaN \n",
"2 units 0 v1696577 1.1.3 2869609.0 NaN NaN \n",
"3 units 0 v1697106 1.1.4 68149.0 NaN NaN \n",
"4 units 0 v1697648 1.1.5 48766.0 NaN NaN \n",
"\n",
" TERMINATED DECIMALS \n",
"0 NaN 0 \n",
"1 NaN 0 \n",
"2 NaN 0 \n",
"3 NaN 0 \n",
"4 NaN 0 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"#filter the columnstha we beed\n",
"#drop the rows without Value in VALUE column \n",
"df1 = df[['REF_DATE','GEO','Type of employee','North American Industry Classification System (NAICS)', 'COORDINATE','VALUE']].dropna()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Year</th>\n",
" <th>GEO</th>\n",
" <th>Type of employee</th>\n",
" <th>industry</th>\n",
" <th>COORDINATE</th>\n",
" <th>VALUE</th>\n",
" <th>industry_code</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>All employees</td>\n",
" <td>Industrial aggregate including unclassified bu...</td>\n",
" <td>111</td>\n",
" <td>12956950.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>All employees</td>\n",
" <td>Industrial aggregate excluding unclassified bu...</td>\n",
" <td>112</td>\n",
" <td>12880367.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>All employees</td>\n",
" <td>Goods producing industries [11-33N]</td>\n",
" <td>113</td>\n",
" <td>2869609.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>All employees</td>\n",
" <td>Forestry, logging and support [11N]</td>\n",
" <td>114</td>\n",
" <td>68149.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>All employees</td>\n",
" <td>Forestry and logging [113]</td>\n",
" <td>115</td>\n",
" <td>48766.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Year GEO Type of employee \\\n",
"0 2001 Canada All employees \n",
"1 2001 Canada All employees \n",
"2 2001 Canada All employees \n",
"3 2001 Canada All employees \n",
"4 2001 Canada All employees \n",
"\n",
" industry COORDINATE VALUE \\\n",
"0 Industrial aggregate including unclassified bu... 111 12956950.0 \n",
"1 Industrial aggregate excluding unclassified bu... 112 12880367.0 \n",
"2 Goods producing industries [11-33N] 113 2869609.0 \n",
"3 Forestry, logging and support [11N] 114 68149.0 \n",
"4 Forestry and logging [113] 115 48766.0 \n",
"\n",
" industry_code \n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 NaN "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1.rename(columns = {'North American Industry Classification System (NAICS)':'industry', 'REF_DATE': 'Year'}, inplace = True)\n",
"df1['industry_code'] = np.nan\n",
"df1['COORDINATE'] = df1['COORDINATE'].str.replace('.','')\n",
"df1 = df1.loc[df1['Type of employee'] == 'All employees']\n",
"df1.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"#missing_data = df1.isnull()\n",
"#missing_data.head()\n",
"#for column in missing_data.columns.values.tolist():\n",
"# print(column)\n",
"# print (missing_data[column].value_counts())\n",
"# print(\"\") "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Year</th>\n",
" <th>GEO</th>\n",
" <th>Type of employee</th>\n",
" <th>industry</th>\n",
" <th>COORDINATE</th>\n",
" <th>VALUE</th>\n",
" <th>industry_code</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>All employees</td>\n",
" <td>Industrial aggregate including unclassified bu...</td>\n",
" <td>111</td>\n",
" <td>12956950.0</td>\n",
" <td>838</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>All employees</td>\n",
" <td>Industrial aggregate excluding unclassified bu...</td>\n",
" <td>112</td>\n",
" <td>12880367.0</td>\n",
" <td>837</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>All employees</td>\n",
" <td>Goods producing industries [11-33N]</td>\n",
" <td>113</td>\n",
" <td>2869609.0</td>\n",
" <td>818</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>All employees</td>\n",
" <td>Forestry, logging and support [11N]</td>\n",
" <td>114</td>\n",
" <td>68149.0</td>\n",
" <td>799</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2001</td>\n",
" <td>Canada</td>\n",
" <td>All employees</td>\n",
" <td>Forestry and logging [113]</td>\n",
" <td>115</td>\n",
" <td>48766.0</td>\n",
" <td>798</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Year GEO Type of employee \\\n",
"0 2001 Canada All employees \n",
"1 2001 Canada All employees \n",
"2 2001 Canada All employees \n",
"3 2001 Canada All employees \n",
"4 2001 Canada All employees \n",
"\n",
" industry COORDINATE VALUE \\\n",
"0 Industrial aggregate including unclassified bu... 111 12956950.0 \n",
"1 Industrial aggregate excluding unclassified bu... 112 12880367.0 \n",
"2 Goods producing industries [11-33N] 113 2869609.0 \n",
"3 Forestry, logging and support [11N] 114 68149.0 \n",
"4 Forestry and logging [113] 115 48766.0 \n",
"\n",
" industry_code \n",
"0 838 \n",
"1 837 \n",
"2 818 \n",
"3 799 \n",
"4 798 "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1 ['industry_code'] = df1.groupby(['GEO', 'industry']).ngroup()\n",
"df1.sort_values(by=['industry_code', 'Year'])\n",
"#df1 = df1.reset_index(drop = True)\n",
"#df1 = df1.drop_duplicates(subset = \"industry_code\", keep = 'first')\n",
"df1.head()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(55979, 7)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1.shape"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n",
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py:3331: RankWarning: Polyfit may be poorly conditioned\n",
" exec(code_obj, self.user_global_ns, self.user_ns)\n"
]
}
],
"source": [
"from sklearn.preprocessing import PolynomialFeatures\n",
"from sklearn.metrics import r2_score\n",
"df_2030 = pd.DataFrame(columns = ['industry_code', 'VALUE_IN_2030', 'r2_score'])\n",
"for i in range(0,3225):\n",
" X = df1.loc[df1['industry_code']== i, 'Year']\n",
" y = df1.loc[df1['industry_code']== i, 'VALUE']\n",
" f = np.polyfit(X, y, 3)\n",
" p = np.poly1d(f)\n",
" r2 = r2_score(y, p(X))\n",
" df_middle = pd.DataFrame(np.array([[i, p(2030), r2]]),columns = ['industry_code', 'VALUE_IN_2030', 'r2_score'])\n",
" df_2030 = df_2030.append(df_middle)\n",
"\n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Year</th>\n",
" <th>GEO</th>\n",
" <th>Type of employee</th>\n",
" <th>industry</th>\n",
" <th>COORDINATE</th>\n",
" <th>VALUE</th>\n",
" <th>industry_code</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>144624</th>\n",
" <td>2019</td>\n",
" <td>Nunavut</td>\n",
" <td>All employees</td>\n",
" <td>Public administration [91]</td>\n",
" <td>151393</td>\n",
" <td>6762.0</td>\n",
" <td>2037</td>\n",
" </tr>\n",
" <tr>\n",
" <th>144625</th>\n",
" <td>2019</td>\n",
" <td>Nunavut</td>\n",
" <td>All employees</td>\n",
" <td>Federal government public administration [911]</td>\n",
" <td>151394</td>\n",
" <td>528.0</td>\n",
" <td>2020</td>\n",
" </tr>\n",
" <tr>\n",
" <th>144626</th>\n",
" <td>2019</td>\n",
" <td>Nunavut</td>\n",
" <td>All employees</td>\n",
" <td>Provincial and territorial public administrati...</td>\n",
" <td>151395</td>\n",
" <td>4352.0</td>\n",
" <td>2036</td>\n",
" </tr>\n",
" <tr>\n",
" <th>144627</th>\n",
" <td>2019</td>\n",
" <td>Nunavut</td>\n",
" <td>All employees</td>\n",
" <td>Local, municipal and regional public administr...</td>\n",
" <td>151396</td>\n",
" <td>1882.0</td>\n",
" <td>2031</td>\n",
" </tr>\n",
" <tr>\n",
" <th>144628</th>\n",
" <td>2019</td>\n",
" <td>Nunavut</td>\n",
" <td>All employees</td>\n",
" <td>Unclassified businesses [00]</td>\n",
" <td>151397</td>\n",
" <td>158.0</td>\n",
" <td>2046</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Year GEO Type of employee \\\n",
"144624 2019 Nunavut All employees \n",
"144625 2019 Nunavut All employees \n",
"144626 2019 Nunavut All employees \n",
"144627 2019 Nunavut All employees \n",
"144628 2019 Nunavut All employees \n",
"\n",
" industry COORDINATE VALUE \\\n",
"144624 Public administration [91] 151393 6762.0 \n",
"144625 Federal government public administration [911] 151394 528.0 \n",
"144626 Provincial and territorial public administrati... 151395 4352.0 \n",
"144627 Local, municipal and regional public administr... 151396 1882.0 \n",
"144628 Unclassified businesses [00] 151397 158.0 \n",
"\n",
" industry_code \n",
"144624 2037 \n",
"144625 2020 \n",
"144626 2036 \n",
"144627 2031 \n",
"144628 2046 "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1.tail()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(2928, 4)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2 = df1.loc[df1['Year']==2019,['GEO','industry','industry_code','VALUE']]\n",
"df2.rename(columns = {'VALUE':'VALUE_IN_2019'},inplace = True)\n",
"df2 = df2.drop_duplicates(subset = \"industry_code\", keep = 'first')\n",
"df2.shape"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>industry_code</th>\n",
" <th>VALUE_IN_2030</th>\n",
" <th>r2_score</th>\n",
" <th>GEO</th>\n",
" <th>industry</th>\n",
" <th>VALUE_IN_2019</th>\n",
" <th>Percent_of_Growth</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.0</td>\n",
" <td>9869.793730</td>\n",
" <td>0.747555</td>\n",
" <td>Alberta</td>\n",
" <td>Aboriginal public administration [914]</td>\n",
" <td>6941.0</td>\n",
" <td>42.195559</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.0</td>\n",
" <td>49227.124939</td>\n",
" <td>0.916119</td>\n",
" <td>Alberta</td>\n",
" <td>Accommodation and food services [72]</td>\n",
" <td>166126.0</td>\n",
" <td>-70.367598</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2.0</td>\n",
" <td>30062.441986</td>\n",
" <td>0.596458</td>\n",
" <td>Alberta</td>\n",
" <td>Accommodation services [721]</td>\n",
" <td>34320.0</td>\n",
" <td>-12.405472</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3.0</td>\n",
" <td>15027.833055</td>\n",
" <td>0.960558</td>\n",
" <td>Alberta</td>\n",
" <td>Accounting, tax preparation, bookkeeping and p...</td>\n",
" <td>14520.0</td>\n",
" <td>3.497473</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4.0</td>\n",
" <td>3627.889347</td>\n",
" <td>0.809143</td>\n",
" <td>Alberta</td>\n",
" <td>Activities related to credit intermediation [5...</td>\n",
" <td>2396.0</td>\n",
" <td>51.414413</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" industry_code VALUE_IN_2030 r2_score GEO \\\n",
"0 0.0 9869.793730 0.747555 Alberta \n",
"1 1.0 49227.124939 0.916119 Alberta \n",
"2 2.0 30062.441986 0.596458 Alberta \n",
"3 3.0 15027.833055 0.960558 Alberta \n",
"4 4.0 3627.889347 0.809143 Alberta \n",
"\n",
" industry VALUE_IN_2019 \\\n",
"0 Aboriginal public administration [914] 6941.0 \n",
"1 Accommodation and food services [72] 166126.0 \n",
"2 Accommodation services [721] 34320.0 \n",
"3 Accounting, tax preparation, bookkeeping and p... 14520.0 \n",
"4 Activities related to credit intermediation [5... 2396.0 \n",
"\n",
" Percent_of_Growth \n",
"0 42.195559 \n",
"1 -70.367598 \n",
"2 -12.405472 \n",
"3 3.497473 \n",
"4 51.414413 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_2030_1 = pd.merge(df_2030, df2, on = 'industry_code', how ='outer').drop_duplicates()\n",
"df_2030_1['Percent_of_Growth'] = (df_2030_1.VALUE_IN_2030 - df_2030_1.VALUE_IN_2019)*100/df_2030_1.VALUE_IN_2019\n",
"df_2030_1.head()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"df_2030_1 = df_2030_1.drop_duplicates(subset = \"industry_code\", keep = 'first')\n",
"df_2030_1 = df_2030_1.loc[df_2030_1['r2_score'] > 0.7]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>industry_code</th>\n",
" <th>GEO</th>\n",
" <th>industry</th>\n",
" <th>VALUE_IN_2019</th>\n",
" <th>VALUE_IN_2030</th>\n",
" <th>Percent_of_Growth</th>\n",
" <th>r2_score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2418</th>\n",
" <td>2418.0</td>\n",
" <td>Ontario</td>\n",
" <td>Veneer, plywood and engineered wood product ma...</td>\n",
" <td>3622.0</td>\n",
" <td>37785.501686</td>\n",
" <td>943.222023</td>\n",
" <td>0.877139</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2123</th>\n",
" <td>2123.0</td>\n",
" <td>Ontario</td>\n",
" <td>Consumer goods rental [5322]</td>\n",
" <td>4149.0</td>\n",
" <td>43182.233795</td>\n",
" <td>940.786546</td>\n",
" <td>0.954197</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2205</th>\n",
" <td>2205.0</td>\n",
" <td>Ontario</td>\n",
" <td>Household appliance manufacturing [3352]</td>\n",
" <td>1058.0</td>\n",
" <td>9454.932940</td>\n",
" <td>793.660958</td>\n",
" <td>0.953567</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2227</th>\n",
" <td>2227.0</td>\n",
" <td>Ontario</td>\n",
" <td>Lime and gypsum product manufacturing [3274]</td>\n",
" <td>985.0</td>\n",
" <td>7393.967601</td>\n",
" <td>650.656609</td>\n",
" <td>0.974875</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2193</th>\n",
" <td>2193.0</td>\n",
" <td>Ontario</td>\n",
" <td>Hardware manufacturing [3325]</td>\n",
" <td>4513.0</td>\n",
" <td>32156.561337</td>\n",
" <td>612.531827</td>\n",
" <td>0.931946</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" industry_code GEO \\\n",
"2418 2418.0 Ontario \n",
"2123 2123.0 Ontario \n",
"2205 2205.0 Ontario \n",
"2227 2227.0 Ontario \n",
"2193 2193.0 Ontario \n",
"\n",
" industry VALUE_IN_2019 \\\n",
"2418 Veneer, plywood and engineered wood product ma... 3622.0 \n",
"2123 Consumer goods rental [5322] 4149.0 \n",
"2205 Household appliance manufacturing [3352] 1058.0 \n",
"2227 Lime and gypsum product manufacturing [3274] 985.0 \n",
"2193 Hardware manufacturing [3325] 4513.0 \n",
"\n",
" VALUE_IN_2030 Percent_of_Growth r2_score \n",
"2418 37785.501686 943.222023 0.877139 \n",
"2123 43182.233795 940.786546 0.954197 \n",
"2205 9454.932940 793.660958 0.953567 \n",
"2227 7393.967601 650.656609 0.974875 \n",
"2193 32156.561337 612.531827 0.931946 "
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Novascotia = df_2030_1.loc[df_2030_1['GEO']== 'Nova Scotia', ['industry_code','GEO','industry','VALUE_IN_2019','VALUE_IN_2030','Percent_of_Growth', 'r2_score']]\n",
"Novascotia.loc[Novascotia['Percent_of_Growth'].idxmax()].industry\n",
"\n",
"Canada = df_2030_1.loc[df_2030_1['GEO']== 'Canada', ['industry_code','GEO','industry','VALUE_IN_2019','VALUE_IN_2030','Percent_of_Growth', 'r2_score']]\n",
"Canada.loc[Canada['Percent_of_Growth'].idxmax()].industry\n",
"\n",
"Ontario = df_2030_1.loc[df_2030_1['GEO']== 'Ontario', ['industry_code','GEO','industry','VALUE_IN_2019','VALUE_IN_2030','Percent_of_Growth', 'r2_score']]\n",
"Ontario.loc[Ontario['Percent_of_Growth'].idxmax()].industry\n",
"\n",
"Ontario.nlargest(5,['Percent_of_Growth'])"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"def PlotPolly(model, independent_variable, dependent_variabble, Name):\n",
" x_new = np.linspace(2001, 2030, 30)\n",
" y_new = model(x_new)\n",
"\n",
" plt.plot(independent_variable, dependent_variabble, '.', x_new, y_new, '-')\n",
" plt.title(Name)\n",
" ax = plt.gca()\n",
" ax.set_facecolor((0.898, 0.898, 0.898))\n",
" fig = plt.gcf()\n",
" plt.xlabel('Year')\n",
" plt.ylabel('Value')\n",
" plt.show()\n",
" plt.close()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"i = 2351\n",
"X = df1.loc[df1['industry_code']== i, 'Year']\n",
"y = df1.loc[df1['industry_code']== i, 'VALUE']\n",
"f = np.polyfit(X, y, 1)\n",
"p = np.poly1d(f)\n",
"\n",
"PlotPolly(p,X,y,'Linear Fit for Residential developmental handicap and mental health industry in Ontario')"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>industry_code</th>\n",
" <th>VALUE_IN_2030</th>\n",
" <th>r2_score</th>\n",
" <th>GEO</th>\n",
" <th>industry</th>\n",
" <th>VALUE_IN_2019</th>\n",
" <th>Percent_of_Growth</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>57</th>\n",
" <td>57.0</td>\n",
" <td>17470.877193</td>\n",
" <td>0.903522</td>\n",
" <td>Alberta</td>\n",
" <td>Community care facilities for the elderly [6233]</td>\n",
" <td>14770.0</td>\n",
" <td>18.286237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>386</th>\n",
" <td>386.0</td>\n",
" <td>26060.473684</td>\n",
" <td>0.949674</td>\n",
" <td>British Columbia</td>\n",
" <td>Community care facilities for the elderly [6233]</td>\n",
" <td>16778.0</td>\n",
" <td>55.325269</td>\n",
" </tr>\n",
" <tr>\n",
" <th>742</th>\n",
" <td>742.0</td>\n",
" <td>164786.842105</td>\n",
" <td>0.945426</td>\n",
" <td>Canada</td>\n",
" <td>Community care facilities for the elderly [6233]</td>\n",
" <td>121115.0</td>\n",
" <td>36.058161</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1122</th>\n",
" <td>1122.0</td>\n",
" <td>6055.824561</td>\n",
" <td>0.804234</td>\n",
" <td>Manitoba</td>\n",
" <td>Community care facilities for the elderly [6233]</td>\n",
" <td>3642.0</td>\n",
" <td>66.277445</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2113</th>\n",
" <td>2113.0</td>\n",
" <td>69788.684211</td>\n",
" <td>0.911172</td>\n",
" <td>Ontario</td>\n",
" <td>Community care facilities for the elderly [6233]</td>\n",
" <td>45730.0</td>\n",
" <td>52.610287</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" industry_code VALUE_IN_2030 r2_score GEO \\\n",
"57 57.0 17470.877193 0.903522 Alberta \n",
"386 386.0 26060.473684 0.949674 British Columbia \n",
"742 742.0 164786.842105 0.945426 Canada \n",
"1122 1122.0 6055.824561 0.804234 Manitoba \n",
"2113 2113.0 69788.684211 0.911172 Ontario \n",
"\n",
" industry VALUE_IN_2019 \\\n",
"57 Community care facilities for the elderly [6233] 14770.0 \n",
"386 Community care facilities for the elderly [6233] 16778.0 \n",
"742 Community care facilities for the elderly [6233] 121115.0 \n",
"1122 Community care facilities for the elderly [6233] 3642.0 \n",
"2113 Community care facilities for the elderly [6233] 45730.0 \n",
"\n",
" Percent_of_Growth \n",
"57 18.286237 \n",
"386 55.325269 \n",
"742 36.058161 \n",
"1122 66.277445 \n",
"2113 52.610287 "
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"Community_care = df_2030_1.loc [df_2030_1['industry'] == \"Community care facilities for the elderly [6233]\"]\n",
"Community_care.head()\n"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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XsyXv/xlpk2bxqxZs3jmmWeYNm3aWvfPgCxJkqT1ql+/fuy9994A9OzZkyFDhrBgwQJuuukmxo0bB8C4ceOYPHkyAFtuuSUHHnggPXr0aNbO448/zuDBg+nbty8AH/7wh7nxxhvXun8GZEmSJHWZuXPncu+99zJixAieeeYZ+vXrB1Qh+tlnn2237sCBA3n00UeZO3cuK1asYPLkycybN2+t++QcZEmSJHWJF198kWOOOYYf/OAHbL311qtdv3fv3lx22WWMGTOGbt268f73v5/HH398rfvlCLIkSZLWu9dff51jjjmG448/no9//OMAbL/99ixcuBCAhQsXst12262ynSOOOILp06dzxx13sOuuuzJo0KC17psBWZIkSetVZjJ+/HiGDBnCF7/4xabyI488kkmTJgEwadIkjjrqqFW21TgNY+nSpVx66aWcfPLJa90/p1hIkiS9jXXksmzr2p///Geuuuoq9txzT4YNGwbAt7/9bc466yw++clPMnHiRHbaaSeuv/76pjoDBgxg2bJlvPbaa0yePJmpU6ey++67c/rpp3P//fcDcM455zB48OC17p8BWZIkSevVgQceSGa2uqyty7TNnTu31fKrr756XXWriVMsJEmSpIIBWdIG46STTmK77bZj6NChzcp//OMfs+uuu7LHHntw5plnNlv2l7/8ha222qrp4vHLly9n2LBhTbdtt92WL3zhCwA8+eSTjBw5kr322ouDDz6Y+fPnN7UzadIkBg0axKBBg5rmv7X06quvMmbMGAYOHMiIESPaHM2QJL21GZAlbTBOPPFEbr755mZlv//977npppt44IEHmDVrFl/60peaLT/jjDMYPXp00+OePXty3333Nd3e/e53N50d/aUvfYkTTjiBBx54gHPOOYezzz4bgCVLlnD++eczffp0ZsyYwfnnn8/SpUtX6t/EiRPp3bs3c+bM4YwzzuArX/nKuj4EkqQNgAFZ0gbjoIMOok+fPs3KLrvsMs466yw222wzgGaX/Jk8eTK77LILe+yxR6vtzZ49m2effZYPfOADADz88MOMHDkSgEMOOYSbbroJgFtuuYVRo0bRp08fevfuzahRo1YK6kCz//B07LHHMm3atDbn0EmS3roMyJI2aP/93//NH//4R0aMGMEHP/hB7rrrLgBeeuklLrroIs4999w261599dWMGTOGiADgve99b9O/IP3Vr37F8uXLWbx4MQsWLKB///5N9RoaGliwYMFK7ZXrde/enV69erF48eJ1tq+SpA2DAVnSBm3FihUsXbqUO++8k+985zt88pOfJDM599xzOeOMM9hqq63arHvNNddw3HHHNT2++OKLue2223jf+97Hbbfdxo477kj37t1bHQVuDNWljq4nSXpr8zJvkjZoDQ0NfPzjHyci2G+//ejWrRvPPfcc06dP54YbbuDMM8/k+eefp1u3bvTo0YPPfe5zANx///2sWLGCffbZp6mtHXbYgV/+8pdA9e9Nb7zxRnr16kVDQwN/+MMfmtabP38+Bx98cKt9mTdvHg0NDaxYsYIXXnhhpSkhkvSWc16vddzeC6tcZd68eZxwwgk8/fTTdOvWjVNOOYXTTz+dJUuWMGbMGObOncuAAQO47rrr6N27NzNmzOCUU04BqsGK8847j6OPPhqAu+++mxNPPJGXX36Zj3zkI/zwhz9c68ELR5AlbdA+9rGP8bvf/Q6oplu89tprbLvttvzxj39k7ty5zJ07ly984Qt89atfbQrHUE2vKEePAZ577jnefPNNAC688EJOOukkAA477DCmTp3K0qVLWbp0KVOnTuWwww5bqS/lf3i64YYb+NCHPuQIsiStge7du/Pd736XRx55hDvvvJNLLrmEhx9+mAkTJjBy5Ehmz57NyJEjmTBhAgBDhw5l5syZ3Hfffdx8882ceuqprFixAoDTTjuNyy+/nNmzZzN79uxWzyFZXQZkSRuM4447jgMOOIDHHnuMhoYGJk6cyEknncTjjz/O0KFDGTt2LJMmTepQKL3uuutWCsh/+MMf2HXXXRk8eDDPPPMMX/va1wDo06cPX//619l3333Zd999Oeecc5pGhs855xymTJkCwPjx41m8eDEDBw7ke9/7XtMbtyRp9fTr14+9994bqK4+NGTIEBYsWNDsZOhx48YxefJkALbYYgu6d68mPrzyyitNnwMLFy5k2bJlHHDAAUQEJ5xwQlOdtRGegV0ZPnx4zpw5s6u7IUmS1KkeeeQRhgwZ8r8FXTDFojR37lwOOuggHnroIXbaaSeef/75pmW9e/duuuzm9OnTOemkk3jyySe56qqrOProo5k5cyZnnXUWv/3tbwH44x//yEUXXcSvf/3rlbaz0n4DEXF3Zg5vua4jyJIkSeoSL774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h4svvjjcyz5q1CiGDRtGYmIizZo1IzMzM1wuOTk53Ps8bdo0RvRNZX+xo09iLH0S9RETERE53ZjuXfOkpKS4nJycaq1j5MiRvP7668TFxVUYavDEE0/w85//nG3bttG8eXNmz57N448/Hl6+Zs0aVq5cyWWXXRZ+QQd4T4O44447ePLJJzl48CDDhw9nxYoVnH/++bz00kskJCRUaMeKFSsYMWIE+/fvp2/fvjz11FNV+si1s97EJlGqd3eNVJPw4Bs1Uk95+fV/EJV6gRrbt1I9onXMQhSPW50Pqo/OB2cUM1vhnEspn64hFjUo0rN6AbZs2cKCBQu46KKLwmmVPatXr3wWERERqV66/luDrr322ohvYBs3bhyPPfZYpY89i/RoNYj8yufSG+sGDhzIPffcg3OuTO9w+Fm9b94Eb8LwBoeZ918L6bPsW6e+gcdDv7xFRESkllMPcpTNnz+fVq1a0blz50rzBJ/VG1Qlr3zWs3pFREREylAPchR9/fXXTJo0ibfeeqvSPOWf1RuUmZnJrFmzwvN6Vu83ojvmMGpVi4iISBVQD3IUffLJJ2zevJnOnTuTkJBAQUEBXbp04fPPPw/nqexlHlX2ymc9q1dERESkDAXIUdSxY0e2bt0afrVzKBRi5cqVXHjhhUDkZ/WWOuVXPutZvSIiIiIRKUCuQZW98rkykZ7VW+qUX/k8/wCJT+/jsqYxelaviIiISIAioxpU2SufS5V/wkWPHj1YunRpxLyn/MrnHzc8RmtFREREzk7qQRYRERERCVCALCIiIiISoABZRERERCRAY5CjLHrvsY9KtSIiIiK1nnqQRUREREQCFCCLiIiIiAQoQBYRERERCVCALCIiIiISoABZRERERCRAAbKIiIiISIACZBERERGRAAXIIiIiIiIBCpBFRERERAIUIIuIiIiIBChAFhEREREJUIAsIiIiIhKgAFlEREREJEABsoiIiIhIgAJkEREREZEABcgiIiIiIgEKkEVEREREAhQgi4iIiIgEKEAWEREREQlQgCwiIiIiEqAAWUTkLLZr1y4GDhxI27ZtadeuHR988AFffvklvXv35vLLL6d3797s3LkznH/NmjV0796dpKQkOnbsyIEDBwBYsWIFHTt2JDExkTFjxuCci1jf5MmTSUxMpE2bNrz55ps1so0iIidKAbKIyFns3nvv5aabbuKf//wnq1evpl27dkyZMoVevXqRl5dHr169mDJlCgDFxcXccccd/PGPf2TdunUsXryYc845B4DRo0czffp08vLyyMvLIzs7u0Jd69evJzMzk3Xr1pGdnc2Pf/xjSkpKanR7RUSOhwJkEZGz1J49e3j33XcZNWoUAHXr1uW8884jKyuL9PR0ANLT05k3bx4Ab731Fp06daJz584AnH/++dSpU4eioiL27NlD9+7dMTOGDx8eLhOUlZXFkCFDqFevHpdccgmJiYksX768hrZWROT4KUAWETlLffrpp7Ro0YIf/vCHXHnlldx555189dVXfPHFF8THxwMQHx/P1q1bAdi4cSNmxo033kiXLl147LHHACgsLCQUCoXXGwqFKCwsrFBfYWEhrVu3PmY+EZFoU4AsInKWKi4uZuXKlYwePZpVq1Zx7rnnhodTVJb/vffeY/bs2bz33nu89tprLFy4MOJ4YzOrkHa8+UREok0BsojIWSoUChEKhUhNTQVg4MCBrFy5kgsuuICioiIAioqKiIuLC+e/7rrraN68OQ0aNKBv376sXLmSUChEQUFBeL0FBQW0bNkyYn1btmw5Zj4RkWhTgCwicpa68MILad26NRs2bABg4cKFtG/fnrS0NDIyMgDIyMigX79+ANx4442sWbOGr7/+muLiYv7xj3/Qvn174uPjadSoEUuXLsU5x8yZM8NlgtLS0sjMzOTgwYNs3ryZvLw8unXrVnMbLCJynGKj3QAREYmep59+mqFDh3Lo0CEuvfRSnn/+eY4cOcKgQYOYMWMGF110EXPmzAGgadOm3HfffXz729/GzOjbty/f+973AJg2bRojRoxg//799OnThz59+gAwf/58cnJy+NWvfkVSUhKDBg2iffv2xMbG8uyzz1KnTp2obbuISGUUIIuInMWSk5PJycmpkL5w4cKI+e+44w7uuOOOCukpKSmsXbu2QnpaWhppaWnh+V/+8pf88pe/PIUWi4hUPw2xEBEREREJUIAsIhJlBw4coFu3bnTu3JmkpCQmTJgQXvb000/Tpk0bkpKSGD9+fJly//73v2nYsCFPPPFEOE1vtBMROXUaYiEiEmX16tVj0aJFNGzYkMOHD3PNNdfQp08f9u/fT1ZWFmvWrKFevXrh5xGXGjduXHisb6nSN9pdddVV9O3bl+zs7Ap5gm+0++yzz7jhhhvYuHGjxgOLiPgUIIuIRJmZ0bBhQwAOHz7M4cOHMTOmTZvGgw8+SL169QDCj1sDmDdvHpdeeinnnntuOC34Rjsg/Ea78gFyhTfa2b9Yfldjureu4a+Eibtrtj4ROaotW7YwfPhwPv/8c2JiYrjrrru49957Wb16NXfffTf79u0jISGB2bNn07hxYw4dOsSPfvQjcnJyiImJ4amnnqJHjx6AdzWr9Mbdvn378tRTT0V87vnkyZOZMWMGderU4fe//z033nhjDW91ZBpiISJSC5SUlJCcnExcXBy9e/cmNTWVjRs3smTJElJTU7nuuuv48MMPAfjqq6+YOnVqmaEYcApvtGsUQ+HeyEMxROTsERsby29+8xs+/vhjli5dyrPPPsv69eu58847mTJlCh999BH9+/fn8ccfB+DPf/4zAB999BELFizgZz/7GUeOHAG+uZqVl5dHXl4e2dnZFeoLXs3Kzs7mxz/+MSUlJTW3wUehAFlEpBaoU6cOubm5FBQUsHz5ctauXUtxcTE7d+5k6dKlPP744wwaNAjnHBMmTGDcuHHhXudSp/RGu6rbFBE5TcXHx9OlSxcAGjVqRLt27SgsLGTDhg1ce+21APTu3ZtXXnkF8ALcXr16Ad4VrvPOO4+cnJwyV7PMLHw1q7wKV7MSE1m+fHkNbe3RKUAWEalFzjvvPHr06EF2djahUIgBAwZgZnTr1o2YmBi2b9/OsmXLGD9+PAkJCTz55JM8+uijPPPMMyf/Rru9R2jZSCGySG2wZcsWrr/+etq1a0dSUhJPPfUUAD//+c9p27YtnTp1on///uzatQuA5cuXk5ycTHJyMp07d+a1114Lr+tUbtrNz89n1apVpKam0qFDB+bPnw/AnDlzwuePzp07k5WVRXFxMZs3b2bFihVs2bLl5K9mVZIvGhQgi4hE2bZt28Jfdvv37+ftt9+mbdu23HLLLSxatAiAjRs3cujQIZo3b86SJUvIz88nPz+fsWPH8otf/IJ77rnn5N9ot+MI3VrpBj2R2qCyYQ69e/dm7dq1rFmzhiuuuILJkycD0KFDB3JycsjNzSU7O5sf/ehHFBcXAyc/zGH37t3ceuutPPnkkzRu3JjnnnuOZ599lq5du7J3717q1q0LwMiRIwmFQqSkpDB27Fi+853vEBsbe2pXsyLkiwbdpCciEmVFRUWkp6dTUlISfovdzTffzKFDhxg5ciQdOnSgbt26ZGRkHPPL46TeaNe3PnViaseXksjZLj4+nvj4eKDsMIfvfve74TxXXXUVc+fOBaBBgwbh9AMHDoTPESd70+6ll17Kd7/7XYYOHcqAAQMAaNu2LW+99Rbg/Vh/4403AC+Y/93vfhde13e+8x0uv/xymjZtenJXsyrJFw0KkEVEoqxTp06sWrWqQnrdunX5y1/+ctSyEydOLDN/Um+0m9jkxBstItUuOMwh6LnnnmPw4MHh+WXLljFy5Ej+9a9/MWvWLGJjY09omMNVV10FeD26mzdvpk2bNtx3333hPFu3biUuLo4jR47w61//mrvvvhuAr7/+Gucc5557LgsWLCA2Npb27dsDhK9mpaamMnPmTH76059WqDstLY0f/OAH3HfffXz22Wfk5eXRrVu3U9hjVUcBsoiIiEgts2/fvjLDHEpNmjSJ2NhYhg4dGk5LTU1l3bp1fPzxx6Snp9OnT5+TGubw/vvv88knn3D48GGSk5MBePTRR8nLy+PZZ58FYMCAAfzwhz8EvMD5xhtvJCYmhlatWjFr1qzwuk7qatazz9aa57ErQBYRERGpRQ5wP+qEAAAP5ElEQVQfPsytt95aZpgDQEZGBq+//joLFy6MGOy2a9eOc889l7Vr157UTbvXXHMN3/3ud5k4cWJ4aEape++9t0LZhIQENmzYEHEbTupqVi2im/REREREagnnHKNGjaJdu3ZlhjlkZ2czdepU5s+fX2bc8ebNm8M35f3rX/9iw4YNJCQknPxNu7VomEM0qQdZRKSWSHjwjajUm18/KtWKSATvv/8+s2bNomPHjmWGOYwZM4aDBw/Su3dvwLtR749//CPvvfceU6ZM4ZxzziEmJoY//OEPNG/eHDj9hzlEkwJkERERkVrimmuuiTh+uG/fvhHzDxs2jGHDhkVcdroPc4gmBcgiIiIi4onmU20m7o5e3eVoDLKIiIiISIACZBERERGRAA2xEBEREalldNNudKkHWUREREQkQAGyiIiIiEiAAmQRERERkQAFyCIiIiIiAQqQRUREREQCzugA2cxuMrMNZrbJzB6MdntEREREpPY7YwNkM6sDPAv0AdoDt5tZ++i2SkRERERquzM2QAa6AZucc5865w4BmUC/KLdJRERERGo5c85Fuw3VwswGAjc55+7054cBqc65ewJ57gLu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\n",
"text/plain": [
"<Figure size 720x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"labels = np.array(Community_care['GEO'].drop_duplicates())\n",
"x = np.arange(len(labels))\n",
"\n",
"width = 0.35\n",
"\n",
"fig, ax = plt.subplots(figsize=(10,10))\n",
"rects1 = ax.bar(x - width/2, Community_care['VALUE_IN_2019'].round(-1), width, label='2019')\n",
"rects2 = ax.bar(x + width/2, Community_care['VALUE_IN_2030'].round(-1), width, label='2030')\n",
"\n",
"# Add some text for labels, title and custom x-axis tick labels, etc.\n",
"ax.set_ylabel('Province')\n",
"ax.set_title('The value of \"community care facilities\" business sector in 2019 and 2030')\n",
"ax.set_xticks(x)\n",
"ax.set_xticklabels(labels)\n",
"ax.legend()\n",
"\n",
"\n",
"def autolabel(rects):\n",
" \"\"\"Attach a text label above each bar in *rects*, displaying its height.\"\"\"\n",
" for rect in rects:\n",
" height = rect.get_height()\n",
" ax.annotate('{}'.format(height),\n",
" xy=(rect.get_x() + rect.get_width() / 2, height),\n",
" xytext=(0, 3), # 3 points vertical offset\n",
" textcoords=\"offset points\",\n",
" ha='center', va='bottom')\n",
"\n",
"\n",
"autolabel(rects1)\n",
"autolabel(rects2)\n",
"\n",
"fig.tight_layout()\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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Hsu9997LRhttxHPPPVc9r2eeeYbhw4fz/vvv06VLF0aNGsX666+/gltIKs87CZIk1WHSpEnce++9PPXUU0yfPp0HHniAzTbbbIXn+8knn6zwPK6//np+97vfFQICZCHh1ltvXeH5N8byrM+QIUNWaUAAuOyyyzjppJMAuO6665g+fTo77LADf/vb30gpceGFF3L22WdXj9+hQwc6duzIY489tsy8Ntlkk0YFBMhCwosvvsizzz7LkiVLuO666wC47777mDlzJjNnzuTaa6/lBz/4QfU0Rx99dNmQcvzxx3PppZfy7LPP8u1vf5tf//rXjSqL1BiGBEmS6jBv3jzat2/PWmutBUD79u3ZZJNNqodfeeWV9O7dm+7du/Piiy8CMHnyZPr3788OO+xA//79eemll4Dsiv7QoUM54IADGDx4MAC//vWv6du3Lz169ODcc88tW4bRo0fTvXt3unXrxllnnQXABRdcwMSJExk+fDhnnHFGYfwRI0bw6KOP0qtXL37zm98A2VXwvffem6222oozzzyzetxx48axyy670Lt3b4YOHcr777+/zPIHDRrEaaedRv/+/enWrRuTJ08G4LzzzuOEE05g8ODBHHnkkSxdupRjjjmG7t27s8MOO1SHl5122onnn3++ML+pU6cycuRI/vM//xPIToxPOeUU+vfvz5Zbblk4Gb/sssvo3r07PXv2rA4V//znP9l7773ZcccdGTBgQPW2L/Xyyy+z1lprFe70fPzxx3z44Ye0bNmSm2++mX333ZcNNtigMN1BBx3EqFGjlpnfrFmz6NatG5Dty4MPPrjsNi217777EhFEBP369WP27NkA3H333Rx55JFEBDvvvDPvvvsu8+bNA2DgwIFsuOGGy8zrpZdeYuDAgQDsueee3HXXXWWXKa0MhgRJkuowePBg3nzzTbbeemtOOukkHn744cLw9u3b89RTT/GDH/yAyy+/HIBtt92WRx55hKeffpoLLriAn/3sZ9XjT5o0iRtvvJEHH3yQcePGMXPmTCZPnsy0adOYOnUqjzzySGH+c+fO5ayzzuLBBx9k2rRpTJkyhbFjx3LOOefQp08fRo0atcwV5UsvvZQBAwYwbdo0Tj/9dACmTZvGmDFjePbZZxkzZgxvvvkmCxYs4KKLLuKBBx7gqaeeok+fPtWP3dT0wQcf8Pjjj/O73/2OY489trr/1KlTufvuu7n11lu5+uqrAXj22WcZPXo0Rx11FEuXLmXYsGHcfvvtQBa65s6dy4477rjMMubNm8fEiRO59957q8PAfffdx9ixY3niiSd45plnqk/GTzjhBK688kqmTp3K5ZdfXn23oNRjjz1W/QgPwE9+8hN23nln5s+fz6677sqNN95Ydro+ffrw6KOPlt0Opcpt09p8/PHH3Hzzzey9994AzJkzp3BHqlOnTsyZM6fO5XXr1o177rkHyB41q2t50ooyJEiSVId1112XqVOncu2119KhQwe+973vMXLkyOrhBx98MAA77rgjs2bNAuC9995j6NChdOvWjdNPP71wFX3PPfesvko8btw4xo0bxw477EDv3r158cUXmTlzZmH5U6ZMYdCgQXTo0IEWLVpw2GGHLRMkGmKPPfagbdu2tG7dmu22247XX3+df/zjH8yYMYNdd92VXr16ceONN/L666+Xnf7QQw8FsqvcixYt4t133wWyR4batGkDwMSJEzniiCOALCh17tyZl19+me9+97vccccdANx+++0MHTq07DIOOuggmjVrxnbbbcdbb70FwAMPPMAxxxzD2muvDcCGG27I+++/z+OPP87QoUPp1asXJ554YvVV+FLz5s2jQ4cO1d1HHHEETz/9NLfccgtXXHEFp5xyCvfddx+HHHIIp59+Op999hkAG220EXPnzl2ubVqbk046iYEDBzJgwAAg+7sGNdX360Q33HADV199NTvuuCOLFy+mVatW9ZZRWl6+uCxJUj2aN2/OoEGDGDRoEN27d+fGG2/k6KOPBqh+DKl58+bVz+WfffbZ7L777vz5z39m1qxZDBo0qHpe66yzTvXnlBI//elPOfHEE2tddrmTyeVRVc7SsqaU2HPPPRk9enS909c8ga3qrrk+5Wy66aa0a9eO6dOnM2bMGK655pp6y1g1r5TSMsv+7LPP+MpXvsK0adPqLHObNm147733luk/d+5cpkyZwrnnnku/fv2YNGkSP//5zxk/fjx77rknS5curQ4+dSm3Tcs5//zzmT9/fmG9O3XqVLgTMHv27MJjbOVsu+22jBs3DsgepfrLX1buS/xSKe8kSJJUh5deeqlwdX/atGl07ty5zmnee+89Nt10U4DCXYea9tprL2644Ybq9wDmzJnD22+/XRhnp5124uGHH2bBggV8+umnjB49mt12263O5a+33nosXry4znEAdt55Zx577DFeeeUVAD788ENefvnlsuOOGTMGyO4WtG3blrZt2y4zzsCBA6uf5X/55Zd544032GabbQAYNmwYl112Ge+99x7du3evt2xVBg8ezA033MCHH34IwDvvvMP666/PFltsUX13IqXEM888s8y0X//616vXrdTZZ5/NhRdeCMCSJUuICJo1a1a9jJdffrn63YMVdd111/G3v/2N0aNH06zZ56ddQ4YM4aabbiKlxD/+8Q/atm1Lx44d65xX1bHx2WefcdFFFzF8+PCVUkapHO8kSJK+VBryk8YEeKgAACAASURBVKUr0/vvv8/JJ5/Mu+++S4sWLejatSvXXnttndOceeaZHHXUUVxxxRV885vfrHW8wYMH88ILL7DLLrsA2aNNt9xyCxtttFH1OB07duSSSy5h9913J6XEvvvuy4EHHljn8nv06EGLFi3o2bMnRx999DIv5lbp0KEDI0eO5NBDD+Wjjz4C4KKLLmLrrbdeZtwNNtiA/v37s2jRIm644Yay8zvppJMYPnw43bt3p0WLFowcObL6avshhxzCqaeeWvgloYbYe++9mTZtGn369KFVq1bsu+++/PKXv2TUqFH84Ac/4KKLLuLjjz9m2LBh9OzZszDtwIED+fGPf1y4G/H0008DsMMOOwBw3HHH0b17dzbbbLPqF8cfeugh9ttv5Rxnw4cPp3PnztX7+OCDD+acc85h33335a9//Stdu3Zl7bXX5o9//GP1NIceeigTJkxgwYIFdOrUifPPP5/jjjuO0aNHV7/3cfDBB3PMMceslDJK5cTKuo2pNUufPn3Sk08+WeliSFoDvPDCC3z961+vdDHWaIMGDeLyyy+nT58+lS5Ko5166qkccMABfOtb32rwNAMHDuTuu++uNVw1ZeXqS0RMTSl9+XaeKsrHjSRJ0mrrZz/7WfVjRA0xf/58fvSjH30pA4K0Mvm4kSRJqtOECRMqXYTltvHGGzNkyJAGj9+hQwcOOuigVVgi6cvBOwmSJEmSCgwJkiRJkgoMCZIkSZIKDAmSJEmSCgwJkqQvl/Partx/DdC8eXN69epFt27dGDp0aKN+LWdl+u1vf9voZT/66KNsv/329OrViyVLlhSGvfXWW3z/+99nyy23ZMcdd2SXXXbhz3/+88osMu+++y6/+93vqrsnTJjA/vvvX+90gwYNYnl/anvUqFH06NGDHj160L9//8IfWrv//vvZZptt6Nq1K5deeml1/7PPPpsePXrQq1cvBg8ezNy5c6uHXXLJJXTt2pVtttmGv/3tb8tVJunLxpAgSVI92rRpw7Rp03juuedo1aoVf/jDHxo87aeffrrSyrE8IWHUqFH85Cc/Ydq0abRp06a6f0qJgw46iIEDB/Lqq68ydepUbrvtNmbPnr3MPD755JPlLnPNkPBF2GKLLXj44YeZPn06Z599NieccAKQ7Ysf/vCH3HfffcyYMYPRo0czY8YMAM444wymT5/OtGnT2H///bngggsAmDFjBrfddhvPP/88999/PyeddNJK3adSU2VIkCSpEQYMGMArr7wCwC233EK/fv3o1asXJ554YvXJ47rrrss555zDTjvtxKRJk5gyZQr9+/enZ8+e9OvXj8WLF/Ppp59yxhln0LdvX3r06ME111wDZFfaBw0axCGHHMK2227LYYcdRkqJ//7v/2bu3Lnsvvvu7L777suUa/z48eywww50796dY489lo8++ojrrruO22+/nQsuuIDDDjusMP6DDz5Iq1atGD58eHW/zp07c/LJJwMwcuRIhg4dygEHHMDgwYNJKXHGGWfQrVs3unfvzpgxY4Dsryzfc889AHz729/m2GOPBeD666/nF7/4BSNGjOCf//wnvXr14owzzgCyv2Jdc/3KueWWW+jfvz/dunVj8uTJfPbZZ2y11VbMnz8fgM8++4yuXbuyYMGCwnT9+/ev/jsHO++8c3XwmTx5Ml27dmXLLbekVatWDBs2jLvvvhuA9ddfv3r6Dz74oPovNN99990MGzaMtdZaiy222IKuXbsyefLksuWVVif+nQRJkhrok08+4b777mPvvffmhRdeYMyYMTz22GO0bNmSk046iVGjRnHkkUfywQcf0K1bNy644AL+/e9/s+222zJmzBj69u3LokWLaNOmDddffz1t27ZlypQpfPTRR+y6664MHjwYgKeffprnn3+eTTbZhF133ZXHHnuMU045hSuuuIKHHnqI9u3bF8q1dOlSjj76aMaPH8/WW2/NkUceye9//3tOO+00Jk6cyP77788hhxxSmOb555+nd+/eda7vpEmTmD59OhtuuCF33XUX06ZN45lnnmHBggX07duXgQMHMnDgQB599FGGDBnCnDlzmDdvHgATJ05k2LBhHH/88Tz33HNMmzYNyEJQufX7xje+sczyP/jgAx5//HEeeeQRjj32WJ577jkOP/xwRo0axWmnncYDDzxAz549l9kepa6//nr22WcfAObMmcNmm21WPaxTp0488cQT1d0///nPuemmm2jbti0PPfRQ9TQ777xzYZo5c+bUud2k1YF3ElZDEXFDRLwdEc+V9NswIv4eETPz/zcoGfbTiHglIl6KiL0qU2pJarqWLFlCr1696NOnD5tvvjnHHXcc48ePZ+rUqfTt25devXoxfvx4Xn31VSB7h+E73/kOAC+99BIdO3akb9++QHbFukWLFowbN46bbrqJXr16sdNOO7Fw4UJmzpwJQL9+/ejUqRPNmjWjV69ezJo1q87yvfTSS2yxxRZsvfXWABx11FE88sgjjVrHH/7wh/Ts2bO6nAB77rknG264IZCd9B966KE0b96cjTfemN12240pU6YwYMAAHn30UWbMmMF2223HxhtvzLx585g0aRL9+/cvu6yGrt+hhx4KwMCBA1m0aBHvvvsuxx57LDfddBMAN9xwA8ccc0yt6/TQQw9x/fXX86tf/Qqg7B2LqjsGABdffDFvvvkmhx12GFdddVWDppFWV95JWD2NBK4CbirpNwIYn1K6NCJG5N1nRcR2wDBge2AT4IGI2Dql5AOXkpSreiehVEqJo446iksuuWSZ8Vu3bk3z5s2rxyt3UplS4sorr2SvvYrXZiZMmMBaa61V3d28efN63wmo7XGdumy//fbcdddd1d1XX301CxYsoE+fPtX91llnnXqXsemmm/Kvf/2L+++/n4EDB/LOO+9w++23s+6667LeeuuxcOHCZaZp6PrV3G4RwWabbcbGG2/Mgw8+yBNPPMGoUaPKTjt9+nSOP/547rvvPtq1awdkdwHefPPN6nFmz57NJptsssy03//+99lvv/04//zzGzyNtLrxTsJqKKX0CPBOjd4HAjfmn28EDirpf1tK6aOU0mvAK0C/L6SgkvQltscee3DnnXfy9ttvA/DOO+/w+uuvLzPetttuy9y5c5kyZQoAixcv5pNPPmGvvfbi97//PR9//DEAL7/8Mh988EGdy1xvvfVYvHhx2WXMmjWr+l2Jm2++md12263OeX3zm99k6dKl/P73v6/uV9dL0QMHDmTMmDF8+umnzJ8/n0ceeYR+/bKvi1122YXf/va3DBw4kAEDBnD55ZczYMCAOsvcEFXvPUycOJG2bdvStm32a1THH388hx9+ON/97nerw1ipN954g4MPPpibb765+u4KQN++fZk5cyavvfYa//73v7ntttsYMmQIQPVdHIB77rmHbbfdFoAhQ4Zw22238dFHH/Haa68xc+bM6vWWVmfeSVhzbJxSmgeQUpoXERvl/TcF/lEy3uy83zIi4gTgBIDNN998FRZVKuoy4i+rdP6zLt1vlc5fK9l571W6BABst912XHTRRQwePJjPPvuMli1bcvXVV9O5c+fCeK1atWLMmDGcfPLJLFmyhDZt2vDAAw9w/PHHM2vWLHr37k1KiQ4dOjB27Ng6l3nCCSewzz770LFjx+pn5iG7c/HHP/6RoUOH8sknn9C3b9/CC8nlRARjx47l9NNP57LLLqNDhw6ss8461Y/m1PTtb3+bSZMm0bNnTyKCyy67jK9+9atA9jL3uHHj6Nq1K507d+add96pDgnt2rVj1113pVu3buyzzz7st1/D69sGG2xA//79WbRoETfccEN1/yFDhnDMMcfU+qjRBRdcwMKFCznppJMAaNGiBU8++SQtWrTgqquuYq+99uLTTz/l2GOPZfvttwdgxIgRvPTSSzRr1ozOnTtX/4LV9ttvz3e/+1222247WrRowdVXX102mEirm1ieW5Rq+iKiC3BvSqlb3v1uSukrJcP/lVLaICKuBiallG7J+18P/DWldFeZ2Vbr06dPWt7fr5Yay5CwZnvhhRf4+te/XuliqAl58sknOf3003n00UcrXZQmp1x9iYipKaU+tUwileXjRmuOtyKiI0D+/9t5/9nAZiXjdQLmIklSE3TppZfyne98p+y7IJJWHkPCmuMe4Kj881HA3SX9h0XEWhGxBbAV4A9AS5KapBEjRvD666+X/clUSSuP7ySshiJiNDAIaB8Rs4FzgUuB2yPiOOANYChASun5iLgdmAF8AvzQXzaS1NTU9gtBkj7nI+RamQwJq6GU0qG1DNqjlvEvBi5edSWSpOXXunVrFi5cSLt27QwKUi1SSixcuJDWrVtXuihaTRgSJElNWqdOnZg9ezbz58+vdFGkJq1169Z06tSp0sXQasKQIElq0lq2bMkWW2xR6WJI0hrFF5clSZIkFRgSJEmSJBUYEiRJkiQVGBIkSZIkFRgSJEmSJBUYEiRJ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\n",
"text/plain": [
"<Figure size 720x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"share_of_industry = Community_care['VALUE_IN_2019']*100/float(Community_care.loc[Community_care['GEO']== 'Canada','VALUE_IN_2019'])\n",
"fig2, ax2 = plt.subplots(figsize=(10,10))\n",
"rects1 = ax2.bar(x - width/2, share_of_industry, width, label='Share of the province (%) in 2019')\n",
"rects3 = ax2.bar(x + width/2, Community_care['Percent_of_Growth'].round(-1), width, label='Percent of Growth by 2030')\n",
"\n",
"# Add some text for labels, title and custom x-axis tick labels, etc.\n",
"ax2.set_ylabel('Province')\n",
"ax2.set_title('The share of each province from the \"community care facilities for the elderly\" business sector in 2019 and its growth by 2030')\n",
"ax2.set_xticks(x)\n",
"ax2.set_xticklabels(labels)\n",
"ax2.legend()\n",
"\n",
"autolabel(rects1)\n",
"autolabel(rects3)\n",
"\n",
"fig2.tight_layout()\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"57 12.195021\n",
"386 13.852950\n",
"742 100.000000\n",
"1122 3.007059\n",
"2113 37.757503\n",
"2608 24.972134\n",
"2963 1.844528\n",
"Name: VALUE_IN_2019, dtype: float64"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"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.6.10"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment