{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Web Scraping and EDA in Python 3 using Requests, BeautifulSoup, Pandas, Matplotlib, Seaborn" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Source: \n", "## Thomas Brinkhoff: City Population, http://www.citypopulation.de\n", "\n", "In this jupyter notebook I will try to explain how to scrape content from a website using BeautifulSoup and Requests libraries.\n", "\n", "Please note there might be some policies and rules for a website for using the data. So before you do the web scraping please do not forget to read the data usage policies.\n", "\n", "For this article's purpose I am scraping the data from www.citypopulation.de website which has population statistics for different countries.\n", "\n", "Data use policy: http://citypopulation.de/termsofuse.html (DATA -> Population Data)\n", "\n", "\n", "\n", "### The data that I will be extracting in this jupyter notebook is for Oceania -> NEW ZEALAND http://citypopulation.de/en/newzealand/\n", "- I am only scraping data for North and South Islands (excluded Chatham islands)\n", "- North island: http://citypopulation.de/en/newzealand/northisland/\n", "- South island: http://citypopulation.de/en/newzealand/southisland/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "## Let us scrape the website and fetch the information using requests and beautifulsoup libraries\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Scraping website" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Python environment versions (for reference)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python 3.7.0\n" ] } ], "source": [ "!python --version" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pip 19.3.1 from c:\\python37\\lib\\site-packages\\pip (python 3.7)\n", "\n" ] } ], "source": [ "!pip --version" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# Importing libraries\n", "import requests\n", "import bs4\n", "from bs4 import BeautifulSoup\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requests version: 2.19.1\n", "BeautifulSoup version: 4.7.1\n", "Pandas version: 0.23.4\n" ] } ], "source": [ "print('Requests version: {}'.format(requests.__version__))\n", "print('BeautifulSoup version: {}'.format(bs4.__version__))\n", "print('Pandas version: {}'.format(pd.__version__))" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "# URLs to scrape\n", "# This is a dictionary object with URLs. \n", "# We will use this dictionary to scrape information for each url at a time.\n", "urls = {\n", " 'north': 'http://citypopulation.de/en/newzealand/northisland',\n", " 'south': 'http://citypopulation.de/en/newzealand/southisland/'\n", "}" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "<Response [200]>\n" ] } ], "source": [ "# Using requests to get the information\n", "output = requests.get(urls['north'])\n", "print(output)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### If you see a HTTP status code 200, meaning our request was a success\n", "\n", "#### Reference link here: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'<!DOCTYPE html>\\r\\n<html lang=\"en\">\\r\\n<head>\\r\\n<meta charset=\"utf-8\">\\r\\n<meta name=\"description\" content=\"North Island (New Zealand): Regions & Settlements with population statistics, charts and maps.\"'" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# What's in the output?\n", "# Let's output upto 200 characters \n", "output.text[:200]" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "233654\n", "<class 'str'>\n" ] } ], "source": [ "print(len(output.text))\n", "print(type(output.text))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### As you see the output above, output.text has the html tags and content of the webpage.\n", "\n", "#### Please know that you need some understanding of HTML and tags.\n", "\n", "#### Now let's use BeautifulSoup to parse the output.text string." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "bs_output = BeautifulSoup(markup=output.text, features=\"html.parser\")" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "7" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(bs_output.contents)" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "list" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(bs_output.contents)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['html', '\\n']" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bs_output.contents[:2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Feel free to print the whole output of the contents\n", "#### bs_output.contents displays the html tags and content of the URL\n", "\n", "The beauty of BeautifulSoup's parser is that you can interact with each elements and parts of html tags including classes and id values.\n", "\n", "You might wonder wonder what is the difference between requests' output.text and bs4's bs_output.contents?\n", "- Well requests output is a single string vs bs4's output is a list of objects\n", "\n", "Example below:" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[<a href=\"/\">Home</a>,\n", " <a href=\"/Oceania.html\" itemprop=\"url\"><span itemprop=\"name\">Oceania</span></a>,\n", " <a href=\"/en/newzealand/\" itemprop=\"url\"><span itemprop=\"name\">New Zealand</span></a>,\n", " <a href=\"javascript:cp.changePageLang('en','de')\"><img alt=\"\" src=\"/images/icons/de.svg\" title=\"Deutsch\"/></a>,\n", " <a href=\"javascript:openMap()\"><img alt=\"Show Map\" id=\"smap\" src=\"/images/smaps/newzealand-cities.png\" title=\"Show Map\"/></a>]" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bs_output.find_all('a')[:5]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### You see the output above? \n", "\n", "I've printed 5 items from the list output of BeautifulSoup's find_all function. I passed <a> tag as 'a' to find all <a> tag elements in the bs_output. Likewise you can extract and play around with all the html tags and their contents.\n", " \n", "#### Before we do further extraction let us try to understand which parts of our URL page we would like to extract the data from." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2. Exploring HTML content and extraction\n", "\n", "" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [], "source": [ "# Our data is in the <table> tag with id='ts'\n", "#\n", "table_output = bs_output.find(name='table', attrs={'id': 'ts'})" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['\\n', <thead>\n", " <tr id=\"tsh\"><th class=\"rname\" data-coltype=\"name\" onclick=\"javascript:sort('ts',0,false)\"><a href=\"javascript:sort('ts',0,false)\">Name</a></th>\n", " <th class=\"rstatus\" data-coltype=\"status\" onclick=\"javascript:sort('ts',1,false)\"><a href=\"javascript:sort('ts',1,false)\">Status</a></th><th class=\"radm rarea\" data-coltype=\"adm\" onclick=\"javascript:sort('ts',2,false)\"><a href=\"javascript:sort('ts',2,false)\">Region</a></th><th class=\"rpop prio5\" data-coldate=\"1996-06-30\" data-colhead=\"E 1996-06-30\" data-coltype=\"pop\" onclick=\"javascript:sort('ts',3,true)\"><a href=\"javascript:sort('ts',3,true)\">Population</a><br/><span class=\"unit\">Estimate<br/>1996-06-30</span></th><th class=\"rpop prio4\" data-coldate=\"2001-06-30\" data-colhead=\"E 2001-06-30\" data-coltype=\"pop\" onclick=\"javascript:sort('ts',4,true)\"><a href=\"javascript:sort('ts',4,true)\">Population</a><br/><span class=\"unit\">Estimate<br/>2001-06-30</span></th><th class=\"rpop prio3\" data-coldate=\"2006-06-30\" data-colhead=\"E 2006-06-30\" data-coltype=\"pop\" onclick=\"javascript:sort('ts',5,true)\"><a href=\"javascript:sort('ts',5,true)\">Population</a><br/><span class=\"unit\">Estimate<br/>2006-06-30</span></th><th class=\"rpop prio2\" data-coldate=\"2013-06-30\" data-colhead=\"E 2013-06-30\" data-coltype=\"pop\" onclick=\"javascript:sort('ts',6,true)\"><a href=\"javascript:sort('ts',6,true)\">Population</a><br/><span class=\"unit\">Estimate<br/>2013-06-30</span></th><th class=\"rpop prio1\" data-coldate=\"2018-06-30\" data-colhead=\"E 2018-06-30\" data-coltype=\"pop\" onclick=\"javascript:sort('ts',7,true)\"><a href=\"javascript:sort('ts',7,true)\">Population</a><br/><span class=\"unit\">Estimate<br/>2018-06-30</span></th><th class=\"sc\" data-coltype=\"other\"> </th></tr>\n", " </thead>]" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "table_output.contents[:2] # prints a list of tag elements" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Name',\n", " 'Status',\n", " 'Region',\n", " 'PopulationEstimate1996-06-30',\n", " 'PopulationEstimate2001-06-30',\n", " 'PopulationEstimate2006-06-30',\n", " 'PopulationEstimate2013-06-30',\n", " 'PopulationEstimate2018-06-30',\n", " '\\xa0']" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Extracting column names from <tr> tag\n", "[x.text for x in table_output.find_all('th')] # outputs a list of values of the <th> elements in the table output" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Notice the output above, we don't need the last value" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Name',\n", " 'Status',\n", " 'Region',\n", " 'PopulationEstimate1996-06-30',\n", " 'PopulationEstimate2001-06-30',\n", " 'PopulationEstimate2006-06-30',\n", " 'PopulationEstimate2013-06-30',\n", " 'PopulationEstimate2018-06-30']" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Append the column names into table_columns empty list\n", "#\n", "table_columns = [x.get_text() for x in table_output.find_all('th')][:-1]\n", "table_columns" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [], "source": [ "# Extracting table output which is in <tbody> tag\n", "#\n", "table_body = table_output.find_all('tbody')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Feel free to print the output of table_body, it will be long output result" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [], "source": [ "north_island_output = []\n", "for item in table_body:\n", " rows = item.find_all('tr') # extracts <tr> elements in <tbody>\n", " for row in rows:\n", " td = row.find_all('td') # extracts <td> elements in each row i.e. <tr>\n", " td_values = [val.text for val in td] # extracts value of each <td>\n", " north_island_output.append(td_values) # appends values to the list" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Algies Bay',\n", " 'Rural Settlement',\n", " 'Auckland',\n", " '550',\n", " '690',\n", " '800',\n", " '870',\n", " '980',\n", " '→']" ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "north_island_output[1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Again, in the output above we don't need the last value, so let's fix that" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [], "source": [ "north_island_output = []\n", "for item in table_body:\n", " rows = item.find_all('tr') # extracts <tr> elements in <tbody>\n", " for row in rows:\n", " td = row.find_all('td') # extracts <td> elements in each row i.e. <tr>\n", " td_values = [val.text for val in td] # extracts value of each <td>\n", " north_island_output.append(td_values[:-1]) # appends values to the list, also excludes the last value that is not needed" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Algies Bay',\n", " 'Rural Settlement',\n", " 'Auckland',\n", " '550',\n", " '690',\n", " '800',\n", " '870',\n", " '980']" ] }, "execution_count": 101, "metadata": {}, "output_type": "execute_result" } ], "source": [ "north_island_output[1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### That's it, we have our table column names and the table data append those two into a dataframe" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Name',\n", " 'Status',\n", " 'Region',\n", " 'PopulationEstimate1996-06-30',\n", " 'PopulationEstimate2001-06-30',\n", " 'PopulationEstimate2006-06-30',\n", " 'PopulationEstimate2013-06-30',\n", " 'PopulationEstimate2018-06-30']" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "table_columns" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [], "source": [ "north_data = pd.DataFrame(\n", " data=north_island_output,\n", " columns=table_columns\n", ")" ] }, { "cell_type": "code", "execution_count": 104, "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>Name</th>\n", " <th>Status</th>\n", " <th>Region</th>\n", " <th>PopulationEstimate1996-06-30</th>\n", " <th>PopulationEstimate2001-06-30</th>\n", " <th>PopulationEstimate2006-06-30</th>\n", " <th>PopulationEstimate2013-06-30</th>\n", " <th>PopulationEstimate2018-06-30</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Ahipara</td>\n", " <td>Rural Settlement</td>\n", " <td>Northland</td>\n", " <td>930</td>\n", " <td>1,050</td>\n", " <td>1,120</td>\n", " <td>1,130</td>\n", " <td>1,180</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Algies Bay</td>\n", " <td>Rural Settlement</td>\n", " <td>Auckland</td>\n", " <td>550</td>\n", " <td>690</td>\n", " <td>800</td>\n", " <td>870</td>\n", " <td>980</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>Arapuni</td>\n", " <td>Rural Settlement</td>\n", " <td>Waikato</td>\n", " <td>290</td>\n", " <td>260</td>\n", " <td>230</td>\n", " <td>250</td>\n", " <td>260</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>Ashhurst</td>\n", " <td>Small Urban Area</td>\n", " <td>Manawatu-Wanganui</td>\n", " <td>2,530</td>\n", " <td>2,520</td>\n", " <td>2,510</td>\n", " <td>2,750</td>\n", " <td>2,990</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>Athenree</td>\n", " <td>Rural Settlement</td>\n", " <td>Bay of Plenty</td>\n", " <td>510</td>\n", " <td>530</td>\n", " <td>630</td>\n", " <td>700</td>\n", " <td>740</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Name Status Region \\\n", "0 Ahipara Rural Settlement Northland \n", "1 Algies Bay Rural Settlement Auckland \n", "2 Arapuni Rural Settlement Waikato \n", "3 Ashhurst Small Urban Area Manawatu-Wanganui \n", "4 Athenree Rural Settlement Bay of Plenty \n", "\n", " PopulationEstimate1996-06-30 PopulationEstimate2001-06-30 \\\n", "0 930 1,050 \n", "1 550 690 \n", "2 290 260 \n", "3 2,530 2,520 \n", "4 510 530 \n", "\n", " PopulationEstimate2006-06-30 PopulationEstimate2013-06-30 \\\n", "0 1,120 1,130 \n", "1 800 870 \n", "2 230 250 \n", "3 2,510 2,750 \n", "4 630 700 \n", "\n", " PopulationEstimate2018-06-30 \n", "0 1,180 \n", "1 980 \n", "2 260 \n", "3 2,990 \n", "4 740 " ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "north_data.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### We can follow the same procedure above for south island data as well. \n", "\n", "### For a better approach let us put the whole process using a function." ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [], "source": [ "# Importing libraries\n", "import requests\n", "from bs4 import BeautifulSoup\n", "import pandas as pd\n", "\n", "# Variables\n", "south_island_output = []\n", "north_island_output = []\n", "table_columns = []\n", "\n", "# URLs for North and South islands\n", "urls = {\n", " 'north': 'http://citypopulation.de/en/newzealand/northisland',\n", " 'south': 'http://citypopulation.de/en/newzealand/southisland/'\n", "}\n", "\n", "# Function that downloads the data\n", "def download_data():\n", " \"\"\"\n", " Function extracts td values by looping each child element of the parent.\n", " \n", " Two empty lists south_island_output and north_island_output are initialised.\n", " \n", " A urls dictionary object with north island and south island urls is also initialised.\n", " \n", " Pseudo code:\n", " - for each item in the dictionary\n", " - connect to the url\n", " - if success (response code == 200), then loop through the page data\n", " - for each row_item in body (loop - look for <tr> element):\n", " - for each row in the row_item (loop and look for <td> element):\n", " - for each <td> element, extract the text value\n", " - finally append those text values into output list\n", " \"\"\" \n", " for url in urls:\n", " print(url, urls[url])\n", " \n", " ## response\n", " response = requests.get(urls[url])\n", " \n", " if response.status_code == 200:\n", " print('Response code is 200. Success!')\n", " try:\n", " ## web scraping\n", " soup = BeautifulSoup(response.text, \"html.parser\")\n", " table = soup.find(name='table', attrs={'id': 'ts'})\n", " table_columns.append([x.get_text() for x in table.find_all('th')][:-1])\n", " body = table.find_all('tbody')\n", " for item in body:\n", " rows = item.find_all('tr') \n", " for row in rows:\n", " td = row.find_all('td')\n", " td_values = [val.text for val in td]\n", " if url == 'north':\n", " north_island_output.append(td_values[:-1]) # excluding last column that has an arrow as a value\n", " else:\n", " south_island_output.append(td_values[:-1]) # excluding last column that has an arrow as a value\n", " except Exception as ex:\n", " print(str(ex))\n", " else:\n", " print('Oops! {0}'.format(response.status_code))" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "north http://citypopulation.de/en/newzealand/northisland\n", "Response code is 200. Success!\n", "south http://citypopulation.de/en/newzealand/southisland/\n", "Response code is 200. Success!\n" ] } ], "source": [ "download_data()" ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Name',\n", " 'Status',\n", " 'Region',\n", " 'PopulationEstimate1996-06-30',\n", " 'PopulationEstimate2001-06-30',\n", " 'PopulationEstimate2006-06-30',\n", " 'PopulationEstimate2013-06-30',\n", " 'PopulationEstimate2018-06-30']" ] }, "execution_count": 108, "metadata": {}, "output_type": "execute_result" } ], "source": [ "table_columns[0]" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [], "source": [ "# North island dataframe\n", "north_island_data = pd.DataFrame(data=north_island_output, columns=table_columns[0])\n", "\n", "# South island dataframe\n", "south_island_data = pd.DataFrame(data=south_island_output, columns=table_columns[0])" ] }, { "cell_type": "code", "execution_count": 111, "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>Name</th>\n", " <th>Status</th>\n", " <th>Region</th>\n", " <th>PopulationEstimate1996-06-30</th>\n", " <th>PopulationEstimate2001-06-30</th>\n", " <th>PopulationEstimate2006-06-30</th>\n", " <th>PopulationEstimate2013-06-30</th>\n", " <th>PopulationEstimate2018-06-30</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Ahipara</td>\n", " <td>Rural Settlement</td>\n", " <td>Northland</td>\n", " <td>930</td>\n", " <td>1,050</td>\n", " <td>1,120</td>\n", " <td>1,130</td>\n", " <td>1,180</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Algies Bay</td>\n", " <td>Rural Settlement</td>\n", " <td>Auckland</td>\n", " <td>550</td>\n", " <td>690</td>\n", " <td>800</td>\n", " <td>870</td>\n", " <td>980</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>Arapuni</td>\n", " <td>Rural Settlement</td>\n", " <td>Waikato</td>\n", " <td>290</td>\n", " <td>260</td>\n", " <td>230</td>\n", " <td>250</td>\n", " <td>260</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>Ashhurst</td>\n", " <td>Small Urban Area</td>\n", " <td>Manawatu-Wanganui</td>\n", " <td>2,530</td>\n", " <td>2,520</td>\n", " <td>2,510</td>\n", " <td>2,750</td>\n", " <td>2,990</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>Athenree</td>\n", " <td>Rural Settlement</td>\n", " <td>Bay of Plenty</td>\n", " <td>510</td>\n", " <td>530</td>\n", " <td>630</td>\n", " <td>700</td>\n", " <td>740</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Name Status Region \\\n", "0 Ahipara Rural Settlement Northland \n", "1 Algies Bay Rural Settlement Auckland \n", "2 Arapuni Rural Settlement Waikato \n", "3 Ashhurst Small Urban Area Manawatu-Wanganui \n", "4 Athenree Rural Settlement Bay of Plenty \n", "\n", " PopulationEstimate1996-06-30 PopulationEstimate2001-06-30 \\\n", "0 930 1,050 \n", "1 550 690 \n", "2 290 260 \n", "3 2,530 2,520 \n", "4 510 530 \n", "\n", " PopulationEstimate2006-06-30 PopulationEstimate2013-06-30 \\\n", "0 1,120 1,130 \n", "1 800 870 \n", "2 230 250 \n", "3 2,510 2,750 \n", "4 630 700 \n", "\n", " PopulationEstimate2018-06-30 \n", "0 1,180 \n", "1 980 \n", "2 260 \n", "3 2,990 \n", "4 740 " ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "north_island_data.head()" ] }, { "cell_type": "code", "execution_count": 112, "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>Name</th>\n", " <th>Status</th>\n", " <th>Region</th>\n", " <th>PopulationEstimate1996-06-30</th>\n", " <th>PopulationEstimate2001-06-30</th>\n", " <th>PopulationEstimate2006-06-30</th>\n", " <th>PopulationEstimate2013-06-30</th>\n", " <th>PopulationEstimate2018-06-30</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Ahaura</td>\n", " <td>Rural Settlement</td>\n", " <td>West Coast</td>\n", " <td>120</td>\n", " <td>140</td>\n", " <td>110</td>\n", " <td>100</td>\n", " <td>80</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Akaroa</td>\n", " <td>Rural Settlement</td>\n", " <td>Canterbury</td>\n", " <td>680</td>\n", " <td>610</td>\n", " <td>620</td>\n", " <td>670</td>\n", " <td>630</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>Alexandra</td>\n", " <td>Small Urban Area</td>\n", " <td>Otago</td>\n", " <td>4,690</td>\n", " <td>4,480</td>\n", " <td>4,940</td>\n", " <td>4,920</td>\n", " <td>5,510</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>Allanton</td>\n", " <td>Rural Settlement</td>\n", " <td>Otago</td>\n", " <td>220</td>\n", " <td>240</td>\n", " <td>260</td>\n", " <td>260</td>\n", " <td>290</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>Amberley</td>\n", " <td>Small Urban Area</td>\n", " <td>Canterbury</td>\n", " <td>1,050</td>\n", " <td>1,160</td>\n", " <td>1,340</td>\n", " <td>1,620</td>\n", " <td>1,800</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Name Status Region PopulationEstimate1996-06-30 \\\n", "0 Ahaura Rural Settlement West Coast 120 \n", "1 Akaroa Rural Settlement Canterbury 680 \n", "2 Alexandra Small Urban Area Otago 4,690 \n", "3 Allanton Rural Settlement Otago 220 \n", "4 Amberley Small Urban Area Canterbury 1,050 \n", "\n", " PopulationEstimate2001-06-30 PopulationEstimate2006-06-30 \\\n", "0 140 110 \n", "1 610 620 \n", "2 4,480 4,940 \n", "3 240 260 \n", "4 1,160 1,340 \n", "\n", " PopulationEstimate2013-06-30 PopulationEstimate2018-06-30 \n", "0 100 80 \n", "1 670 630 \n", "2 4,920 5,510 \n", "3 260 290 \n", "4 1,620 1,800 " ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ "south_island_data.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3. EDA" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### For data analysis, let's take out unwanted columns from our dataframes" ] }, { "cell_type": "code", "execution_count": 113, "metadata": {}, "outputs": [], "source": [ "north_island_data = north_island_data[['Name', 'Status','Region', 'PopulationEstimate2018-06-30']]\n", "south_island_data = south_island_data[['Name', 'Status','Region', 'PopulationEstimate2018-06-30']]" ] }, { "cell_type": "code", "execution_count": 114, "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>Name</th>\n", " <th>Status</th>\n", " <th>Region</th>\n", " <th>PopulationEstimate2018-06-30</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Ahipara</td>\n", " <td>Rural Settlement</td>\n", " <td>Northland</td>\n", " <td>1,180</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Algies Bay</td>\n", " <td>Rural Settlement</td>\n", " <td>Auckland</td>\n", " <td>980</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Name Status Region PopulationEstimate2018-06-30\n", "0 Ahipara Rural Settlement Northland 1,180\n", "1 Algies Bay Rural Settlement Auckland 980" ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "north_island_data.head(2)" ] }, { "cell_type": "code", "execution_count": 115, "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>Name</th>\n", " <th>Status</th>\n", " <th>Region</th>\n", " <th>PopulationEstimate2018-06-30</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Ahaura</td>\n", " <td>Rural Settlement</td>\n", " <td>West Coast</td>\n", " <td>80</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Akaroa</td>\n", " <td>Rural Settlement</td>\n", " <td>Canterbury</td>\n", " <td>630</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Name Status Region PopulationEstimate2018-06-30\n", "0 Ahaura Rural Settlement West Coast 80\n", "1 Akaroa Rural Settlement Canterbury 630" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" } ], "source": [ "south_island_data.head(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3.1 North island" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(350, 4)" ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ "north_island_data.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Some data cleaning\n", "\n", "Population column values have \",\" comma in the values. Let's replace , and convert the column from string to integer type." ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Name object\n", "Status object\n", "Region object\n", "PopulationEstimate2018-06-30 object\n", "dtype: object" ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" } ], "source": [ "north_island_data.dtypes" ] }, { "cell_type": "code", "execution_count": 123, "metadata": {}, "outputs": [], "source": [ "north_island_data['PopulationEstimate2018-06-30'] = north_island_data['PopulationEstimate2018-06-30'].str.replace(',', '')" ] }, { "cell_type": "code", "execution_count": 124, "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>Name</th>\n", " <th>Status</th>\n", " <th>Region</th>\n", " <th>PopulationEstimate2018-06-30</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Ahipara</td>\n", " <td>Rural Settlement</td>\n", " <td>Northland</td>\n", " <td>1180</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Algies Bay</td>\n", " <td>Rural Settlement</td>\n", " <td>Auckland</td>\n", " <td>980</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>Arapuni</td>\n", " <td>Rural Settlement</td>\n", " <td>Waikato</td>\n", " <td>260</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>Ashhurst</td>\n", " <td>Small Urban Area</td>\n", " <td>Manawatu-Wanganui</td>\n", " <td>2990</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>Athenree</td>\n", " <td>Rural Settlement</td>\n", " <td>Bay of Plenty</td>\n", " <td>740</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Name Status Region \\\n", "0 Ahipara Rural Settlement Northland \n", "1 Algies Bay Rural Settlement Auckland \n", "2 Arapuni Rural Settlement Waikato \n", "3 Ashhurst Small Urban Area Manawatu-Wanganui \n", "4 Athenree Rural Settlement Bay of Plenty \n", "\n", " PopulationEstimate2018-06-30 \n", "0 1180 \n", "1 980 \n", "2 260 \n", "3 2990 \n", "4 740 " ] }, "execution_count": 124, "metadata": {}, "output_type": "execute_result" } ], "source": [ "north_island_data.head()" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [], "source": [ "north_island_data['PopulationEstimate2018-06-30'] = pd.to_numeric(north_island_data['PopulationEstimate2018-06-30'])" ] }, { "cell_type": "code", "execution_count": 126, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Name object\n", "Status object\n", "Region object\n", "PopulationEstimate2018-06-30 int64\n", "dtype: object" ] }, "execution_count": 126, "metadata": {}, "output_type": "execute_result" } ], "source": [ "north_island_data.dtypes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Renaming population column" ] }, { "cell_type": "code", "execution_count": 142, "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>Name</th>\n", " <th>Status</th>\n", " <th>Region</th>\n", " <th>PopulationEstimate2018</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Ahipara</td>\n", " <td>Rural Settlement</td>\n", " <td>Northland</td>\n", " <td>1180</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Algies Bay</td>\n", " <td>Rural Settlement</td>\n", " <td>Auckland</td>\n", " <td>980</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Name Status Region PopulationEstimate2018\n", "0 Ahipara Rural Settlement Northland 1180\n", "1 Algies Bay Rural Settlement Auckland 980" ] }, "execution_count": 142, "metadata": {}, "output_type": "execute_result" } ], "source": [ "north_island_data = north_island_data.rename(columns={'PopulationEstimate2018-06-30': 'PopulationEstimate2018'})\n", "north_island_data.head(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Top 10 most populated places in north island" ] }, { "cell_type": "code", "execution_count": 152, "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>Name</th>\n", " <th>Status</th>\n", " <th>Region</th>\n", " <th>PopulationEstimate2018</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>6</th>\n", " <td>Auckland</td>\n", " <td>Main Urban Area</td>\n", " <td>Auckland</td>\n", " <td>1467800</td>\n", " </tr>\n", " <tr>\n", " <th>333</th>\n", " <td>Wellington</td>\n", " <td>Main Urban Area</td>\n", " <td>Wellington</td>\n", " <td>215400</td>\n", " </tr>\n", " <tr>\n", " <th>46</th>\n", " <td>Hamilton</td>\n", " <td>Main Urban Area</td>\n", " <td>Waikato</td>\n", " <td>169300</td>\n", " </tr>\n", " <tr>\n", " <th>267</th>\n", " <td>Tauranga</td>\n", " <td>Main Urban Area</td>\n", " <td>Bay of Plenty</td>\n", " <td>135000</td>\n", " </tr>\n", " <tr>\n", " <th>105</th>\n", " <td>Lower Hutt</td>\n", " <td>Main Urban Area</td>\n", " <td>Wellington</td>\n", " <td>104900</td>\n", " </tr>\n", " <tr>\n", " <th>198</th>\n", " <td>Palmerston North</td>\n", " <td>Large Urban Area</td>\n", " <td>Manawatu-Wanganui</td>\n", " <td>80300</td>\n", " </tr>\n", " <tr>\n", " <th>141</th>\n", " <td>Napier</td>\n", " <td>Large Urban Area</td>\n", " <td>Hawke's Bay</td>\n", " <td>62800</td>\n", " </tr>\n", " <tr>\n", " <th>219</th>\n", " <td>Porirua</td>\n", " <td>Large Urban Area</td>\n", " <td>Wellington</td>\n", " <td>55500</td>\n", " </tr>\n", " <tr>\n", " <th>143</th>\n", " <td>New Plymouth</td>\n", " <td>Large Urban Area</td>\n", " <td>Taranaki</td>\n", " <td>55300</td>\n", " </tr>\n", " <tr>\n", " <th>241</th>\n", " <td>Rotorua</td>\n", " <td>Large Urban Area</td>\n", " <td>Bay of Plenty</td>\n", " <td>54500</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Name Status Region \\\n", "6 Auckland Main Urban Area Auckland \n", "333 Wellington Main Urban Area Wellington \n", "46 Hamilton Main Urban Area Waikato \n", "267 Tauranga Main Urban Area Bay of Plenty \n", "105 Lower Hutt Main Urban Area Wellington \n", "198 Palmerston North Large Urban Area Manawatu-Wanganui \n", "141 Napier Large Urban Area Hawke's Bay \n", "219 Porirua Large Urban Area Wellington \n", "143 New Plymouth Large Urban Area Taranaki \n", "241 Rotorua Large Urban Area Bay of Plenty \n", "\n", " PopulationEstimate2018 \n", "6 1467800 \n", "333 215400 \n", "46 169300 \n", "267 135000 \n", "105 104900 \n", "198 80300 \n", "141 62800 \n", "219 55500 \n", "143 55300 \n", "241 54500 " ] }, "execution_count": 152, "metadata": {}, "output_type": "execute_result" } ], "source": [ "north_island_data.sort_values(by='PopulationEstimate2018', ascending=False).head(10)" ] }, { "cell_type": "code", "execution_count": 179, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 1224x432 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "top_10 = north_island_data.sort_values(by='PopulationEstimate2018', ascending=False).head(10)\n", "\n", "plt.figure(figsize=(17, 6))\n", "sns.barplot(x='Name', y='PopulationEstimate2018', data=top_10)\n", "plt.title(\"Top 10 most populated places in North Island NZ\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Top 10 least populated places in north island" ] }, { "cell_type": "code", "execution_count": 151, "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>Name</th>\n", " <th>Status</th>\n", " <th>Region</th>\n", " <th>PopulationEstimate2018</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>20</th>\n", " <td>Castlepoint</td>\n", " <td>Rural Settlement</td>\n", " <td>Wellington</td>\n", " <td>50</td>\n", " </tr>\n", " <tr>\n", " <th>328</th>\n", " <td>Waitotara</td>\n", " <td>Rural Settlement</td>\n", " <td>Taranaki</td>\n", " <td>60</td>\n", " </tr>\n", " <tr>\n", " <th>234</th>\n", " <td>Raurimu</td>\n", " <td>Rural Settlement</td>\n", " <td>Manawatu-Wanganui</td>\n", " <td>70</td>\n", " </tr>\n", " <tr>\n", " <th>309</th>\n", " <td>Waiinu Beach</td>\n", " <td>Rural Settlement</td>\n", " <td>Taranaki</td>\n", " <td>70</td>\n", " </tr>\n", " <tr>\n", " <th>340</th>\n", " <td>Whangapoua</td>\n", " <td>Rural Settlement</td>\n", " <td>Waikato</td>\n", " <td>70</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", " <td>Atiamuri</td>\n", " <td>Rural Settlement</td>\n", " <td>Waikato</td>\n", " <td>70</td>\n", " </tr>\n", " <tr>\n", " <th>184</th>\n", " <td>Ormondville</td>\n", " <td>Rural Settlement</td>\n", " <td>Manawatu-Wanganui</td>\n", " <td>70</td>\n", " </tr>\n", " <tr>\n", " <th>8</th>\n", " <td>Baddeleys Beach - Campbells Beach</td>\n", " <td>Rural Settlement</td>\n", " <td>Auckland</td>\n", " <td>70</td>\n", " </tr>\n", " <tr>\n", " <th>324</th>\n", " <td>Waitangi</td>\n", " <td>Rural Settlement</td>\n", " <td>Northland</td>\n", " <td>80</td>\n", " </tr>\n", " <tr>\n", " <th>230</th>\n", " <td>Rainbows End</td>\n", " <td>Rural Settlement</td>\n", " <td>Auckland</td>\n", " <td>80</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Name Status Region \\\n", "20 Castlepoint Rural Settlement Wellington \n", "328 Waitotara Rural Settlement Taranaki \n", "234 Raurimu Rural Settlement Manawatu-Wanganui \n", "309 Waiinu Beach Rural Settlement Taranaki \n", "340 Whangapoua Rural Settlement Waikato \n", "5 Atiamuri Rural Settlement Waikato \n", "184 Ormondville Rural Settlement Manawatu-Wanganui \n", "8 Baddeleys Beach - Campbells Beach Rural Settlement Auckland \n", "324 Waitangi Rural Settlement Northland \n", "230 Rainbows End Rural Settlement Auckland \n", "\n", " PopulationEstimate2018 \n", "20 50 \n", "328 60 \n", "234 70 \n", "309 70 \n", "340 70 \n", "5 70 \n", "184 70 \n", "8 70 \n", "324 80 \n", "230 80 " ] }, "execution_count": 151, "metadata": {}, "output_type": "execute_result" } ], "source": [ "north_island_data.sort_values(by='PopulationEstimate2018', ascending=True).head(10)" ] }, { "cell_type": "code", "execution_count": 178, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 1944x432 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bottom_10 = north_island_data.sort_values(by='PopulationEstimate2018', ascending=True).head(10)\n", "\n", "plt.figure(figsize=(27, 6))\n", "sns.barplot(x='Name', y='PopulationEstimate2018', data=bottom_10)\n", "plt.title(\"Top 10 least populated places in North Island NZ\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Population counts grouped by Region" ] }, { "cell_type": "code", "execution_count": 270, "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>sum</th>\n", " <th>count</th>\n", " </tr>\n", " <tr>\n", " <th>Region</th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>Auckland</th>\n", " <td>1612730</td>\n", " <td>59</td>\n", " </tr>\n", " <tr>\n", " <th>Bay of Plenty</th>\n", " <td>259400</td>\n", " <td>38</td>\n", " </tr>\n", " <tr>\n", " <th>Gisborne</th>\n", " <td>39320</td>\n", " <td>9</td>\n", " </tr>\n", " <tr>\n", " <th>Hawke's Bay</th>\n", " <td>140620</td>\n", " <td>21</td>\n", " </tr>\n", " <tr>\n", " <th>Manawatu-Wanganui</th>\n", " <td>199140</td>\n", " <td>50</td>\n", " </tr>\n", " <tr>\n", " <th>Northland</th>\n", " <td>109850</td>\n", " <td>58</td>\n", " </tr>\n", " <tr>\n", " <th>Taranaki</th>\n", " <td>93240</td>\n", " <td>22</td>\n", " </tr>\n", " <tr>\n", " <th>Waikato</th>\n", " <td>353070</td>\n", " <td>77</td>\n", " </tr>\n", " <tr>\n", " <th>Wellington</th>\n", " <td>498300</td>\n", " <td>16</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " sum count\n", "Region \n", "Auckland 1612730 59\n", "Bay of Plenty 259400 38\n", "Gisborne 39320 9\n", "Hawke's Bay 140620 21\n", "Manawatu-Wanganui 199140 50\n", "Northland 109850 58\n", "Taranaki 93240 22\n", "Waikato 353070 77\n", "Wellington 498300 16" ] }, "execution_count": 270, "metadata": {}, "output_type": "execute_result" } ], "source": [ "region_totals = north_island_data.groupby('Region')['PopulationEstimate2018'].agg(['sum', 'count'])\n", "region_totals" ] }, { "cell_type": "code", "execution_count": 271, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 1224x432 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(17, 6))\n", "sns.barplot(x=region_totals.index, y='sum', data=region_totals)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3.2 South island" ] }, { "cell_type": "code", "execution_count": 272, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(227, 4)" ] }, "execution_count": 272, "metadata": {}, "output_type": "execute_result" } ], "source": [ "south_island_data.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Some data cleaning\n", "\n", "Population column values have \",\" comma in the values. Let's replace , and convert the column from string to integer type." ] }, { "cell_type": "code", "execution_count": 273, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Name object\n", "Status object\n", "Region object\n", "PopulationEstimate2018-06-30 object\n", "dtype: object" ] }, "execution_count": 273, "metadata": {}, "output_type": "execute_result" } ], "source": [ "south_island_data.dtypes" ] }, { "cell_type": "code", "execution_count": 274, "metadata": {}, "outputs": [], "source": [ "south_island_data['PopulationEstimate2018-06-30'] = south_island_data['PopulationEstimate2018-06-30'].str.replace(',', '')" ] }, { "cell_type": "code", "execution_count": 275, "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>Name</th>\n", " <th>Status</th>\n", " <th>Region</th>\n", " <th>PopulationEstimate2018-06-30</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Ahaura</td>\n", " <td>Rural Settlement</td>\n", " <td>West Coast</td>\n", " <td>80</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Akaroa</td>\n", " <td>Rural Settlement</td>\n", " <td>Canterbury</td>\n", " <td>630</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>Alexandra</td>\n", " <td>Small Urban Area</td>\n", " <td>Otago</td>\n", " <td>5510</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>Allanton</td>\n", " <td>Rural Settlement</td>\n", " <td>Otago</td>\n", " <td>290</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>Amberley</td>\n", " <td>Small Urban Area</td>\n", " <td>Canterbury</td>\n", " <td>1800</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Name Status Region PopulationEstimate2018-06-30\n", "0 Ahaura Rural Settlement West Coast 80\n", "1 Akaroa Rural Settlement Canterbury 630\n", "2 Alexandra Small Urban Area Otago 5510\n", "3 Allanton Rural Settlement Otago 290\n", "4 Amberley Small Urban Area Canterbury 1800" ] }, "execution_count": 275, "metadata": {}, "output_type": "execute_result" } ], "source": [ "south_island_data.head()" ] }, { "cell_type": "code", "execution_count": 276, "metadata": {}, "outputs": [], "source": [ "south_island_data['PopulationEstimate2018-06-30'] = pd.to_numeric(south_island_data['PopulationEstimate2018-06-30'])" ] }, { "cell_type": "code", "execution_count": 277, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Name object\n", "Status object\n", "Region object\n", "PopulationEstimate2018-06-30 int64\n", "dtype: object" ] }, "execution_count": 277, "metadata": {}, "output_type": "execute_result" } ], "source": [ "south_island_data.dtypes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Renaming population column" ] }, { "cell_type": "code", "execution_count": 278, "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>Name</th>\n", " <th>Status</th>\n", " <th>Region</th>\n", " <th>PopulationEstimate2018</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Ahaura</td>\n", " <td>Rural Settlement</td>\n", " <td>West Coast</td>\n", " <td>80</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Akaroa</td>\n", " <td>Rural Settlement</td>\n", " <td>Canterbury</td>\n", " <td>630</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Name Status Region PopulationEstimate2018\n", "0 Ahaura Rural Settlement West Coast 80\n", "1 Akaroa Rural Settlement Canterbury 630" ] }, "execution_count": 278, "metadata": {}, "output_type": "execute_result" } ], "source": [ "south_island_data = south_island_data.rename(columns={'PopulationEstimate2018-06-30': 'PopulationEstimate2018'})\n", "south_island_data.head(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Top 10 most populated places in south island" ] }, { "cell_type": "code", "execution_count": 279, "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>Name</th>\n", " <th>Status</th>\n", " <th>Region</th>\n", " <th>PopulationEstimate2018</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>28</th>\n", " <td>Christchurch</td>\n", " <td>Main Urban Area</td>\n", " <td>Canterbury</td>\n", " <td>377200</td>\n", " </tr>\n", " <tr>\n", " <th>40</th>\n", " <td>Dunedin</td>\n", " <td>Main Urban Area</td>\n", " <td>Otago</td>\n", " <td>104500</td>\n", " </tr>\n", " <tr>\n", " <th>125</th>\n", " <td>Nelson</td>\n", " <td>Large Urban Area</td>\n", " <td>Nelson</td>\n", " <td>49300</td>\n", " </tr>\n", " <tr>\n", " <th>73</th>\n", " <td>Invercargill</td>\n", " <td>Large Urban Area</td>\n", " <td>Southland</td>\n", " <td>48700</td>\n", " </tr>\n", " <tr>\n", " <th>195</th>\n", " <td>Timaru</td>\n", " <td>Medium Urban Area</td>\n", " <td>Canterbury</td>\n", " <td>28300</td>\n", " </tr>\n", " <tr>\n", " <th>19</th>\n", " <td>Blenheim</td>\n", " <td>Medium Urban Area</td>\n", " <td>Marlborough</td>\n", " <td>26400</td>\n", " </tr>\n", " <tr>\n", " <th>11</th>\n", " <td>Ashburton</td>\n", " <td>Medium Urban Area</td>\n", " <td>Canterbury</td>\n", " <td>19600</td>\n", " </tr>\n", " <tr>\n", " <th>158</th>\n", " <td>Rangiora</td>\n", " <td>Medium Urban Area</td>\n", " <td>Canterbury</td>\n", " <td>18400</td>\n", " </tr>\n", " <tr>\n", " <th>166</th>\n", " <td>Rolleston</td>\n", " <td>Medium Urban Area</td>\n", " <td>Canterbury</td>\n", " <td>16350</td>\n", " </tr>\n", " <tr>\n", " <th>154</th>\n", " <td>Queenstown</td>\n", " <td>Medium Urban Area</td>\n", " <td>Otago</td>\n", " <td>15650</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Name Status Region PopulationEstimate2018\n", "28 Christchurch Main Urban Area Canterbury 377200\n", "40 Dunedin Main Urban Area Otago 104500\n", "125 Nelson Large Urban Area Nelson 49300\n", "73 Invercargill Large Urban Area Southland 48700\n", "195 Timaru Medium Urban Area Canterbury 28300\n", "19 Blenheim Medium Urban Area Marlborough 26400\n", "11 Ashburton Medium Urban Area Canterbury 19600\n", "158 Rangiora Medium Urban Area Canterbury 18400\n", "166 Rolleston Medium Urban Area Canterbury 16350\n", "154 Queenstown Medium Urban Area Otago 15650" ] }, "execution_count": 279, "metadata": {}, "output_type": "execute_result" } ], "source": [ "south_island_data.sort_values(by='PopulationEstimate2018', ascending=False).head(10)" ] }, { "cell_type": "code", "execution_count": 283, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 1224x432 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "top_10 = south_island_data.sort_values(by='PopulationEstimate2018', ascending=False).head(10)\n", "\n", "plt.figure(figsize=(17, 6))\n", "sns.barplot(x='Name', y='PopulationEstimate2018', data=top_10)\n", "plt.title(\"Top 10 most populated places in South Island NZ\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Top 10 least populated places in south island" ] }, { "cell_type": "code", "execution_count": 284, "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>Name</th>\n", " <th>Status</th>\n", " <th>Region</th>\n", " <th>PopulationEstimate2018</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>59</th>\n", " <td>Haast</td>\n", " <td>Rural Settlement</td>\n", " <td>West Coast</td>\n", " <td>50</td>\n", " </tr>\n", " <tr>\n", " <th>9</th>\n", " <td>Arthur's Pass</td>\n", " <td>Rural Settlement</td>\n", " <td>Canterbury</td>\n", " <td>60</td>\n", " </tr>\n", " <tr>\n", " <th>127</th>\n", " <td>Ngakuta Bay</td>\n", " <td>Rural Settlement</td>\n", " <td>Marlborough</td>\n", " <td>60</td>\n", " </tr>\n", " <tr>\n", " <th>150</th>\n", " <td>Pounawea</td>\n", " <td>Rural Settlement</td>\n", " <td>Otago</td>\n", " <td>60</td>\n", " </tr>\n", " <tr>\n", " <th>112</th>\n", " <td>Milford Huts</td>\n", " <td>Rural Settlement</td>\n", " <td>Canterbury</td>\n", " <td>60</td>\n", " </tr>\n", " <tr>\n", " <th>153</th>\n", " <td>Purau</td>\n", " <td>Rural Settlement</td>\n", " <td>Canterbury</td>\n", " <td>60</td>\n", " </tr>\n", " <tr>\n", " <th>116</th>\n", " <td>Moana</td>\n", " <td>Rural Settlement</td>\n", " <td>West Coast</td>\n", " <td>70</td>\n", " </tr>\n", " <tr>\n", " <th>174</th>\n", " <td>Selwyn Huts</td>\n", " <td>Rural Settlement</td>\n", " <td>Canterbury</td>\n", " <td>70</td>\n", " </tr>\n", " <tr>\n", " <th>103</th>\n", " <td>Makikihi</td>\n", " <td>Rural Settlement</td>\n", " <td>Canterbury</td>\n", " <td>80</td>\n", " </tr>\n", " <tr>\n", " <th>209</th>\n", " <td>Waipopo</td>\n", " <td>Rural Settlement</td>\n", " <td>Canterbury</td>\n", " <td>80</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Name Status Region PopulationEstimate2018\n", "59 Haast Rural Settlement West Coast 50\n", "9 Arthur's Pass Rural Settlement Canterbury 60\n", "127 Ngakuta Bay Rural Settlement Marlborough 60\n", "150 Pounawea Rural Settlement Otago 60\n", "112 Milford Huts Rural Settlement Canterbury 60\n", "153 Purau Rural Settlement Canterbury 60\n", "116 Moana Rural Settlement West Coast 70\n", "174 Selwyn Huts Rural Settlement Canterbury 70\n", "103 Makikihi Rural Settlement Canterbury 80\n", "209 Waipopo Rural Settlement Canterbury 80" ] }, "execution_count": 284, "metadata": {}, "output_type": "execute_result" } ], "source": [ "south_island_data.sort_values(by='PopulationEstimate2018', ascending=True).head(10)" ] }, { "cell_type": "code", "execution_count": 285, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 1944x432 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bottom_10 = south_island_data.sort_values(by='PopulationEstimate2018', ascending=True).head(10)\n", "\n", "plt.figure(figsize=(27, 6))\n", "sns.barplot(x='Name', y='PopulationEstimate2018', data=bottom_10)\n", "plt.title(\"Top 10 least populated places in South Island NZ\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Population counts grouped by Region" ] }, { "cell_type": "code", "execution_count": 286, "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>sum</th>\n", " <th>count</th>\n", " </tr>\n", " <tr>\n", " <th>Region</th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>Canterbury</th>\n", " <td>544370</td>\n", " <td>87</td>\n", " </tr>\n", " <tr>\n", " <th>Marlborough</th>\n", " <td>37490</td>\n", " <td>17</td>\n", " </tr>\n", " <tr>\n", " <th>Nelson</th>\n", " <td>49300</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>Otago</th>\n", " <td>200050</td>\n", " <td>58</td>\n", " </tr>\n", " <tr>\n", " <th>Southland</th>\n", " <td>72450</td>\n", " <td>23</td>\n", " </tr>\n", " <tr>\n", " <th>Tasman</th>\n", " <td>35640</td>\n", " <td>19</td>\n", " </tr>\n", " <tr>\n", " <th>West Coast</th>\n", " <td>23000</td>\n", " <td>22</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " sum count\n", "Region \n", "Canterbury 544370 87\n", "Marlborough 37490 17\n", "Nelson 49300 1\n", "Otago 200050 58\n", "Southland 72450 23\n", "Tasman 35640 19\n", "West Coast 23000 22" ] }, "execution_count": 286, "metadata": {}, "output_type": "execute_result" } ], "source": [ "region_totals = south_island_data.groupby('Region')['PopulationEstimate2018'].agg(['sum', 'count'])\n", "region_totals" ] }, { "cell_type": "code", "execution_count": 288, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/4AAAFzCAYAAACHLdLiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3df9ylZV0v+s9XRgUzCATdxo/Gk6ShGcWEmu2yMKBjba2w8LVN3NFm58syKztbd51IPZRW5s7d0bIkkH4omiaapLNRNA35JSg/lJidpgRH0SHSEnfg9/xxX4+sGZ9nmBnmmWfmnvf79Vqvda/rvq9rXetZ97PW/bl/XKu6OwAAAMA83WetOwAAAACsHsEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZmzdWndgT3HooYf2+vXr17obAAAAsMOuvPLKz3b3YcvNE/yH9evX54orrljrbgAAAMAOq6p/WGmeU/0BAABgxgR/AAAAmDHBHwAAAGZM8AcAAIAZE/wBAABgxgR/AAAAmDHBHwAAAGZM8AcAAIAZE/wBAABgxgR/AAAAmDHBHwAAAGZM8AcAAIAZE/wBAABgxtatdQf2dsf90uvWugvsgCt/65lr3QUAAIDdyhF/AAAAmDHBHwAAAGZM8AcAAIAZE/wBAABgxgR/AAAAmDHBHwAAAGZM8AcAAIAZE/wBAABgxgR/AAAAmDHBHwAAAGZM8AcAAIAZE/wBAABgxgR/AAAAmDHBHwAAAGZM8AcAAIAZE/wBAABgxgR/AAAAmDHBHwAAAGZM8AcAAIAZE/wBAABgxgR/AAAAmLFVDf5V9Ymquqaqrq6qK0bZIVW1sapuHPcHLyz/wqraVFU3VNVJC+XHjXY2VdUrq6pG+f2r6g2j/NKqWr9Q57TxHDdW1Wmr+ToBAABgT7U7jvh/b3cf290bxuMXJLmou49OctF4nKo6JsmpSR6V5OQkr6qq/UadVyc5I8nR43byKD89yW3d/fAkr0jystHWIUnOTPLYJMcnOXNxBwMAAADsK9biVP+nJDl3TJ+b5KkL5a/v7i9198eTbEpyfFU9NMmB3X1Jd3eS121VZ6mtNyU5YZwNcFKSjd29ubtvS7Ixd+8sAAAAgH3Gagf/TvKuqrqyqs4YZQ/p7luSZNw/eJQfnuRTC3VvGmWHj+mty7eo0913Jrk9yYO20dYWquqMqrqiqq649dZbd/pFAgAAwJ5q3Sq3/4TuvrmqHpxkY1V9bBvL1jJlvY3yna1zd0H3a5K8Jkk2bNjwVfMBAABgb7eqR/y7++Zx/5kkb8l0vf2nx+n7GfefGYvflOTIhepHJLl5lB+xTPkWdapqXZKDkmzeRlsAAACwT1m14F9VX1NVX7s0neTEJNcmuSDJ0ij7pyV565i+IMmpY6T+h2UaxO+ycTnA56vqceP6/WduVWeprVOSvHuMA/DOJCdW1cFjUL8TRxkAAADsU1bzVP+HJHnL+OW9dUn+rLv/uqouT3J+VZ2e5JNJnpYk3X1dVZ2f5PokdyZ5TnffNdp6dpJzkhyQ5MJxS5LXJjmvqjZlOtJ/6mhrc1W9JMnlY7kXd/fmVXytAAAAsEdateDf3X+f5FuXKf9ckhNWqHNWkrOWKb8iyaOXKb8jY8fBMvPOTnL2jvUaAAAA5mUtfs4PAAAA2E0EfwAAAJgxwR8AAABmTPAHAACAGRP8AQAAYMYEfwAAAJgxwR8AAABmTPAHAACAGRP8AQAAYMYEfwAAAJgxwR8AAABmTPAHAACAGRP8AQAAYMYEfwAAAJgxwR8AAABmTPAHAACAGRP8AQAAYMYEfwAAAJgxwR8AAABmTPAHAACAGRP8AQAAYMYEfwAAAJgxwR8AAABmTPAHAACAGRP8AQAAYMYEfwAAAJgxwR8AAABmTPAHAACAGRP8AQAAYMYEfwAAAJgxwR8AAABmTPAHAACAGRP8AQAAYMYEfwAAAJgxwR8AAABmTPAHAACAGRP8AQAAYMYEfwAAAJgxwR8AAABmTPAHAACAGRP8AQAAYMYEfwAAAJgxwR8AAABmTPAHAACAGRP8AQAAYMYEfwAAAJgxwR8AAABmTPAHAACAGVv14F9V+1XVVVX19vH4kKraWFU3jvuDF5Z9YVVtqqobquqkhfLjquqaMe+VVVWj/P5V9YZRfmlVrV+oc9p4jhur6rTVfp0AAACwJ9odR/x/LslHFx6/IMlF3X10kovG41TVMUlOTfKoJCcneVVV7TfqvDrJGUmOHreTR/npSW7r7ocneUWSl422DklyZpLHJjk+yZmLOxgAAABgX7Gqwb+qjkjy5CR/tFD8lCTnjulzkzx1ofz13f2l7v54kk1Jjq+qhyY5sLsv6e5O8rqt6iy19aYkJ4yzAU5KsrG7N3f3bUk25u6dBQAAALDPWO0j/v89yf+V5MsLZQ/p7luSZNw/eJQfnuRTC8vdNMoOH9Nbl29Rp7vvTHJ7kgdtoy0AAADYp6xa8K+qH0zyme6+cnurLFPW2yjf2TqLfTyjqq6oqituvfXW7ewmAAAA7D1W84j/E5L8h6r6RJLXJ/m+qvqTJJ8ep+9n3H9mLH9TkiMX6h+R5OZRfsQy5VvUqap1SQ5KsnkbbW2hu1/T3Ru6e8Nhhx22868UAAAA9lCrFvy7+4XdfUR3r880aN+7u/sZSS5IsjTK/mlJ3jqmL0hy6hip/2GZBvG7bFwO8Pmqety4fv+ZW9VZauuU8Ryd5J1JTqyqg8egfieOMgAAANinrFuD53xpkvOr6vQkn0zytCTp7uuq6vwk1ye5M8lzuvuuUefZSc5JckCSC8ctSV6b5Lyq2pTpSP+po63NVfWSJJeP5V7c3ZtX+4UBAADAnma3BP/uvjjJxWP6c0lOWGG5s5KctUz5FUkevUz5HRk7DpaZd3aSs3e2zwAAADAHqz2qPwAAALCGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBlbteBfVftX1WVV9eGquq6qXjTKD6mqjVV147g/eKHOC6tqU1XdUFUnLZQfV1XXjHmvrKoa5fevqjeM8kurav1CndPGc9xYVaet1usEAACAPdlqHvH/UpLv6+5vTXJskpOr6nFJXpDkou4+OslF43Gq6pgkpyZ5VJKTk7yqqvYbbb06yRlJjh63k0f56Ulu6+6HJ3lFkpeNtg5JcmaSxyY5PsmZizsYAAAAYF+xasG/J18YD+87bp3kKUnOHeXnJnnqmH5Kktd395e6++NJNiU5vqoemuTA7r6kuzvJ67aqs9TWm5KcMM4GOCnJxu7e3N23JdmYu3cWAAAAwD5jVa/xr6r9qurqJJ/JFMQvTfKQ7r4lScb9g8fihyf51EL1m0bZ4WN66/It6nT3nUluT/KgbbQFAAAA+5R127PQOOX+yUnWL9bp7t/ZVr3uvivJsVX1dUneUlWP3tbTLNfENsp3ts7dT1h1RqZLCHLUUUdto2sAAACwd9reI/5vS/KsTEfTv3bhtl26+5+SXJzpdPtPj9P3M+4/Mxa7KcmRC9WOSHLzKD9imfIt6lTVuiQHJdm8jba27tdruntDd2847LDDtvflAAAAwF5ju474Jzmiux+zIw1X1WFJ/q27/6mqDkjypEyD712Q5LQkLx33bx1VLkjyZ1X1O0m+PtMgfpd1911V9fkxMOClSZ6Z5H8s1DktySVJTkny7u7uqnpnkl9fGNDvxCQv3JH+AwAAwBxsb/C/sKpO7O537UDbD01y7rhM4D5Jzu/ut1fVJUnOr6rTk3wyydOSpLuvq6rzk1yf5M4kzxmXCiTJs5Ock+SAJBeOW5K8Nsl5VbUp05H+U0dbm6vqJUkuH8u9uLs370DfAQAAYBa2N/h/MNM1+vdJ8m+ZrqHv7j5wpQrd/ZEk37ZM+eeSnLBCnbOSnLVM+RVJvmp8gO6+I2PHwTLzzk5y9kr9AwAAgH3B9gb/lyd5fJJrxk/qAQAAAHuB7R3c78Yk1wr9AAAAsHfZ3iP+tyS5uKouTPKlpcJ7+jk/AAAAYG1tb/D/+Ljdb9wAAACAvcB2Bf/uftFqdwQAAADY9bYr+FfVe5J81fX93f19u7xHAAAAwC6zvaf6P39hev8kP5rkzl3fHQAAAGBX2t5T/a/cqugDVfXeVegPAAAAsAtt76n+hyw8vE+SDUn+3ar0CAAAANhltvdU/yszXeNfSf4tySeSnL5KfQIAAAB2kfts53L/Ncmx3f2wJOcl+Zck/7pqvQIAAAB2ie0N/r/S3f9cVd+V5PuTnJPk1avWKwAAAGCX2N7gf9e4f3KS3+/utya53+p0CQAAANhVtjf4/2NV/UGSH0vyjqq6/w7UBQAAANbI9ob3H0vyziQnd/c/JTkkyS+tWq8AAACAXWK7RvXv7n9N8uaFx7ckuWW1OgUAAADsGk7XBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZmzVgn9VHVlV76mqj1bVdVX1c6P8kKraWFU3jvuDF+q8sKo2VdUNVXXSQvlxVXXNmPfKqqpRfv+qesMov7Sq1i/UOW08x41VddpqvU4AAADYk63mEf87k/xid39zkscleU5VHZPkBUku6u6jk1w0HmfMOzXJo5KcnORVVbXfaOvVSc5IcvS4nTzKT09yW3c/PMkrkrxstHVIkjOTPDbJ8UnOXNzBAAAAAPuKVQv+3X1Ld39oTH8+yUeTHJ7kKUnOHYudm+SpY/opSV7f3V/q7o8n2ZTk+Kp6aJIDu/uS7u4kr9uqzlJbb0pywjgb4KQkG7t7c3fflmRj7t5ZAAAAAPuM3XKN/zgF/9uSXJrkId19SzLtHEjy4LHY4Uk+tVDtplF2+JjeunyLOt19Z5LbkzxoG20BAADAPmXdaj9BVT0wyV8keV53//O4PH/ZRZcp622U72ydxb6dkekSghx11FEr9QsAdqv3fvf3rHUX2AHf8773rnUXAGCbVvWIf1XdN1Po/9PufvMo/vQ4fT/j/jOj/KYkRy5UPyLJzaP8iGXKt6hTVeuSHJRk8zba2kJ3v6a7N3T3hsMOO2xnXyYAAADssVZzVP9K8tokH+3u31mYdUGSpVH2T0vy1oXyU8dI/Q/LNIjfZeNygM9X1eNGm8/cqs5SW6ckefcYB+CdSU6sqoPHoH4njjIAAADYp6zmqf5PSPITSa6pqqtH2X9L8tIk51fV6Uk+meRpSdLd11XV+Umuz/SLAM/p7rtGvWcnOSfJAUkuHLdk2rFwXlVtynSk/9TR1uaqekmSy8dyL+7uzav1QgEAAGBPtWrBv7vfn+WvtU+SE1aoc1aSs5YpvyLJo5cpvyNjx8Ey885Ocvb29hcAAADmaLeM6g8AAACsDcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGBH8AAACYMcEfAAAAZkzwBwAAgBkT/AEAAGDGVi34V9XZVfWZqrp2oeyQqtpYVTeO+4MX5r2wqjZV1Q1VddJC+XFVdc2Y98qqqlF+/6p6wyi/tKrWL9Q5bTzHjVV12mq9RgAAANjTreYR/3OSnLxV2QuSXNTdRye5aDxOVR2T5NQkjxp1XlVV+406r05yRpKjx22pzdOT3NbdD0/yiiQvG20dkuTMJI9NcnySMxd3MAAAAMC+ZNWCf3e/L8nmrYqfkuTcMX1ukqculL++u7/U3R9PsinJ8VX10CQHdvcl3d1JXrdVnaW23pTkhHE2wElJNnb35u6+LcnGfPUOCAAAANgn7O5r/B/S3bckybh/8Cg/PMmnFpa7aZQdPqa3Lt+iTnffmeT2JA/aRlsAAACwz9lTBverZcp6G+U7W2fLJ606o6quqKorbr311u3qKAAAAOxNdnfw//Q4fT/j/jOj/KYkRy4sd0SSm0f5EcuUb1GnqtYlOSjTpQUrtfVVuvs13b2huzccdthh9+JlAQAAwJ5pdwf/C5IsjbJ/WpK3LpSfOkbqf1imQfwuG5cDfL6qHjeu33/mVnWW2jolybvHOADvTHJiVR08BvU7cZQBAADAPmfdajVcVX+e5IlJDq2qmzKNtP/SJOdX1elJPpnkaUnS3ddV1flJrk9yZ5LndPddo6lnZ/qFgAOSXDhuSfLaJOdV1aZMR/pPHW1trqqXJLl8LPfi7t56kEEAAADYJ6xa8O/up68w64QVlj8ryVnLlF+R5NHLlN+RseNgmXlnJzl7uzsLAAAAM7WnDO4HAAAArALBHwAAAGZM8AcAAIAZE/wBAABgxgR/AAAAmDHBHwAAAGZM8AcAAIAZE/wBAABgxgR/AAAAmDHBHwAAAGZs3Vp3AACA7fN7v/i2te4CO+BnXv5Da90FgCSO+AMAAMCsCf4AAAAwY4I/AAAAzJjgDwAAADMm+AMAAMCMCf4AAAAwY4I/AAAAzJjgDwAAADMm+AMAAMCMCf4AAAAwY4I/AAAAzJjgDwAAADMm+AMAAMCMrVvrDgDsi57wP56w1l1gB3zgZz+w1l0AANhpjvgDAADAjAn+AAAAMGOCPwAAAMyY4A8AAAAzJvgDAADAjBnVH1bRJ1/8LWvdBXbAUb96zVp3AQAAdjnBHwAAZuCsZ5yy1l1gB/zyn7xprbvAPsSp/gAAADBjgj8AAADMmOAPAAAAMyb4AwAAwIwJ/gAAADBjgj8AAADMmOAPAAAAM7ZurTsAAADA6vnoWe9e6y6wA775l79vl7fpiD8AAADMmOAPAAAAMyb4AwAAwIwJ/gAAADBjgj8AAADMmOAPAAAAMyb4AwAAwIwJ/gAAADBjsw7+VXVyVd1QVZuq6gVr3R8AAADY3WYb/KtqvyT/b5IfSHJMkqdX1TFr2ysAAADYvWYb/JMcn2RTd/99d//vJK9P8pQ17hMAAADsVnMO/ocn+dTC45tGGQAAAOwzqrvXug+roqqeluSk7v6p8fgnkhzf3T+7sMwZSc4YDx+R5Ibd3tE916FJPrvWnWCPZf1gJdYNtsX6wUqsG2yL9YOVWDe29A3dfdhyM9bt7p7sRjclOXLh8RFJbl5coLtfk+Q1u7NTe4uquqK7N6x1P9gzWT9YiXWDbbF+sBLrBtti/WAl1o3tN+dT/S9PcnRVPayq7pfk1CQXrHGfAAAAYLea7RH/7r6zqn4myTuT7Jfk7O6+bo27BQAAALvVbIN/knT3O5K8Y637sZdyCQTbYv1gJdYNtsX6wUqsG2yL9YOVWDe202wH9wMAAADmfY0/AAAA7PME/71MVf27qnp9Vf2vqrq+qt5RVd+0E+08q6q+fifqnVNVp+xoPXa9quqqOm/h8bqqurWq3r6D7ayvqmvH9LOq6vd2dV93RlU9cUdfC/feWK9evvD4+VX1a/dQZ49Zb9g9quqIqnprVd04vo9+t6ruV1XHVtX/udb9Y3VU1S9X1XVV9ZGqurqqHrsTbTyxqr5z4fGy2xWL3033lu+T3a+qHjTWkaur6v+rqn9ceHy/te4fq6eqXlFVz1t4/M6q+qOFxy+vql/YiXafV1UPWGHefavqpeM76dqquqyqfmDnXsGy7T+1qo7ZVe2tFcF/L1JVleQtSS7u7m/s7mOS/LckD9mJ5p6VZIeCf1Xd6zEhqmq/e9sGX/EvSR5dVQeMx9+f5B93pIFd8Z4utFVV5TNl7/elJD9SVYeudUfYM43vojcn+cvuPjrJNyV5YJKzkhybRPCfoap6fJIfTPLt3f2YJE9K8qmdaOqJSb7znhZi79bdn+vuY7v72CS/n+QVS4+7+3+vdf9YVX+b8T8+tgsPTfKohfnfmeQDO9Hu85IsG/yTvCTJQ5M8ursfneSHknztTjzHSp6aRPBnt/reJP/W3b+/VNDdVye5qqouqqoPVdU1VfWU5Ct7yz9aVX849tC/q6oOGHvWNyT507Hn9YCqOq6q3ltVV449cw8dbVxcVb9eVe9N8nPjaZ9UVX9TVX9XVT84ltviiF9Vvb2qnjimv1BVL66qS5P8SlW9ZWG576+qN6/mH23mLkzy5DH99CR/vjSjqo6vqr+tqqvG/SNG+bOq6o1V9bYk71qmzSOr6q+r6oaqOnOhvV8Ye1GvXdqTu7COvSrJh0bdp4/18NqqetlC/S8sTJ9SVeeM6W+sqg9W1eVjPfnKckkeWFVvqqqPVdWfjsDB6roz00A5P7/1jKo6rKr+YrxXl1fVE5ZZ5mnjvf9wVb1vlO1fVX881ourqup7R/mzqurNY327sap+c7VfHLvE9yW5o7v/OEm6+65M68tPJfnNJD8+vlt+fBufQw+oqvNrOnL8hqq6tKo2jHnLfoaw5h6a5LPd/aUk6e7PdvfNVXXCeH+vqaqzq+r+SVJVn1jagVhVG8b2xPokP53k58c68u9H29891o+/r5WP/v/N2M75UI0zBmo6kn/xct8TVXXyKHt/kh9Z5b8NO6Cq3ja2N6+rqp8aZeuq6ryF//3njvL3V9XvjPf/+rEuvWV8Z/zadrT5TzUdCf5wVV1SVQ9ekxe9b/lA7t6596gk1yb5fFUdPD4fvjnJVUlSVb80tic+UlUvGmVfU1V/Nd6za8d3yXMzHbB8T1W9Z/HJajoL4D8n+dmFz6dPd/f5Y/5K26WvrqorxjrzooXyl4517SNV9dvj8+Y/JPmt8bn1javxR9stutttL7kleW6mPaZbl69LcuCYPjTJpiSVZH2mjfhjx7zzkzxjTF+cZMOYvm+mvXOHjcc/nunnD5eWe9XCc52T5K8z7TQ6OslNSfbPdAbB7y0s9/YkTxzTneTHxnQl+djCc/1Zkh9a67/t3nhL8oUkj0nypvEeXJ3pSMrbx/wDk6wb009K8hdj+lnjfTtkPF6f5NqFebckeVCSAzJ9WG9IclySa5J8TaYje9cl+bZR98tJHjfqf32STyY5bKyX707y1KX+LvT9lCTnLKwrTx/TP7203Hgttyc5YqxvlyT5rrX+u8/9NtarA5N8IslBSZ6f5NfGvD9beg+SHJXkowvrze+N6WuSHD6mv27c/2KSPx7TjxzryNLnxt+P59k/yT8kOXKt/wZu97iOrPRddNWYt/hdsNLn0POT/MGYfnSm76oN2/oMcVvz9/2B43vm75K8Ksn3jP/bTyX5prHM65I8b0x/IsmhY3pDprMVk+TXkjx/od1zkrxxfM4fk2TTKF+fu7+bHpBk/zF9dJIrxvSy3xML/To603bH+RnfjW5rsu5s/Z4vbX88IMn1SQ5O8tgkFy4ss/T98f4kZ43pX8y0/fKQ8R7fvLDccm2uy7QN+gNj3u8kecFa/z32hdv4/z8qyX/JtG33kkxngz0hyfvGMidmOtBQ4//37Um+O8mPJvnDhbYOWmjz0GWe6zFJrlqhH9vaLl1aZ/bLlHcek+SQJDfk7gHwl9avc5KcstZ/13t7c8R/HirJr1fVR5L8zySH5+7T/z/e01kBSXJlpi/SrT0i04bXxqq6OsmvZPoSXfKGrZY/v7u/3N03Ztpof+Q99O+uJH+RJD3995yX5BlV9XVJHp/pqDU7obs/kuk9fXq++qcrD0ryxpqukXxFtjzNamN3b16h2Y09naL3xUyn837XuL2lu/+lu78wypeO1PxDd39wTH9Hpo27W7v7ziR/mulDfFsen2mjL5mC5aLLuvum7v5ypg3O9ffQFrtAd/9zpg34524160lJfm98TlyQ5MCq2vpUug8kOaeq/nOmL9NkWn/OG21/LFPAXxqb5KLuvr2778i0sfYNu/r1sMtVpo3p7Slf6XPou5K8Pkm6+9okHxnlO/MZwm4wPvuPS3JGklszbRv8l0zbGX83Fjs3O/d+/eXYrrg+y1++eN8kf1hV12T6vlg85Xa574lHjn7dOLY7/mQn+sTq+fmq+nCmHTVHJPnGTAetHlHTeCEnZdqhs+SCcX9Nkmt6Opp7R6YgeMQ22kySL3b30nbmStvB7HpLR/2/M9N7csnC478dy5w4bldlOmv0kZl21l2T6ezil1XVv+/u27PztvWd8mNV9aHx/I/K9Lnyz0nuSPJHVfUjSf71Xjz3HmeXXd/LbnFdpiOlW/uPmfZkHdfd/1ZVn8i0JzSZrtddclemo7hbqyTXdffjV3jef9nq8dYbdp3paM3ijqT9F6bv6OlU0CV/nORtmf6x3jj+Edl5FyT57UxHPh60UP6SJO/p7h8ep1devDBv61HZxnsAAAdnSURBVPd00XLv77ZOsV9sa1vLLba7/4pLbWnr9ddn1u7z3zN9Ef/xQtl9kjx+7BT6ilq4AqO7f7qmAb+enOTqqjo2214vvMd7n+syHZH5iqo6MMmRmd7DRSt9Dq20TricZw82vssvTnLxCOGnbWPxxe2Ce/rMX/wcWG4d+Pkkn07yraPNO1aou/gZ4veq90BV9aRMwetx3f3FcSnG/t39uap6TJIfyLTT+Ucz7WRK7n6Pv5wt3+8vJ1m3UptjmcXxBHzH7D5L1/l/S6azRz+V6YyNf05y9limkvxGd//B1pWr6rhMZwj8RlW9q7tfvI3n2pTkqKr62u7+/NZNLVehqh6W6cyz7+ju22q6/HT/7r6zqo5PckKSU5P8TKbL22bBEf+9y7uT3H8cSUuSVNV3ZDpC9pkR+r8323fE7PO5e9CLG5IcVtPAPUsjYz5qxZrJ06rqPuMal/9j1P9EkmNH+ZFJjl+pcnffnOn0rF/JdOoM987ZSV7c3ddsVX5Q7h7s71k70N73V9UhNQ0a+NRMe23fl+SpNV2X+zVJfjjJ3yxT99Ik31NVh9Y0kOPTk7x3zPt0VX1zTQO9/PBCnQ/m7hBx6g70k1U0zgg5P8npC8XvyvQlmCQZoX4LVfWN3X1pd/9qks9mCoPvy7SDMjX9CslRmT432DtdlOQBVfXM5CuDtr480+f5p7PlgEorfQ69P8mPjfrHZNo4TLb9GcIaqqpHVNXRC0XHZnq/11fVw0fZT+Tu9+sTmc4QSLbcUbS4/bG9Dkpyyziq/xO5+2yilXwsycMWrsV9+g4+H6vnoCSbR0B/VKYjsqmqwzKdXv3GJGcm+fZ72yZr6gOZBgPd3N13jW2KpTN9LxnLvDPJT1bVA5Okqg6vqgfX9Ktj/9rdf5LpwNbSurDsZ0d3/2uS1yZ5ZY1fjKiqh1bVM7Lyd8qBmQ5c3V5VD8m0wymjLwd19zsyDSa4tJ2zM59bexzBfy8yTlf74UzB7H9V1XWZrpt6R5INVXVFpo3rj21Hc+ck+f1xyu5+mc4keNk4TerqbHvE3Rsy/dNcmOSnx+lWH0jy8Uyn5/x2piOF2/KnST41TuvjXhinOP7uMrN+M9Oe0g/knjeSFr0/02nZV2e6HveK7v5QpnXmskwfon/U3Vct05dbkrwwyXuSfDjJh7r7rWP2CzJdv/XuTOMILHlekl+oqssyDR51b07pYtd6eaZxQ5Y8N9NnzUeq6vpM1+1t7beWBtHJFPg/nOl64P3GEcI3JHlWjwF42PssfBc9rapuzHTN9x2ZfmXmPUmOGQMg/XhW/hx6VaYdzh9J8l8znep/+z18hrC2Hpjk3KVBrzKdFvuCJP8p0+Uc12Q6Ars0APGLkvxuVf1NtjwT5G1Jfri2HNzvnrwqyWlV9cFMlwlt66y1jO2SM5L81Tj6+w/b+Tysvr/KtOPww0l+NdM2RTJ2Eo/t0j/M9Hlyb9tk7VyTafvhg1uV3d7dn02S7n5Xpks8LxmfH2/KFK6/JcllY1345ST/z6j/miQX1laD+w2/kukSpOvH9sdfJrl1pe+U7v5wplP8r8t0AG3pVwa+Nsnbx2fce3P3QMevT/JLNQ1kutcO7rc0cAHsVjX9AsBV3f3ate4La6um0Vi/2N1dVadmGujvKWvdL2D1jCMv9+3uO8ZG1EWZBojzM18AsApc58JuV1VXZtpb/4tr3Rf2CMdlGjCukvxTkp9c4/4Aq+8BmX6W6b6ZrsF8ttAPAKvHEX8AAACYMdf4AwAAwIwJ/gAAADBjgj8AAADMmOAPANyjqrpr/ATbtVX1tqr6unvR1our6km7sn8AwMoM7gcA3KOq+kJ3P3BMn5vk77r7rDXuFgCwHRzxBwB21CVJDl96UFW/VFWXV9VHqupFC+X/d1V9rKo2VtWfV9XzR/k5VXXKmD6hqq6qqmuq6uyquv8o/0RVvaiqPjTmPXI3v0YAmA3BHwDYblW1X5ITklwwHp+Y5Ogkxyc5NslxVfXdVbUhyY8m+bYkP5JkwzJt7Z/knCQ/3t3fkmRdkmcvLPLZ7v72JK9O8vzVek0AMHeCPwCwPQ6oqquTfC7JIUk2jvITx+2qJB9K8shMOwK+K8lbu/uL3f35JG9bps1HJPl4d//deHxuku9emP/mcX9lkvW77qUAwL5F8AcAtscXu/vYJN+Q5H5JnjPKK8lvdPex4/bw7n7tKL8n97TMl8b9XZnOBgAAdoLgDwBst+6+Pclzkzy/qu6b5J1JfrKqlgb+O7yqHpzk/Ul+qKr2H/OevExzH0uyvqoePh7/RJL3rvqLAIB9jL3nAMAO6e6rqurDSU7t7vOq6puTXFJVSfKFJM/o7sur6oIkH07yD0muSHL7Vu3cUVX/Kckbq2pdksuT/P7ufC0AsC/wc34AwKqoqgd29xeq6gFJ3pfkjO7+0Fr3CwD2NY74AwCr5TVVdUyS/ZOcK/QDwNpwxB8AAABmzOB+AAAAMGOCPwAAAMyY4A8AAAAzJvgDAADAjAn+AAAAMGOCPwAAAMzY/w/Nzt1pmnL6QAAAAABJRU5ErkJggg==\n", "text/plain": [ "<Figure size 1224x432 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(17, 6))\n", "sns.barplot(x=region_totals.index, y='sum', data=region_totals)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "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.0" } }, "nbformat": 4, "nbformat_minor": 4 }