{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Pandas - Data Science with Python" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Numpy and numpy arrays are our tool of choice for numeric data that resembles vectors, matrices (and higher dimensional tensors).\n", "\n", "Where data is gathered from experiments, and in particular where we want to extract meaning from the combination of different data sources, and where data is often incomplete, the pandas library offers a number of useful tools (and has become a standard tool for data scientists).\n", "\n", "In this section, we introduce the basics of Pandas.\n", "\n", "In particular, we introduce the two key data types in Pandas: the ``Series`` and the ``DataFrame`` objects." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By convention, the `pandas` library is imported under the name `pd` (the same way that `numpy` is imported under the name `np`:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Motivational example (Series)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Imagine we are working on software for a greengrocer or supermarket, and need to track the number of apples (10), oranges(3) and bananas (22) that are available in the supermarket. \n", "\n", "We could use a python list (or a numpy array) to track these numbers:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "stock = [10, 3, 22]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "However, we would need to remember separately that the entries are in the order of apples, oranges, and bananas. This could be achieved through a second list: " ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "stocklabels = ['apple', 'orange', 'banana']" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "apple : 10\n", "orange : 3\n", "banana : 22\n" ] } ], "source": [ "assert len(stocklabels) == len(stock) # check labels and \n", " # stock are consistent\n", "for label, count in zip(stocklabels, stock):\n", " print(f'{label:10s} : {count:4d}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above 2-list solution is a little awkward in two ways: firstly, we have use two lists to describe one set of data (and thus need to be carefuly to update them simulatenously, for example), and secondly, the access to the data given a label is inconvenient: We need to find the index of the label with one list, then use this as the index to the other list, for example" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "There are 22 bananas [index=2].\n" ] } ], "source": [ "index = stocklabels.index('banana')\n", "bananas = stock[index]\n", "print(f\"There are {bananas} bananas [index={index}].\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have come across similar examples in the section on dictionaries, and indeed a dictionary is a more convenient solution:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "stock_dic = {'apple': 10, \n", " 'orange': 3,\n", " 'banana': 22}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In a way, the keys of the dictionary contain the stock labels and the values contain the actual values:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['apple', 'orange', 'banana'])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock_dic.keys()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_values([10, 3, 22])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock_dic.values()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To retrieve (or change) the value for `apple`, we use `apple` as the key and retrieve the value through the dictionary's indexing notation:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock_dic['apple']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And we can summarise the stock as follows:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "apple : 10\n", "orange : 3\n", "banana : 22\n" ] } ], "source": [ "for label in stock_dic:\n", " print(f'{label:10s} : {stock_dic[label]:4d}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is a vast improvement over the 2-lists solution: (i) we only maintain one structure, which contains a value for every key - so we don't need to check that the lists have the same length. (ii) we can access individual elements through the label (using it as a key for the dictionary). " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Pandas Series object address the requriments above. It is similar to a dictionary, but with improvements for the given problem:\n", "\n", "* the order of the items is maintained\n", "* the values have to have the same type (higher execution performance)\n", "* a (large) number of convenience functionality, for example to deal with missing data, time series, sorting, plotting, and more " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pandas `Series`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Stock example - `Series`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can create a `Series` object - for example - from a dictionary:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "stock = pd.Series({'apple': 10, \n", " 'orange': 3,\n", " 'banana': 22})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The default presentation shows the entries one per row, with the label on the left, and the value on the right. " ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "pandas.core.series.Series" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(stock)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "apple 10\n", "orange 3\n", "banana 22\n", "dtype: int64" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The items on the left are referred to as the `index` of the Series, and are available as the `index` attribute of the `series` object:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['apple', 'orange', 'banana'], dtype='object')" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.index" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "pandas.core.indexes.base.Index" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(stock.index)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also access the list of values for each item, using the `values` attribute:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([10, 3, 22])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Regarding data access, the `Series` object behaves like a dictionary:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock['apple']" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "stock['potato'] = 101 # adding more values\n", "stock['cucumber'] = 1\n" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "apple 10\n", "orange 3\n", "banana 22\n", "potato 101\n", "cucumber 1\n", "dtype: int64\n" ] } ], "source": [ "print(stock)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "apple 10\n", "orange 3\n", "banana 22\n", "potato 101\n", "cucumber 1\n", "dtype: int64" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can plot the data as a bar chart:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "stock.plot(kind='bar')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can sort the data according to the values in the Series (and then plot to visualise):" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "stock.sort_values().plot(kind='bar')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or sort the index to get alphabetical order of our fruit and vegetables:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "stock.sort_index().plot(kind='bar')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `Series` object has a number of numerical methods available, including `mean` and `sum`:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "137" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.sum()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "27.4" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It also behaves like a sequence in that the `len` function returns the number of data points in the Series object:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "5" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(stock)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### memory usage" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For larger data sets, it might be important to know how many bytes storing the Series costs. The bytes required to store the actual series data are available as" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "40" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.nbytes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "or from the underlying numpy array directly:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "40" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.values.nbytes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is 40 bytes, because we have 5 elements stored as int64 (each needing 8 bytes):" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dtype('int64')" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.dtype" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Series object needs additional memory. This can be queried using:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "240" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.memory_usage()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Statistics" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A number of statistical descriptors of the data in the `stock` Series object is available using `describe()`:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "count 5.000000\n", "mean 27.400000\n", "std 41.955929\n", "min 1.000000\n", "25% 3.000000\n", "50% 10.000000\n", "75% 22.000000\n", "max 101.000000\n", "dtype: float64" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As usual, the documentation strings provide documentation (`help(stock.describe)`), and the pandas home page (`https://pandas.pydata.org`) provides links to the Pandas documentation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## Create Series from list\n", "\n", "In the example above, we showed how to create a Series from a dictionary where the keys of the dictionary entries served as the index for the Series object. \n", "\n", "We can also create a Series from a list, an provide an additional index:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": true }, "outputs": [], "source": [ "stock = pd.Series([10, 3, 22], index=['apple', 'orange', 'banana'])" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "apple 10\n", "orange 3\n", "banana 22\n", "dtype: int64" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we omit the `index` argument, the Series will assume an integer index:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": true }, "outputs": [], "source": [ "stock = pd.Series([10, 3, 22])" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 10\n", "1 3\n", "2 22\n", "dtype: int64" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "However, an index can be added subsequently:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": true }, "outputs": [], "source": [ "stock.index = ['apple', 'orange', 'banana']" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "apple 10\n", "orange 3\n", "banana 22\n", "dtype: int64" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Commonly used plots are easily accessible via the `plot()` method of the Series object. We have seen a bar plot above already. The `Series.plot()` method accepts an argument `kind` such as `kind=\"bar\"`, but there is an equivalent method `Series.plot.bar()` avaialble.\n", "\n", "Further examples:" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "stock.plot.pie()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To tailor the plot, we can either get the axis object and modify it subsequently:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = stock.plot.pie()\n", "ax.set_aspect(1)\n", "ax.set_ylabel(None);\n", "ax.set_title(None);" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "fig, ax = plt.subplots(1, 1, figsize=(9, 3))\n", "stock.plot.bar(ax=ax)\n", "ax.set_title(\"Current stock\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also fetch the data from the series and drive the plotting \"manually\" ourselves:" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "names = list(stock.index)\n", "values = list(stock.values)\n", "\n", "fig, ax = plt.subplots(1, 1, figsize=(9, 3))\n", "ax.bar(names, values)\n", "ax.set_title('Stock');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Missing values\n", "\n", "\"Real\" data sets tend to be incomplete. Dealing with missing values is an important topic in data science. The agreement in Pandas is that the special floating point value \"NaN\" (standing for `N`ot `a` `N`umber) represents missing data points. For example, if we have a table for the stock, but we don't know the value for `apple`, we would replace it with `NaN`. \n", "\n", "The special `Nan` value in Python can be created using `float('nan')` or using `numpy.nan` if the `numpy` module is imported." ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": true }, "outputs": [], "source": [ "stock['apple'] = float('nan')" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "apple NaN\n", "orange 3.0\n", "banana 22.0\n", "dtype: float64" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the `dtype` of the `stock` Series object has changed from `int64` to `float64` when we assigned `NaN` to `apple`: the whole series has been converted to float, because `NaN` is only defined for floating point numbers. \n", "\n", "(There is a proposal to create a `NaN` object as part of pandas - this would overcome the above limitation.)\n", "\n", "Assume we need to calculate how many items of stock we have in total using the `sum` function:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([nan, 3., 22.])" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A common situation is that we have an incomplete Series or DataFrame (which are multiple Series with the same index) and we want to process with our analysis, but treat the missing values in a special way." ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "25.0" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above example `sum` shows that `NaN` values are simply ignored, which can be convenient." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also 'tidy up' the Series object, by removing all entries that have a `NaN` value:" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "orange 3.0\n", "banana 22.0\n", "dtype: float64" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.dropna()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Series data access: explicit and implicit (`loc` and `iloc`)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": true }, "outputs": [], "source": [ "stock = pd.Series({'apple': 10, \n", " 'orange': 3,\n", " 'banana': 22,\n", " 'cucumber' : 1,\n", " 'potato' : 110})" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "apple 10\n", "orange 3\n", "banana 22\n", "cucumber 1\n", "potato 110\n", "dtype: int64" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Indexing\n", "\n", "We can access single values through their index as if the stock Series object would be a dictionary:" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "22" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock['banana']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is an equivalent and recommended way of using this retrieval using the `loc` (for LOCation?) attribute:" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "22" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.loc['banana']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For convenience, pandas also (!) allows us to use integer indexing into the Series object. This is called *implicit* indexing as the series Object doesn't use integers as the index, but the name of the fruits.\n", "\n", "For example, we can also retrieve the value for `banana` through its implicit index 2, because it is in row 3 of the Series object (which would need index 2 as we start counting from 0):\n" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "22" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock[2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this example, this works fine and seems convenient, but can become very confusing if the actual index of the object consists of integers. For that reason, the explicit (and recommended way) of using the indirect indexing is through the `iloc` (ImplicitLOCation) attribute:" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "22" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.iloc[2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Slicing" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "apple 10\n", "orange 3\n", "banana 22\n", "cucumber 1\n", "potato 110\n", "dtype: int64" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also slice the Series:" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "orange 3\n", "banana 22\n", "cucumber 1\n", "potato 110\n", "dtype: int64" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock['orange':'potato']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or skip every second entry:\n", "\n" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "orange 3\n", "cucumber 1\n", "dtype: int64" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock['orange':'potato':2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Data manipulation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Numerical operations on the series object can be carried for all data values at the same time inthe same way that numpy arrays are processed:" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "apple -19.2\n", "orange -26.2\n", "banana -7.2\n", "cucumber -28.2\n", "potato 80.8\n", "dtype: float64" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock - stock.mean()" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "apple 3.162278\n", "orange 1.732051\n", "banana 4.690416\n", "cucumber 1.000000\n", "potato 10.488088\n", "dtype: float64" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.sqrt(stock)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Where preferred, we can extract the numpy array and work with that:" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": true }, "outputs": [], "source": [ "data = stock.values" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "numpy.ndarray" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(data)" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-19.2, -26.2, -7.2, -28.2, 80.8])" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data - data.mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Import and Export\n", "\n", "Pandas (and its objects `Series` and `DataFrame`) support export to and import from a number of useful formats.\n", "\n", "For example, we can write a `Series` object into a comma separated value file:" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "collapsed": true }, "outputs": [], "source": [ "stock.to_csv('stock.csv', header=False)" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "apple,10\n", "orange,3\n", "banana,22\n", "cucumber,1\n", "potato,110\n" ] } ], "source": [ "#NBVAL_IGNORE_OUTPUT\n", "!cat stock.csv" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also create a $\\LaTeX$ representation of the table:" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'\\\\begin{tabular}{lr}\\n\\\\toprule\\n{} & 0 \\\\\\\\\\n\\\\midrule\\napple & 10 \\\\\\\\\\norange & 3 \\\\\\\\\\nbanana & 22 \\\\\\\\\\ncucumber & 1 \\\\\\\\\\npotato & 110 \\\\\\\\\\n\\\\bottomrule\\n\\\\end{tabular}\\n'" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock.to_latex()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll come back to reading from files in the `DataFrame` section." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data Frame" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Stock Example - `DataFrame`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "After having introduced the `Series` object above, we will focus on the second important type in pandas: the `DataFrame`.\n", "\n", "As a first description, we could say that the `DataFrame` is similar to a (2d) spreadsheet: it contains rows and columns.\n", "\n", "The series object we have studied above is a special case of the `DataFrame`, where the `DataFrame` has only one column.\n", "\n", "We'll continue with our stock example:" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "apple 10\n", "orange 3\n", "banana 22\n", "cucumber 1\n", "potato 110\n", "dtype: int64" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stock" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In addition to tracking how many objects of each type we have stocked, we have a second Series object that provides the price per item at which the item is sold:" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "apple 0.55\n", "banana 0.50\n", "cucumber 0.99\n", "potato 0.17\n", "orange 1.76\n", "dtype: float64" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "price = pd.Series({'apple': 0.55, 'banana': 0.50, 'cucumber' : 0.99, 'potato' : 0.17, 'orange': 1.76})\n", "price" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `DataFrame` object allows us to treat the two series together. In fact, a convenient way to create the `DataFrame` object is to combine a number of series as follows:" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
stockprice
apple100.55
banana220.50
cucumber10.99
orange31.76
potato1100.17
\n", "
" ], "text/plain": [ " stock price\n", "apple 10 0.55\n", "banana 22 0.50\n", "cucumber 1 0.99\n", "orange 3 1.76\n", "potato 110 0.17" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shop = pd.DataFrame({'stock' : stock, 'price' : price})\n", "shop" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Because both `Series` objects had the same `index` elements, our data is nicely aligned in the `DataFrame` with name `shop`, even though the data was stored in different order in the `price` and `stock`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If one Series is missing a data point, pandas will insert a `NaN` entry into that field:" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "collapsed": true }, "outputs": [], "source": [ "price2 = price.copy()" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "apple 0.55\n", "banana 0.50\n", "cucumber 0.99\n", "potato 0.17\n", "orange 1.76\n", "grapefruit 1.99\n", "dtype: float64" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "price2['grapefruit'] = 1.99\n", "price2" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
stockprice
apple10.00.55
banana22.00.50
cucumber1.00.99
grapefruitNaN1.99
orange3.01.76
potato110.00.17
\n", "
" ], "text/plain": [ " stock price\n", "apple 10.0 0.55\n", "banana 22.0 0.50\n", "cucumber 1.0 0.99\n", "grapefruit NaN 1.99\n", "orange 3.0 1.76\n", "potato 110.0 0.17" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame({'stock' : stock, 'price' : price2})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Accessing data in a DataFramea\n" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
stockprice
apple100.55
banana220.50
cucumber10.99
orange31.76
potato1100.17
\n", "
" ], "text/plain": [ " stock price\n", "apple 10 0.55\n", "banana 22 0.50\n", "cucumber 1 0.99\n", "orange 3 1.76\n", "potato 110 0.17" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shop" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The data frame has an *index* which is the same for all columns, and shown in bold in the left most column. We can also ask for it:" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['apple', 'banana', 'cucumber', 'orange', 'potato'], dtype='object')" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shop.index" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each column has name (here `stock` and `price`):" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['stock', 'price'], dtype='object')" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shop.columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Extracting columns of data\n", "\n", "Using the column names, we can extract one column into a Series object using the index operator (`[]`):" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "apple 10\n", "banana 22\n", "cucumber 1\n", "orange 3\n", "potato 110\n", "Name: stock, dtype: int64" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shop['stock']" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "apple 0.55\n", "banana 0.50\n", "cucumber 0.99\n", "orange 1.76\n", "potato 0.17\n", "Name: price, dtype: float64" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shop['price']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Extracting rows of data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have two options of extracting a row of data. \n", "\n", "First, explicit indexing using the label of the index in that row:" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "stock 10.00\n", "price 0.55\n", "Name: apple, dtype: float64" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shop.loc['apple'] # single row is returned as series" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
stockprice
banana220.50
cucumber10.99
\n", "
" ], "text/plain": [ " stock price\n", "banana 22 0.50\n", "cucumber 1 0.99" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shop.loc['banana':'cucumber'] # multiple rows are returned as DataFrame" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Second, we can use the implicit indexing (as for Series objects):" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "stock 10.00\n", "price 0.55\n", "Name: apple, dtype: float64" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shop.iloc[0]" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
stockprice
banana220.50
cucumber10.99
\n", "
" ], "text/plain": [ " stock price\n", "banana 22 0.50\n", "cucumber 1 0.99" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shop.iloc[1:3]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Warning\n", "\n", "Note that there are some inconsistencies here: the explicit slicing with index labels (such as `.loc['banana':'cucumber']`) is inclusive of `cucumber`, whereas in the implicit slicing (such as `.iloc[1:3]`) the row with index `3` is *not* included.\n", "\n", "The behaviour of `.loc` is convenient and a good design choice if labels such as strings in our `stock` example are used. The behaviour of `.iloc` is reflecting the normal Python behaviour.\n", "\n", "It is thus understandable how we have arrived at the situation.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Data manipulation with `shop`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The real strength of the DataFrames is that we can continue to process the data conveniently. \n", "\n", "For example, we could work out the financial value of the items we have in stock, and add this as an extra column:" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
stockpricevalue
apple100.555.50
banana220.5011.00
cucumber10.990.99
orange31.765.28
potato1100.1718.70
\n", "
" ], "text/plain": [ " stock price value\n", "apple 10 0.55 5.50\n", "banana 22 0.50 11.00\n", "cucumber 1 0.99 0.99\n", "orange 3 1.76 5.28\n", "potato 110 0.17 18.70" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shop['value'] = shop['price'] * shop['stock']\n", "shop" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Of course we can compute the sum, for example, to estimate the value of the total stock:" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "41.47" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shop['value'].sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If, for whatever reason, we want to swap columns with rows, we can `transpose` the data frame like a numpy array:" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
applebananacucumberorangepotato
stock10.0022.01.003.00110.00
price0.550.50.991.760.17
value5.5011.00.995.2818.70
\n", "
" ], "text/plain": [ " apple banana cucumber orange potato\n", "stock 10.00 22.0 1.00 3.00 110.00\n", "price 0.55 0.5 0.99 1.76 0.17\n", "value 5.50 11.0 0.99 5.28 18.70" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shop.transpose()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example: European population 2017\n", "\n", "Here is a second example to demonstrate some use cases of pandas DataFrames." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we get the data. It is originally from EUROSTAT (reference \"demo_gind\")" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--2019-06-19 20:36:43-- https://fangohr.github.io/data/eurostat/population2017/eu-pop-2017.csv\n", "Resolving fangohr.github.io... 185.199.108.153, 185.199.109.153, 185.199.111.153, ...\n", "Connecting to fangohr.github.io|185.199.108.153|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 1087 (1.1K) [text/csv]\n", "Saving to: ‘eu-pop-2017.csv’\n", "\n", "eu-pop-2017.csv 100%[===================>] 1.06K --.-KB/s in 0s \n", "\n", "2019-06-19 20:36:43 (61.0 MB/s) - ‘eu-pop-2017.csv’ saved [1087/1087]\n", "\n" ] } ], "source": [ "#NBVAL_IGNORE_OUTPUT\n", "!wget https://fangohr.github.io/data/eurostat/population2017/eu-pop-2017.csv" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The data source is a comma-separated-value file (CSV), which looks like this:" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "geo,pop17,pop18,births,deaths\n", "Belgium ,11351727,11413058,119690,109666\n", "Bulgaria,7101859,7050034,63955,109791\n", "Czechia,10578820,10610055,114405,111443\n", "Denmark,5748769,5781190,61397,53261\n", "Germany,82521653,82850000,785000,933000\n", "Estonia ,1315634,1319133,13784,15543\n", "Ireland,4784383,4838259,62084,30324\n", "Greece,10768193,10738868,88523,124530\n", "Spain,46527039,46659302,390024,421269\n" ] } ], "source": [ "#NBVAL_IGNORE_OUTPUT\n", "!head eu-pop-2017.csv" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pandas has very strong support of reading files from different formats, including MS Excel, CSV, HDF5 and others. Each reading routine has a number of options to tailor the process.\n", "\n", "Many data science projects leave the data in their original files, and use a few lines of Python code to import it." ] }, { "cell_type": "code", "execution_count": 85, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df = pd.read_csv('eu-pop-2017.csv')" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
geopop17pop18birthsdeaths
0Belgium1135172711413058119690109666
1Bulgaria7101859705003463955109791
2Czechia1057882010610055114405111443
3Denmark574876957811906139753261
4Germany8252165382850000785000933000
5Estonia131563413191331378415543
6Ireland478438348382596208430324
7Greece107681931073886888523124530
8Spain4652703946659302390024421269
9France6698908367221943767691603141
10Croatia415421241054933655653477
11Italy6058944560483973458151649061
12Cyprus85480286423692295997
13Latvia195011619343792082828757
14Lithuania284790428089012869640142
15Luxembourg59066760200561744263
16Hungary9797561977837194646131877
17Malta46029747570143193571
18Netherlands1708150717181084169200150027
19Austria877286588222678763383270
20Poland3797296437976687401982402852
21Portugal103095731029102786154109586
22Romania1964435019523621189474260599
23Slovenia206589520668802024120509
24Slovakia543534354431205796953914
25Finland550329755131305032153722
26Sweden99951531012024211541691972
27United Kingdom6580857366238007755043607172
\n", "
" ], "text/plain": [ " geo pop17 pop18 births deaths\n", "0 Belgium 11351727 11413058 119690 109666\n", "1 Bulgaria 7101859 7050034 63955 109791\n", "2 Czechia 10578820 10610055 114405 111443\n", "3 Denmark 5748769 5781190 61397 53261\n", "4 Germany 82521653 82850000 785000 933000\n", "5 Estonia 1315634 1319133 13784 15543\n", "6 Ireland 4784383 4838259 62084 30324\n", "7 Greece 10768193 10738868 88523 124530\n", "8 Spain 46527039 46659302 390024 421269\n", "9 France 66989083 67221943 767691 603141\n", "10 Croatia 4154212 4105493 36556 53477\n", "11 Italy 60589445 60483973 458151 649061\n", "12 Cyprus 854802 864236 9229 5997\n", "13 Latvia 1950116 1934379 20828 28757\n", "14 Lithuania 2847904 2808901 28696 40142\n", "15 Luxembourg 590667 602005 6174 4263\n", "16 Hungary 9797561 9778371 94646 131877\n", "17 Malta 460297 475701 4319 3571\n", "18 Netherlands 17081507 17181084 169200 150027\n", "19 Austria 8772865 8822267 87633 83270\n", "20 Poland 37972964 37976687 401982 402852\n", "21 Portugal 10309573 10291027 86154 109586\n", "22 Romania 19644350 19523621 189474 260599\n", "23 Slovenia 2065895 2066880 20241 20509\n", "24 Slovakia 5435343 5443120 57969 53914\n", "25 Finland 5503297 5513130 50321 53722\n", "26 Sweden 9995153 10120242 115416 91972\n", "27 United Kingdom 65808573 66238007 755043 607172" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We look at the dataframe as it is, and use the 'head()' command which will only show the first 5 lines of data:" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
geopop17pop18birthsdeaths
0Belgium1135172711413058119690109666
1Bulgaria7101859705003463955109791
2Czechia1057882010610055114405111443
3Denmark574876957811906139753261
4Germany8252165382850000785000933000
\n", "
" ], "text/plain": [ " geo pop17 pop18 births deaths\n", "0 Belgium 11351727 11413058 119690 109666\n", "1 Bulgaria 7101859 7050034 63955 109791\n", "2 Czechia 10578820 10610055 114405 111443\n", "3 Denmark 5748769 5781190 61397 53261\n", "4 Germany 82521653 82850000 785000 933000" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The meaning of the colums, we have to get from metada information. In this case, we have the following description of the data:\n", "\n", "- **geo**: the country in question\n", "- **pop17**: the population count of that country as of 1 January 2017\n", "- **pop18**: the population count of that country as of 1 January 2018\n", "- **births**: the number of (live) births in the country during the year 2017\n", "- **deaths**: the number of deaths in that country during the year 2017\n", "\n", "The data is provided for all of the 28 European Union members (as of 2017)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to use the country as the country name as the index. We can achieve this either with" ] }, { "cell_type": "code", "execution_count": 88, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df2 = df.set_index('geo')" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pop17pop18birthsdeaths
geo
Belgium1135172711413058119690109666
Bulgaria7101859705003463955109791
Czechia1057882010610055114405111443
Denmark574876957811906139753261
Germany8252165382850000785000933000
\n", "
" ], "text/plain": [ " pop17 pop18 births deaths\n", "geo \n", "Belgium 11351727 11413058 119690 109666\n", "Bulgaria 7101859 7050034 63955 109791\n", "Czechia 10578820 10610055 114405 111443\n", "Denmark 5748769 5781190 61397 53261\n", "Germany 82521653 82850000 785000 933000" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that we cannot change the index in a given DataFrame, so the `set_index()` method returns a new DataFrame. (This happens for many operations.)\n", "\n", "An as alternative, we can also modify the import statement to already indicate which column we want to use as the index:" ] }, { "cell_type": "code", "execution_count": 90, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df = pd.read_csv('eu-pop-2017.csv', index_col=\"geo\")" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pop17pop18birthsdeaths
geo
Belgium1135172711413058119690109666
Bulgaria7101859705003463955109791
Czechia1057882010610055114405111443
Denmark574876957811906139753261
Germany8252165382850000785000933000
\n", "
" ], "text/plain": [ " pop17 pop18 births deaths\n", "geo \n", "Belgium 11351727 11413058 119690 109666\n", "Bulgaria 7101859 7050034 63955 109791\n", "Czechia 10578820 10610055 114405 111443\n", "Denmark 5748769 5781190 61397 53261\n", "Germany 82521653 82850000 785000 933000" ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We explore the data by plotting some of it:" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df.plot(kind='bar', y='pop17')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above shows the population as of 1 Jan 2017. \n", "\n", "We'll try to improve this in two ways:\n", "\n", "- we want to count population in millions. We can do this by dividing all the data by $10^6$.\n", "\n", "- it would be interesting to sort the countries in order of size for this plot.\n", "\n" ] }, { "cell_type": "code", "execution_count": 93, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df_millions = df / 1e6" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df_millions['pop17'].sort_values(ascending=False).plot(kind='bar')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The example above selects one column from the data frame (`['pop17'`) and that returns a `Series` object. Then we sort this `Series` object using `sort_values()` according to the values (that's the number of poeple in each country), then we plot this." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alternatively, we could also create a plot for the whole data frame, but say that the `pop17` is the column for sorting, and that we want to plot only the column with `pop17`:" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df_millions.sort_values(by='pop17').plot(kind='bar', y='pop17')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also plot more than one column at the same time:" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAFQCAYAAACvXoVzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJztnXm4HFW1t99FGMIYpshFMSTKJMpoQBCuCIjAVSYFNIBGQNFPUcABUa+XONwLeBVFRTSCEAEJCCIgikKYB4EEAmG8BAgQZBIBUWQIrO+PtTunTqequqpPn9PndH7v8/TTXVVrV6+urlp777XXXtvcHSGEECOfJbqtgBBCiM4ggy6EED2CDLoQQvQIMuhCCNEjyKALIUSPIIMuhBA9ggy6EEL0CDLoQgjRI8igCyFEj7DkUH7Z6quv7uPHjx/KrxRCiBHPrFmz/uruY1vJDalBHz9+PDNnzhzKrxRCiBGPmT1URU4uFyGE6BFk0IUQokeQQRdCiB5hSH3oebzyyivMnz+fF198sduqdJXRo0ez1lprsdRSS3VbFSHECKXrBn3+/PmsuOKKjB8/HjPrtjpdwd15+umnmT9/PhMmTOi2OkKIEUrXXS4vvvgiq6222mJrzAHMjNVWW22x76UIIQZG1w06sFgb8wa6BkKIgTIsDLoQQoiB03UfejPjj7q4o+ebd+z7Onq+Mq6++moOP/xwbr/9dqZPn87ee+8NwBVXXMERRxyxUO6ee+5h+vTp7LnnnkOmmxBiBDBlTObzc7WLDzuDPpIZN24cp512Gt/97nf77d9+++2ZPXs2AH/7299YZ511eO9739sNFYUQw4xsI3be6IGdSy4XYN68eWywwQbsv//+vOUtb2HvvffmhRdeYMaMGWy22WZstNFGHHTQQbz00ktApDA48sgj2Wijjdhyyy2ZO3fuwv0bb7wxSyxRfFnPPfdcdt11V5Zbbrkh+W1CiMUHGfTEvffey6c//WnuvvtuVlppJY4//ng+9rGPcfbZZzNnzhwWLFjASSedtFB+zJgxzJkzh0MPPZTDDz+88vdMnz6dSZMmDcZPEEIs5lQy6GZ2hJndaWZ3mNlZZjbazCaY2Y1mNtfMzjazpQdb2cHkjW98I9tssw0ABxxwADNmzGDChAmst956AEyePJmrr756oXzDKE+aNIkbbrih0nc89thjzJkzh5133rnD2gshRAWDbmZvAD4HTHT3twGjgA8DxwHfd/d1gGeAgwdT0cGmOWxw5ZVXrixfNeTwnHPOYa+99tJsUCHEoFDV5bIksKyZLQksBzwG7ACcm45PA0Z0yMbDDz+8sKX9q1/9iokTJzJv3ryF/vHTTz+d7bbbbqH82WefvfB96623rvQdZ511ltwtQohBo2WUi7s/ambfBR4G/gX8CZgFPOvuC5LYfOANnVBoKMMMs6y//vqceOKJHHTQQWy44Yb88Ic/ZKuttmKfffZhwYIFbLHFFnzqU59aKP/MM8+w8cYbs8wyy3DWWWcBcPPNN7PXXnvxzDPPcNFFF3H00Udz5513xu+aN49HHnmkX6UghBCdpKVBN7NVgD2ACcCzwK+BXap+gZkdAhwCEdY3XFlyySU544wz+u3bcccdufXWW3Plv/SlL3Hcccf127fFFlswf/78XPnx48fz6KOPdkZZIYTIoYrL5T3Ag+7+lLu/AvwG2AZYOblgANYCcq2Vu09194nuPnHs2JYrKAkhhGiTKgb9YWArM1vOYvRvR+Au4Apg7yQzGbhgcFQcfMaPH88dd9xRWX7evHmsvvrqg6iREELUp6VBd/cbicHPW4A5qcxU4MvA581sLrAacMog6imEEKIFlab+u/vRwNFNux8Atuy4RkIIIdpCM0WFEKJHkEEXQogeYfhlW8ymj+zI+eqnoGyXovS5AEceeSQXX3wxr732GjvttBMnnHCCFrUQQnQUtdA7SCN97n777ddv//XXX891113H7bffzh133MHNN9/MVVdd1SUthRC9igw6g58+18x48cUXefnll3nppZd45ZVXWGONNYb8dwohehsZ9MRgps/deuut2X777VlzzTVZc8012XnnnXnLW94y2D9JCLGYIYOeGMz0uXPnzuXuu+9m/vz5PProo1x++eVcc801g/RLhBCLKzLoicFMn3v++eez1VZbscIKK7DCCiuw6667Vs6hLoQQVZFBTwxm+txx48Zx1VVXsWDBAl555RWuuuoquVyEEB1nGIYtDl2YYZbBTJ+79957c/nll7PRRhthZuyyyy7stttuXfmdQojeZfgZ9C4xmOlzR40axc9+9rPOKSuEEDnI5SKEED2CWui0lz5XCCGGG8Oihe7u3Vah6+gaCCEGStcN+ujRo3n66acXa4Pm7jz99NOMHj2626oIIUYwXXe5rLXWWsyfP5+nnnqq26p0ldGjR7PWWmt1Ww0hxAimyiLR6wNnZ3a9Cfgv4Jdp/3hgHrCvuz9TV4GlllqKCRMm1C0mhBCiiSpL0N3r7pu6+6bA24EXgPOBo4AZ7r4uMCNtCyGE6BJ1feg7Ave7+0PAHsC0tH8asGcnFRNCCFGPugb9w8BZ6fMa7v5Y+vw4oHywQgjRRSobdDNbGtgd+HXzMY8QldwwFTM7xMxmmtnMxX3gUwghBpM6LfRdgVvc/Ym0/YSZrQmQ3p/MK+TuU919ortPHDt27MC0FUIIUUgdgz6JPncLwIXA5PR5MnBBp5QSQghRn0oG3cyWB3YCfpPZfSywk5ndB7wnbQshhOgSlSYWufs/gdWa9j1NRL0IIYQYBnR96r8QQojOIIMuhBA9QtdzuQghRC8x/qiLF36eN3q/vgNDsBqbWuhCCNEjqIUuhBBVmTIm87k76x+XIYMuhBAl9HehdFGRCsjlIoQQPYIMuhBC9Agy6EII0SPIoAshRI8ggy6EED2CDLoQQvQIMuhCCNEjyKALIUSPIIMuhBA9ggy6EEL0CFVXLFrZzM41s3vM7G4z29rMVjWzS83svvS+ymArK4QQopiqLfQTgEvcfQNgE+Bu4ChghruvC8xI20IIIbpEy+RcZjYGeBfwMQB3fxl42cz2AN6dxKYBVwJfHgwlhRCiU3QzX/lgU6WFPgF4CjjVzG41s5PTotFruPtjSeZxYI3BUlIIIURrqhj0JYHNgZPcfTPgnzS5V9zdAc8rbGaHmNlMM5v51FNPDVRfIYQQBVQx6POB+e5+Y9o+lzDwT5jZmgDp/cm8wu4+1d0nuvvEsWPHdkJnIYQQObQ06O7+OPCIma2fdu0I3AVcCExO+yYDFwyKhkIIISpRdcWizwJnmtnSwAPAgURlcI6ZHQw8BOw7OCoKIYSoQiWD7u6zgYk5h3bsrDpCCCHaRTNFhRCiR5BBF0KIHkEGXQghegQZdCGE6BFk0IUQokeQQRdCiB5BBl0IIXoEGXQhhOgRZNCFEKJHkEEXQogeQQZdCCF6BBl0IYToEWTQhRCiR5BBF0KIHkEGXQghegQZdCGE6BEqLXBhZvOA54FXgQXuPtHMVgXOBsYD84B93f2ZwVFTCCFEK+q00Ld3903dvbFy0VHADHdfF5iRtoUQQnSJgbhc9gCmpc/TgD0Hro4QQoh2qWrQHfiTmc0ys0PSvjXc/bH0+XFgjY5rJ4QQojKVfOjAtu7+qJm9DrjUzO7JHnR3NzPPK5gqgEMAxo0bNyBlhRBCFFOphe7uj6b3J4HzgS2BJ8xsTYD0/mRB2anuPtHdJ44dO7YzWgshhFiElgbdzJY3sxUbn4H3AncAFwKTk9hk4ILBUlIIIURrqrhc1gDON7OG/K/c/RIzuxk4x8wOBh4C9h08NYUQQrSipUF39weATXL2Pw3sOBhKCSGEqI9migohRI8ggy6EED2CDLoQQvQIVePQhRBiWDL+qIsXfp43er++A1Oe64I23UUtdCGE6BFk0IUQokeQQRdCiB5BBl0IIXoEGXQhhOgRZNCFEKJHkEEXQogeQQZdCCF6BBl0IYToEWTQhRCiR5BBF0KIHkEGXQgheoTKBt3MRpnZrWb2u7Q9wcxuNLO5Zna2mS09eGoKIYRoRZ0W+mHA3Znt44Dvu/s6wDPAwZ1UTAghRD0qGXQzWwt4H3By2jZgB+DcJDIN2HMwFBRCCFGNqi30HwBHAq+l7dWAZ919QdqeD7yhw7oJIYSoQUuDbmbvB55091ntfIGZHWJmM81s5lNPPdXOKYQQQlSgSgt9G2B3M5sHTCdcLScAK5tZY8WjtYBH8wq7+1R3n+juE8eOHdsBlYUQQuTR0qC7+1fcfS13Hw98GLjc3fcHrgD2TmKTgQsGTUshhBAtGUgc+peBz5vZXMKnfkpnVBJCCNEOtRaJdvcrgSvT5weALTuvkhBCiHaoZdCFEGKwGX/UxQs/zxu9X9+BKc91QZuRhab+CyFEjyCDLoQQPYIMuhBC9Agy6EII0SPIoAshRI8ggy6EED2CDLoQQvQIMuhCCNEjyKALIUSPIIMuhBA9ggy6EEL0CDLoQgjRI8igCyFEjyCDLoQQPYIMuhBC9AhVFokebWY3mdltZnanmX0j7Z9gZjea2VwzO9vMlh58dYUQQhRRpYX+ErCDu28CbArsYmZbAccB33f3dYBngIMHT00hhBCtqLJItLv7P9LmUunlwA7AuWn/NGDPQdFQCCFEJSr50M1slJnNBp4ELgXuB5519wVJZD7whsFRUQghRBUqGXR3f9XdNwXWIhaG3qDqF5jZIWY208xmPvXUU22qKYQQohW1olzc/VngCmBrYGUzaywyvRbwaEGZqe4+0d0njh07dkDKCiGEKKZKlMtYM1s5fV4W2Am4mzDseyexycAFg6WkEEKI1izZWoQ1gWlmNoqoAM5x99+Z2V3AdDP7NnArcMog6imEEKIFLQ26u98ObJaz/wHCny6EEGIYoJmiQgjRI8igCyFEjyCDLoQQPYIMuhBC9Agy6EII0SPIoAshRI8ggy6EED2CDLoQQvQIMuhCCNEjyKALIUSPIIMuhBA9ggy6EEL0CDLoQgjRI8igCyFEjyCDLoQQPYIMuhBC9AhVlqB7o5ldYWZ3mdmdZnZY2r+qmV1qZvel91UGX10hhBBFVGmhLwC+4O4bAlsBnzGzDYGjgBnuvi4wI20LIYToEi0Nurs/5u63pM/PEwtEvwHYA5iWxKYBew6WkkIIIVpTy4duZuOJ9UVvBNZw98fSoceBNTqqmRBCiFq0XCS6gZmtAJwHHO7ufzezhcfc3c3MC8odAhwCMG7cuIFpK4QYcYw/6uKFn+cd+74uatL7VDLoZrYUYczPdPffpN1PmNma7v6Yma0JPJlX1t2nAlMBJk6cmGv0hRCLCVPGZD4/1z09epQqUS4GnALc7e7HZw5dCExOnycDF3RePSGEEFWp0kLfBvgIMMfMZqd9XwWOBc4xs4OBh4B9B0dFIYQQVWhp0N39WsAKDu/YWXWEEEK0i2aKCiFEjyCDLoQQPULlsEUhhICmMMTR+/UdUNRK11ELXQghegQZdCGE6BFk0IUQokeQQRdCiB5BBl0IIXoEGXQhhOgRZNCFEKJHkEEXQogeQQZdCCF6BBl0IYToEWTQhRCiR5BBF0KIHkEGXQgheoSW2RbN7BfA+4En3f1tad+qwNnAeGAesK+7PzN4agohBgtlT+wdqrTQTwN2adp3FDDD3dcFZqRtIYQQXaTKEnRXm9n4pt17AO9On6cBVwJf7qBeQohE3Ra0WtyLL+0ucLGGuz+WPj8OrNEhfYQY2UwZk/ksgyuGlgGvWOTubmZedNzMDgEOARg3btxAv06IQWdgLeJBU0uIlrQb5fKEma0JkN6fLBJ096nuPtHdJ44dO7bNrxNCCNGKdlvoFwKTgWPT+wUd00iIwaSCS0SIkUqVsMWziAHQ1c1sPnA0YcjPMbODgYeAfQdTSSEGglwiYnGhSpTLpIJDO3ZYFyGEEANAM0WFEKJHkEEXQogeYcBhi0IMNYrjFiIftdCFEKJHkEEXQogeQS4X0XXkQhGiM8igi5YoOZQQIwMZ9MUdzZwUomeQQV8M0cxJIXoTGfQeIdfNoRa3EIsVinIRQogeQQZdCCF6BLlchin9XCjHvq+LmgghRgoy6CMBRaIIISoggz5EKDZbCDHYyKC3iQy0EGK4MSCDbma7ACcAo4CT3f3YjmjVBWSghRAjnbYNupmNAk4EdgLmAzeb2YXuflenlBsIMtBCiMWNgbTQtwTmuvsDAGY2HdgDqGTQlR9ECCE6y0Di0N8APJLZnp/2CSGE6ALm7u0VNNsb2MXdP562PwK8w90PbZI7BDgkba4P3JtzutWBv9b4esl3Tn446SJ5yUs+X35tdx/bsrS7t/UCtgb+mNn+CvCVNs81U/LdkR9Oukhe8pKvJ9/8GojL5WZgXTObYGZLAx8GLhzA+YQQQgyAtgdF3X2BmR0K/JEIW/yFu9/ZMc2EEELUYkBx6O7+e+D3HdBjquS7Jj+cdJG85CU/ANoeFBVCCDG8UPpcIYToEWTQhRCiR1ByLiGEKCClOHkfMJ6MvXT347ulUxk930I3s1XMbONu6zEUmNnrzGxc49VtfapiZrvm7PtUN3RJ372bmQ27Z6PO/2tmy5rZ+oOkxzZmtnz6fICZHW9ma1coNyzuTzPbqIb4RcDHgNWAFTOvTunyPTN7a8fO161BUTMbC3wZ2BBYuPa8u+9QIH8R0Kzsc8BM4Gfu/mJG9kpgd6JGnQU8CVzn7p/v4E/AzN4HvLVJ/2/myI0GDs6RPajk3JXLmNnuwPeA1xO/dW3gbnd/a5Pc8yx6DRfi7isV6LIV8CPgLcDSRJjqP5vlzWxOi/PnVqxmdj3wn+5+edo+Etje3Rcx9On4usAxLHrvvClHtp1rfwYxce48Ihz3niLZJL8M8EEWbcV9s0mu6PpYiBden0r/b0Z+N+C7wNLuPsHMNgW+6e67l/2OqpjZ7cAmwMbAacDJwL7uvt1A9G/n/jGzDwDHAa8jrmPjWubey6nMNcAySfcz3b0wIZSZ3V70v3QCM/s4cCBx35wKnFWmTyu66XI5Ezib6M58CpgMPFUi/wAwFjgrbX8IeB5YD/g58JGM7Bh3/3u6WL9096PTTdgxzOynwHLA9sQNvTdwU4H46cA9wM7AN4H9gbtbfEWdMt8CtgIuc/fNzGx74IBmIXdfMen+LeCx9B2Wzr1miS4/JiaO/RqYCHyUuO7NvD+9fybzG0jnL2N34Hdm9iVgF2ADItFbEacCRwPfJ67/gRT3Nmtfe3c/wMxWAiYBp5mZ0/ewPZ9T5AKicTELeKnk1O8vOVZGpf83wxQied6VAO4+28wmFAmnHux4+ldGvyk5/wJ3dzPbA/ixu59iZgd3QP927p/vALu5e6vnaSHu/u+pUXAQMMvMbgJOdfdLc8T/YGbvdfc/VT2/mW0LrOvup6aG6wru/mCBLicDJ6fe1IHA7WZ2HfBzd7+i6ndmT9iVFzArvd+e2Xdzifwixxr7gDub9s8hDNSfgC2avyfnPOsC5xKZIh9ovFrof3vT+wrANQWytzbJLgX8ucX5K5chTRcGbgOWaHwuOfcix1rIz8zqktWvTPemfbe0+L2vA24nDKdVvHfmNO/rxLXPlF0NOByYB/wBuA/4bI7cHVXO1+6rjf/3z83/Q9H9D/yC6OVOS9f+VKJXUqbPVUSqj/8D/o2oTOd0UP/K9w/R8273uo4ielaPEpX8PcAHmmT2Av4J/Av4O9GI/HvJOY8m3DT/l7Zf30rHpMcewG+JRsGX0zmm1/1N3Wyhv5LeH0uui78Aq5bIr2Bm49z9YYDkg1shHXu5SfabxAzWa939ZjN7E/EwFlGnxdfgX+n9BTN7PfA0xa3cxm991szeBjxOGLAy6pR51sxWAK4GzjSzJ4mbsIh/mtn+wHSiizuphfwLKb3DbDP7DtG6L7s+ZmbbuPt1aeOdefI5LqClgTcBe5uZe3G3+aXk474vzVZ+lL57oZna1z61PD8GrAP8EtjS3Z80s+WISv9HTUWuN7ON3H1O2Xkz56/kwspQ9/+908z2A0allujngOsLZLdy9w2r6J3hQ8B+wMHu/nh6Fv+3RL6u/pXun8RMMzubMIYLe0de0sNIPZIDCe/ApUQL/5b0HN8AZMseT7jf5niyvi3YC9gMuCXp8RczK/S5m9n3gd2AGcD/uHujl3+cmeUlMixnsFoVFWrH9wNjgLcBVxA1024l8v8BPJxkrwQeIv6Q5YHDB6hL5RZf5vjXgZWJGv5xwsh9q0D248AqwHZE6/9J4FMtzl+5TLoGo4gu82TiAV6t5NzjCTfBXwk312+B8SXyawPLAisRFd/xwDol8m8nWmPz0v80G9i8QNaAcTX/ry0IA74WURn/hjBMnbr2pwHvKji2Y86+u4hGxb1EL2MO5T3CmURlcWv63w4EjimRr/v/Lgf8N5Fv6Wbg28DoAtlTgA0H8vxU+L/q6l/n/jk151Wlh/FRYNmcYx9p2r6a1Kuo+FtvSu+3ZH572b1wILB8wbExda91NwdFF9bAZfvS/iUIH9wswr8KcK9nBkKb5E8lZ3DFCwbC0qDctoTb5XKixXesu1eKEkiDYqN9AIMZvYiZjQFodV3MbI6714k8GDRSmNpl7r59jTJr5+1394cK5Ge6+8TsgJuZ3erum7Wl9AAws+2IpHqPEy3cwgHadgfVB6BbpftnMDGz04he4x/o3wPIDVs0sy8SLtydiIH7g4BfuXtzry5b5g1Eoyk7hnF1O/p20+XyI2DzCvtw99fM7MR0w99W4dy/y3weTXSD/lIifxjRqvkcMYCzA9GSWAQz28HdL0+j683H8ExXz8wOcPczzCw3uibvpqhTxsyudfdtcx600pH+NFDzCRYdCDuoSe4cd9+3KPog76FP5fpFfZhZQ36RCKDELWa2hbvfXHC8cd4fuPvhBRFPeCaKo51rn/a/amavmdmYqobE3R/KGwgrKVLJhTWA//dSYB93fzZtr0L4Y3fOET+FCCiYA7zW4nfWGlQfgP4t7x8zO9Ldv2NmPyL/XvhcznnbiTJ6ML2WTq9S3P27ZrYT4W9fH/gvzx9sbeh0LBFwcBfwauM0RM+gNkNu0M1sa+CdwNimh20loltWxAwz+yDwG2/RrXD385q+8yzg2hL5hiH5B9EFKmM7ohW/W96p6O9/Wz6914lbrVzG3bdN73XjYi8ArgEuo+8myuOw9F43OqNq1EeDdwD7m9lDhG+16AFrRD18t8I527n2Df4BzEmGcaGvN89IAJjZ0UT0z/pEl38p4Axgm4Lzf4S41w8FjgDeSBiwfgzg/129YcxT+WfMrGjc4Cl3r5v2end33ySzfZKZ3Qb8V1ZogPdnq/unEdUys8Z5a0cZufs3ANIYAO7+jzL5FE10TcOIW8wHGO/u8wqK7AWs7+5VnpOWDLnLJXXx3k2EKv40c+h54CJ3zx28TLX88sAC4EUqxJtmyq4PXOzu6zTtr9ziyznnKHcvM4ZDhpmd7u4fabUvc2y2u29a4/y7uvsfmvZ9yt1/WiB/h7u/rcb5K7sskkvkl+7eKhSyIfs5d/9+VV1SudzembtPK5CfTRoIa7hNrMPxy+m3rEH/HtXDBbKzgL28L4BgbeB8d1+k92tmPyHGgi6i+qDi9cQC8dlB9c+4+zs7pH+t+2cwSQPpp9MXsPFX4KNekCrczGYC73T3l9P20kSUyxYF8n8gelOlFUVVhryF7u5XAVeZ2WlFPsaCcpVr+Zwu3uNEKFAzdVp8zTxoZpcQsfSXl/Uaqro4BlCmeYLGksTAUhG/M7P/8Eh/XIWvm9lL3jTxh/4VcpZaUR+N+yC1Ike3kH3VzNY2s6UbD00L2UlE9FJligx3CS+7u1vEq2NpFmURBV3/xiS5b7v7003ynyUGo5+gzy3ixMSePL4GXGtmVxENn3+nbxnIZpYlDPl7M/uae5rN7AeckF4OXJf25dKG/pXvH6s5QTGVqRNlNBX4vKeYcDN7NzHvpajyWjJ7X7r7y8moF/EC4XqbQf8KNbc32IputNBzW8MNilrFZvauAvmrm+QMeGNR7d8pLELY3k/4vzYn/PbT3X0R105q0VxDdCEXtuqbXUN1y5jZV4CvEg/lC43dRMTFVHf/SsG5G72dl4iwvlY+zdXT78tO/JlUZFDN7C4iiuNBWgy0Jfm6MyF/STyMF9LfJZI3JvF9wgVydpPsLXnnTmUqz0RN8rUGwpLf/FXgV2nXh4kxnMeBbd19tyb5ucR6vf0MfRnpP9sqbf7Z3eusa9lR6upf5/4xsz8R/+0XyUxQdPe8BlyjzExyJsrlPS9mdluTeyl3X+bYpcCPGm4sixDYz7n7jgXytXqDreiWy6WQ1ILPK3dRZnM0MRNuVl5NbDWjJsxsG2J2XWOkuXED5T7AOeVXIVor+7v7IuMAdV0cdcuY2TFFxrtTpNbzZUQFc1CLHkndqI/biIHofjMJ3T139mHyWeed/xs5slfki5a24K6lb17CbqR5Ce7+XyVldiJauUastVs2EHZLs/ujsS/v3k2/YSd3X1B0zib5xkDlm9z9mxZx4v/mfTHOWdlaEWGpTK0eZxv613HBzXL3t1v/iKGbi1wc6XjlKCMzO5+IKW/05g8A3u7uexWc+83ELPjXE/fCI4SLZm7JT+4Y3XK5tFOuudXyRuAHBeKVoiYynEIMTvVrDbciVU4fIlqtM4F9C0TrujhqlXH3r6RKZV36tygLR8qryOe4ripN/KnjQkm84u5Pm9kSZraEu19hZkX/ba7hLuFgd38gu8NiolkZy7r7DIsf+RAwJfmlCw16MuCFRryJUWa2ZcPAmtkW9AUELDR61hc08ABwpZldTIXQOeAnhGtjB2KS3fNEXpo8I1c3IgyqD6o3qKV/zfun7gRFqDdR7iDgG/S5oK5J+3Jx9/uBraz6IGqt3mAruha22IEfMp/odudRNWqiwXPeNOjXCjObR0wMOQf4kruXzXw7DPiqmb1MuEOqDOg2yrR0i1jkrDmMmGgzm+hq30A80Hm6V5KvM27RdP5cFwpNvv4MtWYSphbikSyacCvv957LoqGwv6Z8jKHSTNScCq8fJf/vx4FfpN9sRIjbx5Pv/ZiMXOP6P5xelULnCPcR6rgcAAAc/klEQVTG5mZ2a9LjmSI/brPbz1pEhCWWK3Np5FBL/5r3z7ct4tW/QPjFVyIaZ2V8hDDg2SijRcKQIa4dEc5cCasfstvOLPVCuhmHXuuHWP940yWATUnTa3PIi7ct4woz+1+iFs62IAr9rEQ3qrlFmzsxqh3DWLPMYUTr68/uvr2ZbQD8TwflK7XoM9RNJrUHEbl0BOEqGEO0LItoJHZ7PwWJ3dJveiswxvrPGViJ1q2+SvMSvM1kZ6nnuJHlT5w5JyNXpyeS5RWLqJLGIO1YWsSYZ1iX1mkpavU42/gdle8fd2/0MJ4j7EgV9nT3E4h7rhGWeBjhNiVttzXWR/2Q3dq9wTK6OVO04fta6DNs7CuQzz5QC4B5ecYzI785MfvTibChskGwdvyshX7QHNnGQz7B3b+V3EVr5vk0m8pVMqINn6FF+Nw73P0lM7vTiwcV68rntuiLrk/GR3kbsJnHxLDCgaRMuZXo75P9W4FcS7+pxWDUnkQmx2yc9fPE4HVRbpPa5P22st9rZrkPa1ErzupNFMIiT8+HiF7IaUQm0P9091/nyDZ6GZbeHwe+0txyzylTZ1C9To+q1v2T3GcnEPlWXiN6mkc0u9mayuQ9u/186NY31vcBIgHZGWl7EvCEu+f2Aqx+yO6AZqk3080Wep0ES7j7tNRtbKRtLUxckx6Yfejze51qZr92928XnLvONO92JkZlfZrfIiaunEi+T7PxPXXcKPPNbGUiJ8ulZvYMkQOjiLrydVv0dV0onyRaSi8S16lhXIrcby39pu5+AXCBmW3t7jeU6JqnT+Xc+4m6yc6yx0YTPY2y9K9jvfpEIdz9zNTK25G4lnt6QXrZIeg9QoUeVRN17p9fEc9SY5Dyw0SK7Xc0C1qEsO4HTDCzbCW/ItCv8dAY6zOz77n7xMyhiyyiZIqoFbJLjVnqlfBBTMpT9qJGgqUk/27C6FxF/NEPUpxA6V4yyYiIsL57S849hkg4NTO9vkdBYhxipujRRBf76Mzr88TU77wyjUQ92XSmhelD0/E5xMM+O21vQMySbXVdtyNapUtX/B9aytOXpng2sEz6fGeJfN1kTPcRsxur3jt5id12L5D9DlHZLkVktHuKiKApO/8JhKHYLb3OICrlE4HTc+THUyPZWU75ZYArS47PIpPAjPApt0pHvC1wYPo8lugdZo9vkN43z3tV0HkVItLsXY1Xmf7pvWqq7Mr3DzmJr4qerXTd3k00jLbLvDYn4sfzytxNRAs1ticQIbVFutdK1Nbp15B8SUcUjZt6/cz2ehTnwL4CWDmzvTIx+afo3OcRLcQ3pdfRtDCewNo1dL8x3aANwz6WknziSaauEd2EGOQ5FNikQGbVslfJuc9P13AKUZleAPy+g//tJcRA22DcN40KcS8immlM0QPffO0L/o/C/2AAOq4CzC05vgsxqHg6Ubk8BOxcIn80LXJyE/MUGs9K86vwWUllPp4M1TNJ/l8tnq9GfvY/EhlSNwPu79C1Ow44iqhU1yZcO8e0uqdrnL9x7a8kGpPzWlz7tfNeJfIT0/N1C1EB3M4AKoBu5HIpzRvhxYMNS7n7vRm5/zOzpQpknyNyQl9KdIF3Am4ysx+mss2j1m9292wujW8k/3IZL6SB1Cp+wR8Sf9rrzOy/ST7NFuev7BZJAzqfoM/FdIaZTfVFJ7bMos9fulBlWrg4vC/mdkoabxhDGOFmPYqiPlpF9XyF6KreSIXZco3/sYnniIUULmja37hH3gf82t2fa0QelFAn9z5mth5wErCGu7/NIt/27l7g4rP+M0VHERX8t4qUcfdL0phQY6LQ4V4+UahlTm53PyS9V3Y3ZqjrgqsUiZJz/zTuy7L7pxEqfEimDITrpd893c79ma79uvRleb3HS/KueP2Q3TOJCXstk6NVoRs+9K2JYPuziJZry6crMdPMTqZvcGJ/ihPznJ9eDa5sce5/mdm2nmZ5Wkw0+leLMpX9gl7Dp5kpU8mIJg4mBjf/mfQ/juhW9jPo7l64DFkZyYBOd/frvWQegbcZ5gj8jBgQqnpTjyYesMYg3wcJF9wmZra9ux+ekb3IzO4h/s//lwboctMuZ/gCMXX+fuL/mgB82iKsMG8G38+Jh/JnAO5+u5n9ishDnkc2SdQCYpCtcNJNGlTfhcxEIcvEsedQORWB5WQNJSrHOe7+ZEGxF939RTPDzJZx93usZEFqrxiJUuf+sYjdf6RxT1sETXyQaEFP8ZwB9Xbuz5zr82YzK7w+Vj9kt53kaMV0ottTswszirg5pxFx3N8G3lqh3DKEn/o36XUEyRWRI7sb9ZLSb0JfQv15Sa+NW5Sp7BckWujvrHmdxuW9CmTn0H/MYDTlS4IZEQb29cx3bVkiPxn4PXA/kfdmYsX/+fWtdE+ype6nHPk/A6My20sSFdgo4K4c+VUb8sQA1L9VvN82Sa/cxSGa/3f6j5HMLpHP88Mvsi9z7CTCf3932l6l6F5Lx79IVC4PED23G8hZOi/JXkwMCJ6XXk8TSzfeR9NiD5kytVxwRIV4fHpuL2y8WlzTrAtxkWeR6H2smj6/ixgY/yDR0zm3zv3UQo/G9Tm3yvUh7Mhq9C19uD1wSsn5dyTWJJ5ERNR8gKZl8Oq8ujFT9FWipXmJRRD+JGIW2Tfc/ccl5V4ysx8TA1uvEYOcRcmZPgT8wMwqrdpOrBG4SQqbw2OB6Vat2Toz1GYB/5laMecTrd1WaT8vpq+7OZp4KO4lv6Y/FbjRYpoyRLjeKSXnbo66KZtJiEdeiWlmtirx0ByXXBLr5slb/WRMfzCzQ1g0419u2CJh0FYgWnwQg2ireiTj6tcdNrOPZj5nD/2y4NwN3k7f1PZNLHLdF5X5q8WU70aLeG9i0LyIusnUKk8USsfr5OReEniLuz+RdFmDuDbvIIz16c0FvF7vEcJteArx/7bsgeW4EM/McSGOytwfHyLGBM4DzqvgLq1D3etTa9YzMf9mA8I1mH1WypKjFdOpmqxmrbcMURP9mlgi6+vAG1qUeR/hqrmSGJx4GNi1RH4l4JNEa+4Gwse2YoHsIhEDtF6CrtYSeqnMqsSNOgO4r+Y12xw4ucXxz6XXZi3OVTvqJslsSXQn5xKpjovk5lIS1ZIj/2DOq3CRbsLF9CBRkZ1GtEQ/Thj2/22S/VHm9fMkW9qCIx7S64mKr1H2hyXybyKmwb9AhN9eS85AGDFW8DzhZvk7fYsOP035EnSVB9WT3BU1rv1dTdvW2Nf8HbQ/qH5jzXv9djLLspGzjBtwBykyhVjc+V3ZY3W+r1PXJ+27jGhs/IhwK58AXF9y/sLou3Ze3RgU/SVhBH8PfMPd76hY9HvA9p6S3KQW0cXE0lCL4NHKPpcIWTycGCj6kpn90FNNbwOYTeg5fkEzO7y4BBAZ5Dagz69WGY9FbPNia0cRkRcbUDxztplaMwkt8l3sRbhczibWTn22SJ6oeCsvG+Y1ffvufoqZ/Z6oYAC+6u6N/CNfapL9bHY7DTRPb/EVE4l1NvMG0PL0eQB4T/JVL+HuzxfIHZPGN072kuRXOVQeVPf6Ky5daWa/o/94xJXptzT/x20NqgMnWCRU+xPVZmIb/XPEvNr0nRDG8ioz+ysxPnINgJmtQ417rwJ1rg/ErOd/UX3W8/VmtqG739UJZbuRbfE1+iYJLDKi7cWzzZpnAhqxIOsiboI0MHEgfau2T/PMqu3uPj7JdXQ2oZk97O7jcvY3G8TzWxjEbGImiFQHmxOt3kVmB5rZBYSPtFLKYOubSbg5MZZROJMwyX8SOM8rpmA1s1OIrn7VZFJYrOw+nv4zRX/ZJLPILNwsJQYie46liApwvRKZXxMpT8vcJln5+4me4DXEajW5ix9k5GuvoZoaH41B9RleMqie7ofNiGRhpSsupefog/StrnQd8V/nGoYkXys9tZkdQ+RPuZ+MW8GLZ4p+nhi3yboQT3P3HzTJbUWkWPiT9wUErAesUOVeqKh75etj7a1HezfwZiqmmm55vqE26HXJtJx3Ilq25xAVwT7Aw+7+6YzsOsQ03U8QAxFXp/3bAI+7+/1mtqO7z2j6jtqzCQt0fcTd35izv5ZBTGWOzmwuIAZrz/OchbHN7GriAb6J/g9w2YpLlQ1Ekt+dGHwCuMrdLyqRPTpvvxfk9DCz04mbejaZdRWbDZDlp2jInD43lXJ21ucoIqHbOe5+VIn+VxC5gm6if4VUlKt/GcKn+u/Eg78+4SIoSrE6DfixV8wGmirIH7n77My+Ke4+pUB+cmaz8dvN28yxnXP+uump5xI9ntIFSZrKNFJ3QFSSt9ZUsytYLFTxgYq9I6xmqulWdHPqf1WyaXOfIGZ2QYQILtsk+wMiD8Xkpv1/T8d2azbmib3M7E6iq3QJMXh3hLufkSNbRm7t6O4/M7PdrW+RjlKDmMq0TGiUKrA1iDGILP9OwaBck4um1WBxo8wxhHvjzLTrc6kS/Gq7ujdRycVRp+WTIbsa1QLCqH+oRZkpNb/jVWKQ/FWiBfpkehVRNxvozsBEi2nojV7L7s16ph7nWu5+Ytq+ifC3O00rdln7cwagfnrqO4iomLJrgpmNJkKA1yEit37iFXOoDxapQXkckbDMaH19Kq9Hm57FP6ZnsTP6DvcWeh2a3TJNxwpbFZYWkzCzvYjBzs8DV3t+MqCyB2FZd1+kkswxiJOIsLNcg5jKrEeEn42nvxtih4zM74gKbE5T2Y2A//GmHPKZ43VdNLcDm7r7a2l7FDEgtHGTXFtrtLbh4vho3v5mF01GfjMih8c+RNf2PC+JqKqLmb1AGKDjiS536co8dVtlZnYLMU5zBhEMcBhx/2zWJHcd8GF3fyRtzyYimVYATvWCVXPqYhHXvw4x0a1lhWRmVxKNpJsp6fGY2dlExXgNsCuRgK/VuNSgknoXu7XqwWbkmxuTwMJIsTz5Ws9iK0ZCCx0AizDCz7KogcveFCuXnKK5NZ+l8mxCb2/yzPvobxAbMfiFBp0YhPkpEaNatIjAGs3GPOk4x8zGl5x7FWImbWUXDXFtG2FiYwpk2l2jdXXgrqRPSxcH/cMrRxOuo1vIhCKmCnFSev2VGLuwKq38pkp7aeL+KFpzkvQd2wKfJvKaX080CPJ6g7j7Q2a2CdGTgnAp3FamUurC72ZmU4ioqrz/YOmGMU9c6xHa9zcrn1y0LZGH6FSLpetWdPcHS/Spm5461wWXw4bel3n1FMLl1W2eqGLMLc0sbsOt1c6zWMiIMehUi2WdaWafcPefZ3daZC6cVXLudmYT1qWKQcyywN1PqnDOIsoqsGYXTSuOAW5NvmUjfOl5PuinoC9TXQ2m1BH2apEr9xAtvfd7X2RUq4UPGudfWGmnQbE96Jt2nyffyOy4AdGyPJzIKZL7H1jFVA2ZMaGFA/buPsXMXiWSTDWzSpNeh2Y2xxbocjTh8lqfCANdmugJbJMnn877UFMlMJbyTKlXWcRvNyrimzx/FuormTILihpVQ8zM1HP4Lf0bG81x4r8lLaRiZud5/1QiZdR9FsvxDsZADuaLCrGshD/5eiJW/XvpdRURh146O5D+swmXbyVfU/dJRPf0NCKq5EHgQyV6rEoYuU8To/i5sb5E6NYncs7xceDsDl//NQm/7e5F14ZMPD/h1qhz/rWB96TPy1EwZ6Cg7FI0xfMSkRHTiRDKnxOt+AcH8PsLZ7MSk7LmEsmnvkZUeIWzS6kQZ532/w7YKGf/RuTMAyBcenn3wyeBswp0mU1U0tk5CaXJoaiQ/KtJft90/08jelEPAnvnyL1K//j8BZnPf+/k/Vzjfz815/WLsvuj7F4p+I627/3m10hqobeMZfWYzfVOixVOGknmL3b3y/NOaGZHuvt30uaOnsL23P2fZvY1yl0ilXH3s5IfsdFC+bK7P14g3hzrm42rbo71PRw43yIMsdEDmUi0shaJsKg7EGaLhgnOT++vN7PX+6KhYdkmVeU1Ec3sE8TEr1WJaJc3EO6mopXSsz76JYhlDM/Jyrj7b4HfJlfDHsS1ep2ZnUSEjf6pRJ/snIQliGuaF120BVFhHEO40A4gQtzWIAYCi3p5VeKsob5L7QjiN+9H35yEtxMT+fYs0KVy3pcMLZN/NfE1YAtPrfLUor+MmE6f/V1F6wl0DXc/sKpowedS6t77Lc+XaoVhj9WMZa14zoUrl1jTKibN222ev+24aTMb7U0hinn70v5sBXZnUQVWl+RiyVYu/W6W5mtfdj1bfM9sYtD4Rk8DfS0GsbfLbC4AHnL3+XmyTeVWIQZGP+QlA4RmdmrT+ecBP/cmN0EarHyPu/8tRTBNJ8Z5NiWmi+9dcP6qcdb3eXF6hbnuvk7BsR3oSy9Qej+Y2ReJVbF2Iiqmg4Bf+aKZOrNlbnL3LRv/caoEbvDiQdF+/6XFwja3Ff2/w4FGY8/6L325EF80pPZV+gaIlyVmDUOLqJi6934rRlILfR8i21zlWNYKWMHnvO12+B4lBpGCRZwT17Po4sZ5+3D3K4iBsk7zZSKj3WOwcAR/YUa7HPlNzOzvpJs6fYbWoV4vufvLDZ+pRW6TwpaGZ3z0aRCvNKokU+4ZYGp6lclVbZW1lU/E3Y9PPbZGnPWBnh9n3daYUDLglSp1r5f3pcE5ZvYzYOXUwjyIcGsVcYmZ/ZFwEUJcq1qLsneBxkBoq5xLwIB6F7Xu/VaMJINeKZa1JmXdpE50XeoaRMzs34hu17Ip3K5RGaxE+NeGkp8C70l6vYtowTVaoFOJGaYLGcBNfZWZfZX4zTsRYweLxOlbzAw8lhhc/hYRVbM6sISZfdTdyxJEtaSoNdaguVUGjDKzJT1ipXekLyc35DxbVj/OupZLrV2SAb+0auVYtxJw9y8lN1ajApvq7ucXyQ8THob8cEMz+38d/J5K935VRpLL5UoqxLLWPGdZN2m0uxctoFH1/LW75Mnof4x4cLOtg+eJbnl7WdjawDIL85rZiUTu5ilpe7a7b9qh71mCSLj1XuLa/5HId+JNcjOJcY0xRIWyq7v/OUWXnOVNcdlt6JGNIf4GTeF2zQ93Gmf5DyIschyxdJun6JRp7r5Nk3xbcdaD4VIrqxyBAVeOLb57CWCSu5/ZUrhLmNkDxMLcs5r2f4OISx+QOzZzvuy9DzHR6OS2T9juaOpQv+i/BuDCV7f1aqHzbZnPJxKJ9xvbhfmy0/EPDgP9hySjXTrfWGIx5DKZ2ZnPdzcdqxVZUEGfSucjwhn3on/UynrkrMtJJkc90YIvXRd0kP/bmcmI7EMsJbdV2r9Bq99OZEq9j0iCVRiFQvQqvwL8mL7K+lCih3pBt357xevzdiIz59Zp24ge6xXASh04/x7AZzLbN5GyjJITAVT1NWJcLh6xrGsTsa+XWSTaGnaj4k3U6pIDmNkBHikHxlv/BF1AeYKrQWBQM9pZOA6PJh7yJdK+V4m8JXkZ6rLzD5pXlOp0V7PS+dz9zzn7/q9AfDjFWS/pKdLHzL7Z+B0eqw+1Kvsdqs2ePJ2oLG4gQmm/CgtX7OpkzvKO4+6zzGxPwuX1GWLeAMAuXrIEXQ2OJJbJa7A0UYmsQIRGnptXqBUjxqB3OrxniGjHIDbCxvImagypf8zd/9si2VAjo102VPCzxSUrcwQxgWULTzMTzexNwElmdoS7f79JvmzQtcr6jd1mkyadl838Hvfy/CmdZiCVY6XZk0QQQ2Pm58lEfqFxnhOpNdywWMxlPhGN9FsizPJQYHkzW96LF1+pSluzelsxknzoHQ3vGSqsgyk+zexwbwptG8lYrMCzkzdlobSIU/6TD9An3oY+2Tj95agYejYSaWf8yPri87cjZrCWzp5sDl2tE8rabczsQTKZKtN7I2LN3b3yPIuC85eFnd7v7m9u57wjpoVOh8N7hoqaXfJWfJ7IGtkrLNVszAHc/SmLvOVDire/yPWIw9uLSMome3uBvoE8IHfZtOHUI6mFt7mgeg1uLAhJ/SQDyGEzkgx6R8N7RijDIrlFBymbU9DJ+QaiA3iKzzezbdz9uuwxizUHmuWH+xhXN2lnVm9LRpLLpVJoWy9jBSsijVQy3f5FDtGBsFExOOS5TkaSO2U4YTVm9VY630ixh2b2Ol906vX67n5vt3QaDKyNfOtCDAVmtjXwTmLCU3bAeiVgL89ZP0AMLSPJOFxjZl9393MAzOwLRIt9w+6q1VkWJz+uGHEsTURfLQlk79O/0zRreKSTolwK6UCUy6AwklroaxKzA18kstndDXzB3f/RVcWEWMwws7U9cqIv5+4vtC4x8shEuRgxC/iZ9HllYi3jwR40bYsluq1AVTzyoVwCbE2sWjRNxlyIrvB6M7uLtCatmW1iZj/psk4dxd0npNDEy4hJVKu7+2rEEpWFqZe7zYgx6GZ2GbG47tuIJd1+YGZ1lzoTQgycHxDL0D0N4LF83rtKS4xctnL33zc23P0PxDjCsGTEGHTgx+7+UXd/1iPp/zvpwPRzIUR9mmY5QvG6tyOdv5jZf5rZ+PT6GvCXbitVxIgx6B4r0GS3F7j7t7qljxCLMY+Y2TsBN7OlLBbJqJIKYCQyiUgcdz4xcWps2jcsGUmDonkrsf/D3assuCyE6BApb/oJRK58I3zKh7l7pYVGRiIpf0venIlhxYgx6FlSlr49CP9W3urzQggxYFJP5GQi99I4M9sE+KS7f7rLquUyIg16AzO7dagTOAmxuGJm/1Vy2HvRBWpmNxIx9hdmkgLe4e5vKy/ZHUbMxCKruBK7EGLQyHM5LE9M8FuNWPmo53D3R5pyxA/bAeARY9Dpn+mtsRJ728vPCSHq4e7fa3w2sxWBw4ADiaUVv1dUboTTbwCY+M3DdgB4pLtceio/uBDDnTQl/vPA/sA04AR3f6a7Wg0eBQPAn9PU/0Gg17IPCjGcMbP/JdYTnQqcuDjM1C5KFdy8b7gw0g36I+7+xm7rIcTigJm9RqxQtID+GUGH/YIV7TLSUgWPJB96HiO3NhJihOHuI2Yi4kDJpAoe27RY+0oM48Xph71Bb5UffIjVEUIsHozIVMEj2uUihBCDSSNVcLf1qIoMuhBCNGFmP3D3w83sInI8BO4+LEOmh73LRQghusDp6X1EpehWC10IIXoEtdCFEKIAM9sGmAKsTdjLRojmm7qpVxFqoQshRAFmdg9wBDCLTA6X4ZoqWC10IYQo5rm07NyIQC10IYQowMyOJSYS/YaYJQuAu9/SNaVKkEEXQogCzOyKnN3u7jsMuTIVkEEXQogeQT50IYRooil/C8Tkor8C17r7g11QqRKLTbIdIYSowYpNr5WIVdL+YGYf7qZiZcjlIoQQFUkLfFw2XNPnqoUuhBAVSSsVWUvBLiGDLoQQFTGz7YFhu+SeBkWFEKIJM5vDolkWVwX+Anx06DWqhnzoQgjRhJmt3bTLgafd/Z/d0KcqMuhCCNEjyIcuhBA9ggy6EEL0CDLoQgjRI8igCyFEjyCDLhYLzOzrZnavmV1rZmeZ2RfN7M1mdomZzTKza8xsgyQ73swuN7PbzWyGmY3rtv5CVEEGXfQ8ZrYF8EFgE2BXIicHwFTgs+7+duCLwE/S/h8B09x9Y+BM4IdDq7EQ7aGwRdHzmNnhwCrufnTaPh74G/A14N6M6DLu/hYz+yuwpru/YmZLAY+5++pDrrgQNdFMUbG4sgTwrLtv2m1FhOgUcrmIxYHrgN3MbLSZrQC8H3gBeNDM9gGwYJMkfz3QSJG6P3DNUCssRDvI5SIWC8xsCrAf8ATwJHAJcBlwErAmsBQw3d2/maZ9nwqsDjwFHOjuD3dDbyHqIIMuFgvMbAV3/4eZLQdcDRwyXBf6FaJd5EMXiwtTzWxDYDQRwSJjLnoOtdCFEKJH0KCoEEL0CDLoQgjRI8igCyFEjyCDLoQQPYIMuhBC9Agy6EII0SP8f4Uw5FRTpbD5AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df_millions.sort_values(by='pop17').plot(kind='bar', y=['pop17', 'pop18'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also fine tune the plot with the usual `matplotlib` commands:" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAFQCAYAAAD3O6neAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xu81FW9//HXRxRRUDCFHYoKhiEq3kAz7RxBj1p5v6SRFallmuIlT2qX8xOrczSPWh31YKYpmbnxkvfKDCEtSwUlt4CcCMUwBTREQJHAz++P9R323PbMd76XfX0/H4/92HvWzHxm7Zn5zqzvunyWuTsiIiIi0r426ugKiIiIiPREaoSJiIiIdAA1wkREREQ6gBphIiIiIh1AjTARERGRDqBGmIiIiEgHUCNMREREpAOoESYiIiLSAdQIExEREekAG3d0BeLYZpttfOjQoXVvt3r1avr27ZvZ4ype54ileIqneIqXRyzFU7y84s2aNesNdx9Y94bu3ul/Ro8e7XFMnz491u3iUrzOEUvxFE/xFC+PWIqneHnFA2Z6jPaNhiNFREREOoAaYSIiIiIdQI0wERERkQ7QJSbmV/PPf/6TxYsXs2bNmg1l/fv3Z968eZk9RleI99JLLzFkyBA22WSTzOKKiIhI/rpsI2zx4sVsscUWDB06FDMDYOXKlWyxxRaZPUZnj/f222+zdu1aFi9ezLBhwzKLKyIiIvnrssORa9asYeutt97QAOuJzIytt966pDdQREREuoYu2wgDenQDrEDPgYiISNfUpRthIiIiIl1Vl50TVm7oJQ9nGu/lK47INF4tjz/+OOeffz7PP/88zc3NnHjiiQBMnz6dCy64YMPtXnzxRZqbmzn22GPbrW4iIiI90dUnH1lRNuTwY7l68lUlZRdOfSjxY3SbRlhXtsMOO3Drrbdy1VWlL+y4ceOYPXs2AP/4xz8YPnw4hx12WEdUUURERDKm4cgUXn75ZXbZZRdOOeUURo4cyYknnsg777zDtGnT2HvvvRk1ahSnnXYa7733HgC77747F110EaNGjWK//fZjwYIFAAwdOpQ99tiDjTZq++W4++67+cQnPsHmm2/eLv+biIiI5CvXRpiZXWBmc8zsBTO7w8z6mNkwM3vKzBaY2VQz651nHfI2f/58vvKVrzBv3jy23HJLrrnmGr7whS8wdepUWlpaWLduHZMnT95w+/79+9PS0sI555zD+eefH/txmpubGT9+fB7/goiIiHSA3BphZrYdcC4wxt13B3oBnwa+B3zf3YcDy4HT86pDe9h+++058MADAfjsZz/LtGnTGDZsGB/+8IcBmDBhAo8//viG2xcaUuPHj+ePf/xjrMd47bXXaGlp4fDDD8+49iIiItJR8h6O3BjYzMw2BjYHXgMOBu6Orp8CdOlZ5uUpIgYMGBD79nHTS9x5550cd9xxyoovIiLSjeTWCHP3V4GrgFcIja8VwCzgLXdfF91sMbBdXnVoD6+88sqGHq2f//znjBkzhpdffnnDfK/bbruNgw46aMPtp06duuH3Rz/60ViPcccdd2goUkREpJsxd88nsNlWwD3AycBbwF2EHrBJ0VAkZrY98KtouLL8/mcAZwA0NTWNbm5uLrm+f//+DB8+vKRs/fr19OrVK7P/oV68RYsWcfzxx7P33nsze/ZsdtllF2688UaefvppvvWtb7Fu3Tr22Wcfvv/977Ppppuy2267ccIJJ/Doo4/Su3dvfvKTn/ChD32IWbNmccopp/DWW2+x6aab0tTUxNNPP73hMQ477DDmzZtXMXG/UL8FCxawYsWK1P/vqlWr6NevX+o4WcdSPMVTPMXLI5biKV4tSxYuqCjr3X8Aa1e8VVLWtNPwituNGzdulruPqfsg7p7LD/Ap4Oaiy58HJgNvABtHZR8FHqkXa/To0V5u7ty5FWVvv/12RVka9eK99NJLvttuu8WOt8MOO/iyZcvSVmuDQv2qPRdJTJ8+PZM4WcdSPMVTPMXLI5biKV4tV510RMVP880/riirBpjpMdpKec4JewXY38w2tzD56RBgLjAdODG6zQTg/hzrICIiItIp5Tkn7CnC8OOzQEv0WDcCFwNfNbMFwNbAzXnVIW9Dhw7lhRdeiH37F154gW222SbHGomIiEhXkWvGfHe/FLi0rHghsF9G8Xv8Btae05w+ERERyVeXzZjfp08f3nzzzR7dCHF33nzzTfr06dPRVREREZEGddm9I4cMGcLixYtZtmzZhrI1a9Zk2iDpCvEGDBjAkCFDMospIiIi7aPLNsI22WQThg0bVlI2Y8YM9t5778weo6fFExERkfbTZYcjRURERLoyNcJEREREOoAaYSIiIiIdQI0wERERkQ6gRpiIiIhIB1AjTERERKQDqBEmIiIi0gHUCBMRERHpAGqEiYiIiHQANcJEREREOoAaYSIiIiIdQI0wERERkQ6gRpiIiIhIB8itEWZmI8xsdtHP22Z2vpl9wMweNbO/RL+3yqsOIiIiIp3Vxm1dYWbPx7j/Mnc/pNoV7j4f2CuK1Qt4FbgXuASY5u5XmNkl0eWLG624iIiISFfWZiMM6AV8ssb1BjwQ83EOAf7q7ovM7BhgbFQ+BZiBGmEiIiLSw9RqhH3Z3RfVurOZfSXm43wauCP6u8ndX4v+fh1oihlDREREpNswd49/4zB/a3t3jzNUWbhPb+DvwG7uvsTM3nL3AUXXL3f3inlhZnYGcAZAU1PT6Obm5rqPtWrVKvr16xe3aoqXY7zOXDfFUzzF67rxOnPdFK97xVuycEFFWe/+A1i74q2Ssqadhlfcbty4cbPcfUzdB3H3mj+E4cItgQ8ALwFPAdfUu1/R/Y8BflN0eT4wOPp7MDC/XozRo0d7HNOnT491u7gUr3PEUjzFUzzFyyOW4ileLVeddETFT/PNP64oqwaY6THaSHFWR/Z397eB44GfuvtHgH+Lcb+C8bQORUKYRzYh+nsCcH8DsURERES6hTiNsI3NbDBwEvBQI8HNrC9wKPCLouIrgEPN7C+ExtwVjcQUERER6Q5qTcwv+DbwCPB7d3/GzHYC/hInuLuvBrYuK3uTsFpSREREpMeq2whz97uAu4ouLwROyLNSIiIiIt1d3UaYmQ0EvgQMLb69u5+WX7VEREREurc4w5H3A08AvwXW51sdERERkcZdf+ZjFWWDDlhdUX72DQe3V5XqitMI29zdldFeREREJENxVkc+ZGa1ti8SERERkQbF6Qk7D/iGma0F/hmVubtvmV+1REREpDubt8vIirI1E89h3plnlZSNfHFee1Wp3cVZHblFe1REREREpCeJ0xOGmR0N/Gt0cYa7N5S0VURERERK1Z0TZmZXEIYk50Y/55nZ5XlXTERERKQ7i9MT9klgL3d/H8DMpgDPAV/Ps2IiIiIi3Vmc1ZEAA4r+7p9HRURERER6kjg9YZcDz5nZdMAIc8MuybVWIiIiIt1cnNWRd5jZDGDfqOhid38911qJiIiIdHNtDkea2S7R732AwcDi6GfbqExEREREEqrVE3YhYePuq6tc50Dn2XxJREREpItpsxHm7l+Kfo9rv+qIiIiI9AxtNsLM7Phad3T3X2RfHREREZGeodZw5FE1rnOgbiPMzAYANwG7R/c5DZgPTAWGAi8DJ7n78njVFREREekeag1HnppB/B8Cv3b3E82sN7A58A1gmrtfYWaXENJdXJzBY4mIiIh0GbWGI79a647ufk2t682sPyGn2Bei268F1prZMcDY6GZTgBmoESYiItKpjZoyqqLsrH5nMXHKxJKylgkt7VWlLs/cvfoVZpfWuqO7X1YzsNlewI2E/Sb3BGYR9qB81d0HRLcxYHnhctn9zwDOAGhqahrd3Nxc959ZtWoV/fr1q3u7uBSvc8RSPMVTPMXLI5biNWbum3Mrygb2Gsiy9ctKynbdetdY8dbMmVNRtnbQIHovXVpS1me33WLFW/bKyoqyjfu+z7rVpdm4Bu6wRax4SxYuqCjr3X8Aa1e8VVLWtNPwituNGzdulruPqfcYbTbC0jKzMcCfgAPd/Skz+yHwNjCxuNFlZsvdfatascaMGeMzZ86s+5gzZsxg7Nix6SqueJ0uluIpnuIpXh6xFK8xbfWETV41uaQsbk/YvF1GVpQtmngOO157XUnZyBfnxYp3/ZmPVZQNOmA1S5/sW1J29g3xMmxdffKRFWVDDj+WxY/cV1J24dSHKm5nZrEaYbWGIy9y9yvN7FrCpPoS7n5undiLgcXu/lR0+W7C/K8lZjbY3V8zs8HA0jYjiIiIiHRTtVZHFpqe9bugqnD3183sb2Y2wt3nA4cQhibnAhOAK6Lf9yeJLyIiItKV1Vod+WD0e0qK+BOB26OVkQuBUwlbJd1pZqcDi4CTUsQXERER6ZLqbuAdze36JrBj8e3dfY9693X32UC1MdFDGqijiIiISLdTtxEG3A58DWgB3s+3OiIiIiI9Q5xG2DJ3fyD3moiIiIj0IHEaYZea2U3ANOC9QqH2jhQRERFJLk4j7FRgF2ATWocjY+0dKSIiIiLVxWmE7evuI3KviYiIiEgPslH9m/CkmcXbg0BEREREYonTE7Y/MNvMXiLMCTPA46SoEBEREZHq4jTCPp57LURERER6mLqNMHdf1B4VEREREelJ4swJExEREZGMqREmIiIi0gHUCBMRERHpAHUbYWZ2vJn9xcxWmNnbZrbSzN5uj8qJiIiIdFdxVkdeCRzl7vPyroyIiIhITxFnOHKJGmAiIiIi2YrTEzbTzKYC96ENvEVEREQyEacRtiXwDnBYUVmsDbzN7GVgJbAeWOfuY8zsA8BUYCjwMnCSuy9vqNYiIiIiXVycZK2npnyMce7+RtHlS4Bp7n6FmV0SXb445WOIiIiIdCltNsLM7CJ3v9LMriX0fJVw93MTPuYxwNjo7ynADNQIExERkR7G3CvaV+EKs6Pc/UEzm1DtenefUjd42PR7OaER9yN3v9HM3nL3AdH1BiwvXC677xnAGQBNTU2jm5ub6/4zq1atol+/fnVvF5fidY5Yiqd4iqd4ecRSvMbMfXNuRdnAXgNZtn5ZSdmuW+8aK96aOXMqytYOGkTvpUtLyvrstluseMteWVlRtnHf91m3unQN4sAdtogVb8nCBRVlvfsPYO2Kt0rKmnYaXnG7cePGzXL3MfUeo81GWBbMbDt3f9XMBgGPAhOBB4obXWa23N23qhVnzJgxPnPmzLqPN2PGDMaOHZuy1orX2WIpnuIpnuLlEUvxGjNqyqiKsrP6ncXkVZNLylomtMSKN2+XkRVliyaew47XXldSNvLFeAkarj/zsYqyQQesZumTfUvKzr7h4Fjxrj75yIqyIYcfy+JH7ispu3DqQxW3M7NYjbA2U1SY2aR6d653G3d/Nfq9FLgX2A9YYmaDo/sPBpa2HUFERESke6o1Mf+LdTLjG/BpYFLVK836Ahu5+8ro78OAbwMPABOAK6Lf9yeot4iIiEiXVqsR9mOg3sDpj2tc1wTcG6Z9sTHwc3f/tZk9A9xpZqcDi4CTGqiviIiISLfQZiPM3S9LE9jdFwJ7Vil/EzgkTWwRERGRri7OtkUiIiIikjE1wkREREQ6gBphIiIiIh2gVsb8a4B73P0P7VgfERERycKk/pVlIy6DSceU3W5F+9RHKtRaHfk54F/NbCBhw+073P259qmWiIiISPdWazhycZTt9VBgJfAzM3vRzC41sw+3T/VEREREuqdajTAHcPf/c/fvuPtuhJxefYBftkflRERERLqrWo0wKy9w9+fd/evuXrlbpYiIiIjEVqsR9i/tVgsRERGRHqbNRpi7r2rrOjPbJZ/qiIiIiPQMSfOE/SbTWoiIiIj0MLXyhP1PW1cBA/KpjoiIiEjPUCtP2KnAhcB7Va4bn091RERERHqGWo2wZ4AX3P3J8ivMbFJuNRIRERHpAWo1wk4E1lS7wt2H5VMdERERkZ6hzUaYu/+j8LeZfaC8TERERESSa3N1pJntYGbNZrYMeAp42syWRmVD4z6AmfUys+fM7KHo8jAze8rMFpjZVDPrnfafEBEREelqaqWomArcC3zQ3XeOsuQPBu4Dmht4jPOAeUWXvwd8P4q3HDi9sSqLiIiIdH21GmHbuPtUd19fKHD39e7eDGwdJ7iZDQGOAG6KLhtwMHB3dJMpwLFJKi4iIiLSlZm7V7/CrBn4B6Gh9LeoeHtgAqGBdlLd4GZ3A5cDWwD/DnwB+FNh70kz2x74lbvvXuW+ZwBnADQ1NY1ubq7f+bZq1Sr69etX93ZxKV7niKV4iqd4ipdHrG4f77XZlfE23ZZ+7/29tHDwXrHCzX1zbkXZwF4DWbZ+WUnZrlvvGivemjlzKsrWDhpE76VLS8r67LZbrHjLXllZUbZx3/dZt7q0v2ngDlvEirdk4YKKst79B7B2xVslZU07VW6nPW7cuFnuPqbeY9RaHfl5wlDhZcB2Udli4EHg5nqBzexIYKm7zzKzsfVuX87dbwRuBBgzZoyPHVs/xIwZM4hzu7gUr3PEUjzFUzzFyyNWt4836ZjKeCMuY+z8S0sLx6+IFW7ilIkVZWf1O4vJqyaXlLWc0BIr3rwzz6ooWzTxHHa89rqSspEvzqu4XTXXn/lYRdmgA1az9Mm+JWWf+vzYWPGunnxVRdmQw49l8SP3lZSdPPWhWPGqqbU6ci0wOfpJ4kDgaDP7JNAH2BL4ITDAzDZ293XAEODVhPFFREREuqyae0ea2eFmdrqZ7VhWflq9wO7+dXcf4u5DgU8Dj7n7KcB0Qg4yCEOb9yequYiIiEgXVitFxX8B3wRGAY+ZWXE/5DkpHvNi4KtmtoAwwb/u0KaIiIhId1NrTthRwN7uvi7apujnZraTu19A2MQ7NnefAcyI/l4I7JeotiIiIt3U0Eserii7cNQ6vlBW/vIVR7RXlSRntYYjC/O2cPe3CI2yLc3sLkAJVkVERERSqNUI+6uZHVS4EOUIOx2YD4zMvWYiIiIi3VitRtingKfLC939W4R8YSIiIiKSUK0UFe/WuE5pJURERERSqJmiQkRERETyoUaYiIiISAeolaJiAzPrBTQV397dX8mrUiIiIiLdXd1GWJSk9VJgCfB+VOzAHjnWS0RERKRbi9MTdh4wwt3fzLsyIiIiIj1FnDlhfwPibbEuIiIiIrHE6QlbCMwws4eB9wqF7n5NbrUSERER6ebiNMJeiX56o+2KRERERDJRtxHm7pcBmFm/6PKqvCslIiIi0t3VnRNmZrub2XPAHGCOmc0ys93yr5qIiIhI9xVnYv6NwFfdfUd33xG4EPhxvtUSERER6d7iNML6uvv0wgV3nwH0za1GIiIiIj1AnEbYQjP7DzMbGv18i7BisiYz62NmT5vZn81sjpkV5pYNM7OnzGyBmU01M032FxERkR4nTiPsNGAg8IvoZ2BUVs97wMHuviewF/BxM9sf+B7wfXcfDiwHTk9ScREREZGuLM7qyOXAuY0GdncHCispN4l+HDgY+ExUPgWYBExuNL6IiIhIV2ahrVTlCrMfuPv5ZvYgofFUwt2Prhs8bPw9CxgOXA/8N/CnqBcMM9se+JW7717lvmcAZwA0NTWNbm5urvvPrFq1in79+tW9XVyK1zliKZ7iKZ7i5RGrs8VrebVyc5qmzWDJu6Vlo7brHy/ga7MrilZtui393vt7aeHgvWKFm/vm3Iqygb0Gsmz9spKyXbfeNVa8NXPmVJStHTSI3kuXlpT12S1eQoZlr6ysKNu47/usW1066Ddwhy1ixVuycEFFWe/+A1i74q2Ssqadhlfcbty4cbPcfUy9x6jVCBvt7rPM7KBq17v77+oFL4o1ALgX+A/g1jiNsGJjxozxmTNn1n2cGTNmMHbs2LjVUrwc43Xmuime4ile143XmeuWNt7QSx6uKLtw1DqubikdtHr5iiPiBZxU2VibMeIyxs6/tOx28XYmHDVlVEXZWf3OYvKq0sGslgktseLN22VkRdmiieew47XXlZSNfHFerHjXn/lYRdmgA1az9MnStYRn33BwrHhXn3xkRdmQw49l8SP3lZRdOPWhituZWaxGWJvDke4+K/pzL3f/YVnw84DYjTB3f8vMpgMfBQaY2cbuvg4YArwaN46IiIhIdxFnYv6EKmVfqHcnMxsY9YBhZpsBhwLzgOnAiUWx749VUxEREZFupM2eMDMbT5hAP8zMHii6agvgHzFiDwamRPPCNgLudPeHzGwu0Gxm3wWeA25OXHsRERGRLqrW6sgngdeAbYCri8pXAs/XC+zuzwN7VylfCOzXWDVFREREupdac8IWAYsI87hEREREJENxNvDe38yeMbNVZrbWzNab2dvtUTkRERGR7irOxPzrgPHAX4DNgC8Scn6JiIiISEJxGmG4+wKgl7uvd/dbgI/nWy0RERGR7q3utkXAO9Em27PN7ErCZP1YjTcRERERqS5OY+pzQC/gHGA1sD1wQp6VEhEREenu4mzgvSj6813gsnyrIyIiItIz1ErW2kKVjbsL3H2PXGokIiIi0gPU6gmr3LlSRERERDJRL1mriIiIiOSg7pwwM1tJ67Bkb2ATYLW7b5lnxURERES6szgT87co/G1mBhwD7J9npURERES6u4byfXlwH3B4TvURERER6RHiDEceX3RxI2AMsCa3GomIiIj0AHEy5h9V9Pc64GXCkKSIiIiIJBRnTtip7VERERERkZ6k7pwwM9vJzB40s2VmttTM7jeznWLcb3szm25mc81sjpmdF5V/wMweNbO/RL+3yuIfEREREelK4kzM/zlwJzAY2Ba4C7gjxv3WARe6+66E1ZRnm9muwCXANHffGZgWXRYRERHpUeI0wjZ399vcfV308zOgT707uftr7v5s9PdKYB6wHWE+2ZToZlOAY5NVXURERKTrMvc2t4cMNzD7HrAcaCYkbT0Z2Ar4bwB3/0fdBzEbCjwO7A684u4DonIDlhcul93nDOAMgKamptHNzc11/5lVq1bRr1+/ureLS/E6RyzFUzzFU7w8YnW2eC2vrqgoa9oMlrxbWjZqu/7xAr42u6Jo1abb0u+9v5cWDt4rVri5b86tKBvYayDL1i8rKdt1611jxVszZ05F2dpBg+i9dGlJWZ/ddosVb9krKyvKNu77PutWl/Y3Ddxhi4rbVbNk4YKKst79B7B2xVslZU07Da+43bhx42a5+5h6jxGnEfZSjavd3WvODzOzfsDvgP9091+Y2VvFjS4zW+7uNeeFjRkzxmfOnFmzngAzZsxg7NixdW8Xl+J1jliKp3iKp3h5xEobb+glD1eUXThqHVe3lK55e/mKIzokHpMqG2szRlzG2PmXlt2usvFXzagpoyrKzup3FpNXTS4pa5nQEivevF1GVpQtmngOO157XUnZyBfnxYp3/ZmPVZQNOmA1S5/sW1J29g0Hx4p39cmVW2gPOfxYFj9yX0nZhVMfqridmcVqhMVZHTms3m3aYmabAPcAt7v7L6LiJWY22N1fM7PBwNK2I4iIiIh0T3FWR25iZuea2d3RzzlR46re/Qy4GZjn7tcUXfUAMCH6ewJwf5KKi4iIiHRlcZK1TiZs2v2/0eXPRWVfrHO/A6PbtphZYWD6G8AVwJ1mdjqwCDip0UqLiIiIdHVxGmH7uvueRZcfM7M/17uTu/8esDauPiRO5URERES6qzgpKtab2YcKF6JErevzq5KIiIhI9xenJ+xrwHQzW0jo2doR0FZGIiIiIinEWR05zcx2BkZERfPd/b18qyUiIpKtD06vzJv1jVXv8umy8tfHxcubJZJW3UaYmfUBvgJ8jJCs9Qkzu8Hd1+RdOREREZHuKs5w5E+BlcC10eXPALcBn8qrUiIiIiLdXZxG2O7RJtwF082scu8CEREREYktzurIZ81s/8IFM/sIUH8PIRERERFpU5yesNHAk2b2SnR5B2C+mbUQ9o7cI7faiYiIiHRTcRphH8+9FiIiIiI9TJwUFYvaoyIiIiIiPUmcOWEiIiIikjE1wkREREQ6gBphIiIiIh1AjTARERGRDqBGmIiIiEgHUCNMREREpAPEyROWiJn9BDgSWOruu0dlHwCmAkOBl4GT3H15XnUQEZGua9pjH6ooe2f1BUx77PSSskMO/mt7VUkkU3n2hN1KZaLXS4Bp7r4zMC26LCIiItLj5NYT5u6Pm9nQsuJjgLHR31OAGcDFedVBRERqW3zJExVl/xy1qqJ8yBX/EivepEmTKspGjBhRUl7tNiI9kbl7fsFDI+yhouHIt9x9QPS3AcsLl6vc9wzgDICmpqbRzc3NdR9v1apV9OvXL5vKK16niaV4iteV4y17ZWVF2cZ932fd6tKBiIE7bBEr3pKFCyrKevcfwNoVb5WUNe00PFa8f766qqJszWbr6fNur5KyTbaL9/+/9tprFWWbbrop77333obLgwcPjhVr5coXKsref7+JjTZaUlK2xRa7x4r3/Mp3K8o++P4/eX2jTUrK9this1jxWl5dUVHWtBksKXuYUdv175B4vDa7omjVptvS772/lxYO3itWuLlvzq0oG9hrIMvWLysp23XrXWPFWzNnTkXZ2kGD6L10aUlZn912ixWvMx1r48aNm+XuY+o9Roc1wqLLy919q3pxxowZ4zNnzqz7eDNmzGDs2LGJ66t42cXrzHVTPMWrZd4uIyvKFk08hx2vva6kbOSL82LFu/7MxyrKBh2wmqVP9i0pO/uGg2PFu/rkIyvKhhx+LIsfua+k7MKpD8WKV60nbN6oFYxsKf2iT9sTNn/+/Jq3qaatOWGb9/1+SVncOWEfnF7ZKPnGqtf4r36ljcLXx8VrlAy95OGKsgtHrePqltJBppevOKJD4jGpsrE2Y8RljJ1/adntKht/1YyaMqqi7Kx+ZzF51eSSspYJLbHidedjzcxiNcLae3XkEjMbDBD9Xlrn9iIiIiLdUns3wh4AJkR/TwDub+fHFxEREekU8kxRcQdhEv42ZrYYuBS4ArjTzE4HFgEn5fX4ItIztDVEMnHKxJKyuEMkIiLtJc/VkePbuOqQvB5TREREpKtQxnwRERGRDqBGmIiIiEgHyG04UkSkqirL5hlxGUw6puyLhHskAAAgAElEQVR28ZbNi4h0VeoJExEREekAaoSJiIiIdAANR4pITW1l8f5CWXnsLN4iIgKoESbS4apvpfIuny4rT7uVihpNIiKdi4YjRURERDqAesJEGtTWpsLTHju9pCzupsIiItIzqREm3d6kSZMqykaMGFFRXu12IiIiedFwpIiIiEgHUCNMREREpANoOFI6ncWXPFFR9s9RqyrKh1zxL+1VJRERkcypJ0xERESkA6gnTFK7+uQjK8qGHH4sV0++qqTswqkPtVeVREREOj01wnqo6898rKJs0AGrS8rPvuHg9qySiIhIj9IhjTAz+zjwQ6AXcJO7X9ER9ehK5u0ysqJszcRzmHfmWSVlI1+c115VEhERkRTavRFmZr2A64FDgcXAM2b2gLvPbe+65GnUlFEVZWf1O4uJUyaWlLVMaGmvKomIiEgn0hE9YfsBC9x9IYCZNQPHAA01wjLfH29S/8qyEZfBpGPKbrcibhVFRERE2tQRqyO3A/5WdHlxVCYiIiLSY5i7t+8Dmp0IfNzdvxhd/hzwEXc/p+x2ZwBnRBdHAPNjhN8GeCPD6ipe54ileIqneIqXRyzFU7y84u3o7gPr3agjhiNfBbYvujwkKivh7jcCNzYS2MxmuvuYdNVTvM4WS/EUT/EUL49Yiqd4HR2vI4YjnwF2NrNhZtYb+DTwQAfUQ0RERKTDtHtPmLuvM7NzgEcIKSp+4u5z2rseIiIiIh2pQ/KEufsvgV/mELqh4UvFyzVeZ66b4ime4nXdeJ25boqneA1p94n5IiIiIqINvEVEREQ6hBphIiIiIh1AG3iLiIhIh4i2MjwCGEpRm8Tdr+moOrUn9YS1EzPbysz26Oh6CJjZIDPbofDT0fXpKszsE1XKzuyIurQHMzvKzHrUZ2SWx4aZbWZmI7KqW5bM7EAz6xv9/Vkzu8bMdswgbo/4bDGzys2Rk3sQ+AKwNbBF0U+nYGZXm9luucXv6hPzzWwgcDGwK9CnUO7uByeM9yBQ/qSsAGYCP3L3NQ3EmgEcTWjdzwKWAn9w968mqVtezOwIYDdKn79vJ4jTBzi9SqzTEtYr63hHA1cD2xJeix2Bee7e0AFmZiupfI9s4O5bJqzf/sC1wEigNyGFy+pG45lZS536JToZMLMngW+5+2PR5YuAce5e0TiLGW9n4HIqj92dEsTK9L0SxfwZ8FHgHkIqnRdTxNoUOIHKs/0kx1lbr6+FkI2/vlkdG0XxjgKuAnq7+zAz2wv4trsfnSRe1szseWBPYA/gVuAm4CR3PyhhvKw+W/I6do8HvgcMIrxPCu+VpJ9VTwCbEp6729098abKZvZ80v+rPZjZF4FTCcftLcAdaf7fct1hOPJ2YCqhO/NMYAKwLEW8hcBA4I7o8snASuDDwI+BzzUQq7+7vx29iD9190ujg7/TMLMbgM2BcYQPohOBpxOGuw14ETgc+DZwCjAvRfWyjvcdYH/gt+6+t5mNAz7baBB33wLAzL4DvBbV06L6DU5Rv+sIyYvvAsYAnye87xp1ZPT77Oj3bdHvU1LUDcIJxUNm9jXg48AuwDG171LTLcClwPcJ779TSd47n/V7BXf/rJltCYwHbjUzp/VDeGWD4e4nnMzNAt5LUy9aX98sZXJsFJkE7AfMAHD32WY2LGmwaBRhKKUN2F+kqN86d3czOwa4zt1vNrPTU8TL6vnL69i9EjjK3VMdEwXu/i/RSdRpwCwzexq4xd0fTRDuV2Z2mLv/Jou6AZjZx4Cd3f2WqKOmn7u/lCSWu98E3BT16p4KPG9mfwB+7O7TU1fW3bv0DzAr+v18UdkzKeJV3LdQBsxpMFYL4Uv5N8C+5fVMULedgbuBuYTG4kJgYcrn7/my3/2AJxLGeq4s1ibAn1LULet4M6PffwY2KvydIl7FfVPGK9Sv+L38XNrnr6zs2ZTvl0HA84TGiKWMVTh2W8rLOvq9UhZ7a+B84GXgV8BfgIkNxnghi7rk9ZPDsfGn4tel+LVJEOsnhJGIKdH77hZCz2Sa//d3wNeB/wM+SGj8t6SIl/Xzl+mxSxiByeN904vQw/sq4aTnReD4BmMcB6wG3gXeJnR6vJ2iTpcShjj/L7q8bdr/P/o/jwHuI5xIXRw9RnPa57A79IT9M/r9WjSs9nfgAyni9TOzHdz9FYBoXL9fdN3aBmN9m7AzwO/d/Rkz24nwAZ5Ulj0HBe9Gv98xs22BN0nem1N4Ld4ys92B1wlf2kllHe8tM+sHPA7cbmZLCQd/UqvN7BSgmTCEMD5lvHeirbxmm9mVhF62NK+vmdmB7v6H6MIBSeJVGX7tDewEnGhm7gmHNID3ojlXf4l20XiV1mOtUVm/V4h6Sb4ADAd+Cuzn7kvNbHPCidC1DYR70sxGuXtLmjqV1S+T4etI1sfGHDP7DNAr6jE5F3gyYaz93X3XFHWp5mTgM8Dp7v569Dn/3yniZf38ZXLsFplpZlMJjYgNPbGesDcx6pk8lTAC9Sihl+3Z6Dvkj0Ajca8hDPu3eNTiSek4YG/gWQB3/7uZJZ5jZmbfB44CpgH/5e6FkaLvmdn8tJXNvGXc3j+E7tv+wO7AdEIr9agU8T4JvBLFmgEsIrzR+gLnd/D/mlnPQdH9/wMYQDibeZ3wxf+dhLG+CGwFHETopVsKnJmiblnH60v4otqYMGx9LrB1inhDCcNMbxCGwO8DhqaItyOwGbAlobF9DTA8RbzRhDPzl6P38Wxgn4SxDNghzXutSsx9CY2uIYQTjF8QvnA7/L0SxbwV+Nc2rjukwVhzCSdx8wk9iS2k6BWPYs4kNBCfi97XpwKXJ4yV9bGxOfCfhL2CnwG+C/RJGOtmYNcs33tZ/+Tw/GV27Ebxbqnyk7g3kdCT+HlgsyrXfa7BWI8T9R5m9Fo8Hf1+tui1STMCdSrQt43r+qetb3eYmL/hbKFWWcxYGxHG9WcR5rsAzPcGJuOXxbuFKpMsPfnE8ieBjxGGJB8j9Bxc4e6ZrECKJg/38QwnHUrHM7P+AGlfVzNrcfcsV0V1WtGy+d+6+7iM4u1YrdzdF6WIOdPdxxRPbDaz59x976QxOyMzOwh4gHCS+B7pFiDksqgmL1kdu52Zmd1K6Fn/FaW9dIlSVJjZvxOm7hxKWPhzGvBzd2+k57o85naEk+TiOYmPJ41XrDsMR14L7BOjrC53f9/Mro8+xP6cQd0eKvq7D6Gb9O8p4p1HOMM8lzAR9GDCWVfDzOxgd38sWjVTfh3eQDe1mX3W3X9mZlVXfTZ6MOUQ7/fu/rEqH8BpVwgNBL5E5YThhhrZZnanu5/U1sqoJF82UdySFXlmVojX8Iq8yLNmtq+7P5Pw/oV6/cDdz29jJTLewAq6rN8rRfdbb2bvm1n/LL4A3X1RtcnCKcOmHr7O8dh4FPiUu78VXd6KMH/m8AThbiYsiGoB3k9SnwLPeFFNjs9fJseumV3k7lea2bVUP9bObTBe5itzgZein97RTyrufpWZHUqYXzYC+H+ebMEAAGZ2BWHB1FxgfeFhCD14qXXZRpiZfRQ4ABhY9gG8JaFbOKlpZnYC8AtP2U3o7vcUXzazO4Dfp4hX+PJbRegiTeMgQm/aUdUeisbG9PtGv7PK7ZJpPHf/WPQ769wz9wNPAL+l9eBM4rzod9ar3rJckQfwEeAUM1tEmO+S9IO3sOLrqgzqlPV7r9gqoCVqUGyY39PoFxeAmV1KWPE6gjAUtAnwM+DAFPX7HOGz7hzgAmB7whd3bDkeG9sUGmBR/OVmlnSO3jJ3fyCjehUc7e57Fl2ebGZ/Bv5fI0Fy/mzJ4tgtrIacmbpGQeYrc939MoBoTh3uvipNvGgV7hOFhpeFfHVD3f3lhCGPA0a4exafoRW67HBk1EU9lpCW4oaiq1YCD7p7ognw0RlNX2AdsIaUZzRlsUcAD7v78Abvl1nPQZXYvdw9TQOiyzCz29z9c/XKGog32933yqZ2IRmqu/+qrOxMd7+hrfvUifeCu++eTe2yHVKLhvt+6u5pl94XYp3r7t9PG6ssbtVeZnefkiDWbKLJwoXhQutk+ZGi57GJ0l7dVxLGmgUc560LnHYE7nX3hkcozOx/CfNWHySDSeVRzCeB6yldVHO2ux+QImaWz1+mx25nFi2kuY3WBXVvAJ939zkJ480EDnD3tdHl3oTVkfsmjPcrQq9uqsZhW7psT5i7/w74nZndmmZeRZW4mZ3RVOmifp2wtLVRWfYclHvJzH5NyLX2WJrev6yG5/KKR0jkWRx/Y8IE2KQeMrNPuvsvU8Qo9h9m9p6XJUOl9CSjEZmuyCscZ1GPRp86N68Xa72Z7WhmvQsfliljjSesGs5MksZWDWvd3S3kGsOibO1ptDE0VEgs/V13f7OBWBMJi0GW0Drk54Rkpkl8E/i9mf2OcCL7L8AZCWNtRmh8HVZU1mhvfbnPAD+Mfhz4Q1SWSA7PX6bHrmWf1DzLlbk3Al/1KOeWmY0l5ORM2iDeuPgzxd3XRg2xpN4hDPlPo/QkoOEe8Wq6ck9Y1V6hgqS9Q2b2r23Ea2j818Ig/vZJz4Tai4Xl9kcSxrz3Icxja3b3hodNo7PLJwhd6Bt618qHZds7npl9HfgG4cP8nUIxYbXaje7+9YT1K/SavkdIkZB2Hsg2hOe/OBnq+KSNFDObS1g99xIpJzRH8bLOqv5Twof4A5QO9zU8j8vCMvJNCCcTxbGeTVK3KGaWGf3zmCx8JeG4+HlU9GnCnNHXgY+5e7WpBm3FWgB8pJGGW4yY2xAWOkHIG/ZGVrE7m6yfvxyO3d8Qjo1/pyipubsn6RQo9DZVJJZO8llqZn8uGxquWtZAvEeBawtD2BZSzZzr7ockjJdZj3jV+F24EXZQreujnrIkcR8sutiHkPV5VpIzBst4NZmZHUjIRF1YpVE4MBv+Umgj/laEM8NT3L3heXU5DM9lHe/ypA2u9hL1Mv2W0PA8LWXPZKYr8qI5MwdTlhXc3RNlGo/mSVWr32UJYk2vHirZmX4U8/e05uU7iigvn7s3NG+oKN6hhN4cAx7xFJOFo3jPlg/vFcoa/eyJnr9D3X1dmjoVxStMdt/J3b9tIQ/XB701x1IjsTJdZR7FzLrXPuvnL+tjd5a7j7bSlbTPpBiiy2xlrpndS8jpVRjx+Sww2t2PS1i3DxF20tmWcKz9jTC8uSBJvLx19eHIPOKWnD2a2fbADxKGy2Q1WZGbCRNwS3qG0ooatCcTel9mAiclDJX18Fym8dz961FDc2dKezYSr3LJIl6VYetMkqFmOXwY+ae7v2lmG5nZRu4+3cySHhuJGls1nO7uC4sLLCRHTmMzd59m4UVYBEyK5jolaoRFja5UDa8yvcxsv0LDxsz2pXVRUqzGgLUualoIzDCzh8kgTQDwv4RhuYMJSatXEvbgTPKln/Uqc8huUU1Bps9fHsdu9DurpOZZJpY+DbiM1uHlJ6KyRNz9r8D+lt1E/8x6xKvpso2wgryfIGAxYcgkiaxWkxWs8LKJ22mZ2cuEZI93Al9z9zRZns8DvmFmawlDfWkXNRTiZTXc98Uo5hBC8sP9Cdmdk86LyCRelvMQi7U1fEjZ3LgGZJoVPOqNuIjKTbeTvB53U5mW5i7SzflLndG/SgO7RIpjA0KC2p9Er4kRluR/MZpvdnnMGIX33ivRTyZpAghDc/uY2XOwYXVkorjl0w8s5SrzyOZJh+LakOnzl8Ox+10LOccuJMzl2pJwQp/U5wiNruKVuRXpjuJw9+WEtEuZsOxT8+SxU80GXb4RRsZPkJXmU9kI2Ito+4MEkuTEqWW6mf034Yyh+Gwr8bwXQjdtSc+NJUx2m3VjIofGyXmEM/E/ufs4M9sF+K9OFC+TnrUiWW/KfAxhxfAFhKGm/oRejqRuJ8xTOZKieSqNBIie892A/laa825L0vcgpM7L5/lt9l5IWTPKqif0vDNmjCx7I4v908JqwcJChIGkzPFVZGdSbklF9r3sWT+PmR677l7oTVxB+J5M61h3/yHh86CQYuI8wnSWWCyned1kn5on0x7xcl12TlhB0Vj3hjkQhbKE8Yo/ZNcBLydpkBTF24eQ5d4Jy2TTTBTOY95Lm/NKEsQqfLkMc/fvREO5g5PMAymKmVmjpDAHwkK6gI+4+3tmNseTTyzPOl7VnrWkr2/RvI0/A3t7SEaceMJrUdwtKZ1H84+EcVLPU7Ew6fZY4GjCBP+ClYQFJkn3K8xUtec97WthZlW/BJKc8Vu2yVWxsKfqyYSeyFuBE4FvuftdCWIVehMt+v068PXyHrIEMbNcVJNlr27mx240NP9Dwh6N7xN67C8oH8JvIF61742G5oRZ67zu4wmbqP8sujweWOLuiXrqLPvUPLnuVNMdesKy3AQYd58SdZt/OCpKvEFn9CH5KVrHum8xs7vc/bsJ65bJFipR3fJIdls8D+Q7hGSX15NsHkjmw4fAYjMbQNjj8VEzW07Yly2prONl3bOW9fDhlwlnvWsIr3PhSzHp0H/qeSrufj9wv5l91N3/mLAeVbVxpl5IAfEjb2w7s6w3e6fs/n0IPYrz2rhtPQM9u+SquPvtUW/BIYT3ybHunqhueQzX5xAzda9umaw3BP854bO4MNn908AdhCkzsVlIBfMZYJiZFZ/0bAE0dDJWmNdtZle7+5iiqx60sPoyqUzTe5DhTjXVdIeesH0JHzwDCE9Qf+BKd/9TwnhjgSmEjVONMNY9IUnvi4Ud1vcsfFib2WbA7KQt6GjY4VKgkEbjd8C3PcG2KpZDsltrXZm14Ywo5dlbC62Nkr0KjRJ3TzT3oCz2QYT3yq89ZZ6qrOLl0LPWl9aEw4Xhw9s94TJ6M/sL8FHPKNWAmR1JmIS7Pa3zVC7zBNnRLUwO/i7wLvBrQn6mC9z9ZzXvWDvmD4GBhC8rCD07bxMaUVt6A0l+zWwooSfiQFrzUp3vybN4V3uMTQmrLscmuG9myVWLYlZs0+TuLzVw/13c/cVoNKFCymkYWfeyZ736MOtjtyIxcJLP5uh9MYww5/CSoqtWEjbJbnh1qJnNA44o9MpZyHj/S3dPNBfbMk7vkbcu3xPm2W7lA2Ey5GHuPh/AzD5M+BBOMrz5d8IBXjhj3pTQU5fUT4AXaF29+DnCnLiGGyWeT7LbrOeBrHH3NWaGmW0afSCn6gI2sz0JiSMhbG3RcIPJzKr11hTOuvrR4BlhkUx71rx0kUUWOW3+SmuetdQynqdymLtfZGbHEU6gjif0IiRuhBGybhd/iT5Y1FBuKJt31Ng6JkVd4tic0GucRJbJVbFstmn6alSHq6tc5yTvEc+jlz3T1Yc5HLu/MrNLaO2JPRn4ZeGzLO6Ugui7YhFhWDMrFxBWli4kvPd2BL6cIt4nMqlVxMzGEI6P8g28M2nUddlGWFlXaIUUk/o2KTTAojj/Z2abJIy1ApgTzbdwQqLGp83sf6LYja4I+ZC7F+8Nd1nUa5LGOxYm+2cxl+F/gHuBQWb2n0TzQFLULdNGiYWJo1+idXj4Z2Z2ozeeMHMWrXNUCornrCQanvPWvDiTLMz/60/o1WmItb0iL+1q1a8TuvqfIoPM0YXjoMwKYGY0zNiIwjF6BHCXu68ws1q3j6Ofme1Q1Du0A61THRpqvEcnc5OBJnff3cz2IOxfmGhqQhSzOGN+L0Kv3XeSxHL3X0c9ToXkquen7PE8jmibpij+382soSFAdz8j+p3ZNIwiWQ/9Z7L6sMqxW/hMSXvsFk7cCw3rwsHxaRr4zMrjsyV67+1MSE4N8KKn2KfRs0/vcTshgXbqDeSr6bKNMEJL/G+EXqqnKP1CTGOmmd1E6xn0KSTf/PTe6KdgRop6AbxrZh/zKJu9heSt76aMmdlchizngUTxMmmUFDmdMMy3GsDMvkc4+22oEebuw1LUoU1Ro6TZ3Z/0FHnw8phDE/kRYWJqVh9GfQgfvIXJ2icQhhD2NLNx7n5+A7EeNLMXCcfDWVEvbCNztqq5kNA79FfC+3kY8JVoqKjR3okfEz7IfwTg7s+b2c8JQ6hJFW+mvI4wmTlRslALLdaPU5Rc1YpykCWQ2TZNVrrqtWAF0OLuSxOGzbSXPate3ayP3Wi6zt8Kn1kWFp6dQOgtnhS3Byyv+kV1Kn99P2RmiV9fyz69Rx4byG/QZeeERcNehxImuO4BPAzc4Qk3/SyKuylwNmE1BIQ5K/+bpGVuZkcRNuzOpPUcDaX9lNAYAVhOmK/2fIqYmc1lKG5EJK1PWbwdqpV78k1xW4B9i+bo9QGe8YS7GkRfXMWrQRNnBY/iTSAME4wgNN6b3T3NBNXCcZLVpsKJMmLXiPcn4ECPNpC3sJfnE4Rjr8Xdd20w3gcIufTWW9iOa0t3fz1lHTel9Qx9vjc2Gb84TmEYs3i+ZKodISzDDenNbDLRohp3HxnNl/pNijlNmW3TZCEB6keBwurwsYTe6GGEObG3tXHXWjHvJUxfOZ8wBLmcMAryyUZjRfGGAROpzMCfdESmfOrE40k+583sWeDf3P0fFrbka47quRcw0t1PTFq/rBS9vo8RTnbGkuL1tex39jiE0M4o3zsyzd6lG3TZnrDog/vXwK+jD8rxhHHly9z9uhRx3zOz6whP+PuED96kE7dPBn5gZvcAP3H3F5PWK/K2u+9pIUUA7v52dPCnkeVchlnAt6IzyiwaEQ/T2hXfh3BQzif5Gc0twFPRBzCE1AY3p6hf+WrQNFnBC3uRTYkaEycA34uGw3ZOEs+y31T4V2Z2BvAgpR9GSefAbUUY3issLOkLfCBqRDV00mNmny/6u/iqnyasW8FoWr9Y9zQz3D1JzDcsbKdS6Bk6kZA3LI0sN6TPLLlqdP+rLGzT9DbhpOL/efJtmjYmNBiWAJhZE+F1/Qhh3l/DjbAcetnvI3yWPEgGvcRVpk7cnnDqRK+i4/Nkwl659wD3ZDCVJStZv76Z7uxBaKzvQpjyUPw52rMbYbDhLPUIQgNsKK1zktLEPIKwWnDDEISZfdkTZKp3989GDabxwK1R1/wthB67lQmqdw+wj7u/XVR2N+mygleby9DIMNAGWTciynuoojkrX0kSK4p3jZnNoLWX81R3fy5pPDL+4ioynHDQF7rRkzoPGOHZbco8PvpdvP9mmhQVVxK2PZlBONb+FfivaOjqtw3GKm749iEMiT9LikaYmd0GfIgwcbuwtY0njHk2cCOwi5m9Shh2PSVhvTZsSG9mhc+CDRvSJ4lJhotqoji/jeZyZbFN0/aFL+jI0qjsH2b2z7bu1Ebd8lpUs8bdq81xTCqTqROEra02joapD6F0sUVn+f7P7PWNZJ3eY1/PKCdYNZ3lRWiYmf0U2B34JWFZ+wsZhb4aGOfRZp/R2evDQKLtgqLeqruBzQiNm+OAr5nZ/8Q9q7Ecs4JXm8tgZokaYUWyakSUcPdnzayhvDYF0RfDHHffheQ7IJTLdDWohTQLxxFOAKYC3/Gi3E0J/I3WXqbUsp4L5+43m9kvgf2iom+4e2FPwK81GGti8WULCzqaU1ZxDLCrZzBnw8Py+3+LGpgbJTwJK8S6PPpSvslTbGJdJrNFNVFP5vtm1t8TpM+pYoaZPUTp3MEZ0XPZ6PGRy6Ia4IcWVoT+hmx2MzFK97RcT7J5z3cQVsG/QZgv+QSAmQ0nw8+GlLJ8fSGsQn6X7Hb2eNLMdnX3uSlitKkrzwl7n9bWbcVqEk+e+bhkPlQ07+fphHOkjiZ0ZQ4nnD1Pcfel0XyVue4+NGacds0KbmavuHvV+Vh17lfeiLg3TSPCSpPIbkTYG3BrT57F+35gYtI5UVXiFbKC70OYqJ04K3gU78vAPZ5dHq6bCUNBWW3KjJkdQOW8l4Z6hqyNvE9F8VI3ki2saJ7j7h+ue+O2Y9wFnOvuaYcNsTC5/0+EL8En0s5djWJu2CUkC9HJXmFRzTRPsagmOtb2JvSEbeiF8AQraaPP4BNoTW/xB8JxkujLK4q3fVafA1HMywkpg/5K0ZCVJ8+Y/1XCIqniqRO3unvDw2pmtj9hi6zfFPWsfZiQty2rE9LEsnx9y3phs6rfPEKPeC55x7psIyxrRT1MhxJ6cO4kNO4+Bbzi7rGHwaKzjA8SxvRv9igBoIXVjK+7+1/N7BB3n9ZgHTPPCt7G4/zN3bdPcL+sGxGXFl1cR1jRc48nnxz9OOGL4WlKvxjSTJ7N7Isrinc0Rcl43f3BFLEurVbuCfe5a2t4rtEvVqu+/VZR9Rr/4rLS7Pa9gJHAne5+Sdv3qhtzOmEC89OUNmIbfr9EUyc+QphofSChcfx80dykJPWbAlznrbkSE4sa7Ne6++yisknuPilhvOKM4oXXxaIpCx0uhwbsAkKvaerEz0UxC1veQWi4p5k60WOY2TTg+Ix6YbGQoLaCZ5Rfs8sOR+bgqKK/lwCFfa2WEYYSG/EDwt5m5VsbvB1dd1SjDbDIcRaSRGaWFbwNiVrm7v4jMzvawiocSNmISNpYKBc1ipuA/yi76l9IODm6bHgz7YKLQszLCUNzt0dF50YN728kiZfV81ckk+G5LM9Si1xV9Pc6QkPs5JQxJ6W8f7H1hEUw6wk9JUujnzQ+ApxiZosIJxVpztAPB8ZY2EKm0LN5NA0+B1Gv/RB3vz66/DQhf5kDFzcYK698dwDPmtm+WTRgIy8Qdm1J9ZpaWLF9JmH0pIWwMj9R2pGuIuoA+R5hU3Yj/eu7CmixkJ8zbS9sL8IuFLvUvXFC6gnLQfmQZtl1ic/ALFrSbiEr+JGEjNKPe4Jtgep8wG3m7g030Ks0IsYTUkAkakREXeb/TuXwV0M9JdF8g6972V5iZjaKsA3SUdXvWTdu1sObzwN7eZTSJPoAeK7RL1Uz+4G7n2/V9z5M3POX5fBcFO/z1cobHd4sirc3YV+7TxGGDu7xFCuls2Rm7xC+VK8hDJekXiyR5Rm6hVQG4wj5EV8hLOp4xhtMSWJmfwA+7e5/i8701jwAAA/LSURBVC7PJqwe7gfc4u6HNFq3PFjIKTeckPw5bQMWC4tL9gCeIUWvqZlNJTTWnyBkfn/ZG8uX1+VEvYhHpR1FKIpXdV/HpL2wWX/Ol1NPWBnLJt/LgBrXNdqrViyzrOCeT0LPIyhtREwBniOs5EriLsJK1ZsonaTaqKbyBhiAu7dY2NMvqa0IOyJkNrxJeO8UVmj1r3XDGgpLuq+qeavGbQPMjf7fVMNzkdQrGqOG+vjo5w3CXETLoret7ESlN+H4W53wDH08YWjpK8AXzexJwglUkh5xIDS2rHIbrj8nDGfR8M1RZjaJkJMryfuvd6EBFvm9hxQJ/7B0CVuL96HcBtjCG9iHsopE80prqDr0n8CuhZP0aIg4abLcrmRJFg0wi3a3yGHIO4/P+Q3UCKuURb6XmWb2JXf/cXGhhf3KZqWoWx5ZwbOWRSOiYJ27T04ZA/JrFJcPb6Z1OfBcNBepkLIhyZymZbBhf9AsTcoymGezovFFQq/Bkd66ornh7WLaqN+GE5Vo8vAxtG7r02is+4H7ozmEnyCslL6IFO8/y2AbrqL5qxsW/Lj7JDNbT0ia2aitii+4+zlFFwcmiFeY21i8D2VvGt+HskTUgK3YYDxFvN9ZyG9VOLF42pNl89+QksHd1yU9ye5iZkY9gPeRLhnqfYRFUpjZPV66xV8aWX/Ol9BwZBkze8rdE6VBKIrRRFjVspbWRtcYwofHcZ4ii7eVZgXvSzgjTJUVPCtmNh64gnAWvaER4e5TG4xTyOVzLmGOxb2kSA5qZncAj7XRKD7U3dPOHcqMmQ2m9IO84dfWzJ519zw+jApDYDu7+28trPLt5SnSLZTF3gR4wRvIyWNmxxL2vzuQME+ymZC6Ia+tpRLtGmAhYfOehNVzjxMajk97wkUmUczngY9664q3vsAfGxlSy3qo3sxuB2ZUOda+DIx19/HV71kz5myifSi9dbeB5xv5P6vE3NCwc/cPm9m2hNGFRA07MzsJ+G/C1nSFDdC/5u53NxhnPa29LUZopL9DNvPgOiUzu6VKsXuD6VesdDeKrHf3yO1zTz1hlVLne/GQeO4AC9sl7B4VP+zujyWpkJld5O5XRhcP8SgFgruvNrNvkny4L1Pufkc0N6LQiLg4YQOxPJdPcc6oJLl8zgfutZBSoqJR3Gjlsp4wbJUpGxZHv7c1s20bee8V1aMgad6jyqBmXyIke/wAYZXkdoTh4kTzfMrmrG0E7EpYlRybu98H3Bc1QI4hvNaDLGzDc6+7/yZJ3aL6Fefk24jwnmmo0WTR3n1EvZzAZwnL8ZsIk7nT9GRnkUsq66H6Cwivx2dozcc3GtiUkGYhicz2oSySeoPxMt8kJPVcChD1rP2WkEw7NnfvlaIOXZK7n5pVqDb+TiXrz72K+OoJK2UZ53vJqE7FPRsb/q52uSNUaUSUSNCIKMTtU95TUK2sgXjFjeI5SRvFWYuGH4sbnSUHZaPvvVrvl5T1nE1YePFU0RlnmoUmBxVdXAcscvfFbd2+gbhbESbnn5xmInjZGXohRcqPGxlmshz37rMMckmZ2V+8jR0tzGyBuw9PWLeDad1WKdWxZhnuQ1kU82l3369wfCTpRSyLV3IcmNlGwJ+THhs9QaFzwcyupfoCokZT3xR6EYt7ECFlL2LWn3vl1BNW6VPATp5hvpcMWBt/V7vcEa6mRiOCsDoqiSeJxvjrlMXi7tNp3QS4M7kY+JtHqw4trO45gfClPylBvD0tbGdjVG5tk2ZI4z13X1uYp2Jhr8LEZ3HFc9aiydaZbK/k7ssJ2/ck3cKnECeLM/Tc9u7zbLbhymX+atToyuQkx7Pdh7LgTjP7ETAg6uk4DfhxnfvU8msze4SQoR7Ca51ol5UepDAZP83+whvk2IuY6edeOTXCKmWS7yVjtbpZO0NXZqaNCDP7IKHLdzMLaQcKjbstgc0zqG9ncwPwbwBRb8nltPaW3EjIxB9bjh9GvzOzwp6FhxJW+jWcB85CBu8rCAs4vkNYzbkNsJGZfd7d02yknFpbZ+YFDZ6hZ753n2WbSyrTofq8RI2uR7NqrGfdsHP3r0XD14UG8Y3unmof4x7gFaieOsLMzmr/6rQpk8+9tmg4soxllO8l4zrV6mbt4+6btHXf9pD1kEvUiPsC4cug+CxpJWG4JZPd6zsLM/uzR7nezOx6YJlHmcotyg3XkfUriIZYTgcOI7z3HiFMgm/oQ8TMZhLmMfYnNDI/4e5/srBy8I4sJ9QmYaV5hi6jLP1AtS+NGrG+CXySkD5jB2CfaH7TcMI2Zg1PBLccckl1xqH6Wo11oMMb67VEx8p4d7+97o17KDNbCHzK3WeVlV9GyBvWodNsCso+9yAkb70ps/hqhJUqm6eygWe/3L/byKsRYWYnREM33ZqZvUDIr7bOQgqSM7x1q6sX3H332hHaTzThGHdfliLGhveEmc1z95FF12W6qimtLOpjGe/dVzwfJRoaebqzfGFlKc/GumWUpd3MtgTOJvTcP0DYK/NsQpLpP7v7MUnr2N2Z2WhCLshT3P2PFsb7JhN6Jo9x97drBsi/frV2f7jIG1z52hYNR5bxkO+lYjlqR9erk8t0yMXMPuthK6ahVrqJN5BuA+pO6g5Cl/cbhBxwTwCFHE6Z7H+WRvTheClwDqEXotA7e627fztByOL8e++WXdfZzgpT18fd/1Sl7P9ShOwpuaQ29mh1q5l9u/A8uvuLGfzPV5JNlvbbgOXAH4EvEhqNBhzrRftwSiV3n2Uhxcy9ZnY2IecdwMfd/b0ad20vFxHS3xT0Jqz07UfIV6dGWB4s5+Wo3VTWjYjCEvRqyRM725d0au7+nxY2nS30lhSnbZjY9j3bzQWEPFz7epSl3Mx2Aiab2QXu/v0G49VaONAnq0p3Y3uWPWebFT2faRZedDZ5NtYzydJOWMRV6JW8ibAX7Q6eIv9bT2EhH+Riwgrf+wgpPc4B+ppZX28wH2QOctn9oZyGI8vkvRy1u8p6yKXG45zvDSzBl/TM7DlCUts3ysoHEl7vTjN8mAUrzQO3ORktdZfG5DEX1lpzvx1E2CkgVZZ264Qpg7oKM3uJ1uOseGV94TjLLMdhElYjRYuZ/dXdP5TF46gnrFKuy1G7qxyGXNryVUCNsPa1SXkDDMK8MAtZ7rsVz2dfVWlQTqt8i3cAeIfWydbw/9u731C96zKO4++PpWC5GToVi7YVRBGRYVLNhVCEPciKRg+MkWA9EIKc/4KgPxg9SMjBtAyKoEyKkCgpaDVWPTANiSZpiD2p3GCPWqth0WB59eB7H7l37+xsc/f5fc/u3/sFN+d3f3/7Ha5xDue++P65rvZ3/kwP/YxlVnLuapW6WszREycp33ILc+zpaRJ2olU9jqqztrAbYNawlWrmraV6etKKalL7LcnWqnps+l6SMz6puorlYNTfanR/OIHLkTPmdQxfqyPJ/qra2DuOMcnx/eyOu8UaKJEinanllg1dStRyMsfuD8t+f3OL4yW5vGbakiR5Y1X9uVdMY5OVezNeWFXO4Eo6Y0m2ANfSitROHyhZD3xkqdSONBQ/zE70aJIvVNXDAEnupM2MvblvWOPhnhxJq+QC2qnrlwPTf2eOcIadKXR2JqcjT2oNnI4chDNhM5JcSSsM+F/gClp/qzur6vmugUmS5iLJpqp6Lskrquo/p35C8zZ1OjK0bhKHJ9evAvafAxv35+K83gGsNdX6H/4C2AJsprUWMQGTpMXx6iTPAM8CJLkqyTc6xzQqVfW6SRmKvbTCuRuq6lLgBmBP3+iGYxI2I8le4J20PmofAHYlubdvVJKkOdoFvJ9JM/Cq+iNwXdeIxutdVfXzpTdVtZu2b28UTMJO9PWquqmq/llVT9N+Gbq3jpEkzc9MNXSA/3UJRAeTfD7J5snrc8DB3kENxSRsRlU9MvP+WFV9uVc8kqS5O5DkWqCSnJ/kLtr+Xw3vY7TG2D+hFcu9bDI2Cm7MnzFTHuEC4Hzg+aq6uF9UkqR5SbIBuA94H20z+B5gR1Ud6hrYiE36RS5Xj3ChmYStIK130Ydpa9af7R2PJEmLZDIj+W1an+GNSa4CbqmqT3UObRAmYachyZOL1qRYksYmyRdXuF1uPRlekidoNdp+uvQ5m+RPVfWWvpENw2KtM5Jsm3p7HnANrWaYJOncttxy1ytpBbkvBUzCOqiqA23h6UWjOSRhEnaiD05dHwP+BnyoTyiSpHmpqp1L10nWATuAm4EfAjtP9pxW1XGHJGg/k9EcknA58jQkua2qdvWOQ5J0dibtcu4AtgMPAvdV1eG+UY3XSQ5J3GrbIr0oyf6q2tg7DknSS5fkq8A2Wmu6B+yG0l+SrVX12KnGFpVJ2GlIcqCqXts7DknSS5fkBeAobavJ9IdfaBvz13cJbMSS7Kuqq081tqjcE3Z6zFQl6RxXVRYoXyOSbKF1pLksyR1Tt9YDL+sT1fBMwiZmirQedwu4cOBwJElaZBcAF9HykHVT40doJStGweVISZLURZJNVfVc7zh6MQmTJEmDSrKrqm5L8jOWWYWqqlGUhnI5UpIkDe2hydd7u0bRmTNhkiRJHTgTJkmSukiyFbgb2ETLSZbKhby+Z1xDcSZMkiR1keRZ4HbgD0z1jKyqQ92CGpAzYZIkqZd/VdXu3kH04kyYJEnqIsk9tOKsP6Z1MwCgqvZ1C2pAJmGSJKmLJL9ZZriq6r2DB9OBSZgkSVIH7gmTJEmDmukXCa1g69+B31bVXzuE1IXNTCVJ0tDWzbzWA9cAu5Pc2DOwIbkcKUmS1oQklwB7q+rq3rEMwZkwSZK0JlTVP2gFW0fBJEySJK0JSd4DHO4dx1DcmC9JkgaV5GnaZvxplwAHgZuGj6gP94RJkqRBJdk0M1TAoar6d494ejEJkyRJ6sA9YZIkSR2YhEmSJHVgEiZpYSSpJDun3t+V5O6OIUnSSZmESVokR4FtSTb0DkSSTsUkTNIiOQZ8C7h99kaSzUl+neSpJL9KsnEy/t0k9yd5PMlfknx06pnPJPn95JkvDfffkDQGJmGSFs0DwPYkF8+Mfw14sKreCnwfuH/q3pXAu4EbgHsAklwPvAF4B/A24O1Jrlvl2CWNiEmYpIVSVUeA7wG3ztzaAvxgcv0QLela8khVvVBVzwBXTMaun7yeBPYBb6IlZZI0F1bMl7SIdtESp++c5r8/OnWdqa9fqapvzjMwSVriTJikhTNpAvww8Mmp4ceBGyfX24FHT/Ftfgl8IslFAElek+TyeccqabxMwiQtqp3A9CnJTwM3J3kK+DiwY6WHq2oPbfnyd5M+dz8C1q1SrJJGyLZFkiRJHTgTJkmS1IFJmCRJUgcmYZIkSR2YhEmSJHVgEiZJktSBSZgkSVIHJmGSJEkdmIRJkiR18H+3ewtaXQNHQwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df_millions.sort_values(by='pop17').plot(kind='bar', y='pop17', figsize=(10, 4))\n", "ax.set_ylabel(\"population 2017 [in millions]\")\n", "ax.grid()\n", "ax.set_xlabel(None); # get rid of default label for x-axis ('geo')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Based on the number of births and deaths, we can compute change in population for each country for 2017. This is sometimes called the \"natural-change\":" ] }, { "cell_type": "code", "execution_count": 98, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df['natural-change'] = df['births'] - df['deaths']" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "geo\n", "Italy -190910\n", "Germany -148000\n", "Romania -71125\n", "Bulgaria -45836\n", "Hungary -37231\n", "Greece -36007\n", "Spain -31245\n", "Portugal -23432\n", "Croatia -16921\n", "Lithuania -11446\n", "Latvia -7929\n", "Finland -3401\n", "Estonia -1759\n", "Poland -870\n", "Slovenia -268\n", "Malta 748\n", "Luxembourg 1911\n", "Czechia 2962\n", "Cyprus 3232\n", "Slovakia 4055\n", "Austria 4363\n", "Denmark 8136\n", "Belgium 10024\n", "Netherlands 19173\n", "Sweden 23444\n", "Ireland 31760\n", "United Kingdom 147871\n", "France 164550\n", "Name: natural-change, dtype: int64" ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['natural-change'].sort_values()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From this, we can see that the population change due to births and deaths in Italy and Germany is decreasing most in absolute terms." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To relate this to the overall size of the population, one often uses rates per year and per 1000 people in the country, such as the birth rate per 1000 inhabitants [1] (and death rate accordingly):\n", "\n", "[1] https://en.wikipedia.org/wiki/Birth_rate" ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df['birth-rate'] = df['births'] / df['pop17'] * 1000\n", "df['death-rate'] = df['deaths'] / df['pop17'] * 1000\n", "df['natural-change-rate'] = df['natural-change'] / df['pop17'] * 1000" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pop17pop18birthsdeathsnatural-changebirth-ratedeath-ratenatural-change-rate
geo
Belgium11351727114130581196901096661002410.5437709.6607330.883037
Bulgaria7101859705003463955109791-458369.00538915.459473-6.454085
Czechia1057882010610055114405111443296210.81453310.5345400.279993
Denmark574876957811906139753261813610.6800269.2647661.415260
Germany8252165382850000785000933000-1480009.51265511.306123-1.793469
\n", "
" ], "text/plain": [ " pop17 pop18 births deaths natural-change birth-rate \\\n", "geo \n", "Belgium 11351727 11413058 119690 109666 10024 10.543770 \n", "Bulgaria 7101859 7050034 63955 109791 -45836 9.005389 \n", "Czechia 10578820 10610055 114405 111443 2962 10.814533 \n", "Denmark 5748769 5781190 61397 53261 8136 10.680026 \n", "Germany 82521653 82850000 785000 933000 -148000 9.512655 \n", "\n", " death-rate natural-change-rate \n", "geo \n", "Belgium 9.660733 0.883037 \n", "Bulgaria 15.459473 -6.454085 \n", "Czechia 10.534540 0.279993 \n", "Denmark 9.264766 1.415260 \n", "Germany 11.306123 -1.793469 " ] }, "execution_count": 101, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now look at the natural rate of change of population for each country, which is normalised by the population in that country." ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "image/png": "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ovEgJVU777wz66yzzpCf88ILL7DQQl272YuICCKCUaNa5+zHH388+++/P4suuuh8LpmZmb1cfXuvnYf0uMN+fUHl13BNVZNZs2ax9tpr88EPfpB1112Xt7zlLTz99NP89Kc/ZdNNN2XixInssccePPXUU1x55ZX87ne/4zOf+Qwbbrghd9xxB29605vmzhT/0EMP0ViK59RTT2XXXXdlu+22Y/vtt+eJJ55g++23Z+ONN2b99dfn/PPPH7RsDz74ILvvvjsTJ05k4sSJXHnllQC8+OKL85QXaFlmgAMPPJBDDz2UrbbaitVXX53JkycD8NJLL/HhD3+YtdZaix122IG3v/3tc++bNm0a22yzDZtssglvfetbeeCBB1puuzXXXJMDDjiA9dZbj3vvvZcPfehDTJo0iXXXXZcjjjgCgO9973vcf//9bLvttmy77bYAXHjhhWy55ZZsvPHG7LnnnjzxxBNVP0IzM7Nh46Sqj3/961985CMfYebMmSy11FKcc845vPOd7+Taa6/l+uuvZ+211+bkk09mq622Ytddd+W4445jxowZvOY1rxkw7vTp05k8eTKXXnopY8eO5dxzz2X69OlMmTKFww47jIgY8PmHHnoo22yzDddffz3Tp09n3XXX7be8QMsyNzzwwANcfvnlXHDBBXz+858H4Le//S2zZs3i5ptv5vTTT+eqq64C0lQXH/vYx5g8eTLTpk3joIMO4vDDD+932334wx9m5syZrLrqqhxzzDFMnTqVG264gUsvvZQbbriBQw89lBVXXJEpU6YwZcoUHnroIb72ta9x0UUXMX36dCZNmsR3vvOdoX1YZmZmXWTBboeqYLXVVmPDDTcEYJNNNmHWrFncdNNNfOlLX+LRRx/liSee4K1vfWvbcXfYYQeWWWYZIDWPffGLX+Syyy5j1KhR/Pvf/+bBBx9khRVW6Pf5F198MaeddhoAo0ePZty4cTzyyCMtywsMWOZ3vOMdjBo1inXWWYcHH3wQgMsvv5w999yTUaNGscIKK8ytRbrtttu46aab2GGHHYBUM/aqV72qZRlXXXVVtthii7nXzz77bE466SReeOEFHnjgAW6++WY22GCDXs+5+uqrufnmm9l6660BeO6559hyyy2HtlHNzMy6iJOqPhZZZJG5/48ePZqnn36aAw88kPPOO4+JEydy6qmncskll7R87kILLcRLL70EMM8UAIstttjc/88880xmz57NtGnTGDNmDBMmTJjn8Ycffjh/+EPqVzZjxoy2ygsMWObm5wxWQxYRrLvuunNrrhruvfdedtllFwAOOeQQdtxxx17v8a677uJb3/oW1157LUsvvTQHHnhgy2kRIoIddtiBs846a8BymJmZdTs3/w3BnDlzeNWrXsXzzz/PmWeeOff2JZZYgjlz5sy9PmHCBKZNmwYwtz9SK4899hjLL788Y8aMYcqUKdx997yLXx9zzDHMmDFjbkK1/fbbc+KJJwKptuixxx6rVOb+bL311pxzzjm89NJLPPjgg3OTsDXXXJPZs2f3ag6cOXMmK6+88tzyHXLIIfPEe/zxx1lsscUYN24cDz74IH/605/m3te83bbYYguuuOIKbr/9dgCefPJJ/vnPfw5aXjMzs25TJKmStJSkyZJulXSLpAWq/eboo49m8803Z+utt2attdaae/vee+/Ncccdx0YbbcQdd9zBpz/9aU488UQ22mgjHnrooX7j7bfffkydOpX111+f0047rVfM/pxwwglMmTKF9ddfn0022WTQqRz6K3N/9thjD1ZaaSXWWWcd9t9/fzbeeGPGjRvHwgsvzOTJk/nc5z7HxIkT2XDDDed2kh/IxIkT2WijjVhrrbXYd9995zbvARx88MHsuOOObLvttowfP55TTz2VffbZhw022IAtt9ySW2+9ddD4ZmZm3UaDNf8MKYj0C+DvEfEzSQsDi0bEo/09ftKkSdEYJddwyy23sPbaa9cui1X3xBNPsPjii/Pwww+z2WabccUVVwzYz2t+8vfDzMzqqDOlgqRpETFpsOfW7lMlaRzwRuBAgIh4Dniublyb/3beeWceffRRnnvuOb785S93TUJlZmY2EpToqL4aMBs4RdJEYBrw8Yh4skBsm4/664BvZmZmgyvRp2ohYGPgxIjYCHgS+HzfB0k6WNJUSVNnz55d4GXNzMzMukeJpOo+4L6I+Ee+PpmUZPUSESdFxKSImDR+/PiWgUr077IFj78XZmY2EtROqiLiP8C9ktbMN20PtL3K8NixY3n44Yf9A2q9RAQPP/wwY8eOHe6imJmZDajU5J8fA87MI//uBN7XboCVVlqJ++67DzcNWl9jx45lpZVWGu5imJmZDahIUhURM4BBhxoOZMyYMay22molimNmZmY233lGdTMzM7MCnFSZmZmZFeCkyszMzKwAJ1VmZmZmBTipMjMzMyvASZWZmZlZAU6qzMzMzApwUmVmZmZWgJMqMzMzswKcVJmZmZkV4KTKzMzMrAAnVWZmZmYFOKkyMzMzK8BJlZmZmVkBTqrMzMzMCnBSZWZmZlaAkyozMzOzApxUmZmZmRXgpMrMzMysACdVZmZmZgU4qTIzMzMroFhSJWm0pOskXVAqppmZmdlIUbKm6uPALQXjmZmZmY0YRZIqSSsBOwE/KxHPzMzMbKQpVVN1PPBZ4KVC8czMzMxGlNpJlaSdgf9GxLRBHnewpKmSps6ePbvuy5qZmZl1lRI1VVsDu0qaBfwK2E7SGX0fFBEnRcSkiJg0fvz4Ai9rZmZm1j1qJ1UR8YWIWCkiJgB7AxdHxP61S2ZmZmY2giw03AUwMzMz6+uHh1w8pMd95MfbdbgkQ1c0qYqIS4BLSsY0MzMzGwk8o7qZmZlZAU6qzMzMzApwUmVmZmZWgJMqMzMzswKcVJmZmZkV4KTKzMzMrADPU2VmZma13bLW2kN63Nq33tLhkgwf11SZmZmZFeCkyszMzKwAJ1VmZmZmBTipMjMzMyvASZWZmZlZAU6qzMzMzApwUmVmZmZWgJMqMzMzswKcVJmZmZkV4KTKzMzMrAAnVWZmZmYFeO0/MzOzl6H1f7H+kB5343tv7HBJFhyuqTIzMzMrwDVVZmZmI8GR44b4uMc6Ww7rV+2kStLKwGnAK4EAToqIE+rGNTMzG8kmfP4PQ3rcrGN36nBJbH4pUVP1AnBYREyXtAQwTdJfI+LmArHNzMzMRoTafaoi4oGImJ7/nwPcAry6blwzMzOzkaRoR3VJE4CNgH+UjGtmZmbW7YolVZIWB84BPhERj7e4/2BJUyVNnT17dqmXNTMzM+sKRZIqSWNICdWZEfHbVo+JiJMiYlJETBo/fnyJlzUzMzPrGrWTKkkCTgZuiYjv1C+SmZmZ2chToqZqa+A9wHaSZuTL2wvENTMzMxsxak+pEBGXAypQFjMzM7MRy8vUmJmZmRXgZWrMzMzwDOhWn2uqzMzMzApwUmVmZmZWgJv/zMxsxFphyoxBH/OfbTecDyUxc02VmZmZWRFOqszMzMwKcFJlZmZmVoD7VJmZ2Xzzt4tfM6THbb/dHR0uiVl5rqkyMzMzK8BJlZmZmVkBTqrMzMzMCnCfKjMz69eRRx5Z9HFmCzLXVJmZmZkV4JoqM7MFyH2f//uQHrfSsW/ocEnMXn5cU2VmZmZWgJMqMzMzswKcVJmZmZkV4D5VZmbD6Nt77Tykxx326ws6XBIzq8s1VWZmZmYFOKkyMzMzK6BI85+kHYETgNHAzyLi2BJxzcy6zQ8PuXhIj/vIj7frcEnMrNvUrqmSNBr4IfA2YB1gH0nr1I1rZmZmNpKUaP7bDLg9Iu6MiOeAXwG7FYhrZmZmNmKUSKpeDdzbdP2+fJuZmZnZy4Yiol4A6V3AjhHxgXz9PcDmEfHRPo87GDgYYJVVVtnk7rvv7hVnwuf/MKTXm3XsTkMr2JHjhvi4x4b0sPV/sf6QHnfje28c0uNuWWvtIT1u7VtvGdLjSvfzKD3MeyhLZwx12YzSC7z+7eLXDOlx2293x5Aet8KUGUN63H+23XBIjyu9b3hfa22o+5qZvfxImhYRkwZ7XImO6v8GVm66vlK+rZeIOAk4CWDSpEn1MjkzsyFysmRm80uJpOpa4LWSViMlU3sD+xaIa2YvQ0OtgTIz6za1k6qIeEHSR4G/kKZU+HlEzKxdMjMzM7MRpMg8VRHxR+CPJWKZmZmZjUSeUd3MzMysACdVZmZmZgU4qTIzMzMrwEmVmZmZWQFOqszMzMwKKDL6z8xGjiHPlD5UQ5wp3cxsQeeaKjMzM7MCnFSZmZmZFeCkyszMzKwAJ1VmZmZmBTipMjMzMyvASZWZmZlZAU6qzMzMzApwUmVmZmZWgJMqMzMzswI8o7pZlys+A7qZmXWEa6rMzMzMCnBSZWZmZlaAkyozMzOzApxUmZmZmRXgpMrMzMysACdVZmZmZgXUmlJB0nHALsBzwB3A+yLi0RIFMxup/rPthsNdBDMzGwZ1a6r+CqwXERsA/wS+UL9IZmZmZiNPraQqIi6MiBfy1auBleoXyczMzGzkKdmn6iDgT/3dKelgSVMlTZ09e3bBlzUzMzMbfoP2qZJ0EbBCi7sOj4jz82MOB14AzuwvTkScBJwEMGnSpKhUWjMzM7MuNWhSFRFvHuh+SQcCOwPbR4STJTMzM3tZqjv6b0fgs8A2EfFUmSKZmZmZjTx1+1T9AFgC+KukGZJ+XKBMZmZmZiNOrZqqiFijVEHMhsv2290x3EUwM7MFgGdUNzMzMyvASZWZmZlZAU6qzMzMzApwUmVmZmZWgJMqMzMzswKcVJmZmZkV4KTKzMzMrAAnVWZmZmYFOKkyMzMzK8BJlZmZmVkBTqrMzMzMCnBSZWZmZlZArQWVzYbDkUceOdxFMDMzm4drqszMzMwKcFJlZmZmVoCb/2y+WOnYNwx3EczMzDrKNVVmZmZmBTipMjMzMyvASZWZmZlZAe5TZS0d9usLhrsIZmZmI4prqszMzMwKKJJUSTpMUkharkQ8MzMzs5GmdvOfpJWBtwD31C+OVfWRH2833EUwMzN7WStRU/Vd4LNAFIhlZmZmNiLVSqok7Qb8OyKuL1QeMzMzsxFp0OY/SRcBK7S463Dgi6Smv0FJOhg4GGCVVVZpo4gLprVvvWW4i2BmZmYFDZpURcSbW90uaX1gNeB6SQArAdMlbRYR/2kR5yTgJIBJkyZ1vqnwyMeKhrvxvTcWjWdmZmYLlsod1SPiRmD5xnVJs4BJEfFQgXKZmZmZjSiep8rMzMysgGIzqkfEhFKxzMzMzEYa11SZmZmZFeCkyszMzKwAJ1VmZmZmBTipMjMzMyvASZWZmZlZAU6qzMzMzApwUmVmZmZWgJMqMzMzswKcVJmZmZkV4KTKzMzMrAAnVWZmZmYFOKkyMzMzK8BJlZmZmVkBTqrMzMzMCnBSZWZmZlaAkyozMzOzApxUmZmZmRXgpMrMzMysACdVZmZmZgU4qTIzMzMrwEmVmZmZWQG1kypJH5N0q6SZkr5ZolBmZmZmI81CdZ4saVtgN2BiRDwrafkyxTIzMzMbWerWVH0IODYingWIiP/WL5KZmZnZyFM3qXod8AZJ/5B0qaRNSxTKzMzMbKQZtPlP0kXACi3uOjw/fxlgC2BT4GxJq0dEtIhzMHAwwCqrrFKnzGZmZmZdZ9CkKiLe3N99kj4E/DYnUddIeglYDpjdIs5JwEkAkyZNmifpMjMzMxvJ6jb/nQdsCyDpdcDCwEN1C2VmZmY20tQa/Qf8HPi5pJuA54D3tmr6MzMzM1vQ1UqqIuI5YP9CZTEzMzMbsTyjupmZmVkBTqrMzMzMCqjbp6qYWcfuNNxFMDMzM6vMNVVmZmZmBTipMjMzMyvASZWZmZlZAU6qzMzMzApwUmVmZmZWgJMqMzMzswKcVJmZmZkV4KTKzMzMrAAnVWZmZmYFKCLm/4tKs4G7h/DQ5YCHCr6043VPvG4um+M5nuON3HjdXDbHG7nxVo2I8YM9aFiSqqGSNDUiJjneghevm8vmeI7neCM3XjeXzfEW/Hhu/jMzMzMrwEmVmZmZWQHdnlSd5HgLbLxuLpvjOZ7jjdx43Vw2x1vA43V1nyozMzOzkaLba6rMzMzMRgQnVWZmZmYFLDTcBbCyJO0C/CEiXhrusrQi6RXAKhFxW4FY60fEjQWKZWbWEZJGAzsBE2j6zY2I7wxXmUYySUsDK0fEDcNdlla6LqmS9Frg68A6wNjG7RGxeo2Yy/eJdU/NMu4ErNsn5lEVY40F3t8i3kEVi7cXcLykc4CfR8StFeP0UmIb5oTvW8DCwGolTRE+AAAgAElEQVSSNgSOiohdKxbrR5IWAU4FzoyIx6oEkXQj0KpzoYCIiA0qxv026TOYWeX5I8UA2w+AGtuvyL7RqfLl2EWOLR04DnQ9SVsDMyLiSUn7AxsDJ0TEUCaG7hvrbRHxpz63HRIRP65YtvHA55j3d2i7CuF+DzwD3AgUOdnNx709mDdRq/Q7VJqk3zPvPvcYMBX4SUQ802a8S4BdSe91GvBfSVdExKcKFLeorkuqgFOAI4DvAtsC76NiM6WkXYFvAysC/wVWBW4hHbgqkfRjYNFctp8B7wKuqRoPOB24FXgrcBSwXy5jJRGxv6QlgX2AUyUFaZueFRFz2o1XeBseCWwGXJLLOkPSahXikJ//hpyEHwRMk3QNcEpE/LXNUDtXLcMgbgFOkrQQPZ9BpcSvEyS9E/gGsDwpgWwkkUu2Gaqx/T6S/56e/+5Xs4il9o3i5evAsaXocUDSFsD3gbVJJzGjgScrfLaddCIwUdJE4DDS8fQ0YJsKsb4s6dmIuBhA0mdJx+hKSRVwJvBrUg3TIcB7gdkVY61UJ3Hvx/mkJGUa8Gzh2CXcCYwHzsrX9wLmAK8Dfgq8p8144yLicUkfAE6LiCMktV1TJWkOA59g1d8/IqKrLsC0/PfGvrdViHU9sCxwXb6+LXByzfLd0Ofv4sDfa8S7rk+8McDVBbbjssAngFnAn4B/AR8bzm3YeF+NWM3vu+Z7HU06a/s36YfoVuCdJb6PJS7AmsCxpKWZfglsO9xlyuW6HVi7YLzrWtw2vW68UvtGyfKVPrZ04L1OBdYArsv7x/uAr9f8fDcg1Ra8s3GpGW96/vsV4P01P4/lgKuBNwDHAOcAC9coW+N36Iam266tGOsbwFvqbKsWMW8qHO/1wPvy/+OB1WrGm2dbNW4DZlaIdyPwKuBCYNO+n02FeEcDHwaWAJYEPkRqNam9Lbuxo/qzkkYB/5L0UUm7kxKXKp6PiIeBUZJGRcQUoO509E/nv09JWhF4nvRhV/V8/vuopPWAcaSag0ok7SbpXFJt0Bhgs4h4G9A4G2y7fAW34UxJ+wKjJb1W0veBKyvGQtIGkr5LSqS2A3aJiLXz/9+tEG8LSddKekLSc5JelPR41fLlmKOBtfLlIdKP8ack/arNOK+VNFnSzZLubFzqlA14MCIq14a0oNyk07iyFfUGwxTdNwqXr/SxpfR7JSJuB0ZHxIsRcQqwY9VYkn4O/Jx08rJLvtSt4Z0j6QvA/sAf8nF/TJVAEfEQKeH7Ian28F0R8VyNsjU+jwck7SRpI2CZirGuBs6V9LSkxyXNqXtcAa6UtH7NGABIOoLU1PmFfNMY4IyaYReXtErTa6xCz+94lc/lKOAvwO0Rca2k1UkVBVXtGhE/iog5EfF4RJwI7FYjXo+S2W6hjHlT0sZfidRk8ltgi4qxLsqxvk+qhjwBuLJm+b4MLEU6uPwHeAA4uka8DwBLk6q87yQ1JRxSI96pwBv7uW/74dyGpGbTY4Br8+VrwNga7/VS4ADgFS3ue0+FeEXP7kmJ3e3AT0jJbfN9t7UZ63Jge+AGUlPTkdQ8s8qf5a9JTcW1ax+ATUhJ4yxSrdwMYOMa8UrvG8XKV/rY0oH3ehmp2e804JvAJ4Hra8S7uc53rZ+YKwCfAt6Qr68CHNBmjDnA402XZ4AnGrfXKNvOpMR2PWAKqZltl4qx7iLV8qngtruZlJzclo8JN1Kx5ibvB6JgCwLwduCevO0uyfvbTsBiwCdKf5cqlO9KUhP7aNKJ1X519t/mywI9+aekxUg7mUgbbRypQ/PDheIvQkoKuqKfTK4VuSgiti0Ys6PbsJs0FtaUdEPkPhCSrouIjSrGex9wdkQ82eK+ce18byRNi4hNJN0YEes331albPn5p7S4OaJm52hJ43Kgrtgv+ipRvm7fLyStSkrMxpASqnHAjyLVXlWJdzLw7Yi4uVwpy5Ak0miwWgOQ+sTcOiKuGOy2Ica6DHhTFByRnT/feUS1Tv7XRMRmkqZHxMb5u31VVB9gMgrYgpSIrpVvvi3a7JzeJ+YptOgLVfVYJWkC6URo6xz3ClKyN6tqGefG7pakStLxEfGJfkYNENVHiBUhabuIuDh37p1HRPy2zXj7R8QZklqOXoiKw20l/Y1U29B1P2iS/grsGRGP5utLA7+KiLe2GadTo/UuA95M6jDbqIU8MCImVomXY76aVLPUPELnsgpxriT1e5gMXEzqP3ZsRKxZtWyllRqR1MF9o+tGTHXqvZYmaRvgd6T94llq7Gud6CzcfLJRQiPBGOy2IcY6FVid1Ld1bqfyup+tpNcDr42IU5RGKy4eEXdViPNp4LXADqSR9wcBv4yI79coW+WT0X7i7dF0dSywO3B/RBxa6jVK6abRf40ROd+qG0jS5RHx+hY7b9XRTZCq5S8m9SXoK0jNlO1YLP9dokJZBvIEcGNOYObWkLT75evQNlyukVDlMj2iNCS9XZ0arfceUnXwR0ln9yuTfoQrkXQssDepqv7FfHOQmmba9XFS8+mhpE6W25FGJFUp12cj4pu5T1urE5iqB6pSI5I6tW/ULl8H9oui71XS2RHx7v5OPKqecAAnk/aP2tMCRMQSAJKOJp24nE5PjV/V/qnTJW0aEdfWKZukLYGtgPF9Et0lSceGKu7Kl4XzpbbcD2oSaRDMKfT0g9p6oOe1EhHfkrQDqfl0TeAr0f4I6r7+lhOh30aBmpuIOKf5uqSzSF0iKslJ6AeZ9wSr9hQmXVNTBXObr06LiLpDsTtG0uiIeHHwRw4PSS1/aCPiF/O7LH1Jmgbs3qimz1XY51Y5+xsJJN0GbBARXTXkWdIuEfH70t8VSTdFxHr1Stc53Vq+fNw7NCLaHlzRItarIuKBks1DOe5VEbFlvdLNE/P6vrXArW4bYqxbSf0h7yadTFaqScs1cm8iTaPQPB3DHOD3EVG5c7SkxUmFeqJqjKZYM4CNSKMlN8q33VAlaVaa1uaBRvOc0gTNr6zTFJZPOhYDXqCnmbzqyXir+GuSJrleo+LzrwT+TjrBmvt73jd5q6KbaqqIiBclrSpp4ag3cgMASadHxHsGu61Nd0n6M6mD78V1s/DSGXMnkqd80H8lvctXpf/C4cDlki4l7WRvAA6uUa6ic/H0c3bfmLDuaxX6y9xJOoOsnFR1olk8In6f/5b+rlypgrPcd+BssnT5iuwX+bi3DxVGrLaI9UD+d51oMRkm1edtuk7SL0kTWTY3YbVbQ9/sSUn7Ab8ifbf3oal2vU1tdSHoT0RcClwq6dSqCWhfSqM5TyePHpT0EKlDfp1JgZ+LiFCah7DRx6+q35Bq5xpezLdtWjVgozaylBY1w/8hjVisatGIqPP8fnVVUpXdCVwh6Xf0br6q0v7cayI+pUkYK3fszdYiNT99BDhZ0gWkfkFVqyLPJ2XMF9GUMVelwjPSS/oYaTLWB+mp9g/SaJa2RMSfJW1M6sQIqWPgQ1XKlf2A1Lz2G1JV+AGkyeWq+hPpM/hlvr43qcntP6RRla2afgfyFDAj93Nr/iFqp3mtWLN4Xyo7azSkPl8HSrqLmv1usqL7Rsnyldwvsisk/YB0stZ83JteMV7pyTBfQdpmb2m6rUq3h2b7kjoLn0BPZ+F9qwRqJEDqM8N9u5pPXiS1ep0qfXtPAj4VadoNJL2JNAHmVgM9aRBnS/oJsJSkD5L6Qf20YqyFmisxIuI5SbWaKSW9sdXtFfuTCli34ol8fy6Q9PaI+GPBmECXNf/B3LbieUTEV9uI8QXgi6QDwVONm0lDUE+KiC/099x25I7WJwD7RUSl9nZJMyJiwxLlyfEup2dG+l3IM9JHxFcqxrsd2LxCLU2rWI1+E6tHxFFKc5esEBGVZqRX+dF6/XZOrdIRtpubYgEkXUj6Ef80TbNGVz2D60CTU+l9o+SIqWL7RY43pcXNUTXBlbQccAHwGdL8VGsB+5RoAehG6meG+4hoa4b73PzXr1yT1W7ZijVz9omxAynJFfCXqv2gcv/b70fE7/L13UjN0dvXKNvvm66OJa2kMa3G97n0QIRG8+SzpDnJijVPdl1SVZKkr5dKoPrE3YY07f6OpKahX1dti5X0NdL8GEUyZhUeep8P9jtExAsFynYi6ax+u4hYOyelF0ZEpWpmFR6tJ+l64IONJE/SpsDPImJinWStBKVJK4+kZyRh4yBQZ03MxnelOSm9turn0RS31Hp4RfeNprgl1rEstl/keKtHxJ2D3dZmzOVJtXzTgIPqdFVQ4SHtOWax5t28725HmlJmI0nbAvtHxPurlq8UpcmYp9NT67w/sElE7D58peoh6TWkZXlWJB1X7iU1T1aafqOf11gZOD4iKg38kfQL4AdRcyDC/NB1SVXe0T7LvAuLVs1wlyYNF22OVWX0VSPeLNLkkGcDv4sWcxC1Ga9oxqzCQ++V5qdZE/gDNYcDN9X6zE1Q6pyx5ZqHB0n9qRpz8fwwIu6oGG9T0qzRi5M+h8dJkzLOBHaKiLPbjFesKVapI+4nmbdjZeWaEklXR8QWkv4CfA+4H5gcEa+pGK9IbUFTvMa+8Vy+1N03apdPPSPC1qXQfpHjtqolbftkqEXfk4VJnYWDetuu+JB2Fews3FRrfT2wUUS8VPPYUnLfXRr4Kum4DOk9HxkRj1SI1bG161SwI32L2CItT7NOxecXGYjQJ2bR3KChG/tUNRay3JmaC1kqLb74cdLs7DNIfXmuIp3RVHVA3w2vipPCQfkOfRQcep/dky8lhgM/r9S5t9FnYTz1hme/IyJOII0u+WqO+XFSk2zb8lnQ+mo9OWRbCVV2CoUWBwceiz4djwv4Wn6vh5E6/C9JStyqOpq0j/WqLagarAP7RonyNcpUZL+QtBYpQRun3nPgLUmFvkEd2GaNuEWHtGclOws/mpOCy4AzJf2X6p3eoeC+m5OnIvMpRQemo1Cf+dsafcmixvxt6j1dyyhgQ1JtXVVFBiI0dCg3SLG7sKaqWJOE0miuTUkLk26YD2D/FxEtJ/AcYsxik8I1Pb8jGXO3URrpsxdpsMCpwLuAL0XEbyrGa/VZ1OlT1bLfWdWDS8mmWKU5r0aTOgY314zUOVAV1YHagsaPxWoRcXRuQnhV1O+DV6R8JeT+K+8grVv3u6a75pAGwNRZG7NjxxXVHNKeYxRr3lXhGe5L7LvqZ8RuQ9SY0LpkPy2l0eyN+duaawy/XaN8zSfyLwCzqlY8NMXcmFTbF8AVdY59ncgNGrqxpqrXQpakJomqC1k+ExHPSELSIhFxaz4YtE2dmRSueMbcz47cmBbgJ9HmUgElm2Mj4kyluaq2Jx383hEVFvRVGn6+L7Ca0ijRhiWA/7Ubr0nzme1YUm1pnQWHey0OTmqKrbo4+Ob5b/OivUGNMyulRUlPALYk1RheBXyyRj+e0rUFP8rl2o5Uy/QEacHcqn2+ipVPhVYHiIjzgfMlbRkRV1UpSz/lK31caTQ7Kf+tO6SdXL4vSqrd9aHRDUPSkqRpH+oqse82Ruy+k7TOYWOR4n1I3RbqKDkdxUoRUXmx7VYi4hdKIwgbo7FvqxMvn/DuSc9o01Mk/SYivlYxZLHcYB4xzAsb9r3QeiHLXSvGOpe0+PGRpAPp+cAfK8bahlQd/ED+27h8irRUQNX3eyPpB3xGvr4WaRbaqvFOIE0J0FhJ/gzSj9MPgdMrxLsQeD8pudiG1OfoGzXK93rgffn/8aRaiHZjrEqaoO+qXKbGZWPS8OBS38VFgEtqPL/Y4uCduABXk2bJXihf9gf+USPeYqQTjIVITc6HAsvWiDc9/21e6LXOosDFytfYX/vcdl2Nsn2TdII2BvgbqcvD/jXiFT2udPsF+H+kRG8WaVqeu4A7a8Qrtu8CU4dyW5sxJ+Tfs4fyd+U8YELFWCcB6xf+PN5E6v90Kem39y7gjTXi3UZaZ7dx/RW0uSh9n3jFcoN5YpfckN18yT+6uwIL14yzauFyXZv/zgAWyf/PrBuvn9doOy5pGCw0rVre6jWGGOsI0lnkP/P1FUnVuMP+/einvEsDtw93OXJZxgHfIdU4TiV1uB5XM+Y8K9HXSVo68J7/kZOgRnI1vk7iUrhs04BVmq6v2ihnxXiN5Gd30pIw4+p8FqWOK8Ba+e/GrS4FtuPSpOH2b2xcKsb5F2kZrGH/brQo2y2kaWQa11cjDZAY9rLl8txMGghyG3ADKSGf59jQZsxpwJpN11/X+C2pGG8KsFTT9aVIk2+XeP9FcoPGpeua/yR9r8XNj5Ey+/MrxJtImrkb4O9Rf56WpyQdR6HRicB9kpYinWn8VdIjpAy/qsUlrRI9S8GsQk+1dZX3XrI5dnfy0goAEXG/pLY71g4wAqbu6LDmGdVHk37Ej64SK8ebRJpFvjENAlB5/bWfAzcB787X30M6g67TB+BPkj5PTxPCXsAfJS2TyzmkptROfR6kEYnnAstLOobcB6/dIC3K12jCqlO+oqsDkGqoAHYCfhMRj6nF5JNtKHVc+RTpfbXqX1O3+blkE+Ud9MxJWFmf7gTziGr9oD4JXCLpTtJ3ZVVSzVplkl4HnEhaTmY9SRuQWnSqNIe9rU5Z+jEmIuY2+UXEPyWNGegJg3gMmJmb3YO0+PM1jXwhhjgKtXFs66OxwsLi1Os+kl4jZ2pdQ9JJpKrqRuflPUhVh8uSqnM/0Uasj5PmQWm0w+5OmvyzzurbRSdM7BN7G9IZ6p+rJn+S3k6aNfkO0g68GvBh4BLSHEzHtxlvZ9IQ4JXpGSH21cgTxbUZ65qI2Ew9UyssBlxVMckoTr0nh3wBeDBqzEOktPbfZ+izCG1Um2xynokwW93WZsy7GkVq3NR0d0SNObBKyR1IG33w/hYV+uB1itIEm43VAa6OGqsD5IEI7wCeJtXcLAVcEBGbD/jEocWufVzphJKdhSVtRDrJ+AfVVy9A0mzSPE1n5Vi9MtuoMPlnjrsI6XcN4NaouR5oTuY/Q+on25ieptbalio0v1yO9XPSMa/Rj2w/YHRUnNdM/Uyk3BBDnFA5H/MaJ1Rznw715/2b+xpdmFRdDWwdedFipaVl/k7qi3NjtDHPhaQbgC2jpxNj7R9xFZ4wMdckzaPmF7p5B74t2uyc3imSPk0ajbQDaQ6Yg4Bf1klyS1LhtSIlXR4Rrx/8kUOKdRXwmcjLISlNBvqtqLDIrdJ8XPdGxH/y9feSTl5mkebPqXy2pnLrRDZqrWuNgGsRs7nm+rKIuKFinKKrA+SYy5CmznhR0qLAko3PqEKsottOvad7aHiMdEz+b8WY10bEpkqLA28eEc9KmhkV5jWTdA1pioe+JzBtrV6Qv787kDp+b0Cah+ysqLFOX4e3XfOcf5VOslR4frkccxHSUm7Nc3P9qGoyKWkX0mjTOlPwzBdd1/xHamNfnPSlg9S5dJl8oGn3AxG91wx7kT5nHhWUbA6DtNM2MuWxpJql2+izbmGbNqFnluKJkoiI06oEUlrB/GPMO+txlYV8v6W0tMLjpIkTvxIVl1bokNJrRR4h6Wekjsd1F6E9BDhNeQ4t4BGqzz/2E9JM9Cit0fV10me8IanT6ruqBFX59fCmAV/Ko3LOJSUJUyvGalVzfaakqjXXzSMTjyJNgXAOFUcmSjqg6f/muyrttxTedqTBKluS+rZA6og8jTQC96iIOL2/Jw6gZNeHMRHxqcEfNrB8Mv9n4M85MdiH1HT31Yj4QcWwjW13Mek4/ybqb7uHlGZCDwBJ7yINoqqi6PxyADlB/gHp2PcS6eS+Ti3pXsDxks4Bfh4Rt9YpX9NJUWO6ltonRXOV6JhV8kL6At5Fqso9lTSS4wOk5Oq4NmN9Crie1MP/SFK7/Sdqlq/V6MRdCr7/jUlLo1R9/unAlaSD/vfz5Xs14l1PGiW1LU0j7SrEGQ1MGe7vVz9l+wLpR/EFUsL3eL7+MPD1GnHPIHUq/0X+Pp9COiBUibVa/rskqQZj7m1VPtOm/39Iqp1qXJ9nVFsbcW+nxmi/AeIuQ0qG/gb8q0acG4DFmq4vRsUOuZQfmfj9pstP83Fvchdtu7+Q+u80rr8y37YMcFOBctbqLAz8H6nv16tymZYhnYxXibUIqa/ib4BrgS8Dr+6mbQesTlqC6CnSdA+XU3EQFXkkYj7Wj2r8X/Pz3InUjHoJaQTgPcDbasZcktQX7WpS37uDgSUqxjoxH/tuydeXpuIArL6XrqupioiTJf2R1K8A4IsRcX/+/zNtxvqOpEvoqYJ8X0RcV7N8F+R/HyMlGkgacj+vIcSfLqlOP4pJwDqRvykFPBMRrQYPtCVSTeNLksZF75nKh11EfF3SN0jJbOW1zFrYNCouD9TCOaTRVo833TaZajVpoyUtFKm/2Pb07mBd55hwLz01zCWtQWrOXpV684aVrLkuujpARHys+XquwflV1XhNSm27lSOieW6l/+bb/ifp+f6e1EqHOgvvk/82r/UapORjyCSdRjph/iOp7+hNFcrSV7Ft1xBpLrk35y4toyJiTo3ylZ5fDlJz4raR1w/MtWp/ACqvChERj0uaTJpO4ROkPtKfkfS9aL+2efPIS6bl2I8ozatVW9ckVUqzpTa7N/9dQdIK0ebsqfmANzMi1qLe9PhD8SmgrQ7gDeo9kegoUk3V/f08fChuIk00V7UquK8TJB1Bmq+q7kzeTwA3Ko3gmLvTRo31w0qJNLt2rYWEW7hS0joRcXPVACq8jEl2FnCppIdIHaP/nl9rDeolRXeSmkpKrYf3TdKB8w7S4JCjI0+2WdEpwD+UFriF1DH85IqxioxMHMCTtJkQNOvAtrtE0gX0HkB0Sf5RbzfuNAboLEyF9x0Rq7X7nH7sT9r2HwcObWqKrTNStOS2S4WR7iDV2Pw9Xyr3+QJ2Ix0HPknPbPSVl6jJ5kTvBZnvJNX+V5L7fb2PdJJwGrBZRPw39z28mVTD247SS6bN1TVJFa2H7Da0PXQ314zcpqbpBTqoTj+t5ikFXiBl820vKNpkOeDm3HGz+Yet6pII65OG729H734yVYY9/5ae/iytRpwNt+mSNo1yK6FvAcxQGnHyLD0H5nb6GK1JanJeijSZa8McUrNO2yLiGEl/IzWVXNhUqzmK1LeqqpLrREJKCLaMGqPqmpWsuY5CqwM0qPdKCKOBtam23mRD0W1H6nS8B7B1vn4acE7+7mzbTqCIWC33aVm55LFZ0lbM2/ezrT5pEVF1bc6BFNt2TdYhrbLwBuC43HfuhojYvZ0gObG4ICK2JR3f2+rY3yJe48Rvam5xOpv0vd6T1JTabrw1SJUEewDfjbzMkqStJS0REXdIen+FonbspKjrRv+VJOky0rxI19C7ZqTymkv9vM49EdFyFN/8pjR8eh5RfSjw7aTmxMqdDJXWN1spIn6Yr19DmgMqgM9FxbX/SlPhldDVe4qGuaLalApFlzEZKfIZ6hvz1Usjou0lSCSNJXX0X4PUzHRy1JgqI8c8Gfh+RMxouu3IiDiyYrzm/fYFUmK1V0R8pEYZa2+7TlLTunoFYp0OvIbUb7bRxBvdUAveCXkQzaakvmivJ005dENEtD3/VT7BemeJbhmSThno/oh4X5vxLgC+EBE39rl9fdL0G7u0fuaQYndkupZuqqkCeo+CadbOGUfObl9J6mDY7A1UbBbTwBMcvqJKzBz3daQ5rybQ+wyr0qR6VZOnAdxEqiWpNPQ3+yywd9P1hUl9gRYnNcl0RVJFwZXQ8xngX3Lzcwm7S5pJqqb/M2lE3Scj4oyBn9Z5ko6PiE+onwVkq57ESPo6qW/lmfmmQ3Ny+cU2Q/2CNGr376SJDtcm9cmo463AJEnfbjo27UoaENO2iLhUaa6lfUln9XdRo8a61LYb5LhXtTmsoWTNcOm+pMXk2ptvAMuTtluJbfc46QThO8BPo+LC0VmxbhntJk1D8Mq+CVV+nRslTagSsE/XoFqjCFvpuqSK3kOSx5Iyyem0N7T4eFpnt/8jjRJpux9FRLQ98/cQ/YY0WefP6N2JtpI+B8GFSTM1P1ljB14KuFXStVRvTlw4Iu5tun55pLmQ/pf7FXSFiLhb887Af33FWKWbn98SEZ+VtDtpPql3kjqWDntSRRpxCj0LyJayE7Bh5LlpJP0CuA5oN6lap1EjkmuY6g+bTicZ2wJn5IElH6dCU3Y+qdonXx4i9X9Sbo6po8i26+BxD1Lz1X6SStQMl+5LWtI3SSPES05cuw+phurDwAckXUmad+1vFWI1d8soQuWm4llqgPsqVWZ0umtQ1yVVhUbBFM9uO+iFiDixVLDmg2Dut7AbPbM+V3FE7UKl4apzRcRHm66OLxC/CM07j9EZqj6PEaT3PTM3d9Ztfi69jElJs6EjtaSQDqqN0WDjBnrgAOaOsIqIFwptN+Xmkl0kHUmaXqVK+W4l1aDtHD0jpT5ZooCU2XZzSXo9afH4U5Rmk18iIu4a7HkDKFYzTPm+pCU9WDihItKSbefnJqy3kWpeP0sbiUYjqYg2J0gdovNIlRe/p14H8KmSPhgRP22+UWmJo2k14pY8NvfSdUlVC0+SJsRsR/HstjT1DCv+vaQPkzrNNR8Maq9BlKvCz1Mavff5ijEulfRKemoQr4n2ZwH+Rz87xv+jTK1BKe8nDbVtzMD/DdJ8KFWTqr7Nz3X8Pvf5ehr4UB6t0hUz5ZMOoBsDSDonIvYoFPfrwHWSppBqMd5Ite/xREmNqSgEvCJfb7sZpqnj7NxlmiLiSEkvkiZ1bNc7SU3jUyT9mXQCWSLrK7XtAMjHkEmkgROnkGrBz6Cn83Xbcs1wc6I2np51Stt1ZNVyzAdTJf2atJ/UnQQYSPsZMJE0IOEy0mCido+lndpvodBUPKRk8VxJ+9GTRE0iff/a6pTfR8ljcy9d11G9T7+MUaRRDmdHxJAPCJLOIq1g3Sq73SEi9ipV3qrUeg2ihoiKaxCp97D7UaQv4DZRYTmTHOAjKJ0AAAzDSURBVO/dwHGkSdwaC8d+JiImtxFjeXoOKI2pGDYhTbL3jug9h8uwUV6LLPKyPrmD87V1OtPmzuqvjYiLlIb/jo6Kc8qo9zImi5FqCiotY1KSei+VMff/QrFfRe+Efljfb6c6zubPczdSs852pO4O50bEhTXKWmzbKS0lsxFp0tPGZz13qa6KMecmahHxOkkrkmphKyVqJfe1kvrpvB1RYU485SWmSItQX0eaAqLSElMd3m/3JS1JVmIqHpRmeW+sazgzIi6uXcgO6cakqu8omLsj4r42Y7ySVPPzHC2y2+E+MDeTNDb6rM3X6rY24jXvwC+QdrafVqhdasS7npSI/jdfH09azmBihVjb0bMUTNftGEpzhr2X9N2BNI/RqdHmItRN8T5ImlhzmYh4jaTXAj+OiO3biPHZiPhm/n/PaBopKen/KnTaLk55gey+/9eIN+Dzqx6YS9AA63yq0Gg2SUuTOqvv1c53JT+3I9tOHVgMvWSiVmJfGwkkTQfeHGni0DeSajYbS0ytHRFDXmKq9H7bJ/bXSbVnd9A0FU9UHIBVijo78CIF6rakqllut384KhZyJGS3rb7Mpb/gdfT9oZA0irSEQZGh0N0m/yjNXQQ0aszAn380NgP+0fSj0dYP70AHvm75nuSmr0ZH41eQls6Aigeq3GTVXIvba/8fzgOzpH9FxGv7ue/2iFhjfpepTxk6su3UgcXQSyZqJfa10honRJK+T+tRsW2PrpN0feOEVtIPgdmRp/FQmwsql95v+8SuPRXPSNU1faokbQEcS+pYeTRpRNFywChJB0TEn9uNGRFT6FkAtKtIWgF4Nal/x0b0HASXBBatEK/ljttQZQfO/izpL6RZuCEtbFl5qYFupHnnMfpR1JzHKHs2Ip5T7hitNLdMuycI6uf/VteHRUSMLhzyc8C9EfEAgKT30tTEUfi12tWpjrOldGTbRWcWQz9b0k+ApXJN00GkdQ+rKLGvldbonF5nIeu+ii0x1YH9tlmJqXhGpK5JqoAfkIb7jiOt5v22iLhaaXTDWaS5eRYkbwUOJLWNNy/jMYf2h4xD7x33q5QZtUdEfCb302rU3pwUEecO9JwRqBPzGEFaCuaLpMR5B9Lw53YnYIx+/m91fUHxY+DNALmJ4+v0NHGcRJr9eLh0quNsKR3bdjmJ+mujBaFuQQsnaiX2tdLuAYgWo+skfahizE4tMVVaial4RqSuaf5rrrqUdEtErN10X9FOdN1E0h4RUWdZmlYxO7a9cvPfPhFx5qAPHiGamwnyGe41JZrV8rZ6P/CWfNNfIuJnbcYYqIp+bESM6e+5I1XJJo5O6dauBaW33UAtCEClFoRO6LOvCfgLaYH0YfuBk3QnsGdETOtz+1dJ81ZVOsbkz6SxxFRjpPLrgMWHs79hMxVe2WMk6aaaqua5LJ7uc193ZH4FSdo/0mzYE9R7UWWg+iK0jafXeC4AkpYkrVn1atLw8b/m658GrqdnpuYFQdF5jNR7WZ6f5qaN8cAmkh6NNkZOdriKvlsVa+LolC7uWlB623WsBUEFZxqPtCD6ecB5ETG7apkK2xP4jaT9IuIqpQPLiaRauTdVDRoRV7e47Z+VS9kBkabimWc05nCXa37oigNU1phLpnkeGfL1scNXrI5pzCTeal6WbkgiTwceIc3T9AHSgbWxcOyMgZ44AhWbxygbbFmeISdVL1MjpYmjG5XedgtFntZB0lGNH/SIuLXuyQcFZhrPicoRwEdJtWeN2t3vR8RRdQtYR0RMk/QOUnPxR+hZAH3HiHh2gKeOeGoajUlak/HVpKbpBWo0Zitdk1S93M7II+In+e9X+94nqe3+POo9VHTRPklClcRg9aYmsZ+Rln9YJSpO9dDNOvDdGxHL8nSriDhGaZHXRhNH87x1H+v/mdaBbdfJFoQSM41/kjQB6aaRZ3eXtDpwoqRPRsR3a8avTGleuftI07ScB1xESv4Wk7RYFJjguYt9hDwaEyAi/qU0X+ECr2v6VFkPSfdExCrDXIauHL4/Egw0tF7SHRHxmvldJrMqOtGnTz0TFG9Dmp2+8kzjkq4jzaP3UJ/bx5OSymHri6ueCZ6h9xQXjRPdShM8jwSS/hERmzf69+a+qtOrTJcx0nRNTZX10g1D5Us3ib2cjJRlecwG1KEWhOZZ55+iZyAHpKSjneVbxvRNqAAiYrakYR3EERHtLq+2IOnG0ZjzhWuqulA31FRZdRohy/KYDSdJW0fEFYPdNkiMfmvQXbs+fLpxNOb84qRqmGjg6fJfERGuRRzh1OXL8pgNp1ZJT7uJUFPz5Dx3sYBOOTISSFo++iyNJmnNiLhtuMo0v/iHe5hExBLDXQbrrJxEOZEyayJpS2ArYHyf6WSWpM1h9y+3AU4jyN8lfTkizgaQdBip5mqd4S1W5zmpMjOz+Wlh0vQiCwHNJ5ePM7yz5ReVR//1awEf/fcm4CRJewKvJC3Zs9mwlmg+cfOfmZnNd5JWjYi7JS0aEU8N/oyRpWn0n4BVSPP+ibSEyz0Lekf2PDfXF0jTcuwdEVcOc5Hmi1HDXQAzM3tZWlHSzcCtAJImSvrRMJepmIhYLU+bcBFpktPlImJZYGfgwuEtXWdJugjYnLSU007A8ZK+Nbylmj+cVJmZ2XA4/v+3dy+hdp1lGMf/jxKtmgSs6aCTRHTgBTRSK3gBQXEieAEvUA0UMlEQtGnJQPBWHAlatSoKQZCiYkcqCqZIVbCtswa0EzuqbSGiNr0rFVsfB2sn7B5TM1kX997/H2zOXt9eB54z2i/fes/3MgyWPwfQ9vfA2xdNNI03t/3F+Yu2pxl6yrbZt9pe2/bRtvcw/L07MQ3BnipJ0iLaPrhn3M0zS2WZ0NkknwV+sLo+BpxdMM/k2v50z/XTDAO5t547VZKkJTyY5K1Ak+xLcpKhoXnbfIRhoPpPGA42vWK1trWSPJHk8dXrqSTPJNmJnSob1SVJs0tyCLgZeBdDA/cvgevanls02ERW8/4udqbWVlsNvX4/w2PQTy+dZ2oWVZIkTWS1G/ddYH/bw0mOAh9v+4mFo83q/BzApXNMzZ4qSdJsknz+f3zcttvWe/M1hob8n8HQkJ9kGxvyL1gbmg1Dm9HVwFMLxZmVRZUkaU4XewT2EoYTt1/GFjY070hD/rr1odlPA38C3rdMlHlZVEmSZtP2pvPvkxwArgOOA7cCNz3X722wZzXkM/y929iQf0Hb43vXkpxgOEZjq9lTJUma1WqEyw0MxwvcAtzc9pFlU03jORryP7XlY2r+S5IH2h5eOsfU3KmSJM0myZeBDwCngNe1fXLhSFN7Vdtj6wtJ3gbctVCepeTSt2w+d6okSbNJ8m/gnwy9NutfQGFoVD+4SLCJJDnT9qpLrW07d6okSRpZ2504dDrJWxjGs1yR5Ia1jw4Cz18m1bSSPMGzC+ULHwEvmjnOIiyqJEka3wuA/QzfswfW1h8HPrRIoom1PXDpu7abj/8kSZpIkiNt7186h+ZhUSVJ0siSfL3tiSQ/5yKPxNruxLlNu8bHf5Ikje/7q59fWTSFZuVOlSRJ0gjcqZIkaSKrM6luBI4wfOeePzriFUvm0jTcqZIkaSJJ/ghcD9zN2sy/tucWC6XJuFMlSdJ0Hmt7eukQmoc7VZIkTSTJlxgO+/wxw0nyALQ9s1goTcaiSpKkiST5zUWW2/ads4fR5CyqJEmSRmBPlSRJI9sz7w+GA0AfAu5se98CkTSDnRhsKUnSzA7seR0ErgZOJ7lmyWCajo//JEmaSZLLgdvbXrV0Fo3PnSpJkmbS9mGGA0C1hSyqJEmaSZJ3AI8snUPTsFFdkqSRJbmHoTl93eXAWeDa+RNpDvZUSZI0siRH9iwVONf270vk0TwsqiRJkkZgT5UkSdIILKokSZJGYFElSZI0AosqSZKkEVhUSdoYST6X5N4kdyb5UZKTSV6Z5LYkdye5I8mrV/e+PMmvk/whya+SHF46v6TtZlElaSMkeRPwQeAo8G6GOWoAp4BPtn0jcBL49mr9m8AtbV8P/BD4xryJJe0aj1SQtBGSnABe2vYLq+uvAg8DnwHuXbv1hW1fk+Qh4Mq2/0qyD/hz20OzB5e0MzxRXdImex7waNs3LB1Eknz8J2lT3AW8N8llSfYD7wH+AdyX5MMAGRxd3f874JrV+2PAHXMHlrRbfPwnaWMkuRH4KPAX4K/AbcDtwHeAK4F9wK1tv7gaE/I94BDwN+B42weWyC1pN1hUSdoYSfa3fTLJi4HfAh9re2bpXJIE9lRJ2iynkrwWuIzhP/ssqCT933CnSpIkaQQ2qkuSJI3AokqSJGkEFlWSJEkjsKiSJEkagUWVJEnSCCyqJEmSRvAfRSfRFH2u9vkAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df.sort_values(by='natural-change-rate').plot(kind='bar', y='natural-change-rate', figsize=(10, 4))\n", "ax.set_title(\"Natural change due to births and deaths per 1000 in 2017\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can show the data together with the underlying birth and death rate data:" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 103, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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2Xrrrdluu+0qi7neeuuxePHihradPXs2hxxyCDNmzKis/O5w/vnnM378eNZZZ52erookSRJgi3PLXX311cycObNL+yxZsqRFtek9MpPXXnut0/Xnn38+zz//fDfWSJIkacVMnLto9uzZbLvttnzmM59h5MiRHHjggbzwwgt873vfY+edd2bUqFEcccQRPP/889x5551ce+21fPGLX2T06NE88sgj7LPPPksvI/70008zfPhwAC6//HLGjh3Lfvvtx/7778/ixYvZf//92XHHHXnnO9/JNddcs9K6zZs3j8MPP5xRo0YxatQo7rzzTgBeffXV5eoL1K0zwLHHHsvJJ5/MHnvswVvf+lYmTZoEwGuvvcYJJ5zAO97xDg444AAOPvjgpeumTp3K3nvvzU477cRBBx3E3Llz6x67bbbZho9//ONsv/32PP744xx//PG0tbUxcuRIzjrrLAAuuOACnnzySfbdd1/23XdfAG688UZ23313dtxxR4488siGW9wlSZKqYuK8Cv785z/z2c9+lgceeIANNtiAK6+8kg9+8IPcc8893HvvvWy77bZceuml7LHHHowdO5b//M//ZPr06bztbW9bYdxp06YxadIkfvvb3zJo0CCuuuoqpk2bxuTJk/n85z9PZq5w/5NPPpm9996be++9l2nTpjFy5MhO6wvUrXO7uXPncscdd3D99ddz6qmnAvCLX/yC2bNnM3PmTH70ox9x1113AcXc2ieddBKTJk1i6tSpHHfccZx++umdHrsTTjiBBx54gC233JLzzjuPKVOmcN999/Hb3/6W++67j5NPPpnNNtuMyZMnM3nyZJ5++mnOPfdcbr75ZqZNm0ZbWxvf+ta3GnuzJEmSKtLn+zj3hBEjRjB69GgAdtppJ2bPns2MGTP413/9V5555hkWL17MQQcd1OW4BxxwAG9605uAoivDaaedxm233cYaa6zBE088wbx589hkk0063f+WW27hhz/8IQADBgxg/fXX5x//+Efd+gIrrPMHPvAB1lhjDbbbbjvmzZsHwB133MGRRx7JGmuswSabbLK0NXjWrFnMmDGDAw44AChauDfddNO6ddxyyy3Zbbfdlj7/3//9XyZOnMiSJUuYO3cuM2fO5F3vetcy+9x9993MnDmTPffcE4CXX36Z3XffvbGDKkmSVBET51Ww9tprL308YMAAXnjh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v5trIqm/e/HFF02aWyQi2GijjZg/f35PV0WSGtJwH+eIuCwinoqIGTXLzo6IJyJienk7uJN9x0TErIh4OCJOraLiktRdTJpbx2MrqS/pyuDAy4ExdZZ/OzNHl7cbOq6MiAHAd4D3AdsBR0fEdqtSWUmSJKmnNNxVIzNvi4jhq1DGLsDDmfkoQET8FDgMmLkKsSSpR3XWVWxVdbWL2dlnn816663HF77whS7td+utt7LWWmuxxx57AHDsscdyyCGHMG7cuC7F6cz06dN58sknOfjguiceJalfqGI6uhMj4r6yK8eGddZvDjxe83xOuUyS1E1uvfVW7rzzzqZiLFmypNN106dP54YbljvpKEn9SrOJ83eBtwGjgbnAN5utUESMj4gpETHFASOSBOeddx5bb701e+21F7NmzQLgkUceYcyYMey00068+93v5qGHHgLguuuuY9ddd2WHHXbgve99L/PmzWP27NlcfPHFfPvb32b06NHcfvvtANx2223ssccevPWtb2XSpEl1yz722GOZMGECu+66K1/60pf4wx/+wO67784OO+zAHnvswaxZs3j55Zc588wz+dnPfsbo0aP52c9+xnPPPcdxxx3HLrvswg477MA111zTPQdLklqoqVk1MnNe++OI+B5wfZ3NngCG1TwfWi7rLOZEYCJAW1tbNlM/Serrpk6dyk9/+lOmT5/OkiVL2HHHHdlpp50YP348F198MVtttRW///3vOeGEE7jlllvYa6+9uPvuu4kILrnkEr7+9a/zzW9+kwkTJizTxePSSy9l7ty53HHHHTz00EOMHTu2024bc+bM4c4772TAgAE8++yz3H777ay55prcfPPNnHbaaVx55ZWcc845TJkyhYsuugiA0047jf3224/LLruMZ555hl122YX3vve9rLvuut127CSpak0lzhGxaWbOLZ8eDsyos9k9wFYRMYIiYT4K+Egz5fZlTqUnqStuv/12Dj/8cNZZZx0Axo4dy4svvsidd97JkUceuXS7l156CSiS3A9/+MPMnTuXl19+eYXzI3/gAx9gjTXWYLvttmPevHmdbnfkkUcyYMAAABYuXMgnPvEJ/vznPxMRvPLKK3X3ufHGG7n22mv5xje+ARTT+v31r39l22237doBkKRepOHEOSJ+AuwDbBwRc4CzgH0iYjSQwGzgn8ptNwMuycyDM3NJRJwI/BoYAFyWmQ9U+iokaTXy2muvscEGGzB9+vTl1p100kl87nOfY+zYsdx6662cffbZncZZe+21lz7OLE7wnX766fzyl8UP/Pb4ta3EZ5xxBvvuuy9XXXUVs2fPZp999qkbOzO58sor2Wabbbr68iSp12q4j3NmHp2Zm2bmwMwcmpmXZubHMvOdmfmuzBzb3vqcmU9m5sE1+96QmVtn5tsy87xWvBBJ6o/e8573cPXVV/PCCy+waNEirrvuOtZZZx1GjBjBz3/+c6BIUu+9916gaBHefPNi/PUPfvCDpXEGDx7MokWLVlreeeedx/QoDCH1AAAgAElEQVTp0+sm5R3jX3755Z3GP+igg7jwwguXJuR//OMfu/CqJal36pNXDpSkntLd3ap23HFHPvzhDzNq1Cje/OY3s/POOwNwxRVXcPzxx3PuuefyyiuvcNRRRzFq1CjOPvtsjjzySDbccEP2228//vKXvwBw6KGHMm7cOK655houvPDCVa7Pl770JT7xiU9w7rnn8v73v34s9t13X7761a8yevRovvzlL3PGGWdwyimn8K53vYvXXnuNESNGcP319YbBSFLfEe2tAb1RW1tbTpkyZbnlfbmfcF+uu7Q6evDBB+2X22IeY0k9LSKmZmbbyrarYh5nSZIkqd+zq0Y/Y4u2JElSa9jiLEmSJDXAxFmSJElqgImzJEmS1AATZ0mSJKkBDg6UpK44e/2K4y1c6SazZ8/mkEMOYcaMGcss//SnP83nPvc5tttuu+X2Of/88xk/fvzSS3Wvt956LF68uJo6U1z85MADD2SzzTarLKYk9XYmzuoSZ+2Qeo9LLrmk7vJXX32V888/n49+9KNLE+dV8eqrrzJgwIC66y6//HK23357E2dJqxW7aqhXGX7qL+vepNXdkiVLOOaYY9h2220ZN24czz//PPvssw/tF4lab731+PznP8+oUaM477zzePLJJ9l3333Zd999l8Y4/fTTGTVqFLvtthvz5s2rW05tnLvuuotzzjmHnXfeme23357x48eTmUyaNIkpU6ZwzDHHMHr0aF544QWmTp3K3nvvzU477cRBBx3E3Llzu+W4SFJ3MnGWpD5g1qxZnHDCCTz44IO88Y1v5L//+7+XWf/cc8+x6667cu+993LmmWey2WabMXnyZCZPnrx0/W677ca9997Le97zHr73ve/V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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tmp = df.sort_values(by='natural-change-rate')\n", "\n", "fig, axes = plt.subplots(2, 1, figsize=(12, 6))\n", "\n", "tmp.plot(kind='bar', y=['natural-change-rate'], sharex=True, ax=axes[0])\n", "axes[0].set_title(\"Population change per 1000 in 2017\")\n", "tmp.plot(kind='bar', y=['death-rate', 'birth-rate'], sharex=True, ax=axes[1])\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We haven't used the information we have about the population on 1 January 2018 yet. \n", "\n", "Let's first look at the absolute changes in the population based on the (census?) data from 1 Jan 2017 and 1 Jan 2018:\n" ] }, { "cell_type": "code", "execution_count": 104, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df['change'] = df['pop18'] - df['pop17']" ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [ { "data": { "image/png": "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kyaNtBjGGLNAMX369McjYmK7fKNOqUyaNIlp06a1z2iMMWYekh5on8vmL2OMMTVipWKMMaY2rFSMMcbUxqgbUynjpZdeYtasWbzwwnwZ9HPEGT9+PCuvvDLjxo0baVGMMfM5VirArFmzWHLJJZk0aRIpOK9pEBHMmTOHWbNmMXny5PYFjDGjGpu/gBdeeIHlllvOCqUESSy33HLuxRljOsJKJWOFUo2vjTGmU6xU5mM+/OEP88tf/nKkxTDGmI7xmEoJkw67uNb67j9qh1rrM8aYOvnO7juWph/yi4u6rss9lfmI008/nfXXX58NNtiAD33oQwBcc801vOUtb2H11Vef12t59tln2Wabbdh4441Zb731uOCCCwC4//77WWuttTjggANYZ5112HbbbfnHP/4BwNSpU1l//fXZcMMNOfTQQ1l33XUBeOWVVzj00EPZdNNNWX/99TnxxBNH4MyNMQsLVirzCTNmzODII4/kyiuv5JZbbuHYY48F4OGHH+a6667joosu4rDDDgOSi+95553HTTfdxFVXXcUhhxxCYwmDe+65hwMPPJAZM2aw9NJLc+655wKw3377ceKJJ3LzzTczduzYecc9+eSTmTBhAlOnTmXq1Kn86Ec/4r777hvmszfGLCzY/DWfcOWVV7Lbbrux/PLLA7DssssCsMsuuzBmzBjWXnttHn30USC5+X7+85/nmmuuYcyYMTz00EPz9k2ePJkNN9wQgE022YT777+fp556imeeeYY3v/nNAOy1115cdFHq1v7ud7/j1ltvndcLmjt3Lvfcc4/dh40xPWGlMp+z2GKLzfvd6I2ceeaZzJ49m+nTpzNu3DgmTZo0z+W3mH/s2LHzzF9VRATHHXcc2203rEvHG2MWUmz+mk/YeuutOeecc5gzZw4ATzzxRGXeuXPn8prXvIZx48Zx1VVX8cADrYOHLr300iy55JL86U9/AuCss86at2+77bbjhBNO4KWXXgLgL3/5C88999xgT8cYM0pxT2U+YZ111uELX/gCW221FWPHjmWjjTaqzLv33nuz0047sd566zFlyhTWXHPNtvWffPLJHHDAAYwZM4atttqKCRMmAPCRj3yE+++/n4033piIYOLEiZx//vm1nZcxZnRR2xr1ksYC04CHImJHSZOBs4DlgOnAhyLin5IWA04HNgHmALtHxP25jsOB/YFXgIMj4tKcvj1wLDAW+HFEHJXTS4/RSs4pU6ZE83oqd955J2uttdbgL8J8zLPPPssSSywBwFFHHcXDDz88zxmgE0bDNTJmtNKJS7Gk6RExpV1ddZq/PgncWdj+FnB0RLwBeJKkLMjfT+b0o3M+JK0N7AGsA2wPHC9pbFZWPwDeDawN7JnztjqGaeLiiy9mww03ZN111+Xaa6/li1/84kiLZIxZCKlFqUhaGdgB+HHeFrA10JgOfhqwS/69c94m798m598ZOCsiXoyI+4CZwGb5MzMi7s29kLOAndscwzSx++67c/PNN3P77bdz8cUXM3Fi21VBjTGma+rqqRwDfA74V95eDngqIl7O27OAlfLvlYAHAfL+uTn/vPSmMlXprY5hjDFmBBi0UpG0I/BYREyvQZ4hQdJHJU2TNG327NmleeoaW1oY8bUxxnRKHT2VLYH3SrqfZJramjSovrSkhnfZysBD+fdDwCoAef8E0oD9vPSmMlXpc1ocox8RcVJETImIKWVmn/HjxzNnzhy/PEtorKcyfvz4kRbFGLMAMGiX4og4HDgcQNI7gM9GxN6SzgE+QFI0+wIX5CIX5u3r8/4rIyIkXQj8TNJ3gdcBawA3AgLWyJ5eD5EG8/fKZa6qOEZXrLzyysyaNYuqXsxop7HyozHGtGMo56n8N3CWpCOBPwMn5/STgTMkzQSeICkJImKGpLOBO4CXgQMj4hUASQcBl5Jcik+JiBltjtEV48aNc1gSY4ypgVqVSkRcDVydf99L8txqzvMCsFtF+a8DXy9JvwS4pCS99BjGGGNGBodpMcYYUxtWKsYYY2rDSsUYY0xtWKkYY4ypDSsVY4wxtWGlYowxpjasVIwxxtSGlYoxxpjasFIxxhhTG1YqxhhjasNKxRhjTG1YqRhjjKkNKxVjjDG1YaVijDGmNqxUjDHG1IaVijHGmNqwUjHGGFMbVirGGGNqw0rFGGNMbVipGGOMqY1FRloAY4wx9fKDj11Zmn7gD7ce8mO7p2KMMaY2rFSMMcbUhpWKMcaY2rBSMcYYUxtWKsYYY2rDSsUYY0xtDFqpSBov6UZJt0iaIekrOX2ypD9JminpF5IWzemL5e2Zef+kQl2H5/S7JW1XSN8+p82UdFghvfQYxhhjRoY6eiovAltHxAbAhsD2krYAvgUcHRFvAJ4E9s/59weezOlH53xIWhvYA1gH2B44XtJYSWOBHwDvBtYG9sx5aXEMY4wxI8CglUokns2b4/IngK2BX+b004Bd8u+d8zZ5/zaSlNPPiogXI+I+YCawWf7MjIh7I+KfwFnAzrlM1TGMMcaMALWMqeQexc3AY8BlwF+BpyLi5ZxlFrBS/r0S8CBA3j8XWK6Y3lSmKn25Fsdolu+jkqZJmjZ79uzBnKoxxpgW1KJUIuKViNgQWJnUs1izjnrrIiJOiogpETFl4sSJIy2OMcYstNTq/RURTwFXAW8GlpbUiC22MvBQ/v0QsApA3j8BmFNMbypTlT6nxTGMMcaMAHV4f02UtHT+/SrgXcCdJOXygZxtX+CC/PvCvE3ef2VERE7fI3uHTQbWAG4EpgJrZE+vRUmD+RfmMlXHMMYYMwLUEaV4ReC07KU1Bjg7Ii6SdAdwlqQjgT8DJ+f8JwNnSJoJPEFSEkTEDElnA3cALwMHRsQrAJIOAi4FxgKnRMSMXNd/VxzDGGPMCDBopRIRtwIblaTfSxpfaU5/Aditoq6vA18vSb8EuKTTYxhjjBkZPKPeGGNMbVipGGOMqQ0rFWOMMbVhpWKMMaY2rFSMMcbUhpWKMcaY2rBSMcYYUxtWKsYYY2rDSsUYY0xtWKkYY4ypDSsVY4wxtWGlYowxpjasVIwxxtSGlYoxxpjasFIxxhhTG1YqxhhjasNKxRhjTG1YqRhjjKkNKxVjjDG1Meg16o0xxgwtd665Vmn6WnfdOcyStMc9FWOMMbVhpWKMMaY2rFSMMcbUhpWKMcaY2rBSMcYYUxtWKsYYY2rDSsUYY0xtDFqpSFpF0lWS7pA0Q9Inc/qyki6TdE/+XianS9L3JM2UdKukjQt17Zvz3yNp30L6JpJuy2W+J0mtjmGMMWZkqKOn8jJwSESsDWwBHChpbeAw4IqIWAO4Im8DvBtYI38+CpwASUEAXwY2BzYDvlxQEicABxTKbZ/Tq45hjDFmBBi0UomIhyPipvz7GeBOYCVgZ+C0nO00YJf8e2fg9EjcACwtaUVgO+CyiHgiIp4ELgO2z/uWiogbIiKA05vqKjuGMcaYEaDWMRVJk4CNgD8BK0TEw3nXI8AK+fdKwIOFYrNyWqv0WSXptDhGs1wflTRN0rTZs2d3f2LGGGM6ojalImkJ4FzgUxHxdHFf7mFEXccqo9UxIuKkiJgSEVMmTpw4lGIYY8yophalImkcSaGcGRG/ysmPZtMV+fuxnP4QsEqh+Mo5rVX6yiXprY5hjDFmBKjD+0vAycCdEfHdwq4LgYYH177ABYX0fbIX2BbA3GzCuhTYVtIyeYB+W+DSvO9pSVvkY+3TVFfZMYwxxowAdYS+3xL4EHCbpJtz2ueBo4CzJe0PPAD8e953CfAeYCbwPLAfQEQ8IelrwNSc76sR8UT+/XHgJ8CrgN/kDy2OYYwxZgQYtFKJiOsAVezepiR/AAdW1HUKcEpJ+jRg3ZL0OWXHMMYYMzJ4Rr0xxpjasFIxxhhTG1YqxhhjasNKxRhjTG1YqRhjjKkNKxVjjDG1YaVijDGmNqxUjDHG1IaVijHGmNqwUjHGGFMbVirGGGNqw0rFGGNMbVipGGOMqQ0rFWOMMbVhpWKMMaY2rFSMMcbUhpWKMcaY2rBSMcYYUxtWKsYYY2pj0GvUG2OM6Y71TluvNP22fW8bZknqxz0VY4wxteGeijHGDJYjJlSkzx1eOeYD3FMxxhhTG1YqxhhjasNKxRhjTG1YqRhjjKmNWpSKpFMkPSbp9kLaspIuk3RP/l4mp0vS9yTNlHSrpI0LZfbN+e+RtG8hfRNJt+Uy35OkVscwxhgzMtTVU/kJsH1T2mHAFRGxBnBF3gZ4N7BG/nwUOAGSggC+DGwObAZ8uaAkTgAOKJTbvs0xjDHGjAC1KJWIuAZ4oil5Z+C0/Ps0YJdC+umRuAFYWtKKwHbAZRHxREQ8CVwGbJ/3LRURN0REAKc31VV2DGOMMSPAUI6prBARD+ffjwAr5N8rAQ8W8s3Kaa3SZ5WktzqGMcaYEWBYBupzDyNG6hiSPippmqRps2fPHkoxjDFmVDOUM+oflbRiRDycTViP5fSHgFUK+VbOaQ8B72hKvzqnr1ySv9Ux+hERJwEnAUyZMmVIlZsxZsFn0mEXl6bff9QOwyzJgsdQ9lQuBBoeXPsCFxTS98leYFsAc7MJ61JgW0nL5AH6bYFL876nJW2Rvb72aaqr7BjGGGNGgFp6KpJ+TuplLC9pFsmL6yjgbEn7Aw8A/56zXwK8B5gJPA/sBxART0j6GjA15/tqRDQG/z9O8jB7FfCb/KHFMYwxxowAtSiViNizYtc2JXkDOLCinlOAU0rSpwHrlqTPKTuGMcaYkcEz6o0xxtSGlYoxxpjasFIxxhhTG1YqxhhjasNKxRhjTG1YqRhjjKkNKxVjjDG1YaVijDGmNqxUjDHG1MZQBpQ0xpj5AgeIHD7cUzHGGFMbVirGGGNqw+YvY8wCx2uvurk0/ZF3bjjMkphm3FMxxhhTG+6pGGNGnCuufH1p+jZb/3WYJTGDxT0VY4wxtWGlYowxpjasVIwxxtSGlYoxxpjasFIxxhhTG/b+Msa0ZdZh15amr3zU20rTjzjiiK7SzcKDeyrGGGNqw0rFGGNMbVipGGOMqQ0rFWOMMbVhpWKMMaY27P1lzCjlO7vvOCDtkF9cNAKSmIWJhUKpSNoeOBYYC/w4Io4aYZGMGXZ+8LErS9MP/OHWwyyJGc0s8EpF0ljgB8C7gFnAVEkXRsQdIyuZWeg5YkJF+tzS5PVOW680/bZ9bytNv3PNtUrT17rrzvayGTNCLAxjKpsBMyPi3oj4J3AWsPMIy2SMMaOSBb6nAqwEPFjYngVsPkKymPmISYddXJp+/1E71JLfGDMQRcRIyzAoJH0A2D4iPpK3PwRsHhEHFfJ8FPgowKqrrrrJAw88APTwEpnPzB3d2tDLBmahenB2qENzeGEmYxYcJE2PiCnt8i0M5q+HgFUK2yvntHlExEkRMSUipkycOHFYhTPGmNHEwqBUpgJrSJosaVFgD+DCEZbJGGNGJQv8mEpEvCzpIOBSkkvxKRExY4TFMsaYUckCr1QAIuIS4JKRlsMYY0Y7C4P5yxhjzHzCQtFTMQsm9vIyZuHDSsVUUuU6XIVX9TPG2PxljDGmNqxUjDHG1IaVijHGmNrwmMoowmtlGGOGGvdUjDHG1IaVijHGmNqw+WsBxiv6GWPmN9xTMcYYUxtWKsYYY2rDSsUYY0xteExlPqJqhUdjjFlQsFIZQqqWDTbGmIUVm7+MMcbUhpWKMcaY2rBSMcYYUxtWKsYYY2rDSsUYY0xtWKkYY4ypDSsVY4wxtWGlYowxpjasVIwxxtSGlYoxxpjasFIxxhhTG1YqxhhjamNQSkXSbpJmSPqXpClN+w6XNFPS3ZK2K6Rvn9NmSjqskD5Z0p9y+i8kLZrTF8vbM/P+Se2OYYwxZmQYbE/lduB9wDXFRElrA3sA6wDbA8dLGitpLPAD4N3A2sCeOS/At4CjI+INwJPA/jl9f+DJnH50zld5jEGejzHGmEEwKKUSEXdGxN0lu3YGzoqIFyPiPmAmsFn+zIyIeyPin8BZwM6SBGwN/DKXPw3YpVDXafn3L4Ftcv6qYxhjjBkhhmpMZSXgwcL2rJxWlb4c8FREvNyU3q+uvH9uzl9VlzHGmBGi7SJdki4HXluy6wsRcUH9ItWPpI8CHwVYddVVR1gaY4xZeGmrVCLi33qo9yFglcL2yjmNivQ5wNKSFsm9kWL+Rl2zJC0CTMj5Wx2j+RxOAk4CmDJlSvRwPsYYYzpgqJYTvhD4maTvAq8D1gBuBASsIWkySQHsAewVESHpKuADpHGWfYELCnXtC1yf91+Z81cdY+g4Yu6QVm+MMQs6g1IqknYFjgMmAhdLujkitouIGZLOBu4AXgYOjIhXcpmDgEuBscApETEjV/ffwFmSjgT+DJyc008GzpA0E3iCpIhodQxjjDEjgyJGlzVoypQpMW3aNAAmHXZxaZ77j9phOEUyxpj5HknTI2JKu3yeUW+MMaY2rFSMMcbUhpWKMcaY2hgq768FAo+dGGNMvbinYowxpjasVIwxxtSGlYoxxpjasFIxxhhTG1YqxhhjasNKxRhjTG1YqRhjjKkNKxVjjDG1YaVijDGmNkZdlGJJs4EHSnYtDzzeRVXO7/wLS/75SRbnn3/zrxYRE9uWjgh/kmKd5vzOPxrzz0+yOP+Cl7/5Y/OXMcaY2rBSMcYYUxtWKn2c5PzOP0rzz0+yOP+Cl78fo26g3hhjzNDhnooxxpjasFIxxhhTG6N65cdukbReRNw20nL0iqRXAatGxN0d5t8JuDgi/jW0ko0uJC0DrBIRt460LMZIGgvsAEyioBMi4ru91GelAkh6DTC+sR0Rf6vIerykxYCfAGdGxNw29a4BfBNYu6n+1euQR9J4YH9gnab8/1GSdyfg/4BFgcmSNgS+GhHvbSHK7sAxks4FTomIuyrkuA0oG5xTEifWrzqApB1K5P9qSb6Oz7VbWsjfOEal/F0c42rgvaRnbjrwmKQ/RMRn6pJH0q9Lys0FpgEnRsQLhbwTgf9m4L25dZvz6PTefHdE/KYp7WMR8cOSvEP23/aKpC2BmyPiOUkfBDYGjo2IsonT5PfC+xn4Yh5wLw8Hkr5DemZndJD918ALwG3AoBuQo1qpSHov8B3gdcBjwGrAnaSbewAR8basKP4DmC7pRuDUiLis4hCnAl8GjgbeCexHC5Njt/IAZwB3AdsBXwX2zvnLOALYDLg6n8vNkiZXyZLzfFDSUsCewE8kRT6nn0fEM4WsO7aqpwpJPwReTbo2PwY+ANxYkb2bc+2WhvwHFo5FPkYpkrYAjgPWIinqscBzEbFURZEJEfG0pI8Ap0fElyVV9VS6lidzLzAR+Hne3h14Bngj8CPgQ4W8ZwK/ILVQPwbsC8yuqriHe/N/JL0YEVfm8p8j/c8DlApd/LeSnqG1wq26/t1yArCBpA2AQ0j35+nAVhX5LyAp8OnAi+0ql/Q+4FvAa0iNr0YDrC757wROkrQIfc9sVSN45ToaTvMYzMzJBf0D3AIsB/w5b78TOLmDcmNJrZKH8p93F/C+kny0FrQDAAAgAElEQVTT8/dtzWl1yFPId2v+HgfcUJH3hmKZYrkOznc54FPA/cBvgHuAT9Rw/W9t+l4CuHaw5zoIef5cknZTRd5pwBuAP+f7YT/gmy3qvg1YEfgdsGkn178befK+qVVpwIyKe/PWVuUHcW8uD9wAvA34OnAusGhd/y3wNeDjwJLAUsB/kXreVfnXJ/UU39f4tKn/pvz9JWD/Dq797V3eazOBtbrI/1Zgv/x7IjC5w3JvAo4ihab6GfDOkjzfArbtRv5Wn9E+UP9SRMwBxkgaExFXAVOqMktaX9LRJEWyNbBTRKyVfx9dUuRFSWOAeyQdJGlX0ouzFnmAl/L3U5LWBSaQWj5lzJC0FzBW0hqSjgP+2KJuJO0s6TxS72YcsFlEvBtotN6a828haaqkZyX9U9Irkp5ucYh/5O/nJb0un8+KFXm7OVfyOf5S0h2S7m18Wp1vKqYtCxtvoUXPMiJmAmMj4pWIOBXYvkXdXwUuBWZGxFRJq5OUc23yAEtIWrWQf1X67rd/NuVtXM+HJe0gaSNg2RZ1d3VvRsTjpJf4D0i9mw9ERLMMzbJ09N9m3hsRx0fEMxHxdEScAOxcllHSKcAppIbgTvnTrnf9jKTDgQ8CF+fneFyL/H+UtF6bOos8GhEd9bQlfZlkqjw8J40DftpBubHAmvnzOKlh8BlJZzVlvQE4T9I/JD0t6Zk2z21r6tJOC+IHuJz00B1HMhkcC/yxRf7fA/sAryrZ96GStE1z/SuTuqC/AraoUZ6PAMuQuuT3kswSH6vI+2pSi3Fq/hwJjG9zfX4CvL1i3zYlad223v8HWJr0sD8CPAx8bbDnmvNfB2wD3Eoy1RxBi5ZsLrMJ6cG7n9SyuxnYuCLvNSSz1+nA/wKfBm6p+f7sWJ6c/z3A34CrSA2BB0jmrcWBTzXl3ZH08l43559OaiQN6t4kmdueLnxeAJ5tpNfx3+YyfySZycaSFO3eVc8KcEcP1/61wGeAt+XtVYF9WuS/g6S478733G206Inm6/cLkmm5Ze8p/++iCysDqZE7EziR1Bgs7ru7afs+Uk9Oddy3o3ryo6TFSTe9SDflBNIA/JzRLk9u5VweEe/sosy0iJgi6dbINlpJf46IjToouxhJybV0fuhClukRsYmk2yJivWJaB2UnALSSRdJqpJffOJJCmQAcH6n3Upb/VErGAqKDwegO5RkDbEFSDmvm5LujMDjflH/LiPhDu7TCvo7vTUkiebdVObwMGkmTSC/mLUnX9Q8kxXl/Sd6Tge9ExB1DKM9qZelRPbB/ann2UiebGyNiM0k3RcTG+b+4Plo7wOwHnB0Rz5Xsm1C8lyRdA7wjavLyHNVKpVO69W6SdExEfKrCG4do7XHViTwfjIifShrgOZTrH+AKKOkyYLeIeCpvLwOcFRHbtTjOFaTWU0cv+nxz/htpULPR8/hwRGzQlG/riLgyD1aWyf+rQt6uzzWX+yPJDv1L4ErS+NdREfGmFvIPmQePpPcXNscDuwJ/j4iD65KnUwWe894UERu3S+uVojJvkaen/7YHWbYCLiTdky/SwitxMI4Akt4KrBERpyp51y0REffVIP9ngTWAd5G8Sf8D+FlEHNem3EqkXnrx3rmmJN9PgNVJ46UvFvLapbhTJF0XEW8tuYGqPDC69W5qeOv83xDJs3j+XrILmZZvKBRSpU8quYe24lngtqyQ5rV4WrwIP0QyRxxEar2vQnopNrMV6UW/U8m+IJkJG/RyrgCfJJn8DiYN6m5N8nBqRVsPHklnR8S/VzU0qlqPEXFuUz0/J5noBiVPE1dk5fWrqGgtSnoz8BZgYtPLfCnSf9ecv9t7s8FNkjaNiKkt5O31v224RB/AQIVb1vM7mXRvtnWZjYglc/1fIzWKzqCvd1Y13tcY95hCGhg/lb5xjy2b8n0uIv43j2mW3T8Dnq2I+D9J7yKZE98EfCmqPU4bxzkK2INklnulURXJbNvMffmzaP4MCvdUhohsPjo9Itq5gQ4LkqYDuzZMErm7fl6rlqmk0pdwRJxWk0xjI+KV9jmHB0m3R8S6bfKsGBEPd2vuKKnnTaSJpW8YjDxN+Z8hvahfps9U1e/Fn1vt7yC5ERfde58Bfh0R7ZwHOpXlLtL42gOkBklVr34scHBElDm6tKr/j8C1JIU77x5qVt457/UR8eYu67+lpIc9IK2w72ZgI5KH2EY57daS890pIn7dzbOl5Pr/cMOUqTSJeYUyU1+hzN3A+hHRSWOkUWaJLMOznZYpY1T2VIrkm3oF+rd2qiZ0dTw3ISJekbSapEWj2uuluf4zIuJD7dIK+7pprX0BuE7S70kP+NuAj7aSp1vlUdF6b0y+O7LE/n6fpN+SBiyvrGpd57o7OtdBmh7/qDZREyLi4fxz7SiZ3Ef5PIwys8ojJI+eVrSVp0m2ti3+iPg98HtJP+lUATbo5lkhzTlpS35O9qTce7IVr46IdtevwZ8l/Yw0ya9o3vlVdRGek7Q3cBbpf9uTQm+9hH9GRCjN5WqMQQ0gIn6dv7t5ts4h9S4bvJLTNm1R5l5Sb6mTOTPrknpky+btx0lOCZ1MnBzAqFYqkj5Bmpz4KH3d4iB5QpTxfVKX8hxSV3cf0sSyKu4F/iDpQvqbj6pslf0mkilNXGo1sHwBqbV2OYXWWhkR8VtJG5MGcyENarZcYlTdRwT4TZbjZ3l7D5IJ6hGSJ1mzuWtNkmnxQOBkSReRxnnKzEKdnmtXpscm3gp8WNJ9tLG908XkvjxwvU6LF3Ad8iDp7WXpRTt6UdkmsQbkLVW63T4rDYWlphn4FfxB0vdJjYvic3JTizIXSXpPRFzSpm6AV5Gu37ZFEelvZm1mL5IjwLH0OQLs1SL/2ZJOBJaWdABp3ONHVZnVXUSDRYoN04j4p6R2ZqrngZvzuGhRkZaZrk8CPhPJTRxJ78iyv6Ukb1tGtflL0kxg85IWdFX+rrybsp11ABHxlaZ8hwOfJ938zzeSSS6KJ0XE4ZQg6eaI2LBD2Rt24dUj4qtKcxheGxFVM9iRdB19EQF2IkcEiIgvVeSvHPxtN3Cr5DhwLLB3RJTZ9js+117pxqQlaXngIuBQ0vyUNYE9q3qlnQxcD0aenP/Xhc3xpAgK04svqmz+qiT3ZMrq7vZZKZ2BHxEDZuBLuqpclOqQMQVT34ukeS51z0jvmjzusW2W5dJW4x6SfkdSop+lENGgrPeVxzSPi4gL8/bOJJPhNi3q78a81pWpry1Ro1/9gvYh+ecv0kX+IZ2bQIs5HRX5jwTe02HeE0gT0e7M28vQYgZ1ztNLRIDNCtubNq4PJbPDc/pWwPGkXt3ZwPsHe645/5bAZcBfct33Afd2WPY1pHkJq5ICcLbKdytpYLaljz9wGnkmfQ/3RUfylJRbBTi3pnuz22el4xn4pIZO27RByH4qafJjv0+bMhNJDb2TOi3TpUwdRzQAXk+aoPg34EHSHJ031CjLeaQ5Y5Py54uk8dae6hvtPZWTSd4UF9OBK11uOT5KUiyNuQk/iIi/VuSfCHyOgYHyWrXAliG5Dxbzl3lsdNVaK/QY5vWs2rVG1KVbrqRNSQ/fElmWp0kT22YAO0TE2U357ydNlDwbuDBKfOpLzvWf+dOyZZoHij/NwIHcypZ2J63rkrGRRUkD49GBPG0HrruVpxW5dzojItYu2deRaVN9HmLr0N2z0ujV3wJsFBH/qrrfKnq4becUdfqsqDd37o4cAUruh360uB9uiIgtJF0KfA/4O/DLiHh9C5k6HkjvxnSdr+NXSM86pPM+IiKebHecMkb1mApJ8/+Nzl3pdomIY0meNV8BkPRJktmmjEbQvh3pLGjfR0iusCuTZtFuAVxPcocdQHQwMFvgpTzQ2rCnT6R9RNKu3HIjuY+up/LJemeXFNmn+SWgigl4XZ4rwNxoGkjvgK+RrvnlEbGRpHeSwnQMRo4GHQ1cdytPEfV3Ux0DbAhUjUucSmfBThvn2+2z8lR+CV4DnCnpMZoGuiWtSVJWE9R/ztJStBmH6eZZKVEEnbhzd+QIED26IANH5ufkEJLzz1KkRtAA1DRfqTEWFq3nT3X6/5KVR6WC7ZZR3VPplooWVasxlcas7uIYzNSIKPXaUPKe2pQUTG/D/NB9IyJKJwnmMp221vYmRa3dhDRo/gHgixFxTsuT7gJJpWMtVTd/qzGYkryNB3VyRHxN0irAilExJqTkpz+WNBhbbFlXDv5207rO+TvuVeb8G5NagwH8oZUsPcpTVPgvA/eXKeict+eIA52gDmbg57GBXUgxwi4sFH+G5LBRGZuul2elULYTd+4jSWFfOnEEqH9con89v6VvvlKx1/SdFmXa/r+q8JAs1N/TJO1R3VPp1Dyl5PK4FzBZyZOrwZLAEy0O0S9oH6mL2ypo3wsR8YIkJC0WEXflB6BK/m5aa2cqzVXZhvSg7xJtAtpV3HSl63Nkii3R8aQe2oBjqMsJeJnjST2rrUkt+GdJY0RVbpWb5+9i0MOgoteXadu6LpxDV73KrHB3o8/j6FRJ50TEkXXIA2kQVskrqOGR2Goxtn7BTkmmzcpgp+oyIkPDlKm0dMKvK/JcAFwg6c0RcX0LWcvo+FkpmKiUvztx5/4k8HlJnToCdOWCrBRQ9FjgzaT7+nrg0xFRFvR05YhoFay0jE7+34aH5PtIsc4aQSr3JJn5e6OXgZiF5UMKQ74/6cW3FWk84Fsl+VYjTRi7PudrfDamxeAl5UH73tsi/3mkAItHkF4kFwCXtMh/G+nlfXPeXpM0m7oqf1fhs0k3/c/oi+z6U9LL/QfAGR1c38WAq0vStyJ1zR/O343PZ0hhLsrqaoQiLwbVqzuA4+IkpbYIycx3MLBcTdf+bgoBPEmefnfXJU/O/w7SmM3v8/1zH9UBQbsNdnpzSVqp80Xe95+kl/f9tHGUIDm9LEWaV3EFyUT8wTbXpqtnZag/JNPUBaRowLOB84FJLfLfQJrlv0j+fBD4U0Xek4D1upSn4/8XmNZJWsfHHqk/YX740OWaEsMs21Yks0DpGhRFWUkt5cXy7xkVeb9MajH+JW+/jmSCaSVDx+tzVJRfhhTqvWr/al1cjz/lF2xDuUxs81KbAHyX1KuaRhrwnlDj/9Pxtc/7rgKWLmwvTZrwWev9DLypsP1GWnjr9VD3qoXt1Wi9vsg9pNBAndTdUMy7kkKqTKCLBkPVswKsmb83Lvt0UO8yJLfstzc+Nf5XA6IMV50zXUZA7kGWOyl42wGTyV6ivXxGtfmLDs1TLTw82nkgfa8keS6pFXBBRZkNSLPdIS1Y1Wo2/ixJS5NaRZdJepLUUi1jV3IYCZLQf5fUbtB5CUmrRl9ol1brczTs3I3rNJb04v9ai/qfl/RtOvOO+x6pdfoaSV8njwm1qPsU4Hbg3/P2h0gttgE295L/t2EmafX/dnPtIf3vM7IZKUjBAW9s3CNR8ETq9X4DxkXEPJNXRPxFUr81QJrMtwOIajt6txEZ/krfnKt2NGTcATgnIuaqZGImgKQy83Ej4sAS9DdHfybLWDb20NIU2oN5840kt/0VImJdSeuTrBJV5s3fSDqMPnPZ7sAljfOLiOJ5vLtKzhbyTyH9Z6vRPwJCmbfhp4GrldYbUi7zn90ec96xs2YalUjakeQ+twp9HhhfiTzJqIb6TyKZRRqD4e8nmQGWI5kCPtWU/5OkUCQNu/uupMmPLaOR5rJbkVp4vy1TROotfPZ7SDPE/0q62SaTVtu7GjggIo5pyr9aYfNl0kJEL7eov+MJYDn/mvSNCV0RLcaEVDJZsiytDtpd+5yn0msO6omnprQY1b/os43vTVpE7D8KeWaT5jr8nNT76/f2jorJj7ns8vRFZLghWkRkUFr069R8jJYzurNTxS6kRds2I/XiLoqIzUvy3kefwp9XLX0KtyraQ1d06wiQle2hpLHGhst+Zey2fB4N2aHpfMrOQ03RCaJFhAal2F+H0hREM6onzi5G35IJd0UXMcMG1DWalcpQI+kGYMvIQROVwq5cSxrbuC2a5g8orVn+5ugb5Gz54ldhlb8iZTebeg+fXbzZKtfnyHm7jV3WsXdcbtG39Ahqyn89cGjkkC9KKyj+X7QJLNjUU7wmIkrXke9Bnp1IHkddrVmh7mLTLUYKeVOcb3B88QWR63sXaTB2fdK8k59HmzhPUncRGSTdSHLbbX6plSrP3EKfGykW2KuBpSLikVYydYrKl1iYS3oGH6soMzUiNlUKFLl5RLwoaUZUzBEq5C/OAytr2GwKPNg4t9zYeD9p7OmIph5Ko0zX85WUo0tX7W/K2/X1acWoNn8pRf/8BAODFA5qvZMCy5C65I35GosDy+YHp6wlIPrHtXqFppZkExfT10obT+pJ3E1TDDGA6CF8dmYT+q7PBpKIiNMr8nYbu6wb77jpwBezh895pBf6tBZ1fww4XXnODPAkbULfl/QUz5RU1VPsVp7dgWMknUuamX1XK1myPN3G23pRKYbWFTn/3c09p9zA+S3w26yE9iSZPr4SEd9vIU7R++6rJLffc6n2vhsXEaXrpDQjaZ/C7+KuqvuszMW8lZLbn+RldVXefgfp/5ss6asRcUZJmW7Nm49Lej1988A+QHJEaeZE0ppDKMVq+ybpHbQhaUD+AyVlupqvlPmypB+T7oV2QTQb1+dK0rvkHbS/PtX0OhizMHxIoSQOJk0OmufVVWP9+5PMXaeS5obcS5phvjjw7ZL8n8kyHZE/N9O0DGyb420M/LgkfSxwVQ/yn0EKCXE8yTx4HPC9knyHk14yL9O3jOwzwBxaLyfc1ZK2ucyypBf/FcA9LfJNzt9LkVq989JalLkVWLywvTjtl23tSJ6CLP9J8vy5nmTvX7JF/pm08PYqyb8DybR1NckD7G/Au0vyLUYaWzqHtLT0/wArtam7K+874Bv5/FbM12hZUoOqLO9xhc+P8nPyyzbydBx2CLiUNNbR2F4hpy0L3N7Bde3EaWZ1UrDT50nuu9dR4ohSvGZZ/iMK2wM87HL6tEZZUuy9ltc+7/8pyUHlNNL751QqwswM9voMqK/bAgvThwoXvpqPsSKwc/68roP8G5MU3cGkCW/dHu+2ivQr6NL7ieQV0tG61aTZuoOOjUQbJUqyuX8nv3B/3SLfAM8k2nhCkd2EC9vjq65nt/IU8i8HfIpk7vgNyUvqExV5r6K7eFt3UYgJRYoZdVdTntNJzhpHAut2UXe33nf3lXw6jb22NGl8qlWejpUcTWvUk1rjdzSXz9vLtvp0IPvitG4o3N74T/P/9fbivooyl5MsHseRxsKOJU3MbCVHS3f1Xq9PJ59Rbf4CjlWKJPw7Opx13QlKM6eLPJi/XyvptWX1Z1v3jIhYk+rQGs1liuaFMSSF9PeK7N2u4gjpAXgt5d34fkSa7d1qfYdO+QxwTHOipP8lOS78lTS4/7UorGRZyNdz6A/ywLKk8/L2LiQX1wF0Kk8h/3tJoTLeQHqxbxYRj+XxgztIL4xm7iWZpjqKtwU8ExEzm8o/05Tng6T//5PAwQVzUzvPsq687yJictW+DniO1PJvRTdhh65WWlah6DBzdR6zbP7PptPCEaBKLkl/JfVAr82fqjGqn5PWs3mc5JhwbS7/BvrM5M3snPN+mr7oBO2WuP6jpLUj4o42+aC769OW0a5U1iO5mm5Nf5t1q1nXnVAZPqGq/kjjLHer4MLbAUWX4JdJYywDVr7L/Iq+sYIyj5MylgfuyIOuxZda1ZhTJ0vItqNKpr+SnBhargFDGi/akdTaLa7f8gzJTFVJRHxX0tX0DXTvFxF/How8+WXxWtKDenTkMC6StpS0ZET8VdL+FcU7irdVUJ7TJF1CirMWpBn8/f6LiCiN/9SO6C0iw1sYOF45YJxE/SM3jCUtglcWK65IN0ruQNL1byztezopenOQTN/ziIjJebxmlS6eQ0iBGzcnOXl8O4+13RoRuzbV/3WlNU5WBH6XZYDUKPxEc6VZcV4UEe8kvaM69RLcgrSeyn20X4un4+vTCaPa+0tpjYi1o8OVGYcaSdeQ5pLcSP/eRM+OA0rxlVaOiB/k7RtJposA/jtaxP5SxdobUb3mRteReEvq+FtElHq15dZ+YyGq30deRa8ib8ehPySNJw3sv4FkAjs5WrhCdyNPbgEeHk2rN0paj+Si2rxwWddIOrXV/ojYr4ZjnExa0+PmQtoREXFERf4zSOa3mymskV7WM266z14mKZbdI+LANjJ17GLeLepy/ZvslLIpafzlrSQz560R0fN8j0LdVwDvi/4BWtuVWa0sPbpc7bMXRntP5XZSi7Zrt7lOKHq1FGlureXW7AqkAdMib6OF6UlpwtVnGdgaLPaEPkdagbHBoiSPrCVI5p5KpVKlPFrQUSRetZ7c96qKMt8kjV+cmZMOzorj8xWH2VXSDJLZ4Lckj6lPR8RPS/KeRvJEu5Y00Wwt0rhHq3PoVJ4VmhUKQETcJmlSRd1dLYlch9LogO2AKZK+U7h/30tyKCljCqnB1rbVGhG/V5rXshepd3Uf1T3uZlNxpRddm/uslakPuu91P01qkHwX+FF0uJhZh3Rlus7X59J8fdqSe7rfIq3bIzq7PpWMdqWyNHCXpKl0Zt7pluIYw3hSq+omBrpKHkN5a/YJkhdNqV2fpBB+CPyY6iV2F42IBwvb10XyhX9CFetoF45ffCgXJc18fq7qZouIBzQwIsAtJfl6CR+/A7Bh5Hkekk4jrcVSpVS2jYjPSdqVNCj+PlKMqDKlsnb0RXI9mdRTrEuepVvUUapA6XFJZA2ti/xjJFPITyVtThqTaWU+bTselxtFe+bP46SxKWVTTyWdmop7vM8abA7sLanTXveepB7Kx4GPKK3Hck1EXDEIGRoUTddt6cGU/r8kr8taenqjXal8eSgrj4h+NtLs935WSdauW7OZlyPihDZiLNNU50GFzYmtChYfymxn3pm+GdUD0MB5Hj9V9TyPXliavjAcE1plpIvQH/TNlyEiXm6Rrxd5pkk6ICL6rVeuFAZkekWZ2VmWbnuK55MaIL+m/Vo53aJsftlJ0hEkz7RW/0En43F3kXqHOzYcDCSVrilSwjKksDcdmYolvZUUrPRUpcgAS0bEfS3q72r9m+iLuLwmqbf7KZKVoKrh0JaGUojeoi10c30erdN0OKqVSu52r0Bfj+LG6GEGaRc8R5qg2ExXrVn1xT/6taSPkwYsiw9ucVbunypeav9JZy3yRp0BnK/kLXdYRbb9SbOPGxEBvkWaj1GHUvkm8Gel9cxFGsuokgPStbmLZP76r+wdVBUNYANJT+ffAl6Vt1uZATqV51PAeUph0RtKZAqp57drSX5IymFjAEnnRsT7K/I180JElMWb65mCo8G80EURcYSkV0iT5Ko4ooPq30cyzV6ltGbIWbR3HmnQbCquJN+zU0hOHKeSrv1P6RuYHkDudRcV0URaLw1wLrAByYHjGpIDUMfPVwW93gfQxfUhNXx+kY/XbqJkW0b7QP2/A98mTRZrBMk7NCJ+WVP9RZv4GJKHyNkRcVhTvp+TItaWtWbfFRG7N6Xfx0C3xwYRhbhBSvGCGjdLw1V5E9IEuF0ionLdBPV3yR1DejC3iopQJ8rxkiKHcskD4FO7GfBshaQV6d8AaBnGQ/1DfzTmD9QS+qNbeZRmQTfiQM2IiCtb5C2G+qhcBK6k3F6kUDy1ucgPxtEgDxavERGXK7lOj42IZhdn8n+zM8mEtDXJPHxeRPyuV7mb6r+ZHEy1cF3nhQaqKDNPEUXEGyW9jtTj3bIp36akKQMrk8yfH6RN2JUu5O7pPiiU7/T6lzl6RBRixnV13FGuVG4hvbQfy9sTSaEQBr1aW66v2avlgYiYVZJvBVJv45+UtGarXlaSxkdTLK6ytJy+NX1hVFq+1Aplijfby6QH5UdVvTmleTP75nOBNM/jJ9EUeLIbNHDOTz+aX5iSPhcR/5t/7xYF7zZJ34jqgf0hkafHY8xb/VIVK2FWlPsmqYX8Vwou8lEe9blTWVquVFrVYJB0AGlG/bIR8XqlNdN/GBHbtDneMqTB+t3L8vYy+K7egql2pIgk3QT8W0Q8oRR25Sz6wq6sFRFlYVc6otf7IOfv6frXwWhXKv0eCqWV0m6pq2XddKzlgTnR4oJ305rN+Ttejne4UN+SuZAG6qvmeXRa31X075X1u37NL8xWD2Id16ZbeXo8xiv0DQ6/ir4Q8u2WWqjdRV7SPRGxRtXxomJJ3vxS3owUtaLxUu7KTbcu1EMw1U4VkQpLBkv6ASnK9hF5e1BRsXu9DxrHps31bzTAJB1HuZdhT+vWj+oxFVJQvUtJs1whBf37zWArlbQFcBRpEPdrJG+e5YExkvaJiN+WlYuIq+gLeteq/tcCK5Fs/xvR94JbCnh1DfKX3mQFOfvdbBo4z+P46GCeR4f8Nymq68P5WPtSMC+U5FfF77Lt4ZCnayKiaknldgyFi3wvjgYAL0bEP5WdHpTmcYxICzZ6C6Z6tqQTgaVzq/8/SHHJmhkraZF8v29D/zVmBvV+HcR9AJ1d/8bgfKtAqF0zqpVKRByaxw0aLeuTIuK8VmU65Psk19IJpMif746IG5Q8Q35OmjcxGLYDPkyy4xZDdjxDtYttNxRvsq/Q3kuu63keXfBDuovqGhW/y7aHQ57hZChc5HtxNIAUiuTzpIbPu0iutpWTVYearEQua1gMOsjfqSLqJezKcNDJ9f8blC9HIOm/ej3wqDZ/NZPNX3tGxJltM7euZ163V9KdEbFWYV/XA24tjvP+iKicJFbTMdrKW+xW5xbRjXWZ4Lo1L7QxGYyPiH4rIQ61PMOJuoyA0GXd3Zpmx5C8AbclXftLSRG0h+2F08piAFRaDHo8TiPsSsPz8Y3AEnWMsfUoU/H6Q5oM+eOmPPcCu0XE9Kb0r5DmrfT0DI/KnoqkpUjxblYiuXwH1iwAAAesSURBVEpelrc/SwovPSilQv85Av9o2jfoh0rSByPNDJ+k/kEl0wGqAw72Qify9jrPoxO6Mi8M0mRQuzzDSSQX+QEePzXV3ZFptpD/X5LOB86PiNl1yNADPVsM1MUs84i4oSTtL7WcQZeof1imH2XT3URgE0lPRX/P1t2AcyTtHRHXKz24J5B6Zu/oVYZRqVRILZYnSXMoPkK68RpB8m5uVbBDGvMeinMeyNvtIuV2QmMmfJnf/Eh0PXuZ59Ep85t5YX6TZx5Fjx9S3K2VSOa6Iff4Kcggkrn0IFKPoNF7PC4i2kXWrZtFIrslKy02dQNARNzVQcOn1lnmw0i7sEzzlEpETJe0C8m8eSB9AVe3j0EsJzxalcrqBXPNj0mhJFaNFkvldsNQt5Yj4sT8/ZXmfZIGPZah/m6br25SGAOUxFCeb3QZ1XWomd/kaeJAsscPQETcozRPaTj5NGlS4aaRZ6xLWh04QdKnI+LoYZRlMBaDWmeZDyMdh2VSmsc1izQN4HzSui0HAYtLWjx6nGMzKsdUNASupvMLahHl1yzcSPpTRGzeGAfL41s3NbvBDrEMfybN/Xq8KX0iSQnXMp7YoSxdj6+pb8LvVqRIArXMMh8u1NrN+68R8frCdmMSNfR3kW80HtutaVPKaO2pDKW5ZqSpdUDDLFDMDx5X45oVCkBEzJY0KCeJbumxB12MEPA8fQPdkF6487VSoYuwTDG4hdQqGZU9lYUZ91RGL/OJx1Vlr39BsghI2jIi/tAubX5DgwjLVJsMVioLHmqzHklEjNYe6KhG0muiKYSOpDdFxN3DKEPD5DRgFzW4dA8XZQpwAVOKXYdlqgu/fBZAYnDrRJiFl2sl/U9EnA0g6RBSz2Xt4RJgGFy6hxRJbwbeAkxsctdfiprcs4eDrESGTZEUsVIxZuHhHcBJknYjrSR6J8kbzHTOoiT320WAYuPtaUY2WkLtqG8JjVLs/WWMIc83OJzkTrtHRPxxhEVaIJG0WqQ1VV4dEc+3L7Hgof5LaKxKmrsnUrifv/U6kD+mNgmNMSOKpMtJy+CuS1rx8hhJXS1JbObxOkl3kFanRNIGko4fYZlqJSImZ7fhy0kTPZePiOWAHUlr8vSElYoxCw/fj4h9IuKpSItqvYURnuW/AHMMKXDrHICIuIW0uufCyBYRcUljIyJ+Q7p3esJjKsYsJETE+U3bL5MCKZoeiIgHm8K5vDJSsgwxf5f0RdISywB7A3/vtTL3VIxZSJD0jKSn8+cFSa9Ick+lNx6U9BYgJI1TWuhrQQzb0gl7koJOnkea3Dkxp/WEB+qNWQjJgR13Jpk2DhtpeRY0lNZdOZa0do5IYwyfjIi2a7EsqOR4X2VzjLqrx0rFmIUX1bh+j1k4yT2yH5PWf1lV0gbAf0bEx3upz2MqxiwkFIIhQjJtTwFqibw9WpD0pRa7IyIWxjGqo0lOCRdCckpQWtW0J6xUjFl4KAZDfBm4HxjMUsKjkTLzz+KkyATLsZA6PtTplGClYsxCQkTs15yW19c5ZgTEWSCJiO80fktaEvgksB9wFvCdqnILOP2cEkjn3LNTgsdUjFmIcdTq7snhSz5Dcq09DTg2Ip4cWamGjgqnhIN7DdPinooxCzdeX6cLJH0beB9wErBeRDw7wiINB2+KiL2LCZK2BHoK8++eijELMe6pdIekf5HWInmZ/stLLAwL+JVSd5h/91SMWcBpt77OMIuzQBMRo2ZC+FCF+bdSMWYBx+vrmB4ZkjD/Nn8ZY8wophHmv7b6rFSMMWb0IemYiPiUpF9TYj6NiJ7mONn8ZYwxo5Mz8neta+64p2KMMaY23FMxxphRTJ6TcgSwGkknNNynV++pPvdUjDFm9CLpLuDTwHQKMb96DfPvnooxxoxu5uYlhGvBPRVjjBnFSDqKNNnxV6RoAgBExE091WelYowxoxdJV5UkR0Rs3VN9VirGGGPqwmMqxhgzCmmK9wVpAuTjwHURcV+v9Y6a4GnGGGP6sWTTZynSEtS/kbRHr5Xa/GWMMWYeeZGyy3sNfe+eijHGmHnkFR97XtzNSsUYY8w8JL0T6Hn5ZA/UG2PMKETSbQyMTrws8Hdgn57r9ZiKMcaMPiSt1pQUwJyIeG5Q9VqpGGOMqQuPqRhjjKkNKxVjjDG1YaVijDGmNqxUjDHG1IaVijHDiKT/kXS3pOsk/VzSZyW9XtJvJU2XdK2kNXPeSZKulHSrpCskrTrS8hvTDisVY4YJSZsC7wc2AN5NirMEcBLwiYjYBPgscHxOPw44LSLWB84Evje8EhvTPXYpNmaYkPQpYJmI+HLe/i7wBPAF4O5C1sUiYi1JjwMrRsRLksYBD0fE8sMuuDFd4Bn1xowsY4CnImLDkRbEmDqw+cuY4eMPwE6SxktaAtgReB64T9JuAEpskPP/EWiEIN8buHa4BTamW2z+MmYYkXQEsBfwKPAY8FvgcuAEYEVgHHBWRHw1h9E4FVgemA3sFxF/Gwm5jekUKxVjhhFJS0TEs5JeDVwDfDQibhppuYypC4+pGDO8nCRpbWA8ybPLCsUsVLinYowxpjY8UG+MMaY2rFSMMcbUhpWKMcaY2rBSMcYYUxtWKsYYY2rDSsUYY0xt/D/umzOVLOJ8IwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df.sort_values(by='change').plot(y='change', kind='bar')\n", "ax.set_title(\"Total change in population per country in 2017\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With that information, we can estimate migration. (It is important to note that this estimated number will also absorb all inaccuracies or changes of the data gathering method, in the original data described as \"statistical adjustment\".)" ] }, { "cell_type": "code", "execution_count": 106, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df['migration'] = df['change'] - df['natural-change']" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pop17pop18birthsdeathsnatural-changebirth-ratedeath-ratenatural-change-ratechangemigration
geo
Belgium11351727114130581196901096661002410.5437709.6607330.8830376133151307
Bulgaria7101859705003463955109791-458369.00538915.459473-6.454085-51825-5989
Czechia1057882010610055114405111443296210.81453310.5345400.2799933123528273
Denmark574876957811906139753261813610.6800269.2647661.4152603242124285
Germany8252165382850000785000933000-1480009.51265511.306123-1.793469328347476347
\n", "
" ], "text/plain": [ " pop17 pop18 births deaths natural-change birth-rate \\\n", "geo \n", "Belgium 11351727 11413058 119690 109666 10024 10.543770 \n", "Bulgaria 7101859 7050034 63955 109791 -45836 9.005389 \n", "Czechia 10578820 10610055 114405 111443 2962 10.814533 \n", "Denmark 5748769 5781190 61397 53261 8136 10.680026 \n", "Germany 82521653 82850000 785000 933000 -148000 9.512655 \n", "\n", " death-rate natural-change-rate change migration \n", "geo \n", "Belgium 9.660733 0.883037 61331 51307 \n", "Bulgaria 15.459473 -6.454085 -51825 -5989 \n", "Czechia 10.534540 0.279993 31235 28273 \n", "Denmark 9.264766 1.415260 32421 24285 \n", "Germany 11.306123 -1.793469 328347 476347 " ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot the total change of the population per country in the top subfigure, and the contribution from natural changes and migration in the lower subfigure:" ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [ { "data": { "image/png": "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Qfn4oB5m1hoYBLQBegGPB0l+EvAH4BygNTA4qFvWGNXKqFGjWLVqFRkZGYwcORJ3Z+TIkbRt25bU1FSmT58erffuu++SkZHB+PHjyc3NpWvXrrRv35727dvH/QFf2sMPP0xqairp6eklkqoZM2aQlZXFiSeeyLvvvguQsP/s7Gy6d+/OhRdeSMuWLRkyZAjuDsDcuXNp2bIlHTp04IYbbojO7Pz4449cccUVZGVl0a5dO1599dVdYkt03n379mXTpk106NAhWlZs9OjRXHbZZXTp0oUWLVrw1FNPldlXdnY2p512Gn369OGkk07i6quvZufOnUDJmbqZM2fGTRCfeuopOnbsSHp6OhdccAGbN2/m/fffZ/bs2YwcOZKMjAxWrVrFsGHDmDlzJgBvv/027dq1IzU1lSuuuIKffvoJgJSUFO69917at29Pamoqn3/++S7jbdy4kU8++YT09PTo+Q4dOpSuXbty7LHH8vLLL3PbbbeRmppKr1692L59O1Dyrx6TJk3ixBNPJCsri+HDh0dn7IYNG8bVV19Np06duO2221i4cCFdunShXbt2nHzyyXzxxRds27aNX//610yfPp2MjAymT59eYtYvNzeXM844g7S0NHr06ME///nPaN833HADJ598Mscdd1z0WuyJRH1u2rSJHj16RK9j8Wur9PdV6ZnG66+/nsmTJ0fvxe2330779u2ZMWNG3Ptclu+++44BAwaQnp5Oenp69Htlx44dDB8+nDZt2nD22WezZcsWIP7rqKxz3LlzJ9deey0tW7bkrLPOonfv3tFjS5YsoVu3bnTo0IGePXuydu3aXeL75ptv6NKlC6mpqdx9993R8rKuSXn9xnvd5+Tk0LlzZ9LS0hgwYADr16+vcCwA48aNo2PHjqSlpXHvvfdGy/v370+HDh1o06YNEydOBCL3d8uWLWRkZDBkyJAyr/eECRNo3bo1aWlpDBo0aJeYdudn3d/+9jdatmxJ+/btefnll3fps9jq1avp3r07LVq04L777ouWF/+8yc7OpmvXrvTt25fWrVvv8rqFyGs8XgyjRo2Kntett96aMAYRqQbcfY+/gGTgbeAM4DXAgB+A2sHxLsDrwfbrQJdgu3ZQz4A7gDti+nw9aBdtG5TfEXwlHKOsrw4dOnhpy5cvL7F/7O2vVelXeb755htv06ZNdH/mzJl+5plnelFRkf/73//2Zs2a+b/+9S+fN2+e9+nTJ1rvxx9/9C1btri7+5dffunF51a6v2Jz5871Ll26+I8//uju7gUFBe7u3q1bN7/lllvc3X3OnDneo0ePMvufN2+eH3bYYb569WrfsWOHd+7c2d99913fsmWLJycn+9dff+3u7oMGDYrGe8cdd/hzzz3n7u7r16/3Fi1a+KZNm0rEl+i83d0POeSQuNfu3nvv9bS0NN+8ebPn5+d7cnKyr1mzpsxrePDBB/uqVau8qKjIzzzzTJ8xY8YuY8yYMcOHDh0aHWPcuHHu7v7DDz9E69x1110+YcIEd3cfOnRotJ/Y/eJr8sUXX7i7+2WXXebjx493d/djjz022v4Pf/iDX3nllbuc3zvvvOPnn39+ifM95ZRTfNu2bZ6Tk+P16tXzuXPnurt7//79/ZVXXone00WLFvmaNWv82GOP9YKCAt+2bZufeuqpft1110Vj7NOnjxcVFbm7e2FhoW/fvt3d3d98883ouM8880y0Ten9c8891ydPnuzu7pMmTfJ+/fpF+77wwgt9x44dvmzZMj/++OPj3r9i8+bNi17vRBL1uX37di8sLHR39/z8fD/++ON9586du3wflP7+ue666/yZZ55x98i9ePjhh6PHEt3n2NdCrIsuuih6X4uKinzDhg3+zTffeFJSkn/88cfu7j5w4MDo90BZr6N45zhjxgw/55xzfMeOHb527Vpv1KiRz5gxw7dt2+ZdunTx77//3t3dp02b5pdffvku8Z133nk+ZcoUd3f//e9/H32tJ7omFe239Os+NTXVs7Oz3d39nnvu8RtvvLHCsbz++us+fPhw37lzp+/YscP79Onjf//73939vz+rNm/e7G3atIlev9jv2bKu99FHH+1bt25198jPn9J292fdl19+6Tt37vSBAweWuI7FnnnmGT/qqKP8hx9+iMa+aNGiErHPmzfP69evH/25Ge91Gy+GH374wU888UTfuXNnwvNy3/X/NxGpmKrK9YDFXoFcuqpmyH8H3AbsDPYbAxvcvfjv4HnAMcH2McDq4JeBIqAwqB8tL9UmUXlZY5RgZiPMbLGZLa4Oj4B67733GDx4MElJSTRt2pRu3bqxaNGiXept376d4cOHk5qaysCBA8v90/Fbb73F5ZdfTv369QE44ogjosfOP/98ADp06EBubm65/WdlZZGcnEytWrXIyMggNzeXzz//nOOOOy76zNvBgwdH67/xxhuMGTOGjIwMunfvztatW6OzqZU979L69etHvXr1OPLIIzn99NNZuHBhmX1lZWVx3HHHkZSUxODBg3nvvffKHaPYZ599RteuXUlNTWXq1KksW7aszPpffPEFzZs358QTTwRg6NChzJ8/P3o83nWPtXbtWpo0aVKi7JxzzqFOnTqkpqayY8cOevXqBUBqauoufSxcuJBu3bpxxBFHUKdOHQYOHFji+MCBA0lKSgKgsLCQgQMH0rZtW26++eZyzw1gwYIFXHLJJQBcdtllJa5l//79qVWrFq1bt+a7776L275Tp05kZGRw1VVXMXv2bDIyMsjIyOD111+PWz9en+7OnXfeSVpaGmeeeSZr1qxJOF5ZLr744uh2Ze/zO++8wzXXXANAUlISDRs2BKB58+ZkZGQAJe9xWf3HO8f33nuPgQMHUqtWLY466ihOP/10IPL6+uyzzzjrrLPIyMjggQceIC8vb5f4/vGPf0S/Hy+77LJyr0VF+41VWFjIhg0b6NatG7Dra728WN544w3eeOMN2rVrR/v27fn888/56quvgMgMd3p6Op07d2b16tXR8tISXe+0tDSGDBnCn//8Z2rX3vVpv7vzs6558+a0aNECM+PSSy9NeF3OOussGjduTL169Tj//PPj/rzJysoq81nh8WJo2LAhdevW5corr+Tll1+O/lwXkeppj59DbmbnAt+7+xIz677nIVU9d58ITATIzMz0kMOpMuPHj6dp06YsXbqUnTt3Urdu3d3u6+CDDwYiyUTxeuKy+i+uX7pNIu7OSy+9xEknnbTbMSZS+tFe5T3qK1H92PJEn9o6bNgwZs2aRXp6OpMnTyY7O3s3Iv6veNc9Vr169XaJpbhNrVq1qFOnTjTuWrVqlXsfSjvkkEOi2/fccw+nn346r7zyCrm5uXTv3r1SfZUW+xpxj/9t9+GHHwKRP9tPnjw5ulyiMn1OnTqV/Px8lixZQp06dUhJSYl7/2rXrh1dngS73uPYa1FV97n090nxEoqy+q/IdYs93qZNGxYsWFBuLPG+LxJdk8r0uzvixeLu3HHHHfzP//xPifLs7GzeeustFixYQP369aO/0MeT6HrPmTOH+fPn85e//IUHH3yQTz/9tERiXpU/68o713jnHvvaq8h5FRUVUbt2bRYu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GbSfAvSP6WtKsD0T6BHUTzSGiIiIiEi1sbfWkB8DrI7ZzwvKEpU3Bja4e1Gp8hJ9BccLg/qJ+tqFmY0ws8Vmtjg/P38PTktEREREpGrVLq+Cmb0FHBXn0F3u/mrVh1T13H0iMBEgMzPTw4ghd0yfMIYVERERkf1cuQm5u5+5G/2uAZrF7CcHZSQoLwAamVntYBY8tn5xX3lmVhtoGNQvawwRERERkWphby1ZmQ0MCp6Q0hxoASwEFgEtgieqHETkTZmz3d2BecCFQfuhwKsxfQ0Nti8E3gnqJxpDRERERKTaKHeGvCxmNgB4DGgCzDGzHHfv6e7LzOxFYDlQBFzn7juCNtcDrwNJwNPuvizo7nZgmpk9AHwMTArKJwHPmdlKYB2RJJ6yxhARERERqS4sMtl84MjMzPTFixeHHYaIiIiI1HBmtsTdM8urp0/qFBEREREJkRJyEREREZEQKSEXEREREQmREnIRERERkRApIRcRERERCZESchERERGREB1wjz00s3zg20o0+QXwz70UDsCRwA/qP7T+dX/D6Xtf9K97W7P71/2tuf3r3tbs/g+0+3usuzcpr9IBl5BXlpnlV+RC7kH/iyvyfEr1v9f61/0Noe991L/ubc3uX/e3hvave1vj+9f9jUNLVsq3IewAZK/S/a25dG9rNt3fmkv3tmbT/Y1DCXn5CsMOQPYq3d+aS/e2ZtP9rbl0b2s23d84lJCXb6L6V/8HaP/VOXb1r/7Vf/XtvzrHrv7V/27RGnIRERERkRBphlxEREREJERKyEVEREREQqSEXEREREQkRErIRURERERCpIRcRERERCRESshFREREREKkhFxEREREJERKyEVEREREQqSEXEREREQkRErIRURERERCpIRcRERERCRESshFREREREKkhFxEREREJERKyEVEREREQqSEXEREREQkRErIRURERERCpIRcRERERCRESshFREREREKkhFxEREREJERKyEVEREREQqSEXEREREQkRErIRURERERCpIRcRERERCREtcMOYF878sgjPSUlJewwRERERKSGW7JkyQ/u3qS8egdcQp6SksLixYvDDkNEREREajgz+7Yi9bRkRUREREQkRErIRURERERCpIRcRERERCREB9wa8ni2b99OXl4eW7duDTsUEamAunXrkpycTJ06dcIORUREZI8pIQfy8vI49NBDSUlJwczCDkdEyuDuFBQUkJeXR/PmzcMOR0REZI8pIQe2bt2qZFykmjAzGjduTH5+ftihiIhISFJGzYlbnjumzz6OpGpoDXlAybhI9aHvVxERqUmUkIuIiIiIhEhLVuJI9GeQ3VWRP5+YGUOGDOHPf/4zAEVFRRx99NF06tSJ1157jdmzZ7N8+XJGjRpVJTE99NBD3HnnndH9k08+mffff79K+hYRERGRitMM+X7ikEMO4bPPPmPLli0AvPnmmxxzzDHR43379q1UMl5UVFTm8YceeqjEvpJxERERkXAoId+P9O7dmzlzIrPzL7zwAoMHD44emzx5Mtdffz0Aq1atonPnzqSmpnL33XfToEEDALKzs+natSt9+/aldevWAPTv358OHTrQpk0bJk6cCMCoUaPYsmULGRkZDBkyBCDah7szcuRI2rZtS2pqKtOnT4/23b17dy688EJatmzJkCFDcPd9cFVEREREajYl5PuRQYMGMW3aNLZu3conn3xCp06d4ta78cYbufHGG/n0009JTk4uceyjjz7i0Ucf5csvvwTg6aefZsmSJSxevJgJEyZQUFDAmDFjqFevHjk5OUydOrVE+5dffpmcnByWLl3KW2+9xciRI1m7di0AH3/8Mb/73e9Yvnw5X3/9Nf/4xz/2wlUQERERObAoId+PpKWlkZubywsvvEDv3r0T1luwYAEDBw4E4JJLLilxLCsrq8SzmSdMmEB6ejqdO3dm9erVfPXVV2XG8N577zF48GCSkpJo2rQp3bp1Y9GiRdG+k5OTqVWrFhkZGeTm5u7mmYqIiIhIMb2pcz/Tt29fbr31VrKzsykoKKh0+0MOOSS6nZ2dzVtvvcWCBQuoX78+3bt336NPIz344IOj20lJSeWuUxcRERGR8mmGfD9zxRVXcO+995KampqwTufOnXnppZcAmDZtWsJ6hYWFHH744dSvX5/PP/+cDz74IHqsTp06bN++fZc2Xbt2Zfr06ezYsYP8/Hzmz59PVlbWHpyRiIiIiJRFM+RxhPkpT8nJydxwww1l1vnd737HpZdeyoMPPkivXr1o2LBh3Hq9evXiySefpFWrVpx00kl07tw5emzEiBGkpaXRvn37EuvIBwwYwIIFC0hPT8fMGDt2LEcddRSff/551ZygiIiIiJRgB9qTMjIzM33x4sUlylasWEGrVq1CiqjyNm/eTL169TAzpk2bxgsvvMCrr74adlgi+1R1+74VEZGqk+gzY8KcVI3HzJa4e2Z59apsyYqZJZnZx2b2WrDf3Mw+NLOVZjbdzA4Kyg8O9lcGx1Ni+rgjKP/CzHrGlPcKylaa2aiY8rhj1HRLliwhIyODtLQ0Hn/8cf7v//4v7JBEREREZDdV5RryG4EVMfsPA+Pd/QRgPXBlUH4lsD4oHx/Uw8xaA4OANkAv4PEgyU8C/gCcA7QGBgd1yxqjRuvatStLly7lk08+Yf78+ZxwwglhhyQiIiIiu6lKEnIzSwb6AH8K9g04A5gZVJkC9A+2+wX7BMd7BPX7AdPc/Sd3/wZYCWQFXyvd/Wt33wZMA/qVM4aIiIiISLVQVTPkvwNuA3YG+42BDe5e/Fy8PKD4c+CPAVYDBMcLg/rR8lJtEpWXNUYJZjbCzBab2eL8/PzdPUcRERERkSq3xwm5mZ0LfO/uS6ognr3C3Se6e6a7ZzZp0iTscEREREREoqrisYenAH3NrDdQFzgMeBRoZGa1gxnsZGBNUH8N0AzIM7PaQEOgIKa8WGybeOUFZYwhIiIiIlIt7HFC7u53AHcAmFl34FZ3H2JmM4ALiaz5HgoUP5dvdrC/IDj+jru7mc0Gnjez3wI/B1oACwEDWphZcyIJ9yDgkqDNvARj7JnR8Z/rvfv9FVZtf8CsWbM48cQTad26dfmVK6hBgwZs2rSpQnWHDRvGueeey4UXXlhl41eF0aNH06BBA2699dY96mfDhg08//zzXHvttaHEkp2dzUEHHcTJJ58MhHu9u3fvziOPPEJmZsmnNqWkpLB48WKOPPLIEuVPPvkk9evX55e//OUufZV+3SbqW0RE5ECyNz+p83bgFjNbSWS996SgfBLQOCi/BRgF4O7LgBeB5cDfgOvcfUcw+3098DqRp7i8GNQta4wab9asWSxfvrxSbfRR9xW3YcMGHn/88dDGz87O5v333w9t/D1x9dVXx03Gi4qKdut1KyIiUtNVaULu7tnufm6w/bW7Z7n7Ce4+0N1/Csq3BvsnBMe/jmn/oLsf7+4nuftfY8rnuvuJwbEHY8rjjlHd5Obm0qpVK4YPH06bNm04++yz2bJlCwBPPfUUHTt2JD09nQsuuIDNmzfz/vvvM3v2bEaOHElGRgarVq2ie/fuFH/g0Q8//EBKSgoAkydPpm/fvpxxxhn06NGDTZs20aNHD9q3b09qamqFPlDo2WefJS0tjfT0dC677LJo+fz58zn55JM57rjjmDkz8rCbRP2XdY6LFi0iLS2NjIwMRo4cSdu2bQHYsWMHI0eOpGPHjqSlpfHHP/4xbnwPPvggJ554IqeeeipffPFFtDzRNalIv6NGjWLVqlXRmNw9GltqairTp0+vVCyrVq2iV69edOjQga5du0Y/+fQvf/kLnTp1ol27dpx55pl899135Obm8uSTTzJ+/HgyMjJ49913E17vtWvXctppp5GRkUHbtm2jdWP95je/oWPHjrRt25YRI0ZQ/GFg3bt35/bbbycrK4sTTzwx2nbLli0MGjSIVq1aMWDAgOh9imfs2LGkpqaSlZXFypUrgchfBh555JHoGDfddBOZmZk8/PDDu7xuAWbMmLFLDMuWLSMrKyv6vP2vvvoqYQwiIiLV3d6cIZdK+Oqrr7juuutYtmwZjRo14qWXXgLg/PPPZ9GiRSxdupRWrVoxadIkTj75ZPr27cu4cePIycnh+OOPL7Pvjz76iJkzZ/L3v/+dunXr8sorr/DRRx8xb948fvWrX0UTtHiWLVvGAw88wDvvvMPSpUt59NFHo8fWrl3Le++9x2uvvcaoUZHPayqr/0TnePnll/PHP/6RnJwckpKSov1PmjSJhg0bsmjRIhYtWsRTTz3FN998UyK+JUuWMG3aNHJycpg7dy6LFi0q91pXpN8xY8Zw/PHHk5OTw7hx43j55ZfJyclh6dKlvPXWW4wcOZK1a9dWOJYRI0bw2GOPsWTJEh555JHoUphTTz2VDz74gI8//phBgwYxduxYUlJSuPrqq7n55pvJycmha9euCa/3888/T8+ePaOxZWRk7HK+119/PYsWLeKzzz5jy5YtvPbaa9FjRUVFLFy4kN/97nfcd999ADzxxBPUr1+fFStWcN9997FkSeL3azds2JBPP/2U66+/nptuuilunW3btrF48WLuuuuuuK/beDE8+eST3HjjjeTk5LB48WKSk5MTxiAiIlLdVcWbOqUKNG/ePJpMdejQgdzcXAA+++wz7r77bjZs2MCmTZvo2bNnGb3Ed9ZZZ3HEEUcA4O7ceeedzJ8/n1q1arFmzRq+++47jjrqqLht33nnHQYOHBhdJ1zcD0D//v2pVasWrVu35rvvviuz/0TnuGHDBjZu3EiXLl0AuOSSS6IJ4xtvvMEnn3wSnQ0uLCzkq6++onnz5tEY3n33XQYMGED9+vUB6Nu3b7nXoyL9lvbee+8xePBgkpKSaNq0Kd26dWPRokUlxksUy6ZNm3j//fcZOHBgtO5PP0X+mJOXl8fFF1/M2rVr2bZtW5kxxLveHTt25IorrmD79u30798/bkI+b948xo4dy+bNm1m3bh1t2rThvPPOAyK/8EHJ19z8+fO54YYbAEhLSyMtLS1hTIMHD47+e/PNN8etc/HFFydsnyiGLl268OCDD5KXl8f5559PixYtyuxDRESkOlNCvp84+OCDo9tJSUnRZQLDhg1j1qxZpKenM3nyZLKzs+O2r127Njt3Rh4Dv3Xr1hLHDjnkkOj21KlTyc/PZ8mSJdSpU4eUlJRd6u9OzMWz4GX1n+gcE3F3Hnvssd36JQQSX5M97beydu7cSaNGjcjJydnl2P/7f/+PW265hb59+5Kdnc3o0aMT9hPvep922mnMnz+fOXPmMGzYMG655ZYS67e3bt3Ktddey+LFi2nWrBmjR48ucS2K+0xKStqt9xhEPp9r1+1Ysa+/ss4rNoZLLrmETp06MWfOHHr37s0f//hHzjjjjErHJyIiUh1oycp+buPGjRx99NFs376dqVOnRssPPfRQNm7cGN1PSUmJLi0onvmNp7CwkJ/97GfUqVOHefPm8e2335Y5/hlnnMGMGTMoKCgAYN26dWXWr2z/jRo14tBDD+XDDz8EYNq0adFjPXv25IknnmD79u0AfPnll/z4448l2p922mnMmjWLLVu2sHHjRv7yl79EjyW6JhXpt/T17dq1K9OnT2fHjh3k5+czf/58srKyKhTLYYcdRvPmzZkxYwYQSaaXLl0avV7HHBP5PKspU6ZE+yo9fiLffvstTZs2Zfjw4Vx11VV89NFHJY4XJ99HHnkkmzZtKvO1EXsezz//PBD5C80nn3ySsG7xWvrp06dH/8pRloqe19dff81xxx3HDTfcQL9+/cqMQUREpLrTDHk8e+Exhbvr/vvvp1OnTjRp0oROnTpFk5lBgwYxfPhwJkyYwMyZM7n11lu56KKLmDhxIn369EnY35AhQzjvvPNITU0lMzOTli1bljl+mzZtuOuuu+jWrRtJSUm0a9eOyZMnV1n/EFnTPXz4cGrVqkW3bt1o2DDy2MmrrrqK3Nxc2rdvj7vTpEkTZs2aVaJt+/btufjii0lPT+dnP/sZHTt2jB5LdE0q0m/jxo055ZRTaNu2Leeccw5jx45lwYIFpKenY2aMHTt2l2U+ZcUydepUrrnmGh544AG2b9/OoEGDSE9PZ/To0QwcOJDDDz+cM844I7qW/bzzzuPCCy/k1Vdf5bHHHkt47bKzsxk3bhx16tShQYMGPPvssyWON2rUiOHDh9O2bVuOOuqoEjElcs0113D55ZfTqlUrWrVqRYcOHRLWXb9+PWlpaRx88MG88MIL5fZd+nWbyIsvvshzzz1HnTp1OOqoo7jzzjvL7VtERKS6srLe0FcTZWZmevGTN4qtWLGCVq1ahRSRbNq0iQYNGgCRN1OuXbu2xJtHReLR962IyIErZdScuOW5YxJPSobBzJa4e7kftqEZcgndnDlz+N///V+Kioo49thjy5yBFxEREalplJBL6C6++OJyn8QhIiIiUlPpTZ2BA23pjkh1pu9XERGpSZSQE/kwm4KCAv0nL1INuDsFBQXUrVs37FBERESqhJasAMnJyeTl5ZGfnx92KCJSAXXr1tWnd4qISI2hhByoU6dOmZ+QKCIiIiKyt2jJioiIiIhIiJSQi4iIiIiESAm5iIiIiEiIlJCLiIiIiIRICbmIiIiISIiUkIuIiIiIhEiPPRQRERERiZEyak7c8twxffbKeJohFxEREREJkRJyEREREZEQKSEXEREREQmREnIRERERkRApIRcRERERCZESchERERGRECkhFxEREREJkRJyEREREZEQKSEXEREREQmREnIRERERkRApIRcRERERCZESchERERGRECkhFxEREREJ0R4n5GbWzMzmmdlyM1tmZjcG5UeY2Ztm9lXw7+FBuZnZBDNbaWafmFn7mL6GBvW/MrOhMeUdzOzToM0EM7OyxhARERERqS6qYoa8CPiVu7cGOgPXmVlrYBTwtru3AN4O9gHOAVoEXyOAJyCSXAP3Ap2ALODemAT7CWB4TLteQXmiMUREREREqoU9Tsjdfa27fxRsbwRWAMcA/YApQbUpQP9gux/wrEd8ADQys6OBnsCb7r7O3dcDbwK9gmOHufsH7u7As6X6ijeGiIiIiEi1UKVryM0sBWgHfAg0dfe1waF/A02D7WOA1THN8oKyssrz4pRTxhil4xphZovNbHF+fn7lT0xEREREZC+psoTczBoALwE3uft/Yo8FM9teVWPFU9YY7j7R3TPdPbNJkyZ7MwwRERERkUqpkoTczOoQScanuvvLQfF3wXITgn+/D8rXAM1imicHZWWVJ8cpL2sMEREREZFqoSqesmLAJGCFu/825tBsoPhJKUOBV2PKfxk8baUzUBgsO3kdONvMDg/ezHk28Hpw7D9m1jkY65el+oo3hoiIiIhItVC7Cvo4BbgM+NTMcoKyO4ExwItmdiXwLXBRcGwu0BtYCWwGLgdw93Vmdj+wKKj3G3dfF2xfC0wG6gF/Db4oYwwRERERkWphjxNyd38PsASHe8Sp78B1Cfp6Gng6TvlioG2c8oJ4Y4iIiIiIVBf6pE4RERERkRBVxZIVEREREalGUkbNiVueO6bP3h14dMME5YV7d9z9nGbIRURERERCpIRcRERERCREWrIiIiIiIlIRe2nJjWbIRURERERCpIRcRERERCRESshFREREREKkhFxEREREJERKyEVEREREQqSEXEREREQkRErIRURERERCpIRcRERERCRESshFREREREKkT+oUERER2c+kjJoTtzx3TJ99HInsC5ohFxEREREJkRJyEREREZEQacnKPqI/PYmIiIhIPErIRURERCpJE21SlbRkRUREREQkRJohFxEREZEqlfAvCHX3cSDVhGbIRURERERCpIRcRERERCRESshFREREREKkNeQiIiJS4+gpKFKdKCEXERGRuJTUiuwbWrIiIiIiIhIiJeQiIiIiIiHSkhUREZH/3959x1lWlPkf/3wZclZBTAxBUHRRFAckraKI4kpYggsIuou46G+VZEDRXSW4q6IoCBgQREAEA4IRQUAQBYQhDiAoEsQ1IGEBUUHw+f1RdaZP37ndM8ypurfv9Pf9evVr+p7ufs6ZG86pU/XUUzZ1HLLSBNsfGOxxmA2QG+RmZmaV1M7Bdo632aLBDXIzMzMbuEV2JcfaPfweQVgkLRINcknbAEcDM4ATIuKjQz4km2bcS2U2mvzZNbOpYOQb5JJmAMcBWwO/Aa6U9O2IuGm4R2ZmtuhzSoaNHPcw2xQ08g1yYGPg1oi4DUDSGcAOgBvkNteoX9RH/fhrGvUG4cTD9m/o/wdPsNHg98405bQJs5GiiBj2MXQiaRdgm4h4S378RuClEfGO1u/sA+wDMHPmzJfceeed88SpfVGcUKGT2tAu6iMSf0Kj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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tmp = df.sort_values(by='change')\n", "fig, axes = plt.subplots(2, 1, figsize=(12, 6))\n", "\n", "tmp.plot(kind='bar', y=['change'], sharex=True, ax=axes[0])\n", "axes[0].set_title(\"Population changes in 2017\")\n", "axes[0].legend(['total change of population (migration + natural change due to deaths and births'])\n", "tmp.plot(kind='bar', y=['migration', 'natural-change'], sharex=True, ax=axes[1])\n", "axes[1].legend(['Migration', \"natural change due to deaths and births\"])\n", "axes[1].set_xlabel(None);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Further reading\n", "\n", "There is a lot more to say about Pandas. The following resources may be useful but there are countless others available:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Further reading on `[]`, `.loc[]` and `.iloc[]` from Ted Petrou as a [Jupyter Notebook]( https://github.com/tdpetrou/Learn-Pandas/blob/master/Learn-Pandas/Selecting%20Subsets/01%20Selecting%20Subsets%20with%20%5B%20%5D%2C%20.loc%20and%20.iloc.ipynb) and [blog entry](https://medium.com/dunder-data/selecting-subsets-of-data-in-pandas-6fcd0170be9c).\n", "\n", "- Jake VanderPlas: Python Data Science Handbook [online](https://jakevdp.github.io/PythonDataScienceHandbook/)" ] } ], "metadata": { "anaconda-cloud": {}, "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.6.7" } }, "nbformat": 4, "nbformat_minor": 2 }