{ "metadata": { "name": "", "signature": "sha256:52698a8a7734d9b1fd4e794ae31dd00436df237720a76dfa9839e764150a25f6" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "\n", "# Following is optional: set plotting styles\n", "import seaborn; seaborn.set()" ], "language": "python", "metadata": { "internals": { "slide_helper": "subslide_end", "slide_type": "subslide" }, "slide_helper": "slide_end", "slideshow": { "slide_type": "slide" }, "trusted": true }, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": { "internals": { "slide_type": "subslide" }, "slideshow": { "slide_type": "slide" } }, "source": [ "# Data Analysis with NumPy and Pandas\n", "\n", "Outline:\n", "\n", "- Python Lists vs NumPy Arrays\n", "- Keys to Using NumPy\n", "- Pandas: Diving into the ``Series`` and ``Dataframe``\n", "- Example: Names in the Wild" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Python Lists vs. NumPy Arrays\n", "\n", "While the Python language is an excellent tool for general-purpose programming, with a highly readable syntax, rich and powerful data types (strings, lists, sets, dictionaries, arbitrary length integers, etc) and a very comprehensive standard library, it was not designed specifically for mathematical and scientific computing. Neither the language nor its standard library have facilities for the efficient representation of multidimensional datasets, tools for linear algebra and general matrix manipulations (an essential building block of virtually all technical computing), nor any data visualization facilities.\n", "\n", "In particular, Python lists are very flexible containers that can be nested arbitrarily deep and which can hold any Python object in them, but they are poorly suited to represent efficiently common mathematical constructs like vectors and matrices. In contrast, much of our modern heritage of scientific computing has been built on top of libraries written in the Fortran language, which has native support for vectors and matrices as well as a library of mathematical functions that can efficiently operate on entire arrays at once." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Review: Working with Lists\n", "\n", "Lists in Python are collections which store values for manipulation:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "L = [1, 2, 3, 4, 5]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "# Zero-based Indexing\n", "print(L[0], L[1])" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1 2\n" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "# Indexing from the end\n", "print(L[-1], L[-2])" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "5 4\n" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "# Slicing\n", "L[0:3]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "[1, 2, 3]" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "# The 0 can be left-out\n", "L[:3]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "[1, 2, 3]" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "# Slicing by a step size\n", "L[0:5:2]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "[1, 3, 5]" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "# Reversing with a negative step size\n", "L[::-1]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "[5, 4, 3, 2, 1]" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "# Lists of multiple types\n", "L2 = [1, 'two', 3.14]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "# Adding lists together will append them:\n", "L + L2" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "[1, 2, 3, 4, 5, 1, 'two', 3.14]" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Why are lists not good for data-intensive science?\n", "\n", "1. Due to Python ``list``'s flexibility, they are inefficient for storing large amounts of data\n", "2. Due to Python's dynamic nature, operations on large lists are inefficient." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import math\n", "\n", "# make a large list of theta values\n", "theta = [0.01 * i for i in range(1000000)]\n", "sin_theta = [math.sin(t) for t in theta]\n", "sin_theta[:10]" ], "language": "python", "metadata": { "internals": { "frag_helper": "fragment_end", "frag_number": 6, "slide_type": "subslide" }, "slideshow": { "slide_type": "slide" }, "trusted": true }, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ "[0.0,\n", " 0.009999833334166664,\n", " 0.01999866669333308,\n", " 0.02999550020249566,\n", " 0.03998933418663416,\n", " 0.04997916927067833,\n", " 0.059964006479444595,\n", " 0.06994284733753277,\n", " 0.0799146939691727,\n", " 0.08987854919801104]" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "%timeit [math.sin(t) for t in theta]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "10 loops, best of 3: 140 ms per loop\n" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's take a look at doing essentially the same operation using *NumPy*.\n", "\n", "By convention, we'll import ``numpy`` under the shorthand ``np``:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "theta = 0.01 * np.arange(1E6)\n", "\n", "sin_theta = np.sin(theta)\n", "sin_theta[:10]" ], "language": "python", "metadata": { "internals": { "frag_helper": "fragment_end", "frag_number": 13, "slide_helper": "subslide_end" }, "slide_helper": "slide_end", "slideshow": { "slide_type": "fragment" }, "trusted": true }, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "array([ 0. , 0.00999983, 0.01999867, 0.0299955 , 0.03998933,\n", " 0.04997917, 0.05996401, 0.06994285, 0.07991469, 0.08987855])" ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "%timeit np.sin(theta)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "100 loops, best of 3: 14.7 ms per loop\n" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "NumPy's version of this is nearly 10x faster than the list-based Python version, and it is arguably simpler as well!" ] }, { "cell_type": "markdown", "metadata": { "internals": { "frag_helper": "fragment_end", "frag_number": 13, "slide_helper": "subslide_end", "slide_type": "subslide" }, "slide_helper": "slide_end", "slideshow": { "slide_type": "slide" } }, "source": [ "## Keys to Using NumPy Effectively" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is a **lot** of info out there about how to use ``numpy``. Here I want to just briefly go over some of the key concepts as we progress to talking about using Python for real-world data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Creating Arrays\n", "\n", "There are many, many ways to create Python arrays. We'll demonstrate a few here:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# from a list\n", "np.array([1, 2, 3, 4])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "array([1, 2, 3, 4])" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "# range of numbers, like Python's range()\n", "np.arange(0, 10, 0.5)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 17, "text": [ "array([ 0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. ,\n", " 5.5, 6. , 6.5, 7. , 7.5, 8. , 8.5, 9. , 9.5])" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "# range of numbers between two limits\n", "np.linspace(0, 10, 5)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "array([ 0. , 2.5, 5. , 7.5, 10. ])" ] } ], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "# array of zeros\n", "np.zeros(10)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ "array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])" ] } ], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "# array of ones\n", "np.ones(10)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 20, "text": [ "array([ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])" ] } ], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "# array of random values\n", "np.random.rand(10)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 21, "text": [ "array([ 0.06244294, 0.34856405, 0.83474136, 0.06727073, 0.36735175,\n", " 0.45133983, 0.01958005, 0.08204342, 0.75092178, 0.46176409])" ] } ], "prompt_number": 21 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Operating on Arrays\n", "\n", "Operations on numpy arrays are done **element-wise**. This means that you don't explicitly have to write for-loops in order to do these operations!" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# define some arrays\n", "x = np.arange(5)\n", "y = np.random.random(5)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ "# addition \u2013 add 1 to each\n", "x + 1" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 23, "text": [ "array([1, 2, 3, 4, 5])" ] } ], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "# multiplication \u2013 multiply each by 2\n", "y * 2" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 24, "text": [ "array([ 1.51538329, 0.45745721, 1.06958137, 1.83321707, 1.53266941])" ] } ], "prompt_number": 24 }, { "cell_type": "code", "collapsed": false, "input": [ "# two arrays: everything is element-wise\n", "x / y" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 25, "text": [ "array([ 0. , 4.37199364, 3.73978093, 3.27293483, 5.21965137])" ] } ], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "# exponentiation\n", "np.exp(x)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 26, "text": [ "array([ 1. , 2.71828183, 7.3890561 , 20.08553692, 54.59815003])" ] } ], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "# trigonometric functions\n", "np.sin(x)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 27, "text": [ "array([ 0. , 0.84147098, 0.90929743, 0.14112001, -0.7568025 ])" ] } ], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "# combining operations\n", "np.cos(x) + np.sin(2 * np.pi * (x - y))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 28, "text": [ "array([ 1.99883243, -0.45077954, -0.19928728, -0.48967621, 0.34109413])" ] } ], "prompt_number": 28 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Indexing and Slicing Arrays\n", "\n", "Indexing works just like with Python lists:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "x" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 29, "text": [ "array([0, 1, 2, 3, 4])" ] } ], "prompt_number": 29 }, { "cell_type": "code", "collapsed": false, "input": [ "x[0], x[1]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 30, "text": [ "(0, 1)" ] } ], "prompt_number": 30 }, { "cell_type": "code", "collapsed": false, "input": [ "x[:3]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 31, "text": [ "array([0, 1, 2])" ] } ], "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [ "x[::2]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 32, "text": [ "array([0, 2, 4])" ] } ], "prompt_number": 32 }, { "cell_type": "code", "collapsed": false, "input": [ "x[::-1]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 33, "text": [ "array([4, 3, 2, 1, 0])" ] } ], "prompt_number": 33 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Unlike lists, NumPy arrays can have multiple dimensions, and the indexing and slicing works efficiently!" ] }, { "cell_type": "code", "collapsed": false, "input": [ "M = np.arange(20).reshape(4, 5)\n", "M" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 34, "text": [ "array([[ 0, 1, 2, 3, 4],\n", " [ 5, 6, 7, 8, 9],\n", " [10, 11, 12, 13, 14],\n", " [15, 16, 17, 18, 19]])" ] } ], "prompt_number": 34 }, { "cell_type": "code", "collapsed": false, "input": [ "M[1, 2]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 35, "text": [ "7" ] } ], "prompt_number": 35 }, { "cell_type": "code", "collapsed": false, "input": [ "M[:2, :2]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 36, "text": [ "array([[0, 1],\n", " [5, 6]])" ] } ], "prompt_number": 36 }, { "cell_type": "code", "collapsed": false, "input": [ "M[:, 1:3]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 37, "text": [ "array([[ 1, 2],\n", " [ 6, 7],\n", " [11, 12],\n", " [16, 17]])" ] } ], "prompt_number": 37 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Masking\n", "\n", "Another useful way of indexing arrays is to use masks. If we do a **boolean** operation on some array, the result is a boolean array:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "M" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 38, "text": [ "array([[ 0, 1, 2, 3, 4],\n", " [ 5, 6, 7, 8, 9],\n", " [10, 11, 12, 13, 14],\n", " [15, 16, 17, 18, 19]])" ] } ], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [ "M < 8" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 39, "text": [ "array([[ True, True, True, True, True],\n", " [ True, True, True, False, False],\n", " [False, False, False, False, False],\n", " [False, False, False, False, False]], dtype=bool)" ] } ], "prompt_number": 39 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Boolean mask arrays can be used to select portions of a larger array, and operate on them" ] }, { "cell_type": "code", "collapsed": false, "input": [ "M[M < 8] = 0\n", "M" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 40, "text": [ "array([[ 0, 0, 0, 0, 0],\n", " [ 0, 0, 0, 8, 9],\n", " [10, 11, 12, 13, 14],\n", " [15, 16, 17, 18, 19]])" ] } ], "prompt_number": 40 }, { "cell_type": "code", "collapsed": false, "input": [ "M[M == 12] *= 2\n", "M" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 41, "text": [ "array([[ 0, 0, 0, 0, 0],\n", " [ 0, 0, 0, 8, 9],\n", " [10, 11, 24, 13, 14],\n", " [15, 16, 17, 18, 19]])" ] } ], "prompt_number": 41 }, { "cell_type": "code", "collapsed": false, "input": [ "M[M % 2 == 0] = 999\n", "M" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 42, "text": [ "array([[999, 999, 999, 999, 999],\n", " [999, 999, 999, 999, 9],\n", " [999, 11, 999, 13, 999],\n", " [ 15, 999, 17, 999, 19]])" ] } ], "prompt_number": 42 }, { "cell_type": "markdown", "metadata": {}, "source": [ "As I mentioned, there is much more to numpy arrays, but this has covered the basic pieces needed here!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pandas: Series and Dataframes\n", "\n", "For data-intensive work in Python the [Pandas](http://pandas.pydata.org) library has become essential. Pandas originally meant **Pan**el **Da**ta, though many users probably don't know that.\n", "\n", "Pandas can be thought of as NumPy with built-in labels for rows and columns, but it's also much, much more than that.\n", "\n", "Pandas does this through two fundamental object types, both built upon NumPy arrays: the ``Series`` object, and the ``DataFrame`` object." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Making a Pandas ``Series``\n", "\n", "A Series is a basic holder for one-dimensional labeled data. It can be created much as a NumPy array is created:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s = pd.Series([0.1, 0.2, 0.3, 0.4])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 43 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The series has a built-in concept of an **index**, which by default is the numbers *0* through *N - 1*" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s.index" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 44, "text": [ "Int64Index([0, 1, 2, 3], dtype='int64')" ] } ], "prompt_number": 44 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can access series values via the index, just like for NumPy arrays:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s[0]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 45, "text": [ "0.10000000000000001" ] } ], "prompt_number": 45 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Unlike the NumPy array, though, this index can be something other than integers:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s2 = pd.Series(np.arange(4), index=['a', 'b', 'c', 'd'])\n", "s2" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 46, "text": [ "a 0\n", "b 1\n", "c 2\n", "d 3\n", "dtype: int64" ] } ], "prompt_number": 46 }, { "cell_type": "code", "collapsed": false, "input": [ "s2['c']" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 47, "text": [ "2" ] } ], "prompt_number": 47 }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this way, a ``Series`` object can be thought of as similar to an ordered dictionary mapping one typed value to another typed value.\n", "\n", "In fact, it's possible to construct a series directly from a Python dictionary:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "pop_dict = {'California': 38332521,\n", " 'Texas': 26448193,\n", " 'New York': 19651127,\n", " 'Florida': 19552860,\n", " 'Illinois': 12882135}\n", "populations = pd.Series(pop_dict)\n", "populations" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 48, "text": [ "California 38332521\n", "Florida 19552860\n", "Illinois 12882135\n", "New York 19651127\n", "Texas 26448193\n", "dtype: int64" ] } ], "prompt_number": 48 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that because Python dictionaries are an unordered object, the order of the resulting series will not match the order of the dictionary definition.\n", "\n", "We can index or slice the populations as expected:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "populations['California']" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 49, "text": [ "38332521" ] } ], "prompt_number": 49 }, { "cell_type": "code", "collapsed": false, "input": [ "populations['California':'Illinois']" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 50, "text": [ "California 38332521\n", "Florida 19552860\n", "Illinois 12882135\n", "dtype: int64" ] } ], "prompt_number": 50 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### DataFrames: Multi-dimensional Data\n", "\n", "A dataframe, essentially, is a multi-dimensional object to hold labeled data. You can think of it as multiple Series object which share the same index.\n", "\n", "One of the most common ways of creating a dataframe is from a dictionary of arrays or lists. Note that in the IPython notebook with the correct settings, the dataframe will display in a rich HTML view:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "data = {'state': ['California', 'Texas', 'New York', 'Florida', 'Illinois'],\n", " 'population': [38332521, 26448193, 19651127, 19552860, 12882135],\n", " 'area':[423967, 695662, 141297, 170312, 149995]}\n", "states = pd.DataFrame(data)\n", "states" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
areapopulationstate
0 423967 38332521 California
1 695662 26448193 Texas
2 141297 19651127 New York
3 170312 19552860 Florida
4 149995 12882135 Illinois
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 51, "text": [ " area population state\n", "0 423967 38332521 California\n", "1 695662 26448193 Texas\n", "2 141297 19651127 New York\n", "3 170312 19552860 Florida\n", "4 149995 12882135 Illinois" ] } ], "prompt_number": 51 }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we don't like what the index looks like, we can reset it:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "states = states.set_index('state')\n", "states" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
areapopulation
state
California 423967 38332521
Texas 695662 26448193
New York 141297 19651127
Florida 170312 19552860
Illinois 149995 12882135
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 52, "text": [ " area population\n", "state \n", "California 423967 38332521\n", "Texas 695662 26448193\n", "New York 141297 19651127\n", "Florida 170312 19552860\n", "Illinois 149995 12882135" ] } ], "prompt_number": 52 }, { "cell_type": "markdown", "metadata": {}, "source": [ "To access a Series representing a column in the data, use typical slicing syntax:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "states['area']" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 53, "text": [ "state\n", "California 423967\n", "Texas 695662\n", "New York 141297\n", "Florida 170312\n", "Illinois 149995\n", "Name: area, dtype: int64" ] } ], "prompt_number": 53 }, { "cell_type": "markdown", "metadata": {}, "source": [ "To access a row, you need to use a special row-location operator:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "states.loc['California']" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 54, "text": [ "area 423967\n", "population 38332521\n", "Name: California, dtype: int64" ] } ], "prompt_number": 54 }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you play around with DataFrames, you'll notice that many operations which work on NumPy arrays will also work on dataframes.\n", "\n", "For example there's arithmetic. Let's compute the area in square miles and add a column to the data" ] }, { "cell_type": "code", "collapsed": false, "input": [ "states['density'] = states['population'] / states['area']\n", "states" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
areapopulationdensity
state
California 423967 38332521 90.413926
Texas 695662 26448193 38.018740
New York 141297 19651127 139.076746
Florida 170312 19552860 114.806121
Illinois 149995 12882135 85.883763
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 55, "text": [ " area population density\n", "state \n", "California 423967 38332521 90.413926\n", "Texas 695662 26448193 38.018740\n", "New York 141297 19651127 139.076746\n", "Florida 170312 19552860 114.806121\n", "Illinois 149995 12882135 85.883763" ] } ], "prompt_number": 55 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can even use masking the way we did in NumPy:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "states[states['density'] > 100]" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
areapopulationdensity
state
New York 141297 19651127 139.076746
Florida 170312 19552860 114.806121
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 56, "text": [ " area population density\n", "state \n", "New York 141297 19651127 139.076746\n", "Florida 170312 19552860 114.806121" ] } ], "prompt_number": 56 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And we can do things like sorting the items in the array, and indexing to take the first two rows:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "states.sort_index(by='density', ascending=False)[:3]" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
areapopulationdensity
state
New York 141297 19651127 139.076746
Florida 170312 19552860 114.806121
California 423967 38332521 90.413926
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 57, "text": [ " area population density\n", "state \n", "New York 141297 19651127 139.076746\n", "Florida 170312 19552860 114.806121\n", "California 423967 38332521 90.413926" ] } ], "prompt_number": 57 }, { "cell_type": "markdown", "metadata": {}, "source": [ "One useful method to use is the ``describe`` method, which computes summary statistics for each column:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "states.describe()" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
areapopulationdensity
count 5.000000 5.000000 5.000000
mean 316246.600000 23373367.200000 93.639859
std 242437.411951 9640385.580443 37.672251
min 141297.000000 12882135.000000 38.018740
25% 149995.000000 19552860.000000 85.883763
50% 170312.000000 19651127.000000 90.413926
75% 423967.000000 26448193.000000 114.806121
max 695662.000000 38332521.000000 139.076746
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 58, "text": [ " area population density\n", "count 5.000000 5.000000 5.000000\n", "mean 316246.600000 23373367.200000 93.639859\n", "std 242437.411951 9640385.580443 37.672251\n", "min 141297.000000 12882135.000000 38.018740\n", "25% 149995.000000 19552860.000000 85.883763\n", "50% 170312.000000 19651127.000000 90.413926\n", "75% 423967.000000 26448193.000000 114.806121\n", "max 695662.000000 38332521.000000 139.076746" ] } ], "prompt_number": 58 }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are many, many more interesting operations that can be done on Series and DataFrame objects, but rather than continue using this toy data, we'll instead move to a real-world example, and illustrate some of the advanced concepts along the way." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example: Names in the Wild\n", "\n", "This example is drawn from Wes McKinney's excellent book on the *Pandas* library, O'Reilly's [Python for Data Analysis](http://shop.oreilly.com/product/0636920023784.do).\n", "\n", "We'll be taking a look at a freely available dataset: the database of names given to babies in the United States over the last century.\n", "\n", "First things first, we need to download the data, which can be found at http://www.ssa.gov/oact/babynames/limits.html.\n", "If you uncomment the following commands, it will do this automatically (note that these are linux shell commands; they will not work on Windows):" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# !curl -O http://www.ssa.gov/oact/babynames/names.zip" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 59 }, { "cell_type": "code", "collapsed": false, "input": [ "# !mkdir -p data/names\n", "# !mv names.zip data/names/\n", "# !cd data/names/ && unzip names.zip" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 60 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we should have a ``data/names`` directory which contains a number of text files, one for each year of data:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "!ls data/names" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "NationalReadMe.pdf yob1913.txt yob1947.txt yob1981.txt\r\n", "yob1880.txt yob1914.txt yob1948.txt yob1982.txt\r\n", "yob1881.txt yob1915.txt yob1949.txt yob1983.txt\r\n", "yob1882.txt yob1916.txt yob1950.txt yob1984.txt\r\n", "yob1883.txt yob1917.txt yob1951.txt yob1985.txt\r\n", "yob1884.txt yob1918.txt yob1952.txt yob1986.txt\r\n", "yob1885.txt yob1919.txt yob1953.txt yob1987.txt\r\n", "yob1886.txt yob1920.txt yob1954.txt yob1988.txt\r\n", "yob1887.txt yob1921.txt yob1955.txt yob1989.txt\r\n", "yob1888.txt yob1922.txt yob1956.txt yob1990.txt\r\n", "yob1889.txt yob1923.txt yob1957.txt yob1991.txt\r\n", "yob1890.txt yob1924.txt yob1958.txt yob1992.txt\r\n", "yob1891.txt yob1925.txt yob1959.txt yob1993.txt\r\n", "yob1892.txt yob1926.txt yob1960.txt yob1994.txt\r\n", "yob1893.txt yob1927.txt yob1961.txt yob1995.txt\r\n", "yob1894.txt yob1928.txt yob1962.txt yob1996.txt\r\n", "yob1895.txt yob1929.txt yob1963.txt yob1997.txt\r\n", "yob1896.txt yob1930.txt yob1964.txt yob1998.txt\r\n", "yob1897.txt yob1931.txt yob1965.txt yob1999.txt\r\n", "yob1898.txt yob1932.txt yob1966.txt yob2000.txt\r\n", "yob1899.txt yob1933.txt yob1967.txt yob2001.txt\r\n", "yob1900.txt yob1934.txt yob1968.txt yob2002.txt\r\n", "yob1901.txt yob1935.txt yob1969.txt yob2003.txt\r\n", "yob1902.txt yob1936.txt yob1970.txt yob2004.txt\r\n", "yob1903.txt yob1937.txt yob1971.txt yob2005.txt\r\n", "yob1904.txt yob1938.txt yob1972.txt yob2006.txt\r\n", "yob1905.txt yob1939.txt yob1973.txt yob2007.txt\r\n", "yob1906.txt yob1940.txt yob1974.txt yob2008.txt\r\n", "yob1907.txt yob1941.txt yob1975.txt yob2009.txt\r\n", "yob1908.txt yob1942.txt yob1976.txt yob2010.txt\r\n", "yob1909.txt yob1943.txt yob1977.txt yob2011.txt\r\n", "yob1910.txt yob1944.txt yob1978.txt yob2012.txt\r\n", "yob1911.txt yob1945.txt yob1979.txt yob2013.txt\r\n", "yob1912.txt yob1946.txt yob1980.txt\r\n" ] } ], "prompt_number": 61 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's take a quick look at one of these files:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "!head data/names/yob1880.txt" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Mary,F,7065\r", "\r\n", "Anna,F,2604\r", "\r\n", "Emma,F,2003\r", "\r\n", "Elizabeth,F,1939\r", "\r\n", "Minnie,F,1746\r", "\r\n", "Margaret,F,1578\r", "\r\n", "Ida,F,1472\r", "\r\n", "Alice,F,1414\r", "\r\n", "Bertha,F,1320\r", "\r\n", "Sarah,F,1288\r", "\r\n" ] } ], "prompt_number": 62 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each file is just a comma-separated list of names, genders, and counts of babies with that name in each year.\n", "\n", "We can load these files using ``pd.read_csv``, which is specifically designed for this:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "names1880 = pd.read_csv('data/names/yob1880.txt')\n", "names1880.head()" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
MaryF7065
0 Anna F 2604
1 Emma F 2003
2 Elizabeth F 1939
3 Minnie F 1746
4 Margaret F 1578
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 63, "text": [ " Mary F 7065\n", "0 Anna F 2604\n", "1 Emma F 2003\n", "2 Elizabeth F 1939\n", "3 Minnie F 1746\n", "4 Margaret F 1578" ] } ], "prompt_number": 63 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Oops! Something went wrong. Our algorithm tried to be smart, and use the first line as index labels.\n", "Let's fix this by specifying the index names manually:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "names1880 = pd.read_csv('data/names/yob1880.txt',\n", " names=['name', 'gender', 'births'])\n", "names1880.head()" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
namegenderbirths
0 Mary F 7065
1 Anna F 2604
2 Emma F 2003
3 Elizabeth F 1939
4 Minnie F 1746
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 64, "text": [ " name gender births\n", "0 Mary F 7065\n", "1 Anna F 2604\n", "2 Emma F 2003\n", "3 Elizabeth F 1939\n", "4 Minnie F 1746" ] } ], "prompt_number": 64 }, { "cell_type": "markdown", "metadata": {}, "source": [ "That looks better. Now we can start playing with the data a bit." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### GroupBy: aggregates on values\n", "\n", "First let's think about how we might count the total number of females and males born in the US in 1880.\n", "\n", "If you're used to NumPy, you might be tempted to use masking like this:\n", "\n", "First, we can get a mask over all females & males, and then use it to select a subset of the data:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "males = names1880[names1880.gender == 'M']\n", "females = names1880[names1880.gender == 'F']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 65 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can take the sum of the births for each of these:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "males.births.sum(), females.births.sum()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 66, "text": [ "(110491, 90993)" ] } ], "prompt_number": 66 }, { "cell_type": "markdown", "metadata": {}, "source": [ "But there's an easier way to do this, using one of Pandas' very powerful features: ``groupby``:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "grouped = names1880.groupby('gender')\n", "grouped" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 67, "text": [ "" ] } ], "prompt_number": 67 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This grouped object is now an abstract representation of the data, where the data is split on the given column.\n", "In order to actually do something with this data, we need to specify an **aggregation** operation to do across the data.\n", "In this case, what we want is the sum:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "grouped.sum()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
births
gender
F 90993
M 110491
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 68, "text": [ " births\n", "gender \n", "F 90993\n", "M 110491" ] } ], "prompt_number": 68 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can do other aggregations as well:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "grouped.size()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 69, "text": [ "gender\n", "F 942\n", "M 1058\n", "dtype: int64" ] } ], "prompt_number": 69 }, { "cell_type": "code", "collapsed": false, "input": [ "grouped.mean()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
births
gender
F 96.595541
M 104.433837
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 70, "text": [ " births\n", "gender \n", "F 96.595541\n", "M 104.433837" ] } ], "prompt_number": 70 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or, if we wish, we can get a description of the grouping:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "grouped.describe()" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
births
gender
Fcount 942.000000
mean 96.595541
std 328.152904
min 5.000000
25% 7.000000
50% 13.000000
75% 43.750000
max 7065.000000
Mcount 1058.000000
mean 104.433837
std 561.232488
min 5.000000
25% 7.000000
50% 12.000000
75% 41.000000
max 9655.000000
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 71, "text": [ " births\n", "gender \n", "F count 942.000000\n", " mean 96.595541\n", " std 328.152904\n", " min 5.000000\n", " 25% 7.000000\n", " 50% 13.000000\n", " 75% 43.750000\n", " max 7065.000000\n", "M count 1058.000000\n", " mean 104.433837\n", " std 561.232488\n", " min 5.000000\n", " 25% 7.000000\n", " 50% 12.000000\n", " 75% 41.000000\n", " max 9655.000000" ] } ], "prompt_number": 71 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Concatenating multiple data sources\n", "\n", "But here we've just been looking at a single year. Let's try to put together all the data in all the years.\n", "To do this, we'll have to use pandas ``concat`` function to concatenate all the data together.\n", "First we'll create a function which loads the data as we did the above data:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def load_year(year):\n", " data = pd.read_csv('data/names/yob{0}.txt'.format(year),\n", " names=['name', 'gender', 'births'])\n", " data['year'] = year\n", " return data" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 72 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's load all the data into a list, and call ``pd.concat`` on that list:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "names = pd.concat([load_year(year) for year in range(1880, 2014)])\n", "names.head()" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
namegenderbirthsyear
0 Mary F 7065 1880
1 Anna F 2604 1880
2 Emma F 2003 1880
3 Elizabeth F 1939 1880
4 Minnie F 1746 1880
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 73, "text": [ " name gender births year\n", "0 Mary F 7065 1880\n", "1 Anna F 2604 1880\n", "2 Emma F 2003 1880\n", "3 Elizabeth F 1939 1880\n", "4 Minnie F 1746 1880" ] } ], "prompt_number": 73 }, { "cell_type": "markdown", "metadata": {}, "source": [ "It looks like we've done it!\n", "\n", "Let's start with something easy: we'll use ``groupby`` again to see the total number of births per year:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "births = names.groupby('year').births.sum()\n", "births.head()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 74, "text": [ "year\n", "1880 201484\n", "1881 192700\n", "1882 221537\n", "1883 216952\n", "1884 243468\n", "Name: births, dtype: int64" ] } ], "prompt_number": 74 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use the ``plot()`` method to see a quick plot of these (note that because we used the ``%matplotlib inline`` magic at the start of the notebook, the resulting plot will be shown inline within the notebook)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "births.plot();" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 75 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The so-called \"baby boom\" generation after the second world war is abundantly clear!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also use other aggregates: let's see *how many* names are used each year:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "names.groupby('year').births.count().plot();" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAe8AAAFkCAYAAAAJ/rPWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4XOV99vHvaBvtsiyP5VW25eXxvmLjDYPBYMxOSEKA\nBEgbCJTSpFvaOiSlvKQ0aZNSeBPoS5qyJk1NWALGC6ttDHjfl8eWLVuWJduSrH0ZzWjO+8eMPQJs\nS7YljWZ0f66LC+uZM6Pf+V2jueec85xzXI7jICIiItEjLtIFiIiIyPlReIuIiEQZhbeIiEiUUXiL\niIhEGYW3iIhIlFF4i4iIRJmE9ixkjOkLbAKuAgLA86H/7wQestY6xpj7gPsBP/C4tXapMSYFeBnw\nALXAPdbacmPMTODJ0LIrrbWPdexqiYiIxK42t7yNMYnAfwL1gAv4BbDYWjsv9PPNxph+wMPAbGAh\n8IQxJgl4ENgWWvZF4JHQyz4L3GGtnQtcaoyZ3LGrJSIiErvas9v8X4FngNLQz1OttatD/14GLACm\nA2uttT5rbQ1QAEwE5gDLQ8suBxYYYzKAJGttYWh8Reg1REREpB3OGd7GmHuBMmvtytCQK/TfKbVA\nFpAJVJ9lvOYcY63HRUREpB3aOub9bcAxxiwAJgMvEDx+fUomUEUwjDNajWecYfxMY61f45wcx3Fc\nLldbi4mIiMSKs4beOcPbWnv5qX8bYz4EHgD+1RhzubV2FbAIeB9YD/zEGOMGkoExBCezrQWuAzaE\nll1tra01xjQbY/KBQuAa4NE218Dloqystq3FegSPJ0O9CFEvwtSLMPUiTL0Ii7ZeeDwZZ32sXbPN\nW3GAvwaeC01I2w28Gppt/hSwhuCu+MXWWq8x5hngBWPMGsAL3Bl6nQeAV4B4YIW1dsN51iEiItJj\nuaLormJONH1j6kzR9u2xM6kXYepFmHoRpl6ERVsvPJ6Ms+4210VaREREoozCW0REJMoovEVERKKM\nwltERCTKKLxFRESijMJbREQkyii8RUREoozCW0REJMoovEVERKKMwltERCTKKLxFRESijMJbREQk\nyii8RUREoozCW0REJMoovEVERKKMwltERCTKKLxFRESijMJbREQkyii8RUREoozCW0REJMoovEVE\nRKKMwltERCTKKLxFRESijMJbREQkyii8RUREoozCW0REJMoovEVERKKMwltERCTKKLxFRESijMJb\nREQkyii8RUREokxCWwsYY+KB54BRgAM8ACQBbwP7Qov9ylq7xBhzH3A/4Acet9YuNcakAC8DHqAW\nuMdaW26MmQk8GVp2pbX2sY5dNRERkdjUni3vG4CAtXYu8AjwE2Aq8HNr7fzQf0uMMf2Ah4HZwELg\nCWNMEvAgsM1aOw94MfQaAM8Cd4Re91JjzOQOXTMREZEY1eaWt7X2TWPM26EfhwJVwDTAGGNuBvYD\n3wdmAGuttT7AZ4wpACYCc4Cfhp6/HPiRMSYDSLLWFobGVwALgK0dslYiIiJdyN8SoLC0hj2HK9l7\nuBLHgW8tNAzok9Ypv6/N8Aaw1rYYY54HbgG+BgwEnrPWbjHGLAb+kWDwVrd6Wi2QBWQCNecYOzWe\n31YdHk9Ge8rtEdSLMPUiTL0IUy/C1IuwzuhFU7Ofv3pyNUeO1wLgcoHjwBMvb+Lv7p7OFNO3w39n\nu8IbwFp7rzEmF1gHzLbWloQeeh14GlgNtO5KBsGt9JpW42cag2CYV7VVQ1lZbXvLjWkeT4Z6EaJe\nhKkXYepFmHoR1lm9WL6uiCPHa5k0PIe5Ewdg8nqx42AF//3OHh597jPuumYU86cMvKB6z6bNY97G\nmG8ZY/4h9GMjEABeM8ZMD40tADYC64HLjDFuY0wWMAbYCawFrgstuwhYba2tBZqNMfnGGBdwDcHw\nFxERiRpNzX7e+ewwKe4EvnPjWKYZD+kpicwa14+/vWMKaSkJvLTC8v6m4g79ve2ZsPYqMNkYs4rg\nMevvAd8F/t0Y8yEwi+DM8uPAU8Aa4H1gsbXWCzwDjDPGrAG+A/xT6HUfAF4huCW/2Vq7oeNWS0RE\npPO9v6mYukYfC6cPJi058XOPjRzUix/efQnpKYn874cFlFbUd9jvdTmO02Ev1skc7foJ0m6wMPUi\nTL0IUy/C1Iuwju5Fo9fPD575BICfPjCb1OQzH4neuPcEv3pjJ8P6Z7L4W1OJj2vfJVY8ngzX2R7T\nRVpEREQuwLsbjlDf5OfaS/POGtwAl4zuy8yxuRSW1rDss6IO+d0KbxERkfNU3+RjxYYjpKckctW0\nQW0uf+fVo8hKT+LNjwspOn7xW/8KbxERkfP02a7jNHr9LLo0j+Sktk/cSk9J5NuLxtAScHji5c38\n9zt7KDhazYUeum73qWIiIiIStONgBQAzxuS2+zkTh+fwrYWGdz49zJrtpazZXsrAPmlcPX0ws8bl\nkpgQ3+7XUniLiIicB5+/hb2HKxnQJ42crOTzeu78KQO5fPIA9hyqZM32EjbZMp5ftpfXVh9kwbRB\nXD19MO7EtkNc4S0iInIebFEVzf4AE/J7X9Dz41wuxg3rzbhhvams9fLuxiOs2nqU11Yf5GBJDQ/f\nNgGX66wTzYOvcUG/WUREpIfaHtplPiE/56JfKzvDzdfnj+BfH5zDmCHZbC0oZ+WGI20+T+EtIiJy\nHnYePIk7MZ6Rg3p12GumJidw/03jyExL4tWPDnCgpPqcyyu8RURE2qmsqpFjJxsYMySbxISOjdCs\ntCTuv3EsgYDDs2/sOueyCm8REZF22nF6l/mFHe9uy9ihvblxzlAqaprOuZwmrImIiLTTzoMngY45\n3n02N80ZxrGTDedcRlveIiIi7eDzB9hzuJL+Oan06ZXSab8nLs7FAzePP/cynfbbRUREYsi+4iq8\nvhbGD+u8re72UniLiIi0w7aCcgAmDO+c493nQ+EtIiLShp2FFXy4+SjpKYmYwR13itiFUniLiIic\nw+Fjtfzy9Z24XC7+/CsTzusa5J1F4S0iInIW5VWNPLlkG83NLdx/41hGdYOtblB4i4iInJHP38K/\nL9lGdX0z37hqJJeM7hvpkk5TeIuIiJzBqq0llFY0cMXkAVw9fXCky/kchbeIiMgXNPtaWPrpYdyJ\n8dwyLz/S5XyJwltEROQLPtpylOr6ZhZcMojM1KRIl/MlCm8REZFWvM0tvPPZYZKT4lk4Iy/S5ZyR\nwltERKSVD7YUU9Pg45rpg0lPSYx0OWek8BYREQlp9PpZ9lkRKe4Erulmk9RaU3iLiIiEvLX2EHWN\nPhbOGExqcvfc6gaFt4iICAB7Dp1kxfoi+mandOutblB4i4iIUNfo49dL9+Byubj/xnEkJyVEuqRz\nUniLiEiP5jgOLyzfS2Wtl5svG0b+gMxIl9QmhbeIiPRoH205yiZbxshBWVw/c0iky2mX7r1fQERE\npJM0NPn43Xv7WbvzGCnuBO67cSxxca5Il9UubYa3MSYeeA4YBTjAA4AXeB4IADuBh6y1jjHmPuB+\nwA88bq1daoxJAV4GPEAtcI+1ttwYMxN4MrTsSmvtYx29ciIiImeyq/Akv3lnD5W1Xob0y+A7N4yl\nT1ZKpMtqt/bsNr8BCFhr5wKPAP8M/BxYbK2dB7iAm40x/YCHgdnAQuAJY0wS8CCwLbTsi6HXAHgW\nuCP0upcaYyZ34HqJiIic0ca9J/jF77dSU9/MLXOH8cNvTWNgn7RIl3Ve2gxva+2bwHdDPw4FKoFp\n1trVobFlwAJgOrDWWuuz1tYABcBEYA6wPLTscmCBMSYDSLLWFobGV4ReQ0REpNPsO1LF/3trN0lJ\n8fz9XVO5ae4wEuKjb/pXuyq21rYYY54H/gN4heDW9im1QBaQCVSfZbzmHGOtx0VERDrFkeO1PP2H\n7TiOw0O3jmf4wOiNnXZPWLPW3muMyQXWA8mtHsoEqgiGcUar8YwzjJ9prPVrnJPHk9HWIj2GehGm\nXoSpF2HqRZh6AZW1TTz6H6upb/LzvdunML+b3nCkvdozYe1bwCBr7RNAI9ACbDTGXG6tXQUsAt4n\nGOo/Mca4CYb7GIKT2dYC1wEbQsuuttbWGmOajTH5QCFwDfBoW7WUldWe/xrGII8nQ70IUS/C1Isw\n9SJMvQh6eaXlRGUjt8wdxqRh2VHRk3N96WrPlverwPPGmFVAIvA9YC/wXGhC2m7g1dBs86eANQR3\nxy+21nqNMc8ALxhj1hCcpX5n6HUfILgLPh5YYa3dcEFrJyIicg7+lgDr95ygV7qb62dHx3ncbWkz\nvK21jcDtZ3joijMs+2vg12d4/tfPsOw6YFZ7CxUREbkQuwpPUtfo46bL8omPi77JaWcSG2shIiJy\nFp/uOgbAFdMGRbiSjqPwFhGRmNXo9bNlfzm5vVMZMahXpMvpMApvERGJWZv3leHzB5g1LheXKzou\nfdoeCm8REYlZp3aZzxzXL8KVdCyFt4iIxKTKWi97DlUyYmAWfXtFz3XL20PhLSIiMWn9nuM4wKxx\nuZEupcMpvEVEJOb4WwKs3lZCfJyL6WMU3iIiIt3e258corSigcsm9ic9JTHS5XQ4hbeIiMSUw8dq\nefuTw+Rkuvna/BGRLqdTKLxFRCRm+PwB/mvpbgKOw73XjSHF3e77b0UVhbeIiMSMtz4ppLisnium\nDGTc0N6RLqfTKLxFRCQmHC2v551Pi8jJTOZrVwyPdDmdSuEtIiIx4Z1PDxNwHO5cMDJmd5efovAW\nEZGoV17VyLrdxxnoSWPSyD6RLqfTKbxFRCTqLV9fRMBxuG7mEOJi6BrmZ6PwFhGRqFZd38ya7aX0\nyUpmxpi+kS6nSyi8RUQkqr238Qg+f4BFl+YRH9czYq1nrKWIiMSkhiY/H2wuJjMtibkT+0e6nC6j\n8BYRkai1bN1hGr0tXDN9MIkJ8ZEup8sovEVEJCpt3V/O0k8Pk5OZzPwpAyNdTpdSeIuISNQprajn\nubd3kZQQx59/ZULMn9f9RQpvERGJKg1Nfp7+ww4avS3ce91ohvTLiHRJXU7hLSIiUaPR6+eZN3dy\n7GQD187IY+bYfpEuKSJ61n4GERGJWiXl9fzy9R2UVjQwIT+H267Ij3RJEaPwFhGRbq0lEGDD3hO8\nsMzi9bWwcMZgbrt8eI85p/tMFN4iItIt1DX6KDpeS3VdM1X1Xsqqmig6XkvxiTqa/QHcSfH82S3j\nuWR0z7iK2rkovEVEJOJKyuv555c20eD1f248Ps7FwD5pDOmXwbWX5tE/Jy1CFXYvCm8REYmo+iYf\nT/9hOw1ePwsuGcSAnDSy0pPIyUxmQJ80EuJ77u7xs1F4i4hIxAQCDv/55i6OVzayaGYeX7tiRKRL\nigr6OiMiIhHz6qoD7Cw8GZw9Pm94pMuJGufc8jbGJAK/AYYAbuBxoBh4G9gXWuxX1tolxpj7gPsB\nP/C4tXapMSYFeBnwALXAPdbacmPMTODJ0LIrrbWPdfyqiYhId+VvCfD66oMsX1dEbu9UvnvTWOLi\nYv8+3B2lrS3vu4Aya+084Frgl8BU4OfW2vmh/5YYY/oBDwOzgYXAE8aYJOBBYFvo+S8Cj4Re91ng\nDmvtXOBSY8zkDl8zERHplkrK63n8xY0sW1dE314p/MVtE0hNTox0WVGlrWPeS4BXQ/+OA3zANMAY\nY24G9gPfB2YAa621PsBnjCkAJgJzgJ+Gnr8c+JExJgNIstYWhsZXAAuArR2zSiIi0l2t2V7Cyyv3\n4fMHuGxif75x1cged13yjnDOjllr6wFCgbsE+CGQDDxnrd1ijFkM/CPB4K1u9dRaIAvIBGrOMXZq\nvOdeJkdEpAdwHIe31h7ijY8LSUtO4P4bxzLN6HztC9Xm1x1jzGDgNeCX1tr/McZkWWtPBfXrwNPA\naqD1leEzgCqCIZ1xjjEIhnlVe4r1eHrexefPRr0IUy/C1Isw9SIs0r1oCTg8+9p2ln96iL69U3ns\n/lkM9KRHpJZI96KjtDVhLRdYCfyZtfbD0PByY8xfWGs3ENzdvRFYD/zEGOMmuGU+BtgJrAWuAzYA\ni4DV1tpaY0yzMSYfKASuAR5tT7FlZbXnuXqxyePJUC9C1Isw9SJMvQiLdC8cx+GZN3ay0ZaR1zed\n7399Ekk4Eakp0r04X+f6otHWlvdigru6f2yM+XFo7PvAvxtjfEApcL+1ts4Y8xSwhuCx8cXWWq8x\n5hngBWPMGsAL3Bl6jQeAV4B4YEXoi4CIiMSYHQcr2GjLGDkoi+9/bZKOb3cQl+M4ka6hvZxo+sbU\nmaLt22NnUi/C1Isw9SIs0r346SubsUeq+Kc/mcHgvpHZVX5KpHtxvjyejLOeO6eLtIiISKc4UFKN\nPVLF+PzeEQ/uWKPwFhGRTrH8syIArrt0SIQriT0KbxER6XDHTjaweV8Zw/pnYPJ6RbqcmKPwFhGR\nDrdifREOsOjSIbhcuuxpR1N4i4hIh6qu87J2xzH6ZqcwdZQn0uXEJIW3iIh0qI93lOJvCbBw+mDd\nbKSTKLxFRKRDbd5XTpzLxfQxuZEuJWYpvEVEpMNU1nopLK3B5PUiPUV3CussCm8REekwWwvKAZg8\nsk+EK4ltCm8REekwW/aXATBF4d2pFN4iItIhGr1+9h6uJK9vOn2yUiJdTkxTeIuISIfYcbACf4uj\nXeZdQOEtIiIdYuv+4PFundvd+RTeIiJy0fwtAbYdqCAnM1k3IekCCm8REblo9kgVjV4/U0b20eVQ\nu4DCW0RELtqWfZpl3pUU3iIiclG8zS2s232c9JRERg7WHcS6gsJbREQuysc7Sqlv8nPl1IEkxCtW\nuoK6LCIiF6wlEGDF+iISE+K4ctqgSJfTYyi8RUTkgm3eV055dRNzJvQnMzUp0uX0GApvERG5II7j\nsHzdYVzAwumDI11Oj6LwFhGRC7LvSBWFpbVMGeUht3dqpMvpURTeIiJyQZatKwLg2kvzIlxJz6Pw\nFhGR83b4WC3bD1QwYmAWIwZmRbqcHkfhLSIi58VxHH773j4AbrlsWISr6ZkU3iIicl427D3B/uJq\npozsw9ihvSNdTo+k8BYRkXZr9rWw5MMCEuJd3H7liEiX02MpvEVEpN2Wry+iosbL1dMH0zdbM8wj\nReEtIiLtcrKmiXc+O0xWWhI3zBoa6XJ6NIW3iIi0KRBw+M07e2j2BfjK5fmkuBMiXVKPpvAWEZE2\nvflxIbsPVTJpeA5zJvSPdDk93jm/OhljEoHfAEMAN/A4sAd4HggAO4GHrLWOMeY+4H7ADzxurV1q\njEkBXgY8QC1wj7W23BgzE3gytOxKa+1jnbFyIiJy8bYfqOCtTw7RJyuZ79w4ljiXK9Il9XhtbXnf\nBZRZa+cB1wK/BH4OLA6NuYCbjTH9gIeB2cBC4AljTBLwILAttOyLwCOh130WuMNaOxe41BgzuYPX\nS0REOkB5dSPPvbWLhPg4Hrp1AmnJiZEuSWg7vJcAP261rA+Yaq1dHRpbBiwApgNrrbU+a20NUABM\nBOYAy0PLLgcWGGMygCRrbWFofEXoNUREpBvx+QP86vWd1Df5uevqkQzplxHpkiTknLvNrbX1AKHA\nXUJwy/nfWi1SC2QBmUD1WcZrzjF2ajy/PcV6PHrjnKJehKkXYepFmHoRdqG9+NUftnHoWC1XTR/M\nbQsMrhjYXR4r74s2pwsaYwYDrwG/tNb+zhjzs1YPZwJVBMO4dUcyzjB+prHWr9GmsrLa9iwW8zye\nDPUiRL0IUy/C1Iuws/Ui4DgAZz1+/emuYyz75BCDPOl8dV4+5eV1nVpnV4i298W5vmicc7e5MSYX\nWAn8wFr7fGh4izHm8tC/FwGrgfXAZcYYtzEmCxhDcDLbWuC61staa2uBZmNMvjHGBVwTeg0REelk\nXl8LK9cX8de/XMuPfr2O/cVf3nY6WlbHC8v3kuKO56GvjMedGB+BSuVc2tryXkxwV/ePjTGnjn1/\nD3gqNCFtN/BqaLb5U8Aagl8IFltrvcaYZ4AXjDFrAC9wZ+g1HgBeAeKBFdbaDR26ViIiQksgwP4j\nlRSXVtPQ5OfYyQY+2FRMTYOPpMQ4auqa+ZeXN3Pl1EHcOi+f8upG9hdX8+6GIzT7Ajx06wRydRW1\nbsnlhHadRAEnmnZ3dKZo2/XTmdSLMPUiTL2A+iYfTy7ZxoGjNZ8bT3HHs2DaYK6ePphjFQ3897I9\nlFY04AJap8H1s4Zw2+XDu7TmzhZt7wuPJ+Oskwx0iRwRkRhTXefl57/fRnFZHZeMyWWwJ41UdwLp\nKYlMyO9Nauh0rxGDsnj029N5+5PDbD9QweC+6YwcnMWoQb3I7a0t7u5M4S0iEkPKqxv5t//ZyonK\nRq6cOpDv3TGNioqzTzZLTIjn1nn53DqvXSf9SDeh8BYRiRFeXws/++0WyqubuGH2EG69LJ+4uOg/\nvUu+TOEtIhIj3t1whPLqJq6+ZDBfmRdbx6vl83RjEhGRGFDT0Mw7nx0mPSWRm+cOi3Q50skU3iIi\nMeDttYdoam7hxjlDSU3WTtVYp/AWEYlyJyob+HDLUTy9kpk/ZWCky5EuoPAWEYlyr60+SEvA4bbL\nh5MQr4/1nkD7VkREosyJygbWbC+lvLqJiuomCo5WM7RfBpeM7hvp0qSLKLxFRKKIzx/g57/fSllV\nExC8sUj/nFS+tdCc9SYjEnsU3iIiUeT9TcWUVTUxb1J/bpg9lOwMN/Fx2lXe0yi8RUSiRE1DM299\nUkhacgJfvWIE6SmJkS5JIkRf10REosSbHxfS6G3hpjnDFNw9nMJbRCQKHC2vZ9WWEnJ7pzJ/qk4H\n6+kU3iIi3ZzjOPzvBwUEHIevz9fpYKLwFhHp9v6w6iA7DlYwZkg2k0f0iXQ50g0ovEVEurGlnx7i\nnc8Ok5udwv03jcOl08EEhbeISLf1weZi/rDqIL0z3fzNN6aQlZYU6ZKkm1B4i4h0Q1v3l/Pyyn1k\npibyN9+YQk5WcqRLkm5E4S0i0s00NPl5YcVeEuJd/NXtk+nXOzXSJUk3o/AWEelmXl11gOq6Zm6Y\nPZS83IxIlyPdkMJbRKQb2Xekio+2HGVgnzSumzkk0uVIN6XwFhHpJnz+AC8s34sLuGfRaJ3PLWel\nd4aISDex9NNDlFY0MH/qQEYMzIp0OdKNKbxFRLqB3YdO8tYnh+id6ea2y4dHuhzp5hTeIiIRVlnr\n5T//uIs4l4sHbx5Pils3fJRzU3iLiESQvyXAM2/spLbBx+1XjmC4dpdLOyi8RUQi5NQNRwqOVjNj\nTF+umjYo0iVJlNC+GRGRCCitqOfllfvYc7iS/jmp3LtotK5bLu2m8BYR6UKVtV7e31TMivVFtAQc\nJg7P4e6FhuQkfRxL+7Xr3WKMuRT4F2vtfGPMFOAtYH/o4V9Za5cYY+4D7gf8wOPW2qXGmBTgZcAD\n1AL3WGvLjTEzgSdDy6601j7WsaslItJ9HDvZwNodpew4UEHRiToAcjKTuXPBSCaP7KMtbjlvbYa3\nMeYHwDeButDQNOAX1tpftFqmH/Bw6LEU4GNjzLvAg8A2a+1jxpjbgUeA7wPPArdaawuNMUuNMZOt\ntVs7csVERLqDkvJ6fvLSJhq9fhLiXYwb1ptJw3O4bNIA3InxkS5PolR7trwLgK8AL4V+ngaMMsbc\nTHDr+/vADGCttdYH+IwxBcBEYA7w09DzlgM/MsZkAEnW2sLQ+ApgAaDwFpGYUlPfzJNLttHo9XPn\ngpFcNnEA7iQFtly8NmebW2tfI7h7+5R1wN9Yay8HDgL/CGQA1a2WqQWygEyg5hxjrcdFRGJGs6+F\np1/bTnl1EzfNGcqCSwYruKXDXMgMidettaeC+nXgaWA1wQA/JQOoIhjSGecYg2CYV7XnF3s8urvO\nKepFmHoRpl6ERbIXjuPws5c2cuBoDVdMHcR3bp0Y0ePael+ExUovLiS8lxtj/sJau4Hg7u6NwHrg\nJ8YYN5AMjAF2AmuB64ANwCJgtbW21hjTbIzJBwqBa4BH2/OLy8pqL6Dc2OPxZKgXIepFmHoRFule\nbC0o5+NtJYwclMUdV46gvLyu7Sd1kkj3ojuJtl6c64vG+YS3E/r/A8AvjTE+oBS431pbZ4x5ClhD\ncFf8Ymut1xjzDPCCMWYN4AXubPUarwDxwIrQFwERkZjw/sYjANx19SgSE3QtLOl4Lsdx2l6qe3Ci\n6RtTZ4q2b4+dSb0IUy/CItmLkvJ6Hvn1OkYN7sXf3zU1IjW0pvdFWLT1wuPJOOuxFn0lFBHpQO9v\nLgZggS51Kp1I4S0i0kEamvx8suMYvTPdTBnVJ9LlSAxTeIuIdJC1O0rx+lqYP2Ug8XH6eJXOo3eX\niEgHCDgO728uJiE+jnmTBkS6HIlxCm8RkQ6w82AFJyobmTkul4zUpEiXIzFO4S0icpEcx+GttYcA\nTVSTrqHwFhG5SFv3l3OgpIZpxkNebmxcwUu6N4W3iMhFCAQc/rD6IC4XfGVefqTLkR5C4S0ichE+\n3XWMkvJ65k7oT/+ctEiXIz2EwltE5AL5/AHeWHOQhPg4bp47LNLlSA+i8BYRuUAfbTlKRY2Xq6YN\npHdmcqTLkR5E4S0icgGOnWzgzY8LSXHHc/2soZEuR3oYhbeIyHlqaPLx1KvbafD6uXPBKNJTEiNd\nkvQwCm8RkfPQEgjw7Ju7OHaygWtn5DFnQv9IlyQ9kMJbRHo8x3Gorm9u17JLPjzAzsKTTByew1ev\nGN7JlYmcWUKkCxAR6Wo+f4BjJxs4WFLNnsOV7C2qoqa+mYUzBvP1+SNwub58G+XSinr+94MCth2o\noH9OKvffOI64uLPeblmkUym8RSRmVdZ6+XTXMWrqm6lv8lHf6Od4ZQPHTzYScJzTy2WlJZGd4WbF\n+iMAnwvwukYfb39yiPc3FdMScDCDe/Gn148hNVkfnxI5eveJSMzx+lr449pC3vnsMM2+wOceS3HH\nkz8gk4GeNPJyMxid14t+vVOpqW/mZ7/bwor1R3Dh4vIpA1i54Qhrd5TS7AvQJyuZ268cwdRRnjNu\nmYt0JYW3iMSM+iYf6/ecYNm6IsqrGslMS+L2K4cxtF8GackJpCYnkpaccMbwzUp384M7pvCz321h\n+foilq+lSoRlAAAbZElEQVQvAiAn083V8/KYP2UAiQnxXb1KImek8BaRqOY4DlsLylm74xjbD5Tj\nb3FIiI9j0cw8bpg1lBR3+z/mstLd/O0dU3jq1e3Ex7m4evpgphkP8XGa2yvdi8JbRKLWgZJq/uf9\n/Rw4WgPAQE8as8b14/rLhuP4/Bf0mr3S3fz43ukdWaZIh1N4i0i3d6KygaWfHubYyQZ6pbvJznBT\nWetlw94TAEwzHm6cPfT07Tj79EqhrKw2kiWLdCqFt4h0WxXVTbz1ySHW7iilJeB86fEhuRl846oR\nmLzsCFQnEjkKbxHpdqrqvCz95DCrth3F3+LQr3cqt1w2jKmjPNQ2+Kiq8+LzBxgxKIs4zfyWHkjh\nLSLdxsmaJt7bWMz7m4vx+QN4eiVz05xhzByXe3rSWHZGcLe5SE+m8BaRiKppaGaTLWPdrmPsK64G\noHemmxtnD2XOhP4kxGumt8gXKbwl6vn8LRw6Vktdg4+h/TPPuVV25EQdR8vrmDLCgztJ5+xGytGy\nOrYWlLOtoIIDR6txABcwOq8XM8f1Y9a4fiQmKLRFzkbhLVEpEHBYtu4wOw9VUnCk6nOTmXIy3Qwf\nmIXJy2bMkGxys1MoqQjee3ljaHZyZmoi188ayhW68EaX8bcE2GhP8MGmoxQcDW5hu1wwclAWU0Z5\nmDEmV7vDRdpJ4S1Rx+tr4f/9cRdb9pcTH+ciLzed4QOzyExNorC0hoKj1azfc4L1e4JBnZWWRE19\nMw4wtF8GJq8XH20t4Xfv72f5+iKumT6YuRP7k5asezJ3hqo6Lx9tOcqqrSWn79w1IT+HmWNzmTA8\nR/fCFrkACm+JKrUNzTz16nYOlNQwZkg2P/7OTBrrvZ9bxnEcTlQ2sqeokr2HK7FFVeT1y+CmOUOZ\nPKIPLpeL62YOYdm6Ij7YVMzvPyjg9dUHmTE2l0tMX/pkJZOTmazd6hch4DjsP1LFh1uOssmW0RJw\nSHEncM30wcyfOpDc7NRIlygS1VyO8+VzJ7/IGHMp8C/W2vnGmBHA80AA2Ak8ZK11jDH3AfcDfuBx\na+1SY0wK8DLgAWqBe6y15caYmcCToWVXWmsfa0etji66EOTxZPSIC1A4jsNbaw+xbs9xUt0JpKUk\nUlJeT3l1EzPH5fIn142hf7+si+pFXaOPj7eX8uGWYsqqmj73WHaGm+tmDuGKKQOi4vKYnfW+OFnT\nxNufHGJo/0wmjehDVlrSGZdravZTUt7Axr0nWL/3OCdrgl+qBvZJ48ppg5g1LpfkpK7ZXugpfyPt\noV6ERVsvPJ6Ms54H2eZfkjHmB8A3gbrQ0C+Axdba1caYZ4CbjTGfAQ8D04AU4GNjzLvAg8A2a+1j\nxpjbgUeA7wPPArdaawuNMUuNMZOttVsvYh0lBi399DBvfFxIUkIcJwIOLQEHF7BoZh63XT68Q87v\nTU9J5NpL87hmxmB2F56ksLSGipomKmq8FByt5pV39/HB5mJuv3IEE/JzetzdpBzH4ddv72ZvURVs\nLcEFDB+YRe9MN82+AF5fC/WNPipqmqhvCl+ONMWdwNwJ/Zk1vh+j83r1uL6JdLb2fA0uAL4CvBT6\neaq1dnXo38uAa4AWYK211gf4jDEFwERgDvDT0LLLgR8ZYzKAJGttYWh8BbAAUHjLaWu2lfDa6oPk\nZLpZ/K1L6JWehNfXQkvA6ZRj03EuF+Pzcxifn3N6rKa+mTc+LmTV1qM8uWQ7M8b05duLxvSo3emr\ntpWwt6iKCfk5jB2azZZ9Zew/Wk3B0fAy7sR4eme6GdY/kz5ZyUwI9VGzxUU6T5vhba19zRgztNVQ\n66/QtUAWkAlUn2W85hxjp8bzz7dwiV1bC8p5YbklPSWRv7p98ukZyF21y/WUzLQk7l5ouGrqQF5Y\nblm/5wQl5Q38+W0T6NsrpUtriYSTNU0s+bCAFHcC9y4aTXaGm4Uz8mho8uH1BXAnxpOUGKfzsEUi\n4EI+DVvf2T4TqCIYxhmtxjPOMH6msdav0SaPJ6PthXqIWOzFsYp6lry/n/c3FJGQEMc/3jeT0UN6\nt/m8zu6Fx5PBuFG5/PrNHbzzySEef2Ej994wlj69UkhLTiQnKwVPdvcI847qheM4PPPHXTR6W/jz\nr01mVH6fDnndrhSLfyMXSr0Ii5VeXEh4bzHGXG6tXQUsAt4H1gM/Mca4gWRgDMHJbGuB64ANoWVX\nW2trjTHNxph8oJDgbvdH2/OLo2miQWeKtkkXbampb+a11QdYu+MYLQGH/jmpfPMaQ05qYpvr2ZW9\n+Oq8fHKzknlppeX/Ltl2etwFfHOhYf6UgV1Sx9l0ZC8+232MDbuPM2ZINlPys6Pu/RZrfyMXQ70I\ni7ZenOuLxvmE96lp6X8NPGeMSQJ2A6+GZps/BawB4ghOaPOGJrS9YIxZA3iBO0Ov8QDwChAPrLDW\nbjifFZLYsb+4imfe2ElVXTP9c1K5cc5QZozOJS6ue05wumzSAPIHZrH3cCWNXj+NzX4+3l7Kyyst\n2eluJo+Mvi3UL6ppaOa37+4nKSGOexaN1mQzkW6oXaeKdRM6VSwk2r49nonjOLy7sZglHxYQcBxu\nu3w4187IO+/Q7g69OFhSw89+uxlc8IM7ppI/IBMIriPQZeF3pl44jsP2AxU0NPlJSozHnRTHgJw0\nemcmn/V1/vOPu1i3+zjfuHIE18zI6+yyO0V3eF90F+pFWLT14qJOFRPpDL//oICVG46QmZbEAzeN\nY/SQ6L0fc/6ATB64eTxPv7ad/3h1G3Mn9ufwsVoOldaSmpzAAzePPx3oXamhyc9/Ld3Nlv3lnxuP\nj3Nx1bRB3DRnKKlfmLm/dX8563YfJ39AJgsuGdyV5YrIeVB4S5fz+lr4aMtRcjKT+eHd0+iVHv3X\ns548sg/fvMbw0grLss+KAOjbK4Wy6kZ++tvNfOeGsUwf3RcIXiVuky0jNTmBCfk5pLg7/s+wuKyO\nX762g+OVjYzO68WMsbk0N7fQ2NzC2h2lrNxwhE93HeOWucOYOa4fKe4EGpr8vLTSEh/n4tuLRnfb\nQxciovCWCNhVeJJmf4CZ43JjIrhPmT9lIJ5eybhcLob2yyAtOZFtBeU8+8ddPPPGTg5MH8zJmia2\n7C8/fSOVhPg4xg/rzTTjYfLIPmc9h93nb6GkvIG6Jh/D+mWSmvzlP92mZj/bD5Sz4+BJ1mwvodkX\nYNHMPL4yL/9zV4i7bmYeKzcc4e1PDvPSyn389r39jByURVyci8paL7fMHcZAT3rnNElEOoTCW7rc\nln1lAEwZ6YlwJR1v/LCcz/08aUQfFn9zGk+9uo2VG44AMNCTxtwJ/WlqbmGjPcHWgnK2FgRvsjJm\nSDaTRvShpSXAyVovFTVNlFY0cKyigcCpY+jA4L7pDB+URSDgUF3XTHW9l+Kyenz+4JmcackJ3HfD\nOKaZL/c4MSGe62cNZfb4/qzaepRtByqCV1ADBnnSuG7WkE7skIh0BIW3dKmWQICtBeVkZ7gZ2j82\nzrdsy+C+6Txy9yV8vKOUMUN6M6x/xulJbDfPHUZpRT2bbBmbbBk7C0+ys/Dk556f4o5n+MBMBvVN\nJ9WdQEFxNQdKaig6UXd6mYR4F4NzMxid14sJw3IYMSirzYunZGe4ueWyfG65LJ/qOi97i6oY2Y7n\niUjkKbylS+0/Uk19k58ZY3M75Nrk0SIr3c31s4ae8bH+OWncMDuNG2YP5URVI3sPV5LqTiAnK5ne\nmclkpiZ+aca6zx+guKyOpMR4eqUnkepOoG/fzAueSZuV7ubSsbkX9FwR6XoKb+lSm0O7zKfG4C7z\njtC3V0q7Lr2amBDHsP5dP4NdRLoH7R+TLuM4Dlv2l5HiTsDk9Yp0OSIiUUvhLV2m6HgdFTVeJg3P\n0XFVEZGLoE9Q6TKnd5mP0i5zEZGLofCWLrNlfxkJ8XGMG9b2ncJEROTsFN7SJUrK6ykuq2fs0OxO\nuaKYiEhPovCWLvH+pmIA5k7oH+FKRESin8JbOl1do4+1O0vJyUxmyqjov2WmiEikKbyl063eFrzO\n9lXTBn3uGtsiInJh9EkqncrfEuD9TcW4k+KZN2lApMsREYkJCm/pVJtsGZW1XuZO6H/GO2GJiMj5\nU3hLp3Ech5UbjuACFlwyKNLliIjEDIW3dJoDR2soLK1h0og+5GanRrocEZGYofCWTuFvCfDKu/sA\nWDhjcISrERGJLQpv6RSvrznI4eO1zJ3QH5OXHelyRERiisJbOtzew5Us/6yIvr1SuGPByEiXIyIS\ncxTe0qHqm3w89/ZuXC4X9900VpdCFRHpBApv6VC/fXcflbVebpo7lOEDsiJdjohITFJ4S4dp9PpZ\nv+cEA/ukcf2sIZEuR0QkZim8pcPsKjxJS8BhmvHoMqgiIp1In7DSYbYdKAdg0gjdfEREpDMpvKVD\nBByHHQcqyExLYki/jEiXIyIS0xTe0iEOldZS0+BjYn4OcS5XpMsREYlpCm/pENtP7zLPiXAlIiKx\nT+EtHWJbQQXxcS7GDu0d6VJERGLeBV9BwxizGagO/XgQeAJ4HggAO4GHrLWOMeY+4H7ADzxurV1q\njEkBXgY8QC1wj7W2/ILXQiKqqs7L4eO1jB2arYuyiIh0gQva8jbGJANYa+eH/vtT4BfAYmvtPMAF\n3GyM6Qc8DMwGFgJPGGOSgAeBbaFlXwQeufhVkUjZfqACgInDNctcRKQrXOhm0iQg1RizIvQaPwSm\nWmtXhx5fBlwDtABrrbU+wGeMKQAmAnOAn4aWXQ786ALrkG5gW4GOd4uIdKULDe964F+ttf9ljBlJ\nMIBbqwWygEzCu9a/OF7zhbE2eTw6BemU7tKLJq+fPYcrGehJY/yo3IjU0F160R2oF2HqRZh6ERYr\nvbjQ8N4HFABYa/cbYyqAKa0ezwSqCAZ0605lnGH81FibyspqL7Dc2OLxZES8F4GAw6e7jvH6moM0\nNbcwcXhORGrqDr3oLtSLMPUiTL0Ii7ZenOuLxoWG97cJ7v5+yBgzgGAArzTGXG6tXQUsAt4H1gM/\nMca4gWRgDMHJbGuB64ANoWVXf/lXSHdVWFrDf7+zl+KyOhLi47j20jxumjMs0mWJiPQYFxre/wX8\ntzHmVOh+G6gAngtNSNsNvBqabf4UsIbg5LjF1lqvMeYZ4AVjzBrAC9x5UWshXWbnwQr+7+s78PkC\nzBnfj1suyycnKznSZYmI9Cgux3EiXUN7OdG0u6MzRWrXz7rdx/n127uJi3PxwM3jmDLS0+U1fFG0\n7QbrTOpFmHoRpl6ERVsvPJ6Ms16uUiflSpt8/gDvbTzCqx8dINkdz1/cNhGTlx3pskREeiyFt5yV\nt7mFVdtKWLG+iMpaL5lpSfzV1yeRlxsbszVFRKKVwltOq6z1snlfGSXl9ZRW1FN0vI4Grx93YjwL\nZwzm2hl5ZKW7I12miEiPp/AWADbuPcHzy/bS4PWfHuuTlcyCSwax4JLBpKckRrA6ERFpTeEdRXz+\nFl5bfZDLp+XRL+vCtoAdx6GqrpmEeBfJSQkEAg6/fW8fa7aXkpQYxzeuHIHJy6ZfTiruxPgOXgMR\nEekICu8o8tYnh1ix/girt5Xy43svITc7tc3nOI7DoWO17DhQwYGSGg6WVFPfFN66dgEOkNc3ne/e\nPI7+OWmdtwIiItIhFN5RorisjmWfFZHiTqDR6+eZ13fyw7unkZjw5a3jgONQ1+Bjw94TrN5WwpET\ndacf8/RKZvSQbHCgsdmPt7mF0UOyuWnOMBITdIdYEZFooPDuhgKOAw7ExblO//zCsr20BBy+e9NY\n9hypZsVnh/nde/u5+9rR1DQ0897GI6zffYLaRh9NXj+nzt6Pj3MxbZSHWeP7MWJQFpmpSZFbMRER\n6RAK727E3xJg1dYS3lpbSEvAYeGMPK6aNohPdh7jQEkNM8b0ZeLwPsydlsfugxV8tLWE2gYfOwor\naPYFSHEnkJOZTGpyAqnuBEYMymLO+H6aIS4iEmMU3l3AcRzKqpuwRZUcP9lIdZ2X6vpmvL4W+mSl\nkNs7hVR3Au9tLOZEVSPupHgS4ly8tvogKzccwdcSINWdwB0LRgHgToznwVvG80/Pb2DTvjJ6Z7q5\n9vI8Lps0QJPMRER6AIX3RQoEHDbaE3h9LQzrl8mAPmm4XFBW1cjeoipsUSV7i6qorPV+6bkuYH9x\n+I6p8XEurpo2iBtnDyUhPo73Nh1hxfojeJtbuHfRaLLSwru8+/VO5Qd3TOFEZSPTjIeEeB2vFhHp\nKRTeF6HgaDWvrNzH4ePha+UmJcaR4k6guq759Fh6SiKXGA8mL5u83HSy0t1kpSaRkOCivLqJ4ycb\nqaxtYszQ3vTtlXL6eTfNGcZV0wZRUl7PiIFfvuX5sP6ZDOuf2bkrKSIi3Y7Cu5X6Jh/bCypIT02k\nb3YKOZnJVNQ0se9IFfuPVFNZ20RaSiIZqUnUNfpYt/s4ALPG9WPEwEwKj9VyqLSGukYfl4zuy+i8\nXpi8bAbkpOJynfn68rnZqec85SstOZGRg3p1yvqKiEh0UngTPCa9Ye8Jfvvefmrqw1vMp86BPptB\nnnS+ec0oRg0Ohuv8zi1TREQE6GHhHXAcSsrrKSytoSXg4E6MJykhno+3l7DtQAWJCXHcMHsICfFx\nlFU2UlbVSGa6GzO4FyMHZZHbO5WGJj+1Dc34/AGG9s8gPk7HmkVEpGvFZHhX13l5b1MxxSfqcLlc\nuFzQ1NzCoWM1NHpbzvicMUOyufta0+ZVy9yJ8WRn6NQrERGJnKgO77KqRvYXV5GekkivdDcJ8XF8\ntOUoq7aV4PMHvrR8bu9Upo7MJH9gFslJ8XibW06frjV1VJ+zHpcWERHpTqImvNfvPkZKvIs+Wckc\nOFrNuxuL2bK/DOcMB6VzMpO5btYQZozpiwsXDg7xccEbcYiIiES7qEmz//Nf64DPTyIb0i+DWeP6\n0exrobqumbomH2OHZDNrfD+d9ywiIjErasL77uvGcOBI8AplvTPdXDVtECMGZmlXt4iI9DhRE95f\nu2oUZWW1bS8oIiIS47RvWUREJMoovEVERKKMwltERCTKKLxFRESijMJbREQkyii8RUREoozCW0RE\nJMoovEVERKKMwltERCTKROwKa8aYOOBXwETAC3zHWnsgUvWIiIhEi0hued8CJFlrZwN/D/w8grWI\niIhEjUiG9xxgOYC1dh1wSQRrERERiRqRDO9MoKbVzy2hXekiIiJyDpG8q1gNkNHq5zhrbeAcy7s8\nnoxzPNyzqBdh6kWYehGmXoSpF2Gx0otIbumuBa4DMMbMBLZHsBYREZGoEckt79eBq40xa0M/fzuC\ntYiIiEQNl+M4ka5BREREzoMmiImIiEQZhbeIiEiUUXiLiIhEGYW3iIhIlInkbHMAjDGXAv9irZ1v\njBkN/BpwgH0Er3fuGGMeBP4kNP7P1to3jDEpwMuAB6gF7rHWlkdmLTrGF3oxCXgW8AP7gQestc3G\nmPuA+0Pjj1trl/bgXvwlcHvoKe9Yax+LxV5A+/oRWi4OWAq8Ya39z1jsRzvfG4uAH4eessFa+xc9\nuBcx//lpjEkEfgMMAdzA48Ae4HkgAOwEHgrlSUx8hkZ0y9sY8wPgOYLNBniUYDMvC41db4xJB/4W\nmAVcAzwZWvZBYJu1dh7wIvBIF5be4c7Qi18DfxnqxVHgz4wx/YCHgdnAQuAJY0wSPbMXw4A7gVnW\n2pnANcaYCcRYL6B9/Wi1+ONAL4If1BBj/WjneyMD+BlwvbV2FnDUGOOhZ/YijR7w+QncBZSF1uda\n4JcE75exODTmAm6Opc/QSO82LwC+QrCxAI1AjjHGRfDqa82EP4TSQ2MtoZ9PXxs99P8FXVFwJ/pi\nLwZZaz8L/fsT4HJgOrDWWuuz1taEnjORntmLIuBaa+2p90ci0ETs9QLa1w+MMV8l+PexvNVzY60f\n7enFLGAH8AtjzGqg1FpbRs/sRU/5/FxCeE9LHOADplprV4fGlhFcx5j5DI1oeFtrXyO46+KUp4H/\nAHYDfYFV1tp64HehsY3AU6FlM4Hq0L9rgayuqLmznKEXB40x80L/vhFI4/PrDOH1bn2d+B7RC2tt\ni7W2whjjMsb8G7DZWrufGHtfQPv6YYwZD9xB8APMRfgDPab60c6/kz7AfOAHwCLg+8aYkfS8XqRa\naxuA/yH2Pz/rrbV1ob0uSwhuObfOt9aflTHxGRrpLe8vehm4zFo7BngJ+LkxZhbBb9JDgTzgVmPM\ndIKNzgw9LwOo6vpyO9W3gX8wxrwHHAfK+fL14E+td+vxntILjDHJwCsEP7BP7TqO9fcFnLkf3wIG\nAh8A9wB/aYxZSOz340y9qCB4nPtE6Mv/amAyPa8XFaHPz5n0gM9PY8xggu//F621vyN4rPuUTL78\nWQlR/Bna3cI7leC3HoBSgsfu0oFGa22ztdZLsKm9aHVtdILfrlcTW24A7rLWLgBygBXAeuAyY4zb\nGJMFjCE4EaPH9SJ0aOVNYKu19sFWu89jvRdwhn5Ya//OWjvTWjuf4CSdX1hrVxD7/TjT38lmYLwx\nJscYk0AwvHbRM3vRIz4/jTG5wErgB9ba50PDW4wxl4f+fWodY+YzNOKzzUNOffB+B3jVGNMEeIH7\nrLVFxpirjTHrCB6vWWOtfdcY8zHwgjFmTWjZOyNSecc71Yt9wHvGGC/BN9yLoZmSTwFrCH7xWmyt\n9RpjnqFn9eIl4BZgHpAYmlkM8PdArPYCzvHeOMdzYrUfbf2d/APB8AL4vbV2tzGmkJ7Zi57w+bmY\n4K7uHxtjTh37/h7wVGhC2m7g1Vj6DNW1zUVERKJMd9ttLiIiIm1QeIuIiEQZhbeIiEiUUXiLiIhE\nGYW3iIhIlFF4i4iIRBmFt4iISJRReIuIiESZ7nKFNRHpQsaYFwlebeu50M8fAn9H8JaiOUAD8LC1\ndmvopidPEbzUZl/g59bap40xjxK89Ohg4Glr7bNdvyYiPZO2vEV6pt8A3wQwxgwBPMAvCF4behrw\nXYJ3owL4U+D/WGtnAFcCP2n1OknW2nEKbpGupcujivRAoRu77CN43+K7Cd5C9IcErwF9Sh+C9zqu\nJnizhgnAJODr1tr40Ja321r7D11YuoigLW+RHil0F7YXCN6A4WsE70TWZK2dcuo/YLa1tpLg/ZFv\nJnhnrn8gfK9wB2jq6tpFROEt0pM9DzwAFFlri4D9xpi7AIwxVwMfhZZbAPyjtfYt4IrQ43GEQ1xE\nupjCW6SHstYWA4cJhjjAXcB3jDHbCB7X/npo/FHgY2PMWmA0sAcYRnDLW8fdRCJAx7xFeihjzACC\nW9fjrLW+CJcjIudBW94iPZAx5qvAVuDvFdwi0Udb3iIiIlFGW94iIiJRRuEtIiISZRTeIiIiUUbh\nLSIiEmUU3iIiIlHm/wM6uQPQr8MUeQAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 76 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Apparently there's been a huge increase of the diversity of names with time!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "``groupby`` can also be used to add columns to the data: think of it as a *view* of the data that you're modifying. Let's add a column giving the frequency of each name within each year & gender:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def add_frequency(group):\n", " group['birth_freq'] = group.births / group.births.sum()\n", " return group\n", "\n", "names = names.groupby(['year', 'gender']).apply(add_frequency)\n", "names.head()" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
namegenderbirthsyearbirth_freq
0 Mary F 7065 1880 0.077643
1 Anna F 2604 1880 0.028618
2 Emma F 2003 1880 0.022013
3 Elizabeth F 1939 1880 0.021309
4 Minnie F 1746 1880 0.019188
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 77, "text": [ " name gender births year birth_freq\n", "0 Mary F 7065 1880 0.077643\n", "1 Anna F 2604 1880 0.028618\n", "2 Emma F 2003 1880 0.022013\n", "3 Elizabeth F 1939 1880 0.021309\n", "4 Minnie F 1746 1880 0.019188" ] } ], "prompt_number": 77 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that the ``apply()`` function iterates over each group, and calls a function which modifies the group.\n", "This result is then re-constructed into a container which looks ike the original dataframe." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Pivot Tables\n", "\n", "Next we'll discuss Pivot Tables, which are an even more powerful way of (re)organizing your data.\n", "\n", "Let's say that we want to plot the men and women separately.\n", "We could do this by using masking, as follows:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "men = names[names.gender == 'M']\n", "women = names[names.gender == 'W']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 78 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And then we could proceed as above, using ``groupby`` to group on the year.\n", "But we would end up with two different views of the data. A better way to do this is to use a ``pivot_table``, which is essentially a groupby in multiple dimensions at once:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "births = names.pivot_table('births',\n", " index='year', columns='gender',\n", " aggfunc=sum)\n", "births.head()" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
genderFM
year
1880 90993 110491
1881 91954 100746
1882 107850 113687
1883 112322 104630
1884 129022 114446
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 79, "text": [ "gender F M\n", "year \n", "1880 90993 110491\n", "1881 91954 100746\n", "1882 107850 113687\n", "1883 112322 104630\n", "1884 129022 114446" ] } ], "prompt_number": 79 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that this has grouped the index by the value of ``year``, and grouped the columns by the value of ``gender``.\n", "Let's plot the results now:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "births.plot(title='Total Births');" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nSUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 80 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Name Evolution Over Time\n", "\n", "Some names have shifted from being girls names to being boys names. Let's take a look at some of these:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "names_to_check = ['Allison', 'Alison']\n", "\n", "# filter on just the names we're interested in\n", "births = names[names.name.isin(names_to_check)]\n", "\n", "# pivot table to get year vs. gender\n", "births = births.pivot_table('births', index='year', columns='gender')\n", "\n", "# fill all NaNs with zeros\n", "births = births.fillna(0)\n", "\n", "# normalize along columns\n", "births = births.div(births.sum(1), axis=0)\n", "\n", "births.plot(title='Fraction of babies named Allison');" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAFtCAYAAADf+rmTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvWeYJGd5tn1W6Dg5bc4rqZSlVUCJICRElEw0wTYZY/s1\nxjbw2uBANhgb/NrGxmCMPgMGY8BgYYxJCgQJlFZotWK3Vpvz7OTQucL3o6q6q3u6e/LO1Ox9Hsce\nO9NVXf10z0xffd3pUVzXRRAEQRCEs4u61AsQBEEQhHMREWBBEARBWAJEgAVBEARhCRABFgRBEIQl\nQARYEARBEJYAEWBBEARBWAL0pV6AINRiGIYD7Abs0M0Pm6b51gW4dgfwTdM0b/G/fwx4lmma4/O9\n9jSP+6fAW4Efmqb55tDtbwBeZZrmC2ZxrS3AHtM0U3WO/RbQaZrmx+a96GWCYRi7gd81TfNHdY71\nAseAfzVN83dCt78BeLlpmncYhnEf8EngAeDrpmnedFYWLgjTIAIsLFduNk1zeBGu2wVcG3xjmuaO\nRXiMerwJeI1pmg8s5oOYpvmZxbz+EuH6/+rxJuC/gNcYhvEnpmmO1NyvfH/TNE8BIr7CskEEWFiu\nKPVuNAyjgPeGewXw6/7/bwXiQDfwl6Zpfto/9z3A6wALeAp4A/D/ASnDMHYC1/jHek3THDYM48+B\nV/u37QPeZppmv++gHsB7894E/AR4vWmaVaJgGMYG4J+Azf76P2+a5scNw/gPYANwp2EY7zVN86s1\nT2u1YRjfAdYDR4Df9B/3euBjQAJYC/zANM23BK+PYRifwfswUQLebprmg4ZhvB/oMU3z9wzDWI/n\n/DYBMeArpml+1DAM3b/9JqAIHATeaJpmpub5NHzehmH8CfBiIAm0AO8yTfO//MffDmwD1gEPAt8H\nXg9sBf7INM2v+Nf/U+BleKmww8D/MU3zlGEYFwN3AinABFqpg2EYKt7P/nf9c34L+MvQKUrN+VuA\n3aZpthqGcSHwOf+1VYB/MU3znwzDiAF/A9yCF4F5EPhD0zQnDcM4jPf7c6v/evyHaZp/XG9tgjAT\nJAcsLFfuNQzjsdC/Xv/2GPAt0zQvBPYCbwFeYJrmVXji+VcAhmH8Ct6b/vWmaV4GHMJ7o34DkDNN\n8yrTNJ3gwQzDeCPwfOAa0zSvwAuB/2toPdtM03wWcBnem/Oz6qz5S8Ddpmlejidav2EYxqtM03wV\ncBL4tTriC3AenthfATwB/J1/+9uBPzdN83rgEuBXDMMIHHscL5x9FfDnwFd98YCK8/sicKdpmtcA\n1wG3GYbxq8ANeGH3y/1jB/3nVYtb53k/0zCMTXgi9Ex/zX8GfDB0v5v81/Ii4DbgIv8abwM+AGAY\nxuuAS4Gn+VGI/wX+JfQ6fsa/9ieAjXXWBvA8IA38APg88LuGYWgNzg0/J4D/i/d7dA3wQuAZhmEo\n/nNZA1yO9+FOBf46dN8W0zSfCdwI/J5hGJuneTxBaIgIsLBcudk0zR2hf4OhYz8B8B3b7cAdhmF8\nEPgTPDcG8Bzgq6ZpjvnnvtM0zY9S31krwAvwxCrn3/b3wK2+qLnAf/vXmQT244WyyxiG0YL3pvyP\n/nnjeAI+k9zuD0zTPOh//Tk80QLvA0S37+Q/hSc2gRscNU3za/5jfd9/Dhf6a8UwjDTeh4QP+Xnu\nn+G58CuAXYBtGMaD/uv2n6Zp/rzB2mqfd7dpmkf9tb3WMIyP4jnPltB9fmCa5oRpmnm8Dx7f9W8/\niBelAO/ndj3wiL++twEXGIbRjSf2X/Af90Hg8QZr+z/Al/0PUv/tvz6vbHBuLd8A/sgwjP/Ec+G/\n70c0ng982jRN2//+k1T/DO/y13USOBN6PoIwa0SAhSgyCeWQ7+N4DukneO4lENhS+A6GYbT7zq0R\nCtXirOKlaILbcqFjLlOFXK1zDY2ZpXmc0NcqlbX/FE8Q9uA5x+Oh64cL1IL1h59z4ARvCD7E4H1A\n+Kj/oeQK4J3+df7DMIw/aLC2Kc/bMIyr8AS9FfgeXpg8/F5SrLlGiamoeOmCYG3XAM+sOR5g1d7Z\nd54vBF5tGMYhvGiIDjR6HlWYpvk/wPnAV4EdwBOGYWyj8nMM0PCiLgHT/R4IwowRARaizDXAGdM0\n/8I0zR8Ad0A5N/hD4GWGYbT5534QeAeeGNSGKV08IXmj7xzBC//+yDTNQEyavtGapjkB/BwvzB1U\nW78WLzw6Hc8OfTj4HeA7hmF0AlcD7zZN87/w3Ot5obX3GIbxIv+x7sAThqf8dSqh9bwztJ6f4IWx\nXwTcDfzMNM0P4LnNyxusrfZ5K8Az8KrS/9a/5kuZ+ppOx/eA3wz9fN6PlzMfBh7FSy1gGMaVwJV1\n7v9bwI9N09xgmuZW0zS34r1eVxmGceN0D24Yxpfxqs//A+9nNo73Qe57wG8bhqH7v0e/i5fDFoQF\nRwRYWI4026IrfOx7wHHDMEzDMH4CFIBTwHbTNP8Xr2DmfsMwdgGrgD/1j+80DOOXfrgzuN7n8ET7\nIcMwfon3pv/rM1xTwK/jha134RXvfN00zc/P4LnuAj5nGMYTeEL7DtM0R4GP+mv9qX/t7+CJsIsX\n/ny5H779Y7yWG5vqiuFfA64PreffTdP8d7x865PAbsMwHsbLCb+/yfpqv/93oNdvD7oH+AXQaRhG\nK80rlsPX+xfg28DP/etcgRfWBngNnrPdBbwXLwJQxjCMOF7181+FbzdNc7+/tt9vso7gtg8Cv24Y\nxi/wPqh8w29z+jBw2n9Ov8T7YPH7TZ6PIMwZRbYjFARBEISzz4wcsGEY1xmGcW+d2+8wDOMhwzAe\nMAzjLfXuKwiCIAjCVKYVYMMw/gj4LF6/XPj2oF/uNrxqy7cahrFqMRYpCIIgCCuNmTjg/Xhl+rXF\nGBcB+03THDNNs4RXsfnM2jsLgiAIgjCVaQXYNM1vUKcNAGgHxkLfTwAdC7QuQRAEQVjRzGcU5RjQ\nFvq+DRhpcC4A77vnE67tOM1OEZqwb+ggRu92PnTru6puf/TkE3zsJ5/ilZfezisueVHD++8d2M97\n7/kEL7rgVl6/4xWLvVxBOKdwXRdFmdqtFhS61h5zXZehsTxjkwWKJYeiZVMs2aGvHVQFNE1BVVVa\nUzF6OpL0dqZoTcVwHJei5VAo2oxNFhgazzM8lmc8U2AiW2IiW2Qy+D9XIpMrsXF1G9devJprLlpN\nV1uCAyfG2HdkhGNnJknGNdpb4rSm47SlY7Sl47Sl4xQtm4Mnxjh4Yowjp8YZyxSZzBbJ5Eo4s6zh\n7WpLsKanhVODGUYnC3N+rQFUVeGiLd1ctr0X23EYzxQZzxQ5fmaSEwOTOKHFtSR11va1oikKluNg\nWQ79w1nyxdp2+mriuorjgmXPT7f++xMvrtvGOB8B3gucbxhGF5DBCz//dbM7fOCWdzIwMDGPh1w5\n9PW1zfq1+IP7/oR8sTjlfsMj3vcj45NNrzkw7G34M5bJLLufw1xej5WKvBYVluq1sB2Hk4NZDp0a\n59RQhmLJoWQ7WLaDgvfmryoKhZLN4FiewbE8E5kinW0J+jpTrOpMkS/ZDIzkODOao1iy6e1I0teV\norM1wcBIjuMDk2Ty9YKL06MoMJsGlkRcIxHTeGRPP4/s6QdAUxXsWSqopiq0+uK8ujtNQldR/NdC\n11RScY1UQg/9874fHi9w4OQYB06MsffwMH2dKa48r5c1PWna0jESMa38LxnXiMc0NE0hm7eYzJaY\nzJVQFIjHNGK6Sq7k8LNdJ/nlwSGePDhUtcZkXGPbunY2rmolndA5PZTl5FCGwyfHy89BVRV6OpJs\nWd3GpjVt9HWkyJcscgWbbL7E6GSR4fE8IxMFFEWhszVOZ1uC1mSMOp+xAO93Iq5rJGIqqqqQL9pk\n8xZFq7HIz0aAgxF3rwFaTdP8rGEY78DrxVSBz/m7jQiLhKbo2M7UH6blercVnXoDhyrY/nklu/l5\ngnCu4rguX/7BPn666xRFa2auR/PfzPs62xmdKPDUsVH2HRsFIKar9HWmSMQ0BkZz9B/0NvhSgFXd\naS7a3EVXW5KYrhLXVWL+v3hMQ9cUXBccx/WEUlM5dnqckfECk/kSMc0/X1Npa4l7ItGaoD0dpyWl\n05KM0ZKK0ZLU0TUv2zg4muPxA0M8fmCQbN5i65p2tq1rZ8OqVkqWQybvOeXJXIlM3iKTK4ECm1a1\nsXlNG2t70uVrzRXLduZ9jb6+Nm65ch0T2SKHT0+QjGu0JGO0pmK0pmOojVRymTEjATZN8zDeGDv8\nRv7g9m/jNdMLZwFd1coiGiYQ5ZJdOwGwGsvxPm2XphFqQVgpnBjMsLorNeM3/G/99BD37DxBb0eS\nizZ3sWWt56RScQ3dFzsA23FxHJeYrtLZmkBVK2/4JcthcCxHMq7T0RqvEoNs3mJ0skBPR5JEbHbD\nwxYiGtDbmeLWqzdw69Ub5nWd+TBf8Q3Tlo5z2baeBbve2Ua2I4wQmqLWdcD2DB2wFQi1CLAQcbL5\nEnuOjLD70DB7Do+wbV07b779IjS18ub+/YeP8ZW7n2L7unbe9rLL6GitdFJm8iVODWbZuq6tfJ+f\n//I037r/ML0dSf789dfQlo7PaW0xXWVtT0vdY+mkTjopb7uCh/wmRAhN1cvh5jCBsBanCS2XHbA9\nt7yTICwVP378JN976CjZvEW2YFEKhYdVReHMaI5EXON1zzNQFIXdB4f4j3ueQtcUDpwc54Off4S3\nv/xy1vakufvR4/zPz46QLVh0tye49eoNbFzVyp3/s5dUQuP3f/WKOYuvIMwGEeAIoSlqXZEtO+Bp\nQtAzdcqCsJzIFy2+du9+8kWvkKmrLUFLKsZ56zu4ZGs3a3vS/PWXH+NHvzhJV1uCay9cxT/d9SSa\nqvLHv7aDfcdG+fp9B/jovz1KSyrGyESBlqTO9RevZudTA3zt3gOAV9j0ey++gvW99d2rICw0IsAR\nQlN1bCs/5faZh6AlByxEj5/uOkUmb/ErN23hJc/YVvecP3jlFXzki4/yXz85xD2PHidXsHjL7Rex\nfX0H29d3sLa3hc9860kmsiVecN0mXnjDZlqSMTL5Ej/+xUl+9uRpbr16Q6TziUL0EAGOELoyzyIs\nqYIWIoZtO3z/4WPEdJVbmhQOdbYm+MNXXsFH/20n49kSz79uEzdeurZ8/MrzevnoW69HURQ6Wirh\n5ZZkjBdcv5kXXL95UZ+HINRDtiOMEJqilfO9YWbahiQOWIgaP9t9isGxPDddtpb2afKya3ta+ONf\nv4rXPs/gFc/aPuV4Z2uiSnwFIczevb/kIx/5wFl9THHAEUKbpg1puiKs8nkiwMIyZHg8zyN7z/C0\ni1fT2ZrAdV2+ce9+FOC5126c0TXW97ZIDleIDCLAEUJTVBzXwXEdVKUSvKjkgGfYByxV0MJZZCxT\n5N6dx7EdtzyFaMuadi7e0oWuqTiuy48fP8nX7t1PrmBz1/2HeMWztrOut4Wnjo2y4/xe1nSnl/pp\nCMuQQiHPhz70PoaGBlm1ajWPP/4Yf/M3n+Rv//bjuK5LR0cH73nPezHNvXzpS18gHo9x8uQJbr31\nubzudW/i6NHDfPSjHyQeT9LR0UEymQTgnnt+yFe/+mVUVeXyy6/kt3/7bXzuc59h9+5d5PM53v3u\n97J585Z5r18EOELoqvfjsmsFeKZtSK70AQtnn+/87Ag/eOTYlNtbkjpXG6s4M5Jl79FRUgmd267Z\nyE+fOMUXv7+vPLDh+ddtOttLFiLCXXd9k/XrN/DhD3+Mo0cP89rXvoqPfewveM973suWLVv59rfv\n4ktf+gLXXnsd/f2n+cIXvkKxWOQlL3k+r3vdm/jHf/w73vzm3+aaa57Gt771TXbv3sX4+Dh33vnP\nfO5zXySRSPChD72Xhx9+EEVR2Lp1G29/+zsXbP0iwBFCU7zJObZjE1MrPzo7JKy17jhM4IBt1256\nniAsFK7r8thTA15/7SuuwHVdCiWb3QeHeXjvGX78+EkAdpzfy28816CrLcELrt/EV+5+iof2nOGi\nLd2cv6FziZ+FsFw5evQw1113AwCbNm2ho6OTI0cO8YlP/CUAlmWxcaP3AW779u2oqkoymSSRSPj3\nP8JFF10MwJVX7mD37l2cOHGM0dER3vWutwOQzWY5ceI4ABs3LmyxnghwhNBUX4Br8sDhwqySY5HQ\n6heahId4FO0SST1R9zxBmAtH+ye8Af2hEYvHzkwyOJbnaRet4oKNFSG9fHsvr771fJ467s1MvmBj\nZ3m3oM7WBL/94kt54fUTnLelh2KueWpFOHfZunU7u3c/wTOecTMnThxnbGwUw7iIP/uzD7B69Rp+\n8YudjI0Fu+ZOnQ+9Zcs2du36BTfc8HR2734CgLVr17Nq1Wr+9m8/haZpfPvbd3HhhRfz4x/fW3e3\nq/kgAhwhdN8B11ZC21XCWmwswE4l91tySiQRARYWhkOnxvnQ5x/h6Zev5U0vvKh8+2NPDQJw1QV9\nU+6jqgrGpq6G19y0uo2O1gQDIsBCA26//cV85CPv521veyurV68hHk/wrne9mw9/+H3Yto2qqrz7\n3X/OwMCZGvH0vn7729/BX/zF+/nKV75EX98qVFWls7OTV7/613nb234T23ZYu3Ydt932PO9eIsDn\nLqovwI7bTIAb53ftKqcseWBh4fjpE95GaD/bfZqXPmMbXW3eh7vH9g2ga4oMuBAWhaeeMrn99hdz\n7bXXc+zYUZ588gkuuOBCPvnJz1Sdt2HDRnbsuLr8/V13fReAtWvX8Q//8M9Trvvc576A5z73BVW3\nvelNb13w9YsARwhdre+Aq0PQjd1ClQOWYRzCAlGyHB76pbfHrO243LPzOC9/1nYGR3McPTPJZdt6\nSCXkrUZYeNatW8/73/+n3HnnZ7Esi3e844+XekmzQv4qIkSjHPBMHXBVDtiRViRh9pQsG9f1NkYP\n2HVgiEze4tlXrefhPWe477ET3H7DFnb64ecdF/Qu1XKFFU53dw9///efXuplzBkpg40Q5SroWgF2\nwsLaRIBrcsCCMFv+4ouP8sHPP0KhVPmde2C3F36++cr13HLVejJ5i58+cYrH9g2gADvOEwEWhHqI\nAEeIShFWtXu1aoqwGiEhaGE+9I9kOdo/ycnBDP95n7eD0ES2yK4DQ2xc1crGVa3cctUGdE3lfx88\nwr7jo2xb3161D68gCBVEgCNEJQTtVN0+Uwccds7igIXZ8uShYQA0VeGHjx5n75ERHtpzBttxufHS\nNQC0t8S58dLVDI8XcF246vyp1c+CIHiIAEeIyiCOagdc24bUiLADlnnQwmzZfdAT4N+842IUBe78\nzh5+/PhJFAWuv3h1+bzbrq1MrtpRp/1IEAQPKcKKEJUccI0DDjvbZkVYzszOE4RaLNthz9ERVnel\neNpFqzl2ZpL/+dkRAC7b1lMVZl7f28Kzr1rPZLYkM5yFFcGpUyd5/etfg2FcWL7t6quv5Q1veMu8\nrisCHCEqbUg1DnimRVhu5X611xAEANtx2HNkhIlMiesvWV0ePHDgxBiFos0ll3YD8Cs3beXx/YMc\nH8iUw89hXvtc46yuWxAWm61bt03pL54vIsARouEoypCwNgtBz1SohXOLYsnmSP8Ej5oDPPjLfsYy\n3u9QPKZxteGFkJ887IWfL93qDdSI6Sq/9/LLedQc4JoLJcwsnD2+es9+dj41gG27C3bNay9cxStv\nOW/BrjdTRIAjRMMQtFP5XtqQhJmQK1h888cH2Xd8lBMDGWzHezNrSeo8/bK13L/7FP/1k4PsOL8X\nVVXYfXAYTVW4cHNlnnNfZ0p2KhLOGQ4fPsjv/d5vlb9/3/s+TG/v/D58igBHiEZtSDMuwpphrlhY\n+ew+NMwPHz2OrqlsWdPG1rXtXLSli8u29aBrKq7rcv/u0zy0t59LtnRz5PQEF2zsJBmXtwxhaXnl\nLefxu6/awcDAxFl93C1bJAR9TqM2aUNSUHBxZ94HLDngc5pxP8z8ltsv4mkXrZ5y/I6nb+Xnv+zn\nrp8cwnXABS7d1n2WVykIKxtpQ4oQeoM2JMu1y1sLNu0Ddmxiamza84SVTyDA7en6O2et6kzxjMvX\n0j+S46v37gfgkq0iwMK5y0LvhAQiwJEiKMKypoyitEjpKaDxLGjXdbFcm7SeBCQEfa4zkfUEuK2l\nvgAD3H7jFnRNYSxTpDUVY9PqtrO1PEFYVqxdu45Pf/rOBb+uCHCECIqwnCn7ATukfGEtNtgNKcgT\nJ32hliKsc5uJrPfzb0vHGp7T3Z7k5ivXA577VRfBAQjCuYzkgCOEXscBu66L7doktebONsj/lh2w\nCPA5zXi2iKJAa7KxAAPcftMWxjJFnnvtxrO0MkE4dxABjhCVUZSVIizHL8iKqToxVW8YgrbKDjhw\nyiLA5zIT2RJtqRiq2tzVtqfj/M5LLj1LqxKEcwsJQUeISh9waKKVL6yaqhFX4w1D0IEDTkkOWMDL\nAbc1KMASBOHsIAIcISqjKCsh6KAiWlc0YlqsoQMOpmDF1Bi6okkb0jmMZTtk8lbT/K8gCIuPCHCE\nqDjgkAD7IWhV1YhrsWkdsK56Qi054HOXyVxQgCUOWBCWEhHgCFFvFrQVcsBxNd64CMu/j67qxNSY\nhKDPYYIK6EY9wIIgVLNz5yM84xnXcvfd36+6/fWvfzUf+cgH5nxdEeAIUSnCmuqANSVwwCVcd+qQ\n8kCoNUUjpsakCOscZjzoAZYQtCDMmM2bt/DDH1YE+MCB/eTz+XldU6qgI0S9NqQgBxwUYTmug+3a\n6Er1jzbIG+uqTkyLkS/O7xdHiC4zGcIhCMuVb+z/Nrt+vru8gchCsGPVZbzsvNsbHlcUhe3bz+fY\nsaNkMpO0tLTyve99h+c+9wX095+e8+OKA44Q9RxwJbSsEde8N9R6hVhB5bQXqtYlBH0OM5Hxc8Ap\nccCCMBtuvvkWfvSjewHYu/eXXHrp5fO6njjgCFEvBxx8HYSgwZuGlSZVdd9SyAHraoySY+G67qLM\nNxWWN0EIul0csBBBXnbe7fzWDa85q7shBWm95zzneXz843/JunXrueKKHfO+rjjgCKHXywE7IQEO\nNlqosyNSdag6hos7Zaa0cG4wkzGUgiBMZd269eTzOb7+9a/wvOe9sG69zWwQAY4QapM2JE3ViDUJ\nQVdVQWte4EPC0Ocm5RywVEELwoxQFKUcLbz11ts4c+YMGzZsnHcEUULQEaLeII7qNqTGWw0G58UU\nvbwlodcLnJpyrrCymciW0FSFdFL+/AVhJuzYcTU7dlwNwMtf/ipe/vJXAXDddTdw3XU3zPm68hcY\nIeoP4giNoqRxCDoQbU3VagRYONcYz3rbC8ruRoKwtEgIOkIoioKqqNUCHM4B+yHoesJaroL225Cg\n8d7BwsrAsh3ef+dD/OePDlTdPpEtSfhZEJYBIsARQ1e06hB01WYM0zvgcKhaHPDK5vDpCY6emWTn\nvoHybSXLIVeQOdCCsBwQAY4YmqpVOWAn5ICbFmE5IQdcFmDZkGElYx4dAaB/OEfJ8or1gjnQ0oIk\nCEuPCHDE0BSt/iCOaYuwJAd8rmEeGwXAcV36R7IAjGf8CmgZwiEIS44IcMTQVb1mFGUoBK016QMu\nT8KSNqRzAdtxeOr4WPn7k4MZACZyMoZSEJYLIsARQ1PUms0YKiHoRBCCbuKAdVVywOcCR05PUija\n9HUmgZAAZ4KdkMQBC8JSIwIcMWpzwOFZ0DHVr4KuO4hjag64KDngFUuQ/332jg1ARYDHZQiHICwb\nRIAjhqZoTdqQKrOga7GqirV8Bywh6BVLkP+97uLVpBIaJ4e8HLDsBSwIywcR4Iih1xRhVQ3iUJvs\nhlS3CloEeCXi5X9HWd2VoqstwbqeFvqHs1i2I3sBC8IyQgQ4Ymg1RVhWPQdcpwirJDngc4aj/ZPk\nCjbGpk4A1va2YDsu/SM5JssbMYgDFoSlRgQ4YjQqwtLV5iHoepOwJAS9MjGPeuFnY1MXAOt7WwA4\nNZhhPFtEUxVSCW3J1icIgkfTWdCGYajAp4DLgQLwFtM0D4SOvxT4E8AF7jRN89OLuFYBzwG7uDiu\n442lrNqOsNkgjkq/cEz1fuz1qqWF6BMUYBkbPQe8zhfgE4MZJrJF2lvisg+0ICwDpnPALwHipmne\nCLwb+ETN8b8BbgNuAt5pGEbHwi9RCKMp3o8sEN5wG5KmaqiKKpOwzmEcx2Xf8TH6OpN0t3stSOt6\nPAE+OZhhPFuSIRyCsEyYToBvAr4LYJrmg8A1NcdLQCfennYKnhMWFpHyloS+8IbbkADiarx+FbQ7\nNVe8mCHooxPHef/PPsaxiZOL9hjCVI6dmSRXsMrhZ4Du9gSJuMaR0xMUirYM4RCEZcJ0AtwOjIe+\nt/2wdMAngEeB3cB/m6YZPldYBDTFCx+XHbD/v+pvVRjXYvX7gB0LBeWsjaK85+hPGcgNcWjs8KI9\nhjCVg6e8P8HzN1SCUYqisK6nhTOjOUAqoAVhuTDdfsDjQFvoe9U0TQfAMIxNwNuAzUAW+DfDMF5h\nmubXm12wr6+t2eFzirm8FulUAoDO7hRdqTZiB7zPQ6t7O+htaSMVS1ByrCnXVjSXmKbT19dGuuiJ\ntaK7i/LzyJfy7BrcDYCWnPnzlN+NCnN9LcZzXlrh4vP6qq6xbUMHh3xxXt3TGqnXOkprXWzktaiw\nEl6L6QT4fuAO4GuGYVwP7AodSwI2UDBN0zEM4wxeOLopAwMTc13riqKvr21Or4Vd9KL8/QNjWCmV\nTC4PwOhIHjc7gYbORCkz5dr5YhFN0RgYmCjnfidzuUX5eTx46lEKfivU8PjEjB5jrq/HSmQ+r8WR\nk97854RS/bfW05oof60rbmRea/m9qCCvRYWovRaNPixMJ8DfBG4zDON+//s3GobxGqDVNM3PGobx\neeABwzDywH7gXxdovUIDykVYbk0RlurdHtfiDWdB6374Wlc0FJRFC0E/ePrR8tcFu7AojyHUp38k\nSzqh05Ks/tNe15sufy09wIKwPGgqwKZpusDv1Ny8L3T8/wH/bxHWJTRA81uIAuENtxcBxNUYlmOV\n25QCLMdZElH3AAAgAElEQVRC8wu1FEVBV/VFEeCR/Cj7Rg7QEW9nrDhOwZpaECYsDo7jMjCaY+Oq\n1iltRkElNMgYSkFYLsggjogRCK1Vpw0JCE3DqhZX27XR1crnrbgaW5TNGB7ufwwXl5vWPQ0QB3w2\nGR7PY9kuq7vSU451dyRJxLzfESnCEoTlgQhwxFD9ULPjVldBB+425m9JWOtuLccqi7d3Xv1q6fng\nui4Pnt6JrurcsO5aYHkL8E9O/HxFtUn1+1XOq7pSU46pisLaHk+YpQ1JEJYHIsARI8jjBg7Ycm1U\nRS2Hm4M5z7XzoC2n2gHHFiEEfWzyBKcz/VzWezGdCa8NplBnLvVyYLw4wVfMb/Dtg99b6qUsGGeG\nvR2P6jlggKuNPjauaqW7LVH3uCAIZ5fpirCEZUa9IiwtlOuN+w64thDLcis5YICYGmOylFmwdeWt\nPN89fA8A1625ClVRiauxZeuAcyXPLQ7khpZ4JQtH/0hjBwzwohu28KIbtpzFFQmC0AwR4IhRLsIK\nDeIIhnNAfQfsui52qAoaFi4E7bouj555nG889W3GiuOsa1nDxd0GAAktsWwdcLCuodzQlIK1qHLG\nF+DV3fUdsCAIywsR4IhRGUVp+f/b5RYkqF+E5bgOLm75vuBXS7v2vMTHdV0+u/uLPD6wG13VeeHW\n27ht081lp53Q4stWgPO+M7dcm9HCGN3Jrmnusfxp1IIkCMLyRP5SI0ZQ7Wy7DgCOY1cVV5V3RArN\ng67Miw7ngCsbMiS0uRXljBbGeHxgN+tb1/LWy15Hb6qn6nhCTzCZG5nTtRebcGh8MDcUeQFu1oIk\nCMLyJPpxt3OMsgA7YQdcHVqGagdc3gmppgoa5rchw2TJK/o5v3PbFPGFIARdwHWX3x4dBasiwCsh\nDzw84bUgrWpQgCUIwvJDBDhiBOHmch+wY9UUYU3NAZeHddRUQcP8NmTI+EVcLbH6b/oJLY6Luyy3\nPcxXOeDhJVzJwhAUYK1uUIAlCMLyQwQ4YgSFVEEI2nadKgecUKdWQQcOWKvJAcP8BDioom6NtdQ9\nntC8dpflWAkdzk2vBAd8ZpoKaEEQlh8iwBEjEFE7KMJyqtuQyoM4QgITnFtbBQ3My51m/BB0MwcM\ny7MXOF+TA446/dP0AAuCsPwQAY4YlRxw4ICr24vKIegqBxyEoKv7gGHqyMrZMFkOQdd3wEl9OTvg\nagFejnnq2SAOWBCihwhwxKhtQ7Jduya07Iegw0VYgQOuWwU9nxxw4IAjGIL2i7D6Uj3krDwZK7vE\nK5ofQQtSa0rmPAtCVBABjhhq2QF7PbyO69QvwnKaF2EtRA44U84BTxOCrtkR6QdH7uN9P/vYlHGZ\ntRydOM439/8Pjp/vXkiCsPiG1nVAtMPQQQvSqq6UtCAJQoQQAY4YerkP2C4XYtUT1nptSNoCtyHN\n1QHvHz3EYG6I09kzTa//0xM/54dHf8SJyVNzXmPeKpCzclNv99e0oc0X4Gx0BThoQZIJWIIQLUSA\nI0a5CMuxy73AdWdBh4TVbtKGVDszejZMljLE1VjZddcSOOB8jQBnfUEcmmZIR9bKA9QV0JnyT7vu\n5K8e+eSU24MQ9PrWtUC0K6HL+d9Oyf8KQpSQSVgRIzwJK3DA9QZxlKomYQU54KlFWPPNATdyvxB2\nwNWh5kCApwv7BhsmBEI8W05n+tk/eghgysjNgl0kpuqsSvcB0Rbgcg9wtwiwIEQJccARI1yEVc7t\n1htFadepgq7XhmTPvQ1pspRpmP+FcBtStQMOhHUw33wARs4OHPDcBPjh04+Vv85b1WvI2wUSWoKe\nZBcKSqRzwGdGvFSATMEShGghAhwxtFARVtDfq4Zzu+XQcrgIa+EHcZTsEkW7OC8HPDTNBKog9DyX\nELTjOjzUXxHg2msUfAHWVZ2uZGfEBVimYAlCFBEBjhiVQRx2uRc4HFpWFIW4GqtpQ2q8GcNcc8BB\n206jIRwACX2qAy45Vln0pxdg3wGXZi/AB8eOMJyv5JhrXXTBLpT7lHtTPYwVJ6atyl6uDE8UiOuq\ntCAJQsQQAY4YgQO2Qg5Yq9lOMKEnyIcEp/5mDP4s6DlWQU8W/Rak+AwccCj8G3aiQ/mRpi1GeWvu\nIeiHTu8EYFvH5imP67ouBbtYDpH3pbqB6M6EHs8UaW+JSwuSIEQMEeCIoatT25DCRVgALXq6arBE\n/Sro+YWgp2tBAkjWCUFnQ27W9vfirYfnlL0PDtlZhqBLjsXOM7voiLdzee8l/jXyVccd1yl/QOhL\n9QLRLMRyXJfxTJGOlrltKSkIwtIhAhwxwjnges4WvLBwtpQru8vFqIKenGYnJKhfhFUrpo3C0GEH\nP1sH/OTgHnJWjmvWXFleX/h6wXqCDwjBVopRzANn8xa249IuAiwIkUMEOGKUQ9Cuje3ndsPFVQDp\nWBoXtyw6daugywM7PHHeM7yPv3rkk/z4+AMz2qAhcMCNdkKCSk9y2AEHoeC+sujVF+CwUM+2CCso\nvnra6qtI6akp1wsEOLECBHgs47224oAFIXpIH3DEqApB+8Kq1XHAAJOlLOlYun4VtFZxwI7r8LV9\nd9GfHeDI+DG+d+Rebtt8M09fd11V2DrMdHsBA6iKSlyNVTtgPwS9sW09A7mhhq1IYcc60xC07dg8\neHonTw7uYV3LGta3ri079fD1gpakhB6EoL0ccBRD0OOT3nMRBywI0UMEOGJUhaDd5gKc9fPAdt0q\naL8Iyymx88wu+rMDXL3qCrqSnfz4+AN8bd9dDOdHeNl5t9ddx3R7AQcktETVJKxATDe1bWDnmV0N\nQ9DVDrh5CNpxHR46vZP/PXw3g7khdFXnBVufg6IopPTklOsFjjwIkSf1JK2xlkgK8FhWHLAgRBUJ\nQUeMYJpT2AHrNSHoFt0T4CBMXLcKuhyCLvK/h+9GVVR+Zfvzeel5L+KDN76HtJ5iZ/+uhtv0TbcX\ncEBCT1RtxhA44HWta1AVtWEIOleVA27ugO859hO+uOerjOZHeeb6G/nADX/MVasuByiHoMPXy9fk\ngMELiQ9PU5W9lBw6Nc6Hv/AIIxPVA0XGJ73Xtr0lUe9ugiAsY0SAI4aiKOiK5g/iqJ8DDkSxIsBT\nHbCmaqiKysGxI5zO9PO01VeVc6Ft8VYu6r6AkcIopzL9ddcxcwccr5sDboml6U52MZiv7zprQ8bN\nhPHBU4+iKxrvvf7/8irjJXQmOsrHAgecq1OElQgJcEeiHcd1yq/ZcuOJA0McPDnOniPVH1jEAQtC\ndBEBjiCqqmG5dllYa0PQ6SkCPDUHDN40LNu1UVB43pZnVx27pOdCAHYP7am7hkwpS0zVy4VWjUho\nCQp2oeykg1BwWk/Rm+xmojg5ZVJW+DxVUXFxG+4pfCY7yMnMaS7svoAeP5cbpiLAoRB0TQ4YKu1U\nwQeL5Uau6P0Mh8YbOOBWEWBBiBoiwBGk1gHXtiG11ghw5bzqlH8Qhr52zY7ypgQBF/cYKCg8ObS3\n7hoypUzTHuCAhBbHxZ3S05vW02XBrJcHDhxw4Gazpfp54McHdgNwRd+ldY/rqk5MjdU44OocMEBb\nIMDFZSrABe/1Gx6vfh3KDjgtAiwIUUMEOIJoilaVA1Zr25D06iKscg64pqI5rsVRUHj+5lumPEZb\nvJXN7Rs5OHaEbJ2wbKaUnTb8DOFhHJ5zC8ZKpvQkvYEA16mEDgZndCc7vfs1yAM/PrAbBYXLey9u\nuIa0nqy6f70ccGu8FVi+Djhb8H7WQzUCPD5ZJBHXSMS1encTBGEZIwIcQTS1uQOekgN26xdr3bHt\nebzaeCmrW1bVfZxLey7EcR32DD9VdbvlWOTtwrQFWBDekMETvayVI6HF0VQt1H/b2AF3J7uA+gI8\nWhjj0PhRzu/c1nQkZkpP1c0BJ6tC0EHr1vIU4IoDrg5Bj2WL4n4FIaKIAEcQXfFzwDMuwqrvgK9d\ns4Onr7++4eMEeeDaMPRMhnAEVDZk8EKlWStXdui9yWAG89RCrCBUHQhwvT2Bdw08CTQOPwek9CQ5\nK1/OQ9crwmqL+Q54mYegh8Yrz8NxXSYyJekBFoSIIgIcQcoOuEERVlyLE1P1pm1IM2FD2zra4208\nObS3qgp5JmMoA6Y44FKOdMxrDeppEoLOW3kUFLoTjUPQvyjnfy9puoaUnsJ27fLYzfIgjpAAt8QD\nBzw57XNaCgIBLhRtsv7Xk7kSjutKBbQgRBQR4AhSzgE3CC2DV9WbDbUhKSjlHuKZoioql/RcyGQp\nw9GJ4+XbK1OwZlaEBVCwijiuQ97OlyuT03qKlJ6sG4L2QtWJckV37TCOyVKGp0YPsrl9I11+nrgR\nta1I9YuwlncOOBBggKEx73lUeoBFgAUhiogARxDNb0Nq5IDBE7dgRyTLtdBUbU7b1ZXbkQYrYejJ\nGQ7hgIrLzNuFsgAGIWhFUehNdjOUG54y8CNveUJdb5IVwBODe3BchyunCT/D1Fak2s0YvOey3Kug\n7fLXQSGW9AALQrQRAY4guqLhhAdx1BHgllianJUvh6prW5BmyoXd56MqKk+G+oEzMxzCAdUh6GAK\nVtqfTgVeGLrolBgrTFTdL+cLcLo8yapagKdrPwpT2ZAhcMAFVEWtyonHtRhxLV5+bssJ23EolCoC\nHBRijWfEAQtClBEBjiBazSCO+iHooBUph+VYdc+ZCSk9yfaOLRydOFF2h7MqwgrtiBSIaCqWLB8P\n8sBnJgfLt7muWxbgeqMkAQ6PH6Un2cXqmv7lRs8hfI28VSChJaZEBNpiLUwsQwEO3G972uvbLjvg\nSXHAghBlRIAjSOB4i35RUSMHDJ5YWq7dcFejmXBh9/kA7Bs9AMy2CKuyJ3B4ClZAb9JrReoPCXDB\nLuDiktJTZbEOC7DlWEwUJ8sV0tORqnHRBbtYlf8NaIm1kCllGs6/Brj32E/5+CP/UA7/nw2C/O/6\nPi9PHQzjGM+KAxaEKCMCHEGCtqOiX0xU24YE1cM4LMeqK9Izxeg6DwDT7weubMQwixC0VaiaghXQ\nk/JE9EymIsCB2Kb0JCnNF+BSJQQ9VhgHoDPRvPgqYGoRVqEq/xvQGm+h5Fh1R2MGPNr/OIfGjzJe\nnGh4zkITCPCanjSaqogDFoQVgghwBCk74ECAp3HAtjM/B7ypbQNJLcnekf3A7BxwMOyiYBfLIhq0\nIQF0+SI6nBst31YR4BSaqpHQ4lU54JHCmHffZGXThWbUFmHl7ULVHOiA1mnmQbuuy+lsv/986s+m\nXgwCAW5J6nS1JSo5YHHAghBpRIAjSNDPGzi1ZjngyVIWy517Dhg8h31+11YGc0MM5UbIFLPoql43\njFtLvRB0IIhQmfU8FBLg2vNSeqpqEMeYL8DhXY+aEQh+UJRmOVZVD3BAIMCNCrHGiuNTWpnOBkEO\nOJXQ6W5PMjpRwLIdxiaLpBIa8ZiMoRSEKCICHEGCkHPgwpo54GwpizWPKugAo8vLA5sj+72NGPT0\njNqaKlXQxboh6JSeJK7FGc6OlG/Lh0LQ3vmpug64M9E+o7UntUoIul4LUkDQCzxRrD+M43TmTPnr\nsyvAngNOJXR62hO4wOhEgfFskXYZQykIkUUEOIJUQtB+EVaDQRzgF2E5Vt1zZkM5DzzyFJOlbNPZ\ny2GqHLCfOw6HoBVFoSvRwVBIgGsdcNIfJRlM4xqdswPO1R3CERBMw2q0J3C1AJ+9EHQw+SrtO2CA\ngdEcE9mi5H8FIcKIAEeQIJxccPwQdINBHOCNVnRx55UDBljbspr2eBt7h58ib+dnVIAFlPcLDg/i\nCIegwcsDTxQz5Q8UUx1w0t8T2Hu+o/lAgGdahFUJQQc7IdXPAfsOuME4ylN+/hcq+fezQZUD7vBe\nkyP9k7iu5H8FIcqIAEeQ2iIstW4I2hPIYMDFbOdA16IoChd0bZ9VAZa3NpW4Fm8YgoaKkw2cbbgI\nK/x/EIYeLYyjKiptM3ThcTWGqqi+Aw7mQE8VrtZQ1KAepzMVAV66ELQnwAdPeZXgHS1TP0gIghAN\nRIAjSG0bUv0iLE+0xorj/jnzc8AAF/p5YJjZEI6AhBYvT8LSVZ24Fqs63plsJMCVIqzw7aOFMTri\n7TOeba0oCik9SdbKlzdiaNSGBDC5jHPAQQj6sC/A7S2xhvcTBGF5IwIcQYKCqmZFWEGV8nghEOD5\nV8oa3eeVv56pAwavEKtgeZOwasPPUM8BBzlgT3jToT5ex3UYK47PuAUpIKUlyVv5UA64XhGWJ8D1\npmFNFCeZLGWIq57gnVUBLvpV0HGN7jZv3YP+hgwdreKABSGqiABHEM13fiXHQlXUhtXIaT3NuO/m\ntHlWQYO3N29fyptcNXsHXKzaCzhMVyDA+QYOOFRENVGcxHGdGRdgBaRiKbKhEHQ9B5zUk6iKWrcN\nKXC/G9s2AEvTB5xK6KQSOi3Jys9SqqAFIbqIAEeQcEVzs9xuayyNizdWMbYADhgq1dCzdsB+H3B4\nDGVAIKYjBa8XeGoO2N8RqZSbdQV0QEpPUbSL5Q0h6hVhqYpKSyxdd0ekYADH5nZPgM9mEVa2YKEo\nkIx7P8MgDA3Q0SoCLAhRRQQ4goRDzs3ai9IhkdQWIAcM8Iz1N3Be51Yu6No+4/sktQQuLo7rVLUg\nBQT7+Y6EQtCaohHz1xzOAY/MWYA90QoEvNEQkdZYS91JWKd8B7y5fSNw9nPAqbhejnT0hARYHLAg\nRJeFeVcWziph0W024znsUhciBwywoW0df3jV78zqPmGxq5cDTusp4lqsqggrpSfLglO1JaE/EGu+\nAlwvBA2eAJ/K9GM7dtXrHFRAb2o7+w44V7BIJSp/qt3tlbVLG5IgRBdxwBEkPNWqWXVzuFd3vpOw\n5kO44KleDlhRFHpSXaEccHWxVjkEbc0nBF3rgBsIcNzrBc5Y1a1IpzP9dCe7aPePn+0ccFiAAwec\nTujEdPkTFoSo0vRd2TAMFfgUcDlQAN5imuaB0PFrgU8ACnACeJ1pmmfPGpyjaGrlTVdr0orTEsq3\nLpQDngsJveLS6oWgAbrTnZyaPEPJschZeTpCYybDIWjL8QqS5pIDhkqYu14OGEIbMhQztMfbAC/3\nPFac4OIeozxY5GyFoB3XJV+wSScqP78gByz5X0GINtN9fH4JEDdN80bg3XhiC4BhGArwz8AbTNN8\nBnA3sHWxFipUCFc0N8sBh0PQC1EFPVfCbrNeCBoq2xIO50coOqWyYEJ1CHq0MIaCQkeibVZrCK4x\nkxwweBPEAk5nvfzvmvQqVEUlpsbOmgAXijYukKzjgCX/KwjRZjoBvgn4LoBpmg8C14SOXQAMAe8w\nDOM+oNM0TXMxFilUE3a9zXLA6UXIAc+F6ULQ4DlggFN+rrV+CDrPaGGMtnjrrAeLJP1rBA66WQ4Y\nvF2kAoL879qW1f7ziZ81Ac6F5kAH9HWlUBWFvs760QRBEKLBdALcDoyHvrf9sDRAL3Aj8EngOcCt\nhmE8e+GXKNSiz7ANqboIaykd8PQh6MABn5o8DVDlgDVVI67Gyg54prsghUnXOO94IwdcZxpW8KFg\nTVmAE2ctB5wN9QAHdLTEefdvXMXLb555JbogCMuP6QR4HAjH+lTTNB3/6yFgv+lh4Tnla2ovICw8\n4ZaiZu1Fi1EFPReqHXADAU57AnwyEwhwtWCm9BSDuWFKjjXjTRiq71+5XlyLNxxjWXHAlVakYAjH\nmvQqwPtAcbaqoHN1BBjgvPUdshOSIESc6WzR/cAdwNcMw7ge2BU6dhBoNQxju1+Y9QzgX6Z7wL6+\n2eXuVjJzfS26S63lr5PxWMPrlBJ95a8721uX7LXvy1UKptb39dDXNXUdkyOeAA/kBwDo7eioWm9b\nsoXj46cAWNvZO+vnMqn3lr9Ox5IN75/RPZG1tVL5nDP5AbqSHWxe5x1rSabozw0s6usZXPvIoBcK\n7+1On7N/O+fq866HvBYVVsJrMZ0AfxO4zTCM+/3v32gYxmuAVtM0P2sYxpuBL/sFWfebpvm/0z3g\nwMDE/Fa8Qujra5vza5EZr7gvx1YaXidfdMtf5zKlJXvti1mn/HV+wmXAmrqOnjbP1Z6Y8MK9TkGt\nWm9cqbi9pJOe9XPJ5ypriCmxhvcv+ZHlgfERBgYmGMmPMpgd5sKu88v3UR0N27E51T+yKKH98O/G\n6TPe/65ln5N/O/P5O1lpyGtRIWqvRaMPC03fPUzTdIHaqQv7QsfvBa6b7+KE2THTNqR0VRvS8qiC\nbpQDbku0oisaluttPJCsE4IO6JhDDjgcgm5UgAWV3ukgBP3Q6Z0A7Fh1Wfmc4PkU7eKiv66NQtCC\nIEQf6eKPIFrVII7GuV1N1crCNd/9gOdDUISloDRs/1EUpaq3t7ZoKiygs90JCapFN95EgGOqTlJL\nMlnK4LouD55+FF3VuWrVFeVzEmexFzgQ4KQIsCCsOESAI4heNYqy+RtzMIxjoWZBz4VAsNJ6quke\nvp0hYa0twgq7+dkO4QDvw0ggwskGQzgCWv0NGQ6PH6M/O8AVvZdUOffwMA7bcRpdZkHI1mlDEgRh\nZSACHEHU8GYM02xKH4RUF2o3pLkQhGxTDcLPAV2h6uZUTbV0ap4CDJWwdiMXHtAab2WylOHB048C\ncN3aq6uOB/c/PjjKW//6Ph7fPwiA7djYjj2ntTVCQtCCsHIRAY4gVX3A0zjbwLkthxxwbVi5lrCw\nTm1D8ucf66mGPbzTEbjoZjlg8FqRbNfmodOP0h5v48Ku86uOB8/nxMg4rguHT3vFIB975O/5l93/\nNqe1NaIiwEv3AUoQhMVBPlZHkOpJWNM54LR/3tK9gce1GL2pnvJm9o2oDkFXO+BAPOfqfiHsgKcX\nYPBCzE9ff/2UcZ+BA875JdOZXAnHdTgxeYpTmX5/M4mFmVKVK3iOWkLQgrDykL/qCFI9C7r5j7An\n2Q1Aa6y16XmLiaqovPe6d5W3F2xEV0hca11qEL7unEMBVkDgwBttxBAQTMMCuH7N1NkyFQHOAwqZ\nfImslQPAcR3MkQNc2XfpnNcZplyEFZc/VUFYachfdQSpLsJq7oCfv+UWdqy6vDzqcalotmlEQOBu\n41p8yvkpzRPPzvjcBTg1ixA0wMa29axrXTPleBACz1tFIEEmb5ENzY7eM7xvQQU4GddQ1eYfXgRB\niB6SA44g4XDydMIW1+JsbFu32EtaEIIRk/XGVa5tXU1KT3FB19znH6dmWITVk/KiBjesvbbu8SCE\nHcyDzuRLZEq58vG9Q/vq3m8uZGv2AhYEYeUgf9kRRKvajGHl/Ajb4i1oilZ3y8LORAcff+YH5nX9\nwAFPlwO+su9S3n7lWzm/a1vd47V9wJmcRdaqOODB/DBnsoOsSvfWvf9syBUsOlqbr1cQhGiyct69\nzyG0WbQhRQlVUXnF+b9SlYNdSFr9grRG07jC6zC6z2t4PAhBFx1fgPMlsr4D3ti2nmMTJ9g7vG/e\nAuy6LrmCzZoeqYAWhJXIynn3PoeoygEvYXvRYvDMDTdw1arLF+Xa16+9hpee9yIu7jbmdZ3AQZdC\nDjjj54Cv9idm7Rl+qny+ZTt85e6nODWUYTYUSw6O60oIWhBWKCLAEURVVBS8opyV5IAXm3QszXM2\nPWtGBWHNSGgxAEpuCQDHdRnLe/sHb2xbz6pUL/tG9peHcuw5MsL3Hz7Gtx84PKvHyRVlCpYgrGTk\n3TuiBCKylAM2zlUCB2z5AgwwXvDcbUsszYXdF5C3CxwaPwrA4FgegCcODuM4LjNFpmAJwspGBDii\nBJsrLOWAjXOVoAjLoiLAE74Ap/U0F/dcAMCeIROAIV+AJ3MlDp0en/HjZEWABWFFIwIcUQLhDW9N\nKJwdgiIsO+SAJ/0ccEssxfmd21AVtZwHHhrPl8974sDQjB9HHLAgrGzk3TuilEPQK6gNKSqoikpM\njeEoVvm2XCmHqqgktARJPcn2ji0cnTjOZCnD0FgeVVHQVIUnDs5GgL0cciouUQ5BWImIAEeUsgOW\nIqwlIaHFccMCbOdI66nyuM0t7ZtwcenPDDA4lqOrLcH5Gzo4dGqCsczM9hEWBywIKxt5944ogQNe\naW1IUaFWgAtOvrzxBUB30pvqNZAdYmyySE9Hksu29wCwe4YuOCd7AQvCikYEOKIERVj6Eu7zey4T\n1+Kg2STjGuBSIk9aDwuwN3v7xNgALtDbkeTybZ4AzzQMLQ5YEFY2IsARJXDAqlRBLwm6EgfVoqc9\nCaqNi0tLaMJWIMD9k8MA9LQnWdfbQk97gt0Hh7EdBwDHcRuGpKUKWhBWNiLAESXIAesiwEtCTImh\nqC6d7TEU3auGTtcJQQ/lRwDo6UiiKAqXbe8lW7A4eHKcI6cn+ODnH+Zd/3g/B09ObU8qO+CkCLAg\nrEREgCNKpQ1JBHgp0BRvGlZHmwq+ALeEQtBJPUmLnmaiNAZ4AgyUw9Bf/J7Jhz7/CEf7J7Edl+8/\nfHTKYwRV0JIDFoSViQhwRAlyvzKIY2nQ/X1M4gmXZMoLJ6dqNnnoTnaSdScAl952T4Av2tyFrikc\nH8jQ3Z7gna+6kg19rTyyd4DhUL8wVBxwUtqQBGFFIgIcUTQpwlpSVDwHrOkOyZTnVMMOGLw8sKvY\noBfpbvfGVybiGr922wW8+Olb+dCbr+OSrd0855oNOK7Lfb84Ub6v7TgMjeeJ6yq6Jn+mgrASkb/s\niKKJA15SFNdzwKruEEt4Drh2m8OgEKut0yKmV35ON1+5nhc/fSsJ39lef/FqWpI69z12kpLlifm3\nHzjCmZEcVxl9i/5cBEFYGkSAI4ouOeAlRS0LsE0s4YWKE2qy6pzOhFeI1dZh0Yx4TONZV65nMl/g\n0w9/ne/t+gXfuv8QPe0JfuO2CxZh9YIgLAdEgCNKseTtqiMOeIlwvNddUR3UuCewqhOvOiVJKwCJ\nluknXz17x3r0ntPszT3KnU/8K+gFfvOOS0gnYwu7bkEQlg0iwBFlaBBcR8UuiAAvCY7ngBXNQvWr\noAdQpxAAACAASURBVLFqxLLo5YS1ZHVxVT262xO0bToOgKsXWH/Vfs7b0L5w6xUEYdkhAhxRerJX\nkn/8mSjEpz9ZWHBc2//go9q4mifATo0AW3mv8MrRs9Ne79D4EfL6MPbwKpKFtQy5x7jv+P0Lu2hB\nEJYVIsARxbFVKCWxbWepl3JOUhFgC0f1QsxWsToaMTHunVdQJqe93n3HPLH91ctu4y/v+F3aYq3c\ntf87HJs4Mc09BUGIKiLAEcV2vBywbbtLvJJzE6fk/ek4ioVNAdfSyeWrPwwNTxRwCyky9tQpV2FG\n8qM8NvAE61vXcssFl7Ouq4fXXvwqLNfmS3u/vmjPQRCEpUUEOKJYvvO1HHHAS4FteW7XUSxKFHCt\nGJl8qeqcobE8bjFFwSmQs3Ll2z/7xBf52MN/x8GxIwD85MTPcVyHmzfcVN7O8JIeg83tGzk5eRrX\nlQ9ZgrASkRl3ESUIPVvigJcE21IgAQ4WBScPdmqqAI/n0Tq8Qqzh/CjrW1OMFsb4xcATAPzNo5/i\nmRtu4NH+x2nR01yzekfV/dN6Ctu1KTkWcU2qoQVhpSEOOKJUQtDigJeCUtH708k7OSy35DngXKXf\n13VdhsbytGhtAAz7mzL8csgE4Po117Aq3cuPjj/AZCnDTeuvmyKyKd3rK85Z01dRC4IQPcQBR5TA\n+VqOOOClIBDgiZKX360NQU9kSxQth45YJxkquyI9ObQXgOdteTZdiU6+e+Qe9o0c4OYNN015jECA\n81aOjkTbYj4dQRCWABHgiBLsJytFWEtDqejlakfyo94NVoyMU3HAQ/7GCj3pLk4Cw7kRLMdi7/BT\n9KV6WJX2Rkzese15DR8jqfkO2BYHLAgrEQlBR5TAAUsIemko+gI8WvC2G1TdOJlcxQEPjXmiubat\nF/BC0AfHDpO3C1zcc+GMHqPigAsLtm5BEJYPIsARpVIFLQ54KSiWHHBULNfbPCGuJKtC0IO+AK/v\n6EFXNIbzo+z2w8+XzFCAk5IDFoQVjYSgI4oUYS0thaKN4uq4eEM4EmqyqghrYNRrO+rrTNE10slw\nfoQnh4rE1Bjnd26b0WNIEZYgrGzEAUcUaUNaWvJFu7wjEkBKS5EtWDj+B6O9R0eIx1TW9bbQnexi\nojTJ6Uw/Rtf2GbcUhYuwBEFYeYgDjihlByyDOM46lu1gOy4qMWz/tpaY1++bLVgUSzanhrJcvr2H\nmK6W9wWGmYefQRywIKx0xAFHlHIbkjjgs06h5MmuRsXJtsY9Ac7kSzx5aBiAS7Z2A9Cd7CyfN9MC\nLJAqaEFY6YgAR5SgCEtywGefQtETYF2pBJDaEi0AZHIWu30BvtQX4J6k9//q9Cp6U90zfhwpwhKE\nlY0IcARxXTcUghYHfLYJHLCuVLaC7Eh6AjyRLfLLw8N0tydY0+254jUtqwC4vPfiWT2OtCEJwspG\nBDiChEXXEgc8Y46dmeSvvryTsUxxXtfJ+w44pngh6Jgaoz2VAuDJw8Nk8haXbu0ub6ywuX0jv7/j\nrbxw622zepyKAIsDFoSViAhwBAkL8EpzwH//9V186Qf7FuXaj+8fZO/RUfYdG53XdYq+A46rngNO\n6ylaUp4YP7z3DACXbO2pus8FXefNekMFXdWJqbqEoAVhhSICHEHCed+VVIRl2Q6/2D9YzqHWsu/Y\naDn/OheyBa9PN1+0mp43mSvx7z98ivEGTjlwwHHNE+CWWJqWpJcPHpssoihw0eauuvedLUk9Sc6W\nNiRBWImIAEeQsOiupBD06ISX68zVbOsHcPzMJH/5pZ18/+Gjc75+Nh8IcHMRf8Q8ww8eOcZ3H6z/\nWEEOOOELcDqWoiVZcbdb17bTmlqY7QNTWlIcsCCsUESAI8hsQtAnBzP89wOHcSKwqfuwL8DZwlSB\nHJ7wROj0cHbO18/5Dng6Fz3hO9+fPXm6bp91cP+kngCgRa84YIBLtsy80nk6knpScsCCsEIRAY4g\nYdc7XRvS3Y8e55s/PsjJwcxiL6sp+0+McWa0eSh1xBdgy3YoWdUiGbjX4Jy5UAlBTyPA/qYKY5ki\nTx4amXI8HzhgPXDA6XIOGCr9vwtBSk9Sciwsp3nYXBCE6CECHEGqqqCnccATWc/NFUtLF6q2HYeP\nf+UxvvT95sVVgcuFqS44EM/5CPBMHfBkthICf2D3qSnHgyKstF+lnI6lSMY1VEUhldDYtq59zmus\nRaZhCcLKRUZRRpDZOOCM7xyXMldcKNoUS8604jkyXjmezZfoaImHvq8IsOu65Raf2VDJATd3k8GH\nlt6OJDv3DZLNl0iHcryBg07FvBB0Wk+jKArPfdpGOlri6NrCfa5NhnqB2+KtC3ZdQRCWHnHAEcSu\nKsJq7oAn/XDqUgpwIFi5wtTiqjBhgc41cMBFyyl/qJgt5RB0afoQdCKm8cwr1mHZDg/5rUUBgYM+\nr2Mbl/ZcxJV9lwLwymefx/OetmlOa2tE2QFLJbQgrDhEgCOIFSoMmq4IK9ijdjkI8HTCOVwlwNXn\nZkP3nWsYOjfTHHC2RFs6xo2XrkEBHnjidNXxoAq6M9XG71zxxvKkq8UgmActhViCsPJoGoI2DEMF\nPgVcDhSAt5imeaDOef8MDJmm+Z5FWaVQhT2LNqSKA166KuhAsPJFG9tx0NT6n/tGqnLANQJcqBbg\njatmF44tWQ4ly/HX0fiDgOu6TOZKbOhrobs9yYWbu9hzZIT+4Syr/dGS5TakuDarNcwFyQELwspl\nOgf8EiBumuaNwLuBT9SeYBjGbwGXAsu/z2WFEM77NnPAJcsuF18tBwcMU0PLAZbtMDZZDJ1XLZLh\n3uCwUM+U8PWaFWEVSjYly6E15eWfb7psDQD376644OD+iZgIsCAIc2c6Ab4J+C6AaZoPAteEDxqG\ncSPwNOAzwOyrYoQ5Ea58blaENZmriM5SF2EFZOoM2QAYHs/jAknfVWbzzR3wbAnfv1kIesKvgG5L\ne0VXV1+wCk1VylsMQsgBnwUBlh2RBGHlMp0AtwPjoe9tPyyNYRhrgfcCb0PE96xizXAUZSZXmtF5\ni02+VBG/WmENGBr1BGZ9r7er0JQQ9DxzwOH7NxPgIGQfTLJKxDXWdKc5NZTB9YeZ5Is2cV1FVRf/\n1142ZBCElct0bUjjQFvoe9U0zeDd/xVAL/AdYA2QNgxjj2maX2h2wb6+tmaHzynm+lq0nJoof62o\nSsPrnA619SRT8SV77WPxocrXiVjddew9cQKA7Ru7OHByHJTq55Uv2fR2JBkcy5Mp2LN+LseHK1XE\nhVLj+x8Z9CZtrelrLZ+zZX0HJwYzqPEYvZ0pbNclmdAX9fUMrj2meps6KHHnnP3bOVefdz3ktaiw\nEl6L6QT4fuAO4GuGYVwP7AoOmKb5SeCTAIZhvB64cDrxBRgYmJjulHOCvr62Ob8WwyOVqVb5gtXw\nOidOjZW/Hh3NLtlrPzhcWe/J/nE2dKemnDM05glkd6uXe/3/2zvzMDnO+s5/qrr6nO65Rxrrlm2p\nJEu2wcb44AZzJTiQhByEBB4SzuySLM8+S4DN5tiw2ZAnsAFyH4Q4CSSBQLiPYAJ27NjYRj4ll2Tr\ntDSS5tDcfdWxf9TR1d3VPSNpZnpq5vd5Hj+eqa7uefud0fvt3z0+WQzW6zgOc8Uq2zYWmC+ZnBuf\nu+j3MnK+dn/VtBk5OxVZr/ust2eq4wQ/Y8Bb0+OHz7F/5wBzxSopTV22/Qz/bZTmXGt9Yma6bj++\nduzb7OnfzdW9O5dlDauFy/l3staQvagRt71o9WFhIRf0F4GSruv34iZgvU/X9Tfpuv6OiHslCWuF\nCGdBt0vCCpf9LNQxazkJx4BbuaDHfBf0kOuCDidNVU0b03LIpTX6utN15UqLpTGpq9yiFjiIAYda\nS27y3OIjnnVcrlgrkgEN0THg0eIY3zh+F989efeKrEEQhOWhrQVsGIYDvKfhclM/QcMw/nYpFyW0\np64VZdskrFAM2OxgFnR14SSsMc8C3jTQhUJ9DNj/OpfRQIHTo3OUKiaZ1OIbufnCn01rFMsm5YpV\nN8HIZ6boZmIXcrUuXJsGXAE+M+5a8uWqtSIJWBCdBT1RcucZT1fiYwEIgtCMNOKIIYttRVmXhBUx\n1WelqLOAy62SsIokVIWerhQZTySD53jimUtr9OXd9o8Xm4g173Xh6i+4zy+2SMTy+0DnczVx3tif\nQ1HcyVKm5VrjKyXASTWJqqh1SVgXAgGeXZE1CIKwPIgAx5C6RhxtXMv1FnAHs6ArC2dBj00W6c2n\nUFWFXDpRd58v2tmMRl/h0gS4WHIF139+q2YcjWVIAElNZUNfjjNjcytaggSgKApZrX4m8ES5ZgE7\nMRgzKQhCNCLAMaSuFWWb8qI6AV7COuBWItqKUl0dcPNzLdtmYqZMX7frbs2mky0t4H7vnku1gH0B\nbtWMY7ZY9aYa1bu3Nw3kmCuZQaw6s0IxYIBsol6AfQu4alcpW5c+HUoQhM4iAhxD6pOw2rigS0vf\niOPBp87zX//wbo6fnV74Zo9wwlMxIgY8PVfFtp3APZxLJyiWTWzPuvPFM5dJ0nupLmhvL3wBb1UL\nPDNfIZ9LojZMW/ITsY6NuO97pZKwwI0Dl6xmAQaJAwtCnBEBjiGdbMTxg0PnADh1fvHxx3LFIqEq\nJDU10gL25wD71mk2reFQs1KLYQv4Ul3QZRMF6PFKitpZwOEMaB8/EeuoL8Ar5IIGNxO6bFWwHff3\nPlG+EDwmcWBBiC8iwDHEz4JWWCALulQNal2XwgK2HYenTriHf9i9vRClqkUmlSCX0SLd1/4c4L6C\nN+A+47p//XuDGLBXhgSX4oI2yaY1sl7mdFQM2LTcUYfh+K+PbwEf75AAg9sNy3EcsYAFYY0gAhxD\nfBd0KpXAccCOSMTym1f0ehbfUgjwqXOzgQXrZwsvhlLZrZvtyiQjy5B8Me0PWcBQq90NYsAZjVxa\nI5VUL8kCzqa1wHUcNRPY9xjkQyVIPsMDORTg9JhbirTSLmhwS5Fmq3NUbRNVcf/pzogFLAixRQQ4\nhvhi6lthUXHgStUtl/Fjpkvhgj54ojaQ4GIs4HLVIpNyxXO+bDZl7ja6oAMLuFxvAefSGoqi0JdP\nX/REpPmySS6jkfUFOGIq00yxuQmHTzqZYKAng7/0lbSAwwLsW7+butwpTWIBC0J8EQGOIb4LOp30\n3cvN4uoLpB/zrC6BBXzweC32eFEu6IrbuCKX0XCc5gSowAIOsqAbBDhkAYMr1NPz1WC+70LYtkOx\nbJELWcBRnbCiSpDC+G5oWPksaHAF2C9B2t69BYAZEWBBiC0iwDGk2QJuFmDf1dvb5VqV7Rp2LIaq\naXPk1CRXDLhNKRYrwG7jCptMKkGXJ6CNbuiJmTKq14QDXEsXai7oYsgChlqseHJ2cW5oP96bTWtB\n96yoGHDjJKRG/EQs6FAM2KpZwNu7twJiAQtCnBEBjiE1C9gVgaj4biAmuSQJVblsC/jomSkqps2+\nHf10ZZKLFuBKqHFFLu0KW2Mi1oXpMv2FdDDeL7CAQ0lYWsLNogYuuhlH2IL2LdeoMqSZ+eY2lGGu\nGMwFX69kDDjcD3qi5HohNuevQFMSkgUtCDFGBDiGBBawJwJRzTh8gezKaGgJ9bJjwL77ee+OPgq5\nxQuwL3SZdKIpuxnczOrJ2TIDvbUJSf594SQsP/4LlyDAoSxq/0NLtAA3t6EME3ZBdyIGXDJLQR/o\n/kwfhVSB6bJYwIIQV0SAY4gvuIEFHJGE5Wcr57NJtIRy2VnQB09MoCigb+2jK+sKsL2INoiBACfD\nLuiaAM/MVbBsh8GemgA3xYDLJtnQ4ISLrQUOu7DTbSzg2YhJSGE65YJuTMLSVI18sovuVIGZ6qy0\noxSEmCICHEMaXdBtLeBs8rIt4GLZ5NiZGa68optcRqOQTeI4i2tJGfROTiXIeSLqd7YCgtGCA72Z\n4FpjDNi3gH38WuCJRWZCh13QqqKQTiYiG3FETUIKk03XelGvaBJW2AVdvkBfugdVUelO5zFts65N\npSAI8UEEOIb41myqTQx4LpRQpCWUyxpHaJyaxHYc9u7oA1xRD/+MdviWpp8FDfXCPTHtisdQ2AUd\nEuCqaWFadvBcIJiINHkJLmhwxTMqCStwQbewgKHmhl5JAc54WdAz1VlmKrP0ZdzfQyHpDvmWTGhB\niCeLH6gqrBqaLOCoLOgGCziq8cRiOeTHf7f3AzUX7UyxysYFnusLXSalRbqgR73hBhv7awlO4SSs\n8Bxfn0JXioSqXHQM2Bf2dCoRuR8z81Wy6USQ7BXFHbftQN/aS4/3IWAl8C3gkVm3DWh/uheA7rQr\nwNOVGTZ2bVix9QiCsDSIAMcQ07JRFEh5dcBRLuggBuwnYV1E3W4jB49PkNRUrt7c7b6ml6S0mEQs\n39WbCbugQ2VIo1NFAIZD8dWkpqIlFIpls0k8AVRFob87zdmJeWzbCbKnW1EMjTP01zI1V2m6b6ZY\naWv9Auze2svurb1t71lqAgGeOwtAX8b9+YVUHpB+0IIQV8QFHUNMyyGhqiQ84WlVhuSP1dMSatu5\nwe0YmypyemyOvdv7SGquxZ33hHQx7ShL4RhwQ3IVwOikK8BhC1jx1j1fNpuacPhcs6OfuZLJkWcn\nWYjwOENwE8IqFasuicxxHGbnqy3jv50klUihoFCx3f3u9wS4O1WzgAVBiB8iwDHEsm20hELCG7TQ\nqhFHLuOW7lxODPjxZ8YBuO6qgeDaJVnALWLAo5Ml8tlkYB37+G0royxggBt3DwHw8OHRBdcQvIZv\nAXvTlirhMYllC8t2FrSAO4GqqGS0msu7r0GApR+0IMQTEeAYYlkOCVVBW8AC9sVES6hYtnNJ5SqP\n+gJ8ZUiAsxcvwOlUgkwqgaooQScs23EYnyoyFMqA9smmNYql1hbwnu19ZNMaBw6PLvi+ihFJWFBf\nijQbZECvPgGGWiIWuDXAEHZBiwUsCHFEBDiGmLaDllBbWsDuJCQzJMC+UF+cAFeqFk+duMCmwS4G\nQ1nKNQFujqM2UgoJsKIodSMJJ2fKmJZTlwHtk8toVEw76E7VaAFrCZXrrx5gfLrMiXPtBajRBe0n\nr4VLkWp9oFefCxpqcWCAvnSjBSwCLAhxRAQ4hliW64KuCWu9BVwsu/FNP+v4UmcCP3Vykopp17mf\nISzAC9cB+zFgvwdzWID9+G+UAPvW6oQ3K7jRAoaQG9po74aeL5ukNDXYh1o/6JAAt5mEtBrwBTif\n7CKVcNeYSaRJqppYwIIQU0SAY4hp2XVJWI1Z0LOl+nrWVgL86W8c4pP/8lhLF+7jEe5ngK5MEgWY\nnV/YAi77ZUie1dmV0YIM7bEptwRpsCfaBe3e44q030c6zP6dA6Q0lR8uEAculs0gAxoIdcMKdeTy\n3kurNpSdxhdgPwEL3GS17lRBsqAFIaaIAMcQy3ZIJJSasDa0ogzXAANoWvTYwsePTnDgyBiPHx1v\n+hmO4/DoM2Nk0wmu3tJT95iqKm47ykV0wgq7oAFymSSmZVM1rbYWsO8uHvcadWQjLOB0KsG+nf2M\njM9zZmyu5RoaO2llo2LAQRvK1emC9gcy+E04fAqpAjMVaUcpCHFEBDiGNJYhNVrATQLcwlXtz9P9\n8r3Hmw7wkfF5xqZK7NvRHwh9mK5scnEWcLVWBww1YZ0rmYsSYN9KbowB+9you27oVlaw4zgUy/UC\nHDUTOHBBr1IL2BdgvwmHT3eqgOVYzJvFTixLEITLQAQ4hvhlSFqLJKzFuqArpitAR89M8+SxibrH\nHgvKjwYj11DIJpktmgtaXqWK5WZse2sId8ManSoFTTUa8S1ePzmqlQBff/UgCVVpWY5UMW0s26mz\noKOyoFe9CzrhW8D1AuxnQksiliDEDxHgGGJZfhZ0tGU75yVHNSdh1TeeqFZtuj3B+dK9x+rE9LFn\nxgC49sr+yDXks0lsz7psR7li1fVNDnfDGp0s0t+dJqE2/xmGBTehKkHXr0a6Mkn2bO/jxNkZvnfg\ndNNeNGZAQ4skrFXugu5Kuo1KBhpc0NKMQxDiiwhwzHAcx40Bq0ogXM0C3GgBNwu1ZTs4wJYNeZ67\na5BnTk9z6MQFbNvhgYPnOPLsFDuGCy17HudD/aDbUWoSYFf8pmYrTM1WIt3PUC+Y2dAs4ChefdNW\ntITKnd8y+NBf3M89j53B8uLixYhGHlFJWBPTZdLJBNn0yg1ZuBhuueJ53HHla9g/uLfuere0oxSE\n2CK9oGOG724OlyE1uaD9GHCmtQu6UvUmKmkJ7njBDg4cGeOz3zmC7TiMjM+jKgqvvGlry3WEm3Fs\n7Gt5G+WqRXdXzar0Bdiv3W0lwOHhC1ElSGH2XznAR959K1//zxN8/9HT/M3Xn+LcRJE3vvSq2iSk\nNi5ox3EYnSwy1JttK/SdpJDK85odL2+6LhawIMQXsYBjhi+iiUS4F/QiY8ChdpRVL/6b1FR2DHdz\n3VUDnB6b49xEkRdedwW/+86buXXfcMt1BO0oF+gHXapYdcPr/Q8FJ876AtxcggQNAtwi/humr5Dm\nza/aze+961by2ST3PHYG07IjLeBMQyOO6bkK5arFhr7oDwOrmYK0oxSE2CIWcMzwrd1wYpPVVIbk\nTUJqdEGHLOWK6VvA7mu85dU69z4+ws37htnQwioNs5h2lKZlY1p2vQs6vTgLOGz1LmQBh+nvznDz\n3o3c9cNnOXh8gmLZqvu5EI4Bu/t03svGXsz7Xm0EFnBZLGBBiBtiAccM39rVErXOTk2NOIpVtEQt\ncSnKAvYFOOlZg/3dGe54wc5Fi9BiBLixBAlqYuonPS3KBb0ICzjMrftdy/2+J87WXNCRMWB3fecv\neOVQsbSAvRhwVQRYEOKGCHDMsAIXtNJyHOFcqUpXNhnEM2sNO2pC7bugU22Gz7djUQLc0IQDapnZ\nPq0FuFm0F8vOKwps7Mty4MgYE14jj1ybGPBojC3gjJYmlUgxIxawIMQOEeCY4YuoptbKkBqTsOaK\n1SDWCiEXtNmchJVcRgEuhUYR+oTHDmZSiSZB9kmoaq17VkQbynYoisKt+4apmjb3PXG26TVc74ES\nWOiBCzqGFjBAdzIvWdCCEENEgGNGnQXcosFGuVofd43Kgq42xIAvlsUkYfkCl46IAQMLZh3790a1\noVyIWzw39IUZd5hDY3lRJqXVLOALRRJqdEOQONCdLjBTncV2Lm3msyAInUEEOGb48V5NVYN5wGEL\n2LYdTMuuE9bIMqQgC/rS6l59y7WtBezFX/2kJ3D7SPti2Mr97OML8MXGgMF1J1+9udbDOmx5u2tK\nBIMizk8WGejJRDYEiQP9mT5sx+ZCaarTSxEE4SKI54mzjvEHL9QNY7DC2c1ebDcZZQGHY8CeBdyi\nw9RCJFSVrozWXoB9CzhZL/K+OzhqClIY3/K9FAEGuHXfxtprNVjA6VSCUsWiWDaZma/GMv7rM5R1\n24WOFsc6vBJBEC4GEeCY4Yuo64L2hzFENNioE+DmZK0gBhwxaGGxdGWTi0rCCrvDoZYQtVgL+FJc\n0AA37d1IQlVQFaXpQ0DGE+A4Z0D7DGXdcZEiwIIQL6QOOGb4Yuu6oJuHMVR8qzPsgtaiYsCeC/oS\nLWBwBzKMT5VwHCcylluKiAFDzX29kABnL8MFDW6i2Gtu3sbUbKVpfZlkAst2ODPujjGMswW8Ieda\nwOfnRYAFIU6IAMcMPws6bAGHhbVsRljAXqy4akU14rj03sf5bBLLdihVrLo622AtEVnQUIvHtuqC\n5dNXcJOieguXnhz1ky+5KvK6H5c+dd7NHo6zANdc0M1znQVBWL2IAMcMK9SII2oesG8Bh2O7vgVc\n56q+zCxoqB/IECXApRYu6Jc9dzODPRk29ufavv6P3LKd668aWBZx9K3yU35Hrhi7oLuSObJallGx\ngAUhVogAx4yaC1pBUdxmHKYdju36DTZqoufHeatRLujLEWCvFGmuWIUIkaw14qj/M9u3s599O6PH\nHNa9fjaJvq3NpIfLwP9Q4FvAC7nDVzOKojCUHeDM7Ai2Y6MqktohCHFA/qXGjJoLWvX+rzRkQTdn\nNyciWlZGJWtdLIEF3KIWuFUMeDXgu6Cn56v05FNNSVpxY0NuENOxpBRJEGKECHDMCDfiADcZK9oF\nHbaA/RhwcyOOy7KAg25YlcjH/TrbxhjwaiD8oSDO8V8fyYQWhPghAhwzgjIkL/6bSCh105B8yzYd\nWQfc3IhjKWLAs0Uz8vFSRC/o1UI4Lh3XFpRhpBZYEOKHCHDM8MXWF1UtUW8Bl6vNwtquEceldsKC\nhS3gVklYq4GwVb4mLGCvFGl0XjKhBSEuiADHjPA4QqB1ElZUI46IYQyX2gkLIJ9LAa0t4HLVQgt1\n7FpNZMI9qdeABbzBs4DPiwUsCLFh9Z2MQluCGHDgglbrLFu/DjjSBW03Z0Ffjgu6pyuFosAPDp7j\newdOYzdMZSpXrFWb3JSus4Dbl0PFAbcUKSO1wIIQI0SAY4bf9cq3arWE0tCKMqIO2Bdgs74OWAk9\ndinks0ne8mod23G481sGH77zIY6NTAePlyrWqnQ/w9qLAbulSIOMFcdlKpIgxAQR4JhhBhZw2AUd\nUV4Uiu2qXj/kuvtMm6Smth0HuBhe8pzN/O47b+GWfRs5fnaG3//MgaA/dKliNtUArxZ8Ac6mtZYz\niePGUHYA0zaZLEspkiDEARHgmNFsATeUIZnNFrB/f9gCNj0BXgp682neecc+fvzFV1KuWjx46Bzg\nxoBXuwW8YYGZxHFioZ7Q89UiZ+fOr+SSBEFogwhwzKhNQ/KyoFXXBe047vVKixGAWkOsuGJal9WE\nI4oXXnsFigL3PXkW07IxLWfVxoALuRSppMr24Xynl7JkLNQT+vNHvszvPfhximZpJZclCEIL1obv\nbR1hRiRhOYDtOCQUpWWHKy2hNNQB20sujn2FNNfs6OfJYxOcPOe2eFytFnA2rfHbv/h8ur1M9OBA\nJgAAG6xJREFU7rVArRQp2gI+Pn2Sql1lqjxFVms/CEMQhOWnrQDruq4CfwJcB5SBtxuG8Uzo8TcB\nvwqYwOPALxuG4US9lrA01FzQtVaU4LaZTKhQbpHdrGlq/TjCqk3Bq+NdSm7bP8yTxyb49wPPAquz\nCYfPxr74Zz+HqXXDaraAq7YZXJ+pzDHctaJLEwQhgoVc0G8AUoZh3AZ8APio/4Cu61ngd4CXGobx\nQqAHeN1yLVRwaSxD8mcC++5l3wJujO9qqtpkAV9OE45W3LBriHQywQ8OubHGzCpNwlqL5JNdZLVM\nZC3w6PxYkB09U51d6aUJghDBQgL8AuCbAIZhPAA8L/RYCbjVMAw/oKQBxSVfoVCH2ZCEFVjAXo1v\npWqRSjZnN7sWsPtc23EwLfuyaoBbkU4leJ4+FHTaWo19oNcq/lSkqFKkkbmzwdezlbmVXpogCBEs\ndAJ3A9Oh7y3PLY1hGI5hGKMAuq6/F+gyDOM7y7NMwScYRxhqRQk1C7hctepKkHw0tRYDDtpQXkYX\nrHbcun84+Ho1u6DXIkPZwchSpJFQ9rNYwIKwOljIPzgNFELfq4ZhBB+tPTH+feBq4CcX8wOHhgoL\n37ROuJS9SHjiumGoQF93hi4viainN8dQfw7LdshmtKbXzmaSWPY8Q0MFpufc3s2FrvSy/D5eOJDn\n0994irGpEgN9uUX/DPnbqHGpe7F9cBMPn3+USmqeoaFtwfULhyeCr61EJVZ7Hae1LjeyFzXWwl4s\nJMD3AncAn9N1/RbgsYbH/xzXFf3ji02+Gh2duehFrkWGhgqXtBfzXpOLycl5zHIVs+r2YR4dnUG1\nLIplk3w22fTajm1TNW3On5/mwkzZvWbZy/b7eP7ejXz9/hOYVXNRP+NS92Mtcjl7UaAHgIPPPsOw\nujm4fnziWVRFxXZszk9fiM1ey99FDdmLGnHbi1YfFhYS4C8Cr9R1/V7v+7d5mc954CHgF4G7ge/q\nug7wccMw/nVJVixE0lSGFCRh+TFgm1QhwgXtxXst21mSWcAL8ernb8W0bG7cPbRsP0No5qqenQAc\nmTzGy7e9GADTNjlfHGNrfjMnZk4xWxEXtCCsBtoKsGfVvqfh8uHQ1xLgW2FaliHZDo7jUKlapCNi\nu+GZwJUVEOBCLsXPvmLXsr2+EM1Ato+BTB9PTx7FdmxURWXUS8ranB9mrDTOTFWSsARhNSCdsGJG\nUIaUaC5DMi0bh+YmHFCfrBW0q1yGMiSh81zdeyXzZpEzs27m88ic2xp0uGsj+WReLGBBWCWIAMcM\n03JQFXe4AtSE2LRsyi26YEFoJrBlU21RKyysDXb1XQXAkcmjQL0AF1JdzFXnZWKSIKwC5ASOGZZt\nB2IKNcvWsp3IUYSN95lmzQUddZ8Qf3b1XgnUBPisJ8CbPAvYwWGuOt+x9QmC4CIncMwwLSeweqGW\njGWFYruRdcC+ANsOVc8FvRydsITOM5Dpoy/dG8SBR+bOkU6k6E33UEi5wydmxA0tCB1HBDhmWLYT\nZD5DvbC2t4A9F3TYAhYX9JpEURR29V3JXHWe07MjnJ8fY7hrI4qikE+6TaBnpRmHIHQcOYFjhmnZ\nrS1gL7YbNeWoJtT2ipQhCZ3Fd0Pfd+ZBLMfiiq6NACELWDKhBaHTyAkcMyzLCTKfIZxc5bSchOTe\n58eAw5ayuKDXKrt63USsH5x9GCAQYN8ClnaUgtB5RIBjhtmQhJUIkrBsKpXWwlqXBS0W8JpnMNtP\nb7qHkuV2PRvObQBqFrCUIglC55ETOGZYlhOILtRc0HUWcNs6YIkBrwcURQnc0ABXdLkDMgIXtDTj\nEISOIydwzLBsG01tVYbUWlilEcf6wxfgVCJFX8btER0kYYkFLAgdR6alx4xWZUimZWO5utoiCUsa\ncaw3dvW5Ajyc24CquL/rrmQOBUWSsARhFSACHDMaXdCBBWw52I7bJzrSBa3VXNBVSxpxrAeGsoO8\ndsftbCvUpiKpikpXMidlSIKwChABjhG27YpsvQvaH8ZQS66KHMbgZU5XQ+VKYgGvbRRF4XVXvqrp\neiGVZ7ocn1FugrBWkRM4Rli2P4ghOgmr0q4XtObXC9c6YUkMeH2ST3YxZ85j2VanlyII6xoR4Bhh\nWt4oQjW6DKltHXDYApYypHVNUIok/aAFoaPICRwj/FnAdRZwImwBtylD0mqx4qoMY1jX5JO+AEsc\nWBA6iZzAMcKfBVw3DUkN1fcuYhyhawFbJFSlrqe0sH4opLxuWFKKJAgdRU7gGOG7oBMRrSjrxhFG\nuJaToXGE1aot7ud1jHTDEoTVgZzCMcIMkrAiYsCWTXkx84BtNwYsXbDWL74LWrphCUJnkVM4Rlh+\nEla4DlitZTdXTLdPdJRrOTyMoWpaMgt4HSMWsCCsDkSAY4TpxYATEVnQ/jzgVqVFQScs3wKWBKx1\ni0xEEoTVgZzCMcLPgq6fhlRrMVmpthZWLRQDrpgSA17P1CxgcUELQieRUzhGRLuga+VFZdNqOeM3\nPIyhWrWlCcc6JqtlUBVVLGBB6DAiwDEi2gUdci23EVbfaq5ULWzHEQt4HaMqKvlkl1jAgtBh5BSO\nEVGNOIIyJK8RRzrVwgXtCe582QSkC9Z6J5/sWrQFbDv2Mq9GENYncgrHCN8CDreiVJWaZWvZTmsL\nWK0XYClDWt8UUnmKZgnTNtved3LmWf773b/B/SMPrdDKBGH9IKdwjIiygBVFQUsogbBGzQKG2jCG\nYsm3gCUGvJ7xM6FnF6gF/vIz36RiVXjw7IGVWJYgrCtEgGOEGdGKElxBLvqWbYssaFVRUAhZwFKG\ntK7xM6HbtaN8evIYhyYOu19PHaNiVVZkbYKwXpBTOEZYQSvKegHWVCXkWo62bBVFQdNqQi0x4PXN\nQqVIjuPwlaPfBGBX75WYtsmRyWMrtj5BWA/IKRwj/FaU4TIkcC3g2iCG1r9SLaEEbmwpQ1rf+C7o\np6eORVrBxoWneXryGPsG9vCaHa8A4CnPGhYEYWnQOr0AYfG0soDD37eqAwZfuFsPbBDWDwPZfgC+\nefwuvnn8LgYyfeh9V3PT8A1c3buTrxz9FgCv2/kqrsgPk1STHJw4zE92ctGCsMYQAY4RtU5Y9eIZ\njgm3E9bw85ISA17X7OnbxXuf8w6emTzG8ZlTnJg+xX0jD3LfyIMUknlmqrM8Z2g/27q3ALCr70oO\njhtcKE3Sl+nt8OoFYW0gAhwjgkYcDUlYYWFtlQXt3hcWanFBr2cURWFP/y729O8C3FrfpyeP8uDZ\nA/zw/ONoSoIf3fmq4P5r+nUOjhscmjjCbZtuAuDR0Sf47ql7eMf+t5D3ZgwLgrB4RIBjRK0TVkMM\n+KJc0C6ShCWEURWV3X1Xs7vvan569xsoWiW6U4Xg8b2eUB+aMLht001cKE3yd4f+maJZ4v6zD3H7\ntpfUvd58dR7LsYNkL0EQmpFTOEZEDWOA+rrgxbqgJQYstCKZSNaJL8DG3Ab60r0YE09j2Rb/8NTn\nKZolAB4YeRjHcYJ7bcfmDw/8OR958BNYtrWiaxeEOCGncIww25Qh+SzeAhYXtLB4FEVhb/8u5sx5\n/tH4IocmDnPNgM71g/s4M3eWZ2dHgnsPjhucnh3hQnmSo1MnOrhqQVjdiADHCKtNGZLPQmVIi7lP\nEKLYO6ADcN/ID8hqWd68543cfMWNAPzg7MPBfXedvDv4+rGxJ1d2kYIQI+QUjhFR4wjd72vC2j4J\nS1zQwqWj912N208NfmrXj9Gb7mHfwB66kjkePHsAy7Y4NXOaw5PPcHXvTjKJNI+OPlnnnhYEoYac\nwjEiahyh+33YAhYXtLA8dCVzvHzbi3jZlhfy/OEbANBUjedtfA4z1VkOTRzmrpP3APCq7S9j38Ae\nxksTnJk728llC8KqRQQ4RtSGMTSWIS22Dnhx9wlCK37i6tfxxt0/hqLU/pZuHnbd0P928ns8fP4R\nhrs2ck2/znVD+wC3XEkQhGbkFI4RtTrg1mVIi3VBSyMOYanYVtjCxtwGnp48hu3YvGLri1AUhX0D\ne0goCR4blTiwIEQhp3CMCMqQGrOgExfvgpZGHMJSoSgKN3su6UIyz00bnwtAVsug913NqdkzjBcv\ndHKJgrAqEQGOEWaLJKzEIrObwy5oacQhLCU3X3EjfeleXrvzdpKJZHDdd0NLNrQgNCOncIywWrSi\nrEvCamPZappkQQvLQ2+6hw+/4EO8ZMttddevG7wGaI4DO47DsamTfOHIV/nCka82jUUsmkW+cewu\nnjwvE5iEtYu0oowRNRd0dBmSojR3yaq7Tw1nQYsAC8tPT7qbnd3beHryGF98+mvYjk3FrnJo3GC8\nVHNLP3D2YX5q9+u5ccP1HBh9nM8d/hLTlRnuO/sAv3nz+9FUOaqEtYf8VceIVsMYfAs4lUzUZac2\nomnuY0lNbXufICwlN2y8nmPTJ/nOye8H19KJFDdtfC43bryec/OjfPXot/mbJz/DV45+i7HiOJqq\nsa2whZMzz/LwuUeDhh+CsJYQAY4RreYB+1ZvegGr1reAxf0srCQv3fICrurZge04qIqCqiTYmBsi\n5cWKrwWuG9zHZ576PEcmj7Knbxc/o7+BhKLxW/d/hO+c/D7PH75BPjQKaw4R4Bhh2jYJVWk6iPyy\npHYZ0FCLAWsiwMIKoioq27u3tr1nQ26QX3nuOxkrjjOUHQz+xm/degP3nnyIpyaOsHdg90osVxBW\nDDmJY4RpOU3uZ6iVJS0owN5zxQIWViOqorIhN1T3AfMO/XaAOvd1O+49/QB//OhfM1OZXZY1CsJS\nIidxjLAspykBC2ox4YWE1S9fkhpgIS5c2b+d3b1X8dSFIzw7c6btvQ+dPcBnjH/h4LjBXzx+J1Xb\nrHv84XOP8IOzP8R27KbnjhcvRF4XhOVEXNAxwrLtSAvYT8Jq1wULagIsGdBCnHjFthdzePIZvnH8\nLu648tVktQw5LVtXb/zUxBHuPPTPZBIZdvZs49DEYf7J+CJv3vNGbMfmn498if84fT8A3z7x77z+\nqtdyTb/O42MH+e6pe3hm6jjPGdrPL+3/eVRF/n0IK4MIcIywLKepCQeEXMvighbWINcM6Ax3beSR\n0cd5ZPTx4PrWwmb29u9mc9cwnzW+gAK867q3sqN7K//vh3/Kf448SH+ml8MXnuHI5FE2569ga2Ez\nD4w8zJ899mmyWoaiWQKgO1XgkdEn+OrRb/NjV72mQ+9UWG+IAMcIPwmrkcC1vEB/58ACXkCoBWE1\noSoqb7vmTTx07hHmzSJFs8hUeZrj06c4NXMaAAWFt+37OXb3XQXAO699Kx956BN87di/AfCcof38\nwt6fIaOlecXWF/Plo9/g6NQJXrjpZl629YXkU3n+4KE/4lsnvstw14Zg2pMgLCciwDHCtByy6Wbx\n9EV5odhuMiFlSEI82VLYxJbCprprJbPMkclnMC48zfbCVm7ceH3wWF+ml3dd+1Y+/eRnef7wDbx2\n5+2Ba3lTfph3X/e2pp/x7uvexh88/Ef8w6HP0ZvuZlfvVVL6JCwrbQVY13UV+BPgOqAMvN0wjGdC\nj98B/C/ABD5lGMZfLeNa1z2WZUd2uvIt2/RiLWARYGENkNHSXDt4Ddd67S4b2dmznd++7QOLfr3h\nrg380v6f508e/RQfP/AX5JNdbO/eypb8JjKJNJqaCDpyWY6N7dgk1ST9mV4Gs/3kU3kmS1OMFccZ\nK02QUlMMZQcYyg2QTqQZK44zWhxnqjzNQLafzV3DDOUGLzrmbDs2RbOEpmokVe2SYtZlq0LFqlBI\n5S/6ucLSsZAF/AYgZRjGbbqu3wx81LuGrutJ4GPA84B54F5d179sGMb55Vzwesa0nUgXdOKiY8Di\nghaEKPb27+Zd176V+0ce4sTMszw5/hRPjj+1bD8vqSbpSRXQEklSqoamJkmpSZIJDU3RcHAF13Ys\nKlQ4PzvOdGWmLmNbUxLkU3l6Ut30pLsppLrIaTm6kjlyySxdWo5cMkc6keLY9EmeGDvEkQvPYDoW\nfeledvRsY0v+CqpWlTmzyHx1nrnqPHPmPPPVeRQU1wOR38yWwhV0pwre62dJqklUxe2st9AHAcu2\nOD03woXSFBtygwxlBy6rxeh0ZYaD4wYnpk+RTqTd95rMMZQdYHN+E13JHHj7N1acYLw4AbghjYSa\noDfdw0Cmr6WXw3ZsZiqzKIpCPtm1LMl5C737FwDfBDAM4wFd158Xemwv8LRhGFMAuq7/B/Bi4POt\nXmyuWGW2WL28Fa8R0nOVi94L1wKOKENSLzYGLBawILRi/+Be9g/uBWCmMsvZuXNUbBPTrmLaJqCQ\nUFRURaVklZkoTTJRmmC6MktvuofBbD+D2QEqVoXR4jij8+NUrDKD2QEGswP0pLsZK45zenaE07Mj\nzFbnKFZKVG2TqlXFwYlcV0JR6Un3sKN7G/lkF6ZjYlomFbvKTGWW03MjnJg5taj3uCW/id50N8en\nT3Hg/GMcOP9Y0z2pRIouLUfVrvDI6BM80jBQoxFVUckk0mS1DBktQyaR8b5OM1me4sT0s1Ttat39\nQ9lB8skcqUSKdCJNOpEinUiRSqRIKAnmzSKz1TnmqvOoKCQTGik1xaQ5yTMTJ9qupzfdQ07Lcr44\n5v3emslpWbYWNjOQ6adslSlaJYrVElOVaSbLU8EHHVVR6U4VyCe7aBWUUJVEsL6EqlIyy8ybRap2\nlT+643cin7OQAHcD06HvLV3XVcMwbO+xqdBjM0BPuxf72V//+gI/TliIKAFOej2eFypD8l3PabGA\nBWFRFFL5FXXTOo6D5VhUbRPTNlFwLUtVUdg8PMD42Fzb586Z88xV5uos2Xnv63mzyHDXRvYP7KEv\n0xs8Z7x0gbNz50gn0nQlPcs5VOblOA5TlWlOzZzmzOxZZqtzzFeLzJnzmLbpWeg2pm1RskqUzDLj\nxQuUrXLwYUJBYVN+mB3d2xjM9DNaHGNk7jzn5s9zfn605YeOViQUld29V7FvcA+7eq/Ecmzmq/PM\nVOc4Pz/Ks7NnODN7lvHSBJu6NjLctZEN2UEURcVyLCzbYrQ4xqmZ0xgXnq57bVVR6Ul1s72wld50\nNw4wVZ5mujLNWHG85Zr831uYTCJNzrPEo1hIgKeBQnhtnviCK77hxwpA26nbX/no6yWjYRl4xVCB\nV9yyc8H7hoYKfOU5W1ZgRZfG0FBh4ZvWCbIXNWQvaiy8F90X/Zob6GYv2xe8Zxer9+yIKwv5Iu8F\nfgRA1/VbgLCf4ilgl67rfbqup3Ddz/+5LKsUBEEQhDWG4jitTX9d1xVqWdAAbwNuBPKGYfylruuv\nA34DV8j/2jCMP13m9QqCIAjCmqCtAAuCIAiCsDxIOqwgCIIgdAARYEEQBEHoACLAgiAIgtABlqwX\ntNcp6/cMw3iZrut7gL8CHOAwbgtLR9f19wC/6F3/XcMw/lXX9Szw98AQbi3xWw3DGFuqdXWChr24\nHvgz3HadR4B3G4ZR0XX9HcA7vesfNgzja+t4L94H/Iz3lK8bhvG/1+teePepwNeAfzUM48/X617o\nuv5a3CRPgAcNw/iVtbgXsOj9WNPnp9dd8VPAdiANfBg4BHwasIEngP/iacmaOD+XxALWdf39wF/i\nbhrAb+Fuyou8az+q63oe+B/ArcCrgD/07n0P8KhhGC8G7gR+fSnW1Cki9uKvgPd5e3Ea+GVd14eB\n9wK3Aa8G/q9XyrUe92In8HPArYZh3AK8Stf1a1mHexG6/cNALwTdCdbdXui6XgB+H/hRwzBuBU7r\nuj7EGtsLWPR+dLH2z883A6Pee3kN8Me47Y8/5F1TgNevpfNzqVzQTwM/AUGXriIw4JUxFYAKtcMk\n712zvO+Ddpfe/29fojV1isa92GIYxv3e1/cBLwFuAu41DKNqGMa095zrWJ97cRJ4jWEY/t9HEiix\nPvcCXdffiPtv45uh567HvbgVeBz4mK7rdwMjhmGMsvb2Aha3H+vh/PwcNY+HClSBGwzDuNu79g3c\n97dmzs8lEWDDML6A6wrw+STwceAgsAH4vmEYc8BnvWsPAZ/w7g23tFywneVqJ2Ivjuq6/mLv6zuA\nLlq38Qy3/lwXe2EYhmUYxriu64qu638A/NAwjCOsw78LXdf3A2/CPYQUagfyutsLYBB4GfB+4LXA\nf9N1fRdrbC9gUfuRMwxjHvhH1vD5aRjGnGEYs57343O4FmxYo8Ln5Jo4P5crCevvgRcZhrEX+Dvg\no7qu34r7qXYHsA34cV3Xb8LdML9/WgGYXKY1dYq3AR/Udf07wDlgjOYWn/77Dl9fL3uBrusZ4B9w\nD17fFbse/y5+AdgMfBd4K/A+Xddfzfrci3HcuO9578P73cBzWPt7Ac37Me6dn7ewxs9PXde34v79\n32kYxmdxY78+3TSfkxDj83O5BDiH+wkEYAQ3npUHioZhVAzDKONuTi+hdpe4n3TvZm3xOuDNhmHc\nDgwA3wJ+ALxI1/W0rus9uJOlnmAd7oUXpvgS8IhhGO8JuaLX3V4YhvFrhmHcYhjGy3ATTz5mGMa3\nWId7AfwQ2K/r+oCu6xqu+DzJ2t8LiN6PNX9+6rq+Efg28H7DMD7tXT6g6/pLvK/997dmzs8ly4L2\n8A/PtwOf13W9BJSBdxiGcVLX9Vfquv4AbvziHsMw/s0bY/i3uq7f4937c0u8pk7h78Vh4Du6rpdx\n/3Du9LL4PgHcg/sh6EOGYZR1Xf9T1tde/B3ufOkXA0kv6xXgA8B624s72zxn3e2F92/kg7jiA/BP\nhmEc1HX9GGtzL2Dh/Vjr5+eHcN3Gv6Hruh8L/lXgE16S1UHg82vp/JRWlIIgCILQAaQRhyAIgiB0\nABFgQRAEQegAIsCCIAiC0AFEgAVBEAShA4gAC4IgCEIHEAEWBEEQhA4gAiwIgiAIHUAEWBAEQRA6\nwFJ3whIEYQXRdf1O3K5If+l9/+/Ar+GONBwA5oH3GobxiDfs4RO4bQ03AB81DOOTuq7/Fm6rx63A\nJw3D+LOVfyeCsP4QC1gQ4s2ngJ8H0HV9O+4w8o/h9tO9EXgX7hQdgF8CfscwjOcDLwf+T+h1UoZh\n7BPxFYSVQ1pRCkKM8YZZHMadffoW3BGG/xO3b67PIO681CncJvXXAtcDP20YRsKzgNOGYXxwBZcu\nCOsesYAFIcZ406P+Frfx/E/hTlEqGYbxXP8/4DbDMC7gzlh9Pe5UoQ9SmzfsAKWVXrsgrHdEgAUh\n/nwaeDdw0jCMk8ARXdffDKDr+iuB73n33Q78pmEYXwFe6j2uUhNiQRBWEBFgQYg5hmE8C5zAFWKA\nNwNv13X9Udw47097138L+A9d1+8F9gCHgJ24FrDEogRhhZEYsCDEHF3XN+FaufsMw6h2eDmCICwS\nsYAFIcbouv5G4BHgAyK+ghAvxAIWBEEQhA4gFrAgCIIgdAARYEEQBEHoACLAgiAIgtABRIAFQRAE\noQOIAAuCIAhCBxABFgRBEIQO8P8BHGLz6bQO7xwAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 81 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see that prior to about 1905, all babies named Allison were male. Over the 20th century, this reversed, until the end of the century nearly all Allisons were female!\n", "\n", "There's some noise in this data: we can smooth it out a bit by using a 5-year rolling mean:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "pd.rolling_mean(births, 5).plot(title=\"Allisons: 5-year moving average\");" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nBP4Pr5DZiLAJo48AAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 82 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This gives a smoother picture of the transition, and is an example of the bias/variance tradeoff that we'll often see in modeling: a smoother model has less variance (variation due to sampling or other noise) but at the expense of more bias (the model systematically mis-represents the data slightly).\n", "\n", "We'll discuss this type of tradeoff more in coming sessions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Where to Find More\n", "\n", "We've just scratched the surface of what can be done with Pandas, but we'll get a chance to play with this more in the breakout session coming up.\n", "\n", "For more information on using Pandas, check out the [pandas documentation](http://pandas.pydata.org/) or the book [Python for Data Analysis](http://shop.oreilly.com/product/0636920023784.do) by Pandas creator Wes McKinney." ] } ], "metadata": {} } ] }