{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Notebook 5 - pandas\n",
    "[pandas](http://pandas.pydata.org) provides high-level data structures and functions designed to make working with structured or tabular data fast, easy and expressive. The primary objects in pandas that we will be using are the `DataFrame`, a tabular, column-oriented data structure with both row and column labels, and the `Series`, a one-dimensional labeled array object.\n",
    "\n",
    "pandas blends the high-performance, array-computing ideas of NumPy with the flexible data manipulation capabilities of spreadsheets and relational databases. It provides sophisticated indexing functionality to make it easy to reshape, slice and perform aggregations.\n",
    "\n",
    "While pandas adopts many coding idioms from NumPy, the most significant difference is that pandas is designed for working with tabular or heterogeneous data. NumPy, by contrast, is best suited for working with homogeneous numerical array data.\n",
    "<br>\n",
    "\n",
    "## Table of Contents:\n",
    "- [Data Structures](#structures)\n",
    "    - [Series](#series)\n",
    "    - [DataFrame](#dataframe)\n",
    "- [Essential Functionality](#ess_func)\n",
    "    - [Reindexing](#reindexing)\n",
    "    - [Dropping Entries](#removing)\n",
    "    - [Indexing, Slicing and Filtering](#indexing)\n",
    "    - [Arithmetic Operations](#arithmetic)\n",
    "- [Summarizing and Computing Descriptive Statistics](#sums)\n",
    "- [Loading and storing data](#loading)\n",
    "    - [Text Format](#text) \n",
    "    - [Web Scraping](#web)\n",
    "- [Data Cleaning and preperation](#cleaning)\n",
    "    - [Handling missing data](#missing)\n",
    "    - [Data transformation](#transformation)\n",
    "\n",
    "The common pandas import statment is shown below:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Common pandas import statement\n",
    "import numpy as np\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Data Structures <a name=\"structures\"></a>\n",
    "## Series <a name=\"series\"></a>\n",
    "A Series is a one-dimensional array-like object containing a sequence of values and an associated array of data labels called its index.\n",
    "\n",
    "The easiest way to make a Series is from an array of data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.Series([4, 7, -5, 3])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now try printing out data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The string representation of a Series displayed interactively shows the index on the left and the values on the right. Because we didn't specify an index, the default on is simply integers 0 through N-1.\n",
    "\n",
    "You can output only the values of a Series using \n",
    "```python\n",
    "data.values\n",
    "```\n",
    "or you can get only the indices using\n",
    "```python\n",
    "data.index\n",
    "```\n",
    "Try it out below!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can specify custom indeces when intialising the Series"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "data2 = pd.Series([4, 7, -5, 3], index=[\"a\", \"b\", \"c\", \"d\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now you can use these labels to access the data similar to a normal array"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2[\"a\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Another way to think about Series is as a fixed-length ordered dictionary. Furthermore, you can actually define a Series in a similar manner to a dictionary"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "cities = {\"Glasgow\" : 599650, \"Edinburgh\" : 464990, \"Abardeen\" : 196670, \"Dundee\" : 147710}\n",
    "data3 = pd.Series(cities)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Glasgow      599650\n",
       "Edinburgh    464990\n",
       "Abardeen     196670\n",
       "Dundee       147710\n",
       "dtype: int64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can do arithmetic operations between Series similar to NumPy arrays. Even if you have 2 datasets with different data, arithmetic operations will be aligned according to their indices.\n",
    "\n",
    "Let's look at an example"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "cities_uk = {\"Birmingham\" : 1092330, \"Leeds\": 751485, \"Glasgow\" : 599650,\n",
    "             \"Manchester\" : 503127, \"Edinburgh\" : 464990}\n",
    "data4 = pd.Series(cities_uk)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Abardeen            NaN\n",
       "Birmingham          NaN\n",
       "Dundee              NaN\n",
       "Edinburgh      929980.0\n",
       "Glasgow       1199300.0\n",
       "Leeds               NaN\n",
       "Manchester          NaN\n",
       "dtype: float64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data3 + data4"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice how some of the results are NaN? Well, that is because there were no instances of those cities within both of the datasets. You can usually extract NaNs from a Series with\n",
    "```python\n",
    "data4.isnull()\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## DataFrame <a name=\"dataframe\"></a>\n",
    "A DataFrame represents a rectangular table of data and contains an ordered collection of columns, each of which can be a different value type. The DataFrame has both row and column index and can be thought of as a dict of Series all sharing the same index.\n",
    "\n",
    "The most common way to create a DataFrame is with dicts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = {\"cities\" : [\"Glasgow\", \"Edinburgh\", \"Abardeen\", \"Dundee\"],\n",
    "        \"population\" : [599650, 464990, 196670, 147710],\n",
    "        \"year\" : [2011, 2013, 2013, 2013]}\n",
    "frame = pd.DataFrame(data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Try printing it out"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>cities</th>\n",
       "      <th>population</th>\n",
       "      <th>year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Glasgow</td>\n",
       "      <td>599650</td>\n",
       "      <td>2011</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Edinburgh</td>\n",
       "      <td>464990</td>\n",
       "      <td>2013</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Abardeen</td>\n",
       "      <td>196670</td>\n",
       "      <td>2013</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Dundee</td>\n",
       "      <td>147710</td>\n",
       "      <td>2013</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      cities  population  year\n",
       "0    Glasgow      599650  2011\n",
       "1  Edinburgh      464990  2013\n",
       "2   Abardeen      196670  2013\n",
       "3     Dundee      147710  2013"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "frame"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Jupyter Notebooks prints it out in a nice table but the basic version of this is also just as readable!\n",
    "\n",
    "Additionally you can also specify the order of columns during initialisation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "frame2 = pd.DataFrame(data, columns=[\"year\", \"cities\", \"population\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can retrieve a particular column from a DataFrame with\n",
    "```python\n",
    "frame[\"cities\"]\n",
    "```\n",
    "The result is going to be a Series\n",
    "\n",
    "Additionally, you can retrieve a row from the dataset using\n",
    "```python\n",
    "frame[1]\n",
    "```\n",
    "Try it out below"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It is also possible to add and modify the columns of a DataFrame"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "frame2[\"size\"] = 100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>year</th>\n",
       "      <th>cities</th>\n",
       "      <th>population</th>\n",
       "      <th>size</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2011</td>\n",
       "      <td>Glasgow</td>\n",
       "      <td>599650</td>\n",
       "      <td>100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2013</td>\n",
       "      <td>Edinburgh</td>\n",
       "      <td>464990</td>\n",
       "      <td>100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2013</td>\n",
       "      <td>Abardeen</td>\n",
       "      <td>196670</td>\n",
       "      <td>100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2013</td>\n",
       "      <td>Dundee</td>\n",
       "      <td>147710</td>\n",
       "      <td>100</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   year     cities  population  size\n",
       "0  2011    Glasgow      599650   100\n",
       "1  2013  Edinburgh      464990   100\n",
       "2  2013   Abardeen      196670   100\n",
       "3  2013     Dundee      147710   100"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "frame2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "frame2[\"size\"] = [175, 264, 65.1, 60]  # in km^2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Similar to dicts, columns can be deleted using\n",
    "```python\n",
    "del frame2[\"size\"]\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Another common way of creating DataFrames is from a nested dict of dicts:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>cities</th>\n",
       "      <th>population</th>\n",
       "      <th>year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Glasgow</td>\n",
       "      <td>599650</td>\n",
       "      <td>2011</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Edinburgh</td>\n",
       "      <td>464990</td>\n",
       "      <td>2013</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Abardeen</td>\n",
       "      <td>196670</td>\n",
       "      <td>2013</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Dundee</td>\n",
       "      <td>147710</td>\n",
       "      <td>2013</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      cities  population  year\n",
       "0    Glasgow      599650  2011\n",
       "1  Edinburgh      464990  2013\n",
       "2   Abardeen      196670  2013\n",
       "3     Dundee      147710  2013"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2 = {\"Glasgow\": {2011: 599650},\n",
    "        \"Edinburgh\": {2013:464990},\n",
    "        \"Abardeen\": {2013: 196670}}\n",
    "\n",
    "frame3 = pd.DataFrame(data)\n",
    "frame3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here is a table of different ways of initialising a DataFrame for your reference\n",
    "\n",
    "| Type | Notes |\n",
    "| --- | --- |\n",
    "| 2D ndarray | A matrix of data; passing optional row and column labels |\n",
    "| dict of arrays, lists, or tuples | Each sequence becomes a column in the DataFrame; all sequences must be the same length |\n",
    "| dict of Series | Each value becomes a column; indexes from each Series are unioned together to<br>form the result's row index if not explicit index is passed |\n",
    "| dict of dicts | Each inner dict becomes a column; keys are unioned to form the row<br>index as in the \"dict of Series\" case |\n",
    "| List of dicts or Series | Each item becomes a row in the DataFrame; union of dict keys or<br>Series indices becomes the DataFrame's column labels |\n",
    "| List of lists or tuples | Treated as the \"2D ndarray\" case |"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Essential Functionality <a name=\"ess_func\"></a>\n",
    "In this section, we will go through the fundamental mechanics of interacting with the data contained in a Series or DaraFrame."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Reindexing <a name=\"reindexing\"></a>\n",
    "With pandas it is easy to restructure the order of your columns and rows using the `reindex` function. Let's have a look at an example:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "a    1\n",
       "b    2\n",
       "c    3\n",
       "d    4\n",
       "e    5\n",
       "dtype: int64"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# first define a new Series\n",
    "s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])\n",
    "s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "d    4\n",
       "b    2\n",
       "a    1\n",
       "c    3\n",
       "e    5\n",
       "dtype: int64"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Now you can reshuffle the indices\n",
    "s = s.reindex(['d', 'b', 'a', 'c', 'e'])\n",
    "s"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Easy as that! This can also be extended for DataFrames, where you can reorder both the columns and indices at the same time!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Edinburgh</th>\n",
       "      <th>Glasgow</th>\n",
       "      <th>Aberdeen</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Edinburgh  Glasgow  Aberdeen\n",
       "a          0        1         2\n",
       "b          3        4         5\n",
       "c          6        7         8"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# first define a new Dataframe\n",
    "data = np.reshape(np.arange(9), (3,3))\n",
    "df = pd.DataFrame(data, index=[\"a\", \"b\", \"c\"],\n",
    "                  columns=[\"Edinburgh\", \"Glasgow\", \"Aberdeen\"])\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Now we can restructure it with reindex\n",
    "df = df.reindex(index=[\"a\", \"d\", \"c\", \"b\"],\n",
    "          columns=[\"Aberdeen\", \"Glasgow\", \"Edinburgh\", \"Dundee\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice something interesting? We can actually add new indices and columns using the `reindex` method. This results in the new slots in our table to be filled in with `NaN` values."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Removing columns/indices <a name=\"removing\"></a>\n",
    "Similar to above, it is easy to remove entries. This is done with the `drop()` method and can be applied to both columns and indices:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Edinburgh</th>\n",
       "      <th>Glasgow</th>\n",
       "      <th>Aberdeen</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Edinburgh  Glasgow  Aberdeen\n",
       "a          0        1         2\n",
       "c          6        7         8"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# define new DataFrame\n",
    "data = np.reshape(np.arange(9), (3,3))\n",
    "df = pd.DataFrame(data, index=[\"a\", \"b\", \"c\"],\n",
    "                  columns=[\"Edinburgh\", \"Glasgow\", \"Aberdeen\"])\n",
    "\n",
    "df.drop(\"b\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Glasgow</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Glasgow\n",
       "a        1\n",
       "b        4\n",
       "c        7"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# You can also drop from a column\n",
    "df.drop([\"Aberdeen\", \"Edinburgh\"], axis=\"columns\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Indexing, slicing and filtering <a name=\"indexing\"></a>\n",
    "\n",
    "### Indexing\n",
    "\n",
    "Series indexing works analogously to NumPy array indexing (i.e. `data[...]`). You can also use the Series' index values instead of only integers:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "a    0\n",
       "b    1\n",
       "c    2\n",
       "d    3\n",
       "dtype: int64"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s = pd.Series(np.arange(4), index=['a', 'b', 'c', 'd'])\n",
    "s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s[3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s[\"c\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "b    1\n",
       "d    3\n",
       "dtype: int64"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s[[1,3]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "a    0\n",
       "b    1\n",
       "dtype: int64"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s[s<2]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A subtle difference when indexing in pandas is that unlike in normal Python, slicing here is inclusive at the end-point."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "b    1\n",
       "c    2\n",
       "dtype: int64"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s[\"b\":\"c\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "All of the above also apply to DataFrames:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Edinburgh</th>\n",
       "      <th>Glasgow</th>\n",
       "      <th>Aberdeen</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Edinburgh  Glasgow  Aberdeen\n",
       "a          0        1         2\n",
       "b          3        4         5\n",
       "c          6        7         8"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = np.reshape(np.arange(9), (3,3))\n",
    "df = pd.DataFrame(data, index=[\"a\", \"b\", \"c\"],\n",
    "                  columns=[\"Edinburgh\", \"Glasgow\", \"Aberdeen\"])\n",
    "\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Edinburgh</th>\n",
       "      <th>Glasgow</th>\n",
       "      <th>Aberdeen</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Edinburgh  Glasgow  Aberdeen\n",
       "a          0        1         2\n",
       "b          3        4         5"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[:2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "a    1\n",
       "b    4\n",
       "c    7\n",
       "Name: Glasgow, dtype: int64"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[\"Glasgow\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### loc and iloc\n",
    "For DataFrame label-indexing on the rows, you can use `loc` for labels and `iloc` for integer-indexing."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Edinburgh    3\n",
       "Glasgow      4\n",
       "Aberdeen     5\n",
       "Name: b, dtype: int64"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.loc[\"b\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Glasgow     4\n",
       "Aberdeen    5\n",
       "Name: b, dtype: int64"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.loc[\"b\", [\"Glasgow\", \"Aberdeen\"]]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's try `iloc`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Edinburgh    3\n",
       "Glasgow      4\n",
       "Aberdeen     5\n",
       "Name: b, dtype: int64"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Glasgow     4\n",
       "Aberdeen    5\n",
       "Name: b, dtype: int64"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[1, [1,2]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Edinburgh</th>\n",
       "      <th>Glasgow</th>\n",
       "      <th>Aberdeen</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Edinburgh  Glasgow  Aberdeen\n",
       "a          0        1         2\n",
       "b          3        4         5"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[:2]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Summary of indexing:\n",
    "\n",
    "| Type | Notes |\n",
    "| -- | -- |\n",
    "| df\\[val\\]              | Select single column or sequency of columns from a DataFrame |\n",
    "| df.loc\\[val\\]          | Select single row or subset of rows from a DataFrame by label |\n",
    "| df.loc\\[:, val\\]       | Select single column or subset of columns by label |\n",
    "| df.loc\\[val1, val2\\]   | Select both rows and columns by label |\n",
    "| df.iloc\\[idx\\]         | Select single row or subset of rows from DataFrame by integer position |\n",
    "| df.iloc\\[:, idx\\]      | Select single column or subset of columns by integer position |\n",
    "| df.iloc\\[idx1, idx2\\]  | Select both rows and columns by integer position |\n",
    "| reindex method         | Select either rows or columns by labels |"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 1\n",
    "A dataset of random numbers is created below. Index the 47th column and the 22nd row. You should get the number **4621**.\n",
    "\n",
    "*Note: Remember that Python uses 0-based indexing*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4621"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.DataFrame(np.reshape(np.arange(10000), (100,100)))\n",
    "\n",
    "df.iloc[46,21]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 2\n",
    "Using the same DataFrame from the previous exercise, obtain all rows starting from row 85 to 97."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>...</th>\n",
       "      <th>90</th>\n",
       "      <th>91</th>\n",
       "      <th>92</th>\n",
       "      <th>93</th>\n",
       "      <th>94</th>\n",
       "      <th>95</th>\n",
       "      <th>96</th>\n",
       "      <th>97</th>\n",
       "      <th>98</th>\n",
       "      <th>99</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>84</th>\n",
       "      <td>8400</td>\n",
       "      <td>8401</td>\n",
       "      <td>8402</td>\n",
       "      <td>8403</td>\n",
       "      <td>8404</td>\n",
       "      <td>8405</td>\n",
       "      <td>8406</td>\n",
       "      <td>8407</td>\n",
       "      <td>8408</td>\n",
       "      <td>8409</td>\n",
       "      <td>...</td>\n",
       "      <td>8490</td>\n",
       "      <td>8491</td>\n",
       "      <td>8492</td>\n",
       "      <td>8493</td>\n",
       "      <td>8494</td>\n",
       "      <td>8495</td>\n",
       "      <td>8496</td>\n",
       "      <td>8497</td>\n",
       "      <td>8498</td>\n",
       "      <td>8499</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>85</th>\n",
       "      <td>8500</td>\n",
       "      <td>8501</td>\n",
       "      <td>8502</td>\n",
       "      <td>8503</td>\n",
       "      <td>8504</td>\n",
       "      <td>8505</td>\n",
       "      <td>8506</td>\n",
       "      <td>8507</td>\n",
       "      <td>8508</td>\n",
       "      <td>8509</td>\n",
       "      <td>...</td>\n",
       "      <td>8590</td>\n",
       "      <td>8591</td>\n",
       "      <td>8592</td>\n",
       "      <td>8593</td>\n",
       "      <td>8594</td>\n",
       "      <td>8595</td>\n",
       "      <td>8596</td>\n",
       "      <td>8597</td>\n",
       "      <td>8598</td>\n",
       "      <td>8599</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>86</th>\n",
       "      <td>8600</td>\n",
       "      <td>8601</td>\n",
       "      <td>8602</td>\n",
       "      <td>8603</td>\n",
       "      <td>8604</td>\n",
       "      <td>8605</td>\n",
       "      <td>8606</td>\n",
       "      <td>8607</td>\n",
       "      <td>8608</td>\n",
       "      <td>8609</td>\n",
       "      <td>...</td>\n",
       "      <td>8690</td>\n",
       "      <td>8691</td>\n",
       "      <td>8692</td>\n",
       "      <td>8693</td>\n",
       "      <td>8694</td>\n",
       "      <td>8695</td>\n",
       "      <td>8696</td>\n",
       "      <td>8697</td>\n",
       "      <td>8698</td>\n",
       "      <td>8699</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>87</th>\n",
       "      <td>8700</td>\n",
       "      <td>8701</td>\n",
       "      <td>8702</td>\n",
       "      <td>8703</td>\n",
       "      <td>8704</td>\n",
       "      <td>8705</td>\n",
       "      <td>8706</td>\n",
       "      <td>8707</td>\n",
       "      <td>8708</td>\n",
       "      <td>8709</td>\n",
       "      <td>...</td>\n",
       "      <td>8790</td>\n",
       "      <td>8791</td>\n",
       "      <td>8792</td>\n",
       "      <td>8793</td>\n",
       "      <td>8794</td>\n",
       "      <td>8795</td>\n",
       "      <td>8796</td>\n",
       "      <td>8797</td>\n",
       "      <td>8798</td>\n",
       "      <td>8799</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>88</th>\n",
       "      <td>8800</td>\n",
       "      <td>8801</td>\n",
       "      <td>8802</td>\n",
       "      <td>8803</td>\n",
       "      <td>8804</td>\n",
       "      <td>8805</td>\n",
       "      <td>8806</td>\n",
       "      <td>8807</td>\n",
       "      <td>8808</td>\n",
       "      <td>8809</td>\n",
       "      <td>...</td>\n",
       "      <td>8890</td>\n",
       "      <td>8891</td>\n",
       "      <td>8892</td>\n",
       "      <td>8893</td>\n",
       "      <td>8894</td>\n",
       "      <td>8895</td>\n",
       "      <td>8896</td>\n",
       "      <td>8897</td>\n",
       "      <td>8898</td>\n",
       "      <td>8899</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>89</th>\n",
       "      <td>8900</td>\n",
       "      <td>8901</td>\n",
       "      <td>8902</td>\n",
       "      <td>8903</td>\n",
       "      <td>8904</td>\n",
       "      <td>8905</td>\n",
       "      <td>8906</td>\n",
       "      <td>8907</td>\n",
       "      <td>8908</td>\n",
       "      <td>8909</td>\n",
       "      <td>...</td>\n",
       "      <td>8990</td>\n",
       "      <td>8991</td>\n",
       "      <td>8992</td>\n",
       "      <td>8993</td>\n",
       "      <td>8994</td>\n",
       "      <td>8995</td>\n",
       "      <td>8996</td>\n",
       "      <td>8997</td>\n",
       "      <td>8998</td>\n",
       "      <td>8999</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>90</th>\n",
       "      <td>9000</td>\n",
       "      <td>9001</td>\n",
       "      <td>9002</td>\n",
       "      <td>9003</td>\n",
       "      <td>9004</td>\n",
       "      <td>9005</td>\n",
       "      <td>9006</td>\n",
       "      <td>9007</td>\n",
       "      <td>9008</td>\n",
       "      <td>9009</td>\n",
       "      <td>...</td>\n",
       "      <td>9090</td>\n",
       "      <td>9091</td>\n",
       "      <td>9092</td>\n",
       "      <td>9093</td>\n",
       "      <td>9094</td>\n",
       "      <td>9095</td>\n",
       "      <td>9096</td>\n",
       "      <td>9097</td>\n",
       "      <td>9098</td>\n",
       "      <td>9099</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>91</th>\n",
       "      <td>9100</td>\n",
       "      <td>9101</td>\n",
       "      <td>9102</td>\n",
       "      <td>9103</td>\n",
       "      <td>9104</td>\n",
       "      <td>9105</td>\n",
       "      <td>9106</td>\n",
       "      <td>9107</td>\n",
       "      <td>9108</td>\n",
       "      <td>9109</td>\n",
       "      <td>...</td>\n",
       "      <td>9190</td>\n",
       "      <td>9191</td>\n",
       "      <td>9192</td>\n",
       "      <td>9193</td>\n",
       "      <td>9194</td>\n",
       "      <td>9195</td>\n",
       "      <td>9196</td>\n",
       "      <td>9197</td>\n",
       "      <td>9198</td>\n",
       "      <td>9199</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>92</th>\n",
       "      <td>9200</td>\n",
       "      <td>9201</td>\n",
       "      <td>9202</td>\n",
       "      <td>9203</td>\n",
       "      <td>9204</td>\n",
       "      <td>9205</td>\n",
       "      <td>9206</td>\n",
       "      <td>9207</td>\n",
       "      <td>9208</td>\n",
       "      <td>9209</td>\n",
       "      <td>...</td>\n",
       "      <td>9290</td>\n",
       "      <td>9291</td>\n",
       "      <td>9292</td>\n",
       "      <td>9293</td>\n",
       "      <td>9294</td>\n",
       "      <td>9295</td>\n",
       "      <td>9296</td>\n",
       "      <td>9297</td>\n",
       "      <td>9298</td>\n",
       "      <td>9299</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>93</th>\n",
       "      <td>9300</td>\n",
       "      <td>9301</td>\n",
       "      <td>9302</td>\n",
       "      <td>9303</td>\n",
       "      <td>9304</td>\n",
       "      <td>9305</td>\n",
       "      <td>9306</td>\n",
       "      <td>9307</td>\n",
       "      <td>9308</td>\n",
       "      <td>9309</td>\n",
       "      <td>...</td>\n",
       "      <td>9390</td>\n",
       "      <td>9391</td>\n",
       "      <td>9392</td>\n",
       "      <td>9393</td>\n",
       "      <td>9394</td>\n",
       "      <td>9395</td>\n",
       "      <td>9396</td>\n",
       "      <td>9397</td>\n",
       "      <td>9398</td>\n",
       "      <td>9399</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>94</th>\n",
       "      <td>9400</td>\n",
       "      <td>9401</td>\n",
       "      <td>9402</td>\n",
       "      <td>9403</td>\n",
       "      <td>9404</td>\n",
       "      <td>9405</td>\n",
       "      <td>9406</td>\n",
       "      <td>9407</td>\n",
       "      <td>9408</td>\n",
       "      <td>9409</td>\n",
       "      <td>...</td>\n",
       "      <td>9490</td>\n",
       "      <td>9491</td>\n",
       "      <td>9492</td>\n",
       "      <td>9493</td>\n",
       "      <td>9494</td>\n",
       "      <td>9495</td>\n",
       "      <td>9496</td>\n",
       "      <td>9497</td>\n",
       "      <td>9498</td>\n",
       "      <td>9499</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <td>9500</td>\n",
       "      <td>9501</td>\n",
       "      <td>9502</td>\n",
       "      <td>9503</td>\n",
       "      <td>9504</td>\n",
       "      <td>9505</td>\n",
       "      <td>9506</td>\n",
       "      <td>9507</td>\n",
       "      <td>9508</td>\n",
       "      <td>9509</td>\n",
       "      <td>...</td>\n",
       "      <td>9590</td>\n",
       "      <td>9591</td>\n",
       "      <td>9592</td>\n",
       "      <td>9593</td>\n",
       "      <td>9594</td>\n",
       "      <td>9595</td>\n",
       "      <td>9596</td>\n",
       "      <td>9597</td>\n",
       "      <td>9598</td>\n",
       "      <td>9599</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>12 rows × 100 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      0     1     2     3     4     5     6     7     8     9   ...     90  \\\n",
       "84  8400  8401  8402  8403  8404  8405  8406  8407  8408  8409  ...   8490   \n",
       "85  8500  8501  8502  8503  8504  8505  8506  8507  8508  8509  ...   8590   \n",
       "86  8600  8601  8602  8603  8604  8605  8606  8607  8608  8609  ...   8690   \n",
       "87  8700  8701  8702  8703  8704  8705  8706  8707  8708  8709  ...   8790   \n",
       "88  8800  8801  8802  8803  8804  8805  8806  8807  8808  8809  ...   8890   \n",
       "89  8900  8901  8902  8903  8904  8905  8906  8907  8908  8909  ...   8990   \n",
       "90  9000  9001  9002  9003  9004  9005  9006  9007  9008  9009  ...   9090   \n",
       "91  9100  9101  9102  9103  9104  9105  9106  9107  9108  9109  ...   9190   \n",
       "92  9200  9201  9202  9203  9204  9205  9206  9207  9208  9209  ...   9290   \n",
       "93  9300  9301  9302  9303  9304  9305  9306  9307  9308  9309  ...   9390   \n",
       "94  9400  9401  9402  9403  9404  9405  9406  9407  9408  9409  ...   9490   \n",
       "95  9500  9501  9502  9503  9504  9505  9506  9507  9508  9509  ...   9590   \n",
       "\n",
       "      91    92    93    94    95    96    97    98    99  \n",
       "84  8491  8492  8493  8494  8495  8496  8497  8498  8499  \n",
       "85  8591  8592  8593  8594  8595  8596  8597  8598  8599  \n",
       "86  8691  8692  8693  8694  8695  8696  8697  8698  8699  \n",
       "87  8791  8792  8793  8794  8795  8796  8797  8798  8799  \n",
       "88  8891  8892  8893  8894  8895  8896  8897  8898  8899  \n",
       "89  8991  8992  8993  8994  8995  8996  8997  8998  8999  \n",
       "90  9091  9092  9093  9094  9095  9096  9097  9098  9099  \n",
       "91  9191  9192  9193  9194  9195  9196  9197  9198  9199  \n",
       "92  9291  9292  9293  9294  9295  9296  9297  9298  9299  \n",
       "93  9391  9392  9393  9394  9395  9396  9397  9398  9399  \n",
       "94  9491  9492  9493  9494  9495  9496  9497  9498  9499  \n",
       "95  9591  9592  9593  9594  9595  9596  9597  9598  9599  \n",
       "\n",
       "[12 rows x 100 columns]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[84:96]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Arithmetic <a name=\"arithmetic\"></a>\n",
    "When you are performing arithmetic operations between two objects, if any index pairs are not the same, the respective index in the result will be the union of the index pair. Let's have a look"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "a    NaN\n",
       "b    1.0\n",
       "c    3.0\n",
       "d    5.0\n",
       "e    NaN\n",
       "k    NaN\n",
       "dtype: float64"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s1 = pd.Series(np.arange(5), index=[\"a\", \"b\", \"c\", \"d\", \"e\"])\n",
    "s2 = pd.Series(np.arange(4), index=[\"b\", \"c\", \"d\", \"k\"])\n",
    "s1 + s2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The internal data alignment introduces missing values in the label locations that don't overlap. It is similar for DataFrames:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "      <th>b</th>\n",
       "      <th>c</th>\n",
       "      <th>d</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   a  b   c   d\n",
       "0  0  1   2   3\n",
       "1  4  5   6   7\n",
       "2  8  9  10  11"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1 = pd.DataFrame(np.arange(12).reshape((3,4)),\n",
    "                  columns=list(\"abcd\"))\n",
    "df1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>c</th>\n",
       "      <th>d</th>\n",
       "      <th>e</th>\n",
       "      <th>f</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12</td>\n",
       "      <td>13</td>\n",
       "      <td>14</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    c   d   e   f\n",
       "0   0   1   2   3\n",
       "1   4   5   6   7\n",
       "2   8   9  10  11\n",
       "3  12  13  14  15"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2 = pd.DataFrame(np.arange(16).reshape((4,4)),\n",
    "                  columns=list(\"cdef\"))\n",
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "      <th>b</th>\n",
       "      <th>c</th>\n",
       "      <th>d</th>\n",
       "      <th>e</th>\n",
       "      <th>f</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>10.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>18.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    a   b     c     d   e   f\n",
       "0 NaN NaN   2.0   4.0 NaN NaN\n",
       "1 NaN NaN  10.0  12.0 NaN NaN\n",
       "2 NaN NaN  18.0  20.0 NaN NaN\n",
       "3 NaN NaN   NaN   NaN NaN NaN"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# adding the two\n",
    "df1+df2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice how where we don't have matching values from `df1` and `df2` the output of the addition operation is `NaN` since there are no two numbers to add.\n",
    "\n",
    "Well, we can \"fix\" that by filling in the `NaN` values. This effectively tells pandas where there are no two values to add, assume that the missing value is just zero."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "      <th>b</th>\n",
       "      <th>c</th>\n",
       "      <th>d</th>\n",
       "      <th>e</th>\n",
       "      <th>f</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>7.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>11.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>14.0</td>\n",
       "      <td>15.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     a    b     c     d     e     f\n",
       "0  0.0  1.0   2.0   4.0   2.0   3.0\n",
       "1  4.0  5.0  10.0  12.0   6.0   7.0\n",
       "2  8.0  9.0  18.0  20.0  10.0  11.0\n",
       "3  NaN  NaN  12.0  13.0  14.0  15.0"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1.add(df2, fill_value=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Another important point here is although the normal arithmetic operations work here, there also exist dedicated methods like `DataFrame.add()` which achieve the same functionality + a bit extra.\n",
    "\n",
    "Here's a list of all arithmetic operations within pandas:\n",
    "\n",
    "| Operator | Method | Description |\n",
    "| -- | -- | -- |\n",
    "| + | add, radd | Addition |\n",
    "| - | sub, rsub | Subtraction |\n",
    "| / | div, rdiv | Division |\n",
    "| // | floordiv, rfloordiv | Floor division |\n",
    "| * | mul, rmul | Multiplication |\n",
    "| ** | pow, rpow | Exponentiation |\n",
    "\n",
    "Notice how some of the methods have `r` in front of them? That stands for reversed and effectively reverses the operands. For example\n",
    "\n",
    "```python\n",
    "df1.div(df2)\n",
    "```\n",
    "would be the same as\n",
    "```python\n",
    "df1/df2\n",
    "```\n",
    "\n",
    "but....\n",
    "```python\n",
    "df1.rdiv(df2)\n",
    "```\n",
    "would be the same as\n",
    "```python\n",
    "df2/df1\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 3\n",
    "Create a (3,3) DataFrame and square all elements in it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>9</td>\n",
       "      <td>16</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>36</td>\n",
       "      <td>49</td>\n",
       "      <td>64</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    0   1   2\n",
       "0   0   1   4\n",
       "1   9  16  25\n",
       "2  36  49  64"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.DataFrame(np.arange(9).reshape(3,3)) ** 2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Broadcasting\n",
    "Similar to numpy, in pandas you can also broadcast data structures. Let's consider a simple example:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12</td>\n",
       "      <td>13</td>\n",
       "      <td>14</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    0   1   2   3\n",
       "0   0   1   2   3\n",
       "1   4   5   6   7\n",
       "2   8   9  10  11\n",
       "3  12  13  14  15"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1 = pd.DataFrame(np.arange(16).reshape((4,4)))\n",
    "df1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    0\n",
       "1    1\n",
       "2    2\n",
       "3    3\n",
       "dtype: int64"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2 = pd.Series(np.arange(4))\n",
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>8</td>\n",
       "      <td>8</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12</td>\n",
       "      <td>12</td>\n",
       "      <td>12</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    0   1   2   3\n",
       "0   0   0   0   0\n",
       "1   4   4   4   4\n",
       "2   8   8   8   8\n",
       "3  12  12  12  12"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1 - df2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice how the Series of [0, 1, 2, 3] got removed from each row? That is called broadcasting.\n",
    "\n",
    "It can also be used for columns, but for that, you have to use the method arithmetic operations."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   0   1   2   3\n",
       "0  0   1   2   3\n",
       "1  3   4   5   6\n",
       "2  6   7   8   9\n",
       "3  9  10  11  12"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1.sub(df2, axis=\"index\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Sorting\n",
    "Sorting is an important built-in operation of pandas. Let's have a look at how you can do it:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>d</th>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>12</td>\n",
       "      <td>13</td>\n",
       "      <td>14</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    0   1   2   3\n",
       "b   0   1   2   3\n",
       "a   4   5   6   7\n",
       "d   8   9  10  11\n",
       "c  12  13  14  15"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1 = pd.DataFrame(np.arange(16).reshape((4,4)), index=[\"b\", \"a\", \"d\", \"c\"])\n",
    "df1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>12</td>\n",
       "      <td>13</td>\n",
       "      <td>14</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>d</th>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    0   1   2   3\n",
       "a   4   5   6   7\n",
       "b   0   1   2   3\n",
       "c  12  13  14  15\n",
       "d   8   9  10  11"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2 = df1.sort_index()\n",
    "df2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Easy as that. Furthermore, you can also sort along the column axis with\n",
    "```python\n",
    "df1.sort_index(axis=1)\n",
    "```\n",
    "\n",
    "You can also sort by the actual values inside, but you have to give the column by which you want to sort."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   a\n",
       "0  4\n",
       "1  3\n",
       "2  6\n",
       "3  1\n",
       "4  3\n",
       "5  5"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1 = pd.DataFrame([4, 3, 6, 1, 3, 5], columns=[\"a\"])\n",
    "df1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   a\n",
       "3  1\n",
       "1  3\n",
       "4  3\n",
       "0  4\n",
       "5  5\n",
       "2  6"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1.sort_values(by=\"a\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Summarizing and computing descriptive stats <a name=\"sums\"></a>\n",
    "`pandas` is equipped with common mathematical and statistical methods. Most of which fall into the category of reductions or summary statistics. These are methods that extract a single value from a list of values. For example, you can extract the mean of a `Series` object like this:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "      <th>b</th>\n",
       "      <th>c</th>\n",
       "      <th>d</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12</td>\n",
       "      <td>13</td>\n",
       "      <td>14</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>16</td>\n",
       "      <td>17</td>\n",
       "      <td>18</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    a   b   c   d\n",
       "0   0   1   2   3\n",
       "1   4   5   6   7\n",
       "2   8   9  10  11\n",
       "3  12  13  14  15\n",
       "4  16  17  18  19"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.DataFrame(np.arange(20).reshape(5,4),\n",
    "                 columns=[\"a\", \"b\", \"c\", \"d\"])\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "a    40\n",
       "b    45\n",
       "c    50\n",
       "d    55\n",
       "dtype: int64"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice how that created the sum of each column?\n",
    "\n",
    "Well you can actually make that the other way around by adding an extra option to `sum()`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0     6\n",
       "1    22\n",
       "2    38\n",
       "3    54\n",
       "4    70\n",
       "dtype: int64"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.sum(axis=\"columns\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A similar method also exists for obtaining the mean of data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "a     8.0\n",
       "b     9.0\n",
       "c    10.0\n",
       "d    11.0\n",
       "dtype: float64"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, the mother of the methods we discussed here is `describe()` "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "      <th>b</th>\n",
       "      <th>c</th>\n",
       "      <th>d</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>5.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>8.000000</td>\n",
       "      <td>9.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>11.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>6.324555</td>\n",
       "      <td>6.324555</td>\n",
       "      <td>6.324555</td>\n",
       "      <td>6.324555</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>3.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>4.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>7.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>8.000000</td>\n",
       "      <td>9.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>11.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>12.000000</td>\n",
       "      <td>13.000000</td>\n",
       "      <td>14.000000</td>\n",
       "      <td>15.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>16.000000</td>\n",
       "      <td>17.000000</td>\n",
       "      <td>18.000000</td>\n",
       "      <td>19.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               a          b          c          d\n",
       "count   5.000000   5.000000   5.000000   5.000000\n",
       "mean    8.000000   9.000000  10.000000  11.000000\n",
       "std     6.324555   6.324555   6.324555   6.324555\n",
       "min     0.000000   1.000000   2.000000   3.000000\n",
       "25%     4.000000   5.000000   6.000000   7.000000\n",
       "50%     8.000000   9.000000  10.000000  11.000000\n",
       "75%    12.000000  13.000000  14.000000  15.000000\n",
       "max    16.000000  17.000000  18.000000  19.000000"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here are some of the summary methods:\n",
    "\n",
    "| Method | Description |\n",
    "| -- | -- |\n",
    "| count          | Return number of non-NA values |\n",
    "| describe       | Set of summary statistics |\n",
    "| min, max       | Minimum, maximum values |\n",
    "| argmin, argmax | Index locations at which the minimum or maximum value is obtained | \n",
    "| sum            | Sum of values |\n",
    "| mean           | Mean of values |\n",
    "| median         | Arithmetic median of values |\n",
    "| std            | Sample standard deviation of values\n",
    "| value_counts() | Counts the number of occurrences of each unique element in a column |"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 4\n",
    "\n",
    "A random DataFrame is created below. Find it's mean and standard deviation, then normalise it column-wise according to the formula:\n",
    "\n",
    "$$ Y = \\frac{X - \\mu}{\\sigma} $$\n",
    "\n",
    "Where X is your dataset, $\\mu$ is the mean and $\\sigma$ is the standard deviation.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>...</th>\n",
       "      <th>90</th>\n",
       "      <th>91</th>\n",
       "      <th>92</th>\n",
       "      <th>93</th>\n",
       "      <th>94</th>\n",
       "      <th>95</th>\n",
       "      <th>96</th>\n",
       "      <th>97</th>\n",
       "      <th>98</th>\n",
       "      <th>99</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.513870</td>\n",
       "      <td>1.396583</td>\n",
       "      <td>-0.246373</td>\n",
       "      <td>0.412241</td>\n",
       "      <td>1.579367</td>\n",
       "      <td>0.363903</td>\n",
       "      <td>-1.323891</td>\n",
       "      <td>-1.113526</td>\n",
       "      <td>-0.877806</td>\n",
       "      <td>0.881624</td>\n",
       "      <td>...</td>\n",
       "      <td>1.061778</td>\n",
       "      <td>1.647589</td>\n",
       "      <td>0.608297</td>\n",
       "      <td>0.931085</td>\n",
       "      <td>-0.305219</td>\n",
       "      <td>-0.679682</td>\n",
       "      <td>1.323216</td>\n",
       "      <td>-1.000440</td>\n",
       "      <td>1.158411</td>\n",
       "      <td>0.271465</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.631868</td>\n",
       "      <td>-1.075335</td>\n",
       "      <td>0.170484</td>\n",
       "      <td>1.453664</td>\n",
       "      <td>1.357602</td>\n",
       "      <td>-1.597306</td>\n",
       "      <td>1.342091</td>\n",
       "      <td>-1.775401</td>\n",
       "      <td>1.129466</td>\n",
       "      <td>-1.180717</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.806966</td>\n",
       "      <td>-0.856221</td>\n",
       "      <td>0.223695</td>\n",
       "      <td>-0.972374</td>\n",
       "      <td>0.176362</td>\n",
       "      <td>0.792399</td>\n",
       "      <td>-0.528541</td>\n",
       "      <td>0.796424</td>\n",
       "      <td>0.728051</td>\n",
       "      <td>-1.104085</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.514866</td>\n",
       "      <td>0.374350</td>\n",
       "      <td>-1.009489</td>\n",
       "      <td>0.086802</td>\n",
       "      <td>-1.696162</td>\n",
       "      <td>0.194635</td>\n",
       "      <td>1.231866</td>\n",
       "      <td>1.121161</td>\n",
       "      <td>0.736265</td>\n",
       "      <td>-0.563802</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.273403</td>\n",
       "      <td>-1.178026</td>\n",
       "      <td>1.542241</td>\n",
       "      <td>1.006310</td>\n",
       "      <td>0.538693</td>\n",
       "      <td>0.789394</td>\n",
       "      <td>0.540420</td>\n",
       "      <td>0.742471</td>\n",
       "      <td>0.203087</td>\n",
       "      <td>-1.486384</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.886998</td>\n",
       "      <td>0.052952</td>\n",
       "      <td>1.716351</td>\n",
       "      <td>-0.169000</td>\n",
       "      <td>-1.037321</td>\n",
       "      <td>-1.554467</td>\n",
       "      <td>1.375881</td>\n",
       "      <td>1.256623</td>\n",
       "      <td>-0.206046</td>\n",
       "      <td>-0.299600</td>\n",
       "      <td>...</td>\n",
       "      <td>0.967154</td>\n",
       "      <td>1.519549</td>\n",
       "      <td>1.556544</td>\n",
       "      <td>-0.068761</td>\n",
       "      <td>1.182859</td>\n",
       "      <td>-0.647793</td>\n",
       "      <td>-0.700245</td>\n",
       "      <td>0.705043</td>\n",
       "      <td>-0.825873</td>\n",
       "      <td>1.851311</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.391114</td>\n",
       "      <td>0.418370</td>\n",
       "      <td>-1.037966</td>\n",
       "      <td>0.312837</td>\n",
       "      <td>-0.964962</td>\n",
       "      <td>-1.330757</td>\n",
       "      <td>0.641659</td>\n",
       "      <td>1.299796</td>\n",
       "      <td>0.038224</td>\n",
       "      <td>0.356430</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.912055</td>\n",
       "      <td>0.942265</td>\n",
       "      <td>-0.054322</td>\n",
       "      <td>0.174229</td>\n",
       "      <td>-0.782228</td>\n",
       "      <td>-0.613781</td>\n",
       "      <td>-1.241414</td>\n",
       "      <td>0.528770</td>\n",
       "      <td>-1.546610</td>\n",
       "      <td>-0.655011</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>-0.978640</td>\n",
       "      <td>0.882280</td>\n",
       "      <td>1.098095</td>\n",
       "      <td>1.637879</td>\n",
       "      <td>1.623599</td>\n",
       "      <td>1.164122</td>\n",
       "      <td>0.459580</td>\n",
       "      <td>-1.200620</td>\n",
       "      <td>-0.101569</td>\n",
       "      <td>-1.025493</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.178119</td>\n",
       "      <td>0.153881</td>\n",
       "      <td>-1.489814</td>\n",
       "      <td>0.010346</td>\n",
       "      <td>1.043027</td>\n",
       "      <td>1.248067</td>\n",
       "      <td>1.028140</td>\n",
       "      <td>-0.870393</td>\n",
       "      <td>-0.706648</td>\n",
       "      <td>1.744279</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.735374</td>\n",
       "      <td>1.603069</td>\n",
       "      <td>-0.607167</td>\n",
       "      <td>1.751502</td>\n",
       "      <td>1.457694</td>\n",
       "      <td>-1.035909</td>\n",
       "      <td>0.547590</td>\n",
       "      <td>0.782969</td>\n",
       "      <td>1.545038</td>\n",
       "      <td>1.538226</td>\n",
       "      <td>...</td>\n",
       "      <td>0.969993</td>\n",
       "      <td>-0.325719</td>\n",
       "      <td>0.994623</td>\n",
       "      <td>-1.531772</td>\n",
       "      <td>1.115576</td>\n",
       "      <td>0.459712</td>\n",
       "      <td>0.949289</td>\n",
       "      <td>-0.787418</td>\n",
       "      <td>-0.295029</td>\n",
       "      <td>0.903614</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>-1.348100</td>\n",
       "      <td>-0.399150</td>\n",
       "      <td>-1.218192</td>\n",
       "      <td>1.062848</td>\n",
       "      <td>0.749450</td>\n",
       "      <td>-1.029018</td>\n",
       "      <td>0.392363</td>\n",
       "      <td>0.421657</td>\n",
       "      <td>0.277607</td>\n",
       "      <td>1.341795</td>\n",
       "      <td>...</td>\n",
       "      <td>0.564476</td>\n",
       "      <td>-1.216358</td>\n",
       "      <td>1.071405</td>\n",
       "      <td>-0.202719</td>\n",
       "      <td>0.165891</td>\n",
       "      <td>-0.592823</td>\n",
       "      <td>0.805909</td>\n",
       "      <td>0.591497</td>\n",
       "      <td>-1.093653</td>\n",
       "      <td>-1.055484</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1.285660</td>\n",
       "      <td>0.526640</td>\n",
       "      <td>-0.327848</td>\n",
       "      <td>-0.794804</td>\n",
       "      <td>0.136058</td>\n",
       "      <td>0.355371</td>\n",
       "      <td>1.387508</td>\n",
       "      <td>-0.973951</td>\n",
       "      <td>-1.477451</td>\n",
       "      <td>1.033896</td>\n",
       "      <td>...</td>\n",
       "      <td>0.944201</td>\n",
       "      <td>-0.329253</td>\n",
       "      <td>0.670113</td>\n",
       "      <td>0.898907</td>\n",
       "      <td>-1.234780</td>\n",
       "      <td>-1.424890</td>\n",
       "      <td>1.544366</td>\n",
       "      <td>-0.845917</td>\n",
       "      <td>0.405283</td>\n",
       "      <td>0.693724</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1.564215</td>\n",
       "      <td>-0.530578</td>\n",
       "      <td>-1.378221</td>\n",
       "      <td>1.484833</td>\n",
       "      <td>-0.121855</td>\n",
       "      <td>-1.147937</td>\n",
       "      <td>-0.646704</td>\n",
       "      <td>1.363795</td>\n",
       "      <td>-1.422009</td>\n",
       "      <td>-0.908234</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.839381</td>\n",
       "      <td>0.365275</td>\n",
       "      <td>1.490728</td>\n",
       "      <td>-0.444500</td>\n",
       "      <td>0.555258</td>\n",
       "      <td>1.260674</td>\n",
       "      <td>-0.156228</td>\n",
       "      <td>-1.821950</td>\n",
       "      <td>1.436147</td>\n",
       "      <td>-1.629020</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>-1.512300</td>\n",
       "      <td>1.257621</td>\n",
       "      <td>-0.950904</td>\n",
       "      <td>0.097102</td>\n",
       "      <td>0.066319</td>\n",
       "      <td>1.201285</td>\n",
       "      <td>-1.479766</td>\n",
       "      <td>1.081254</td>\n",
       "      <td>-0.700119</td>\n",
       "      <td>0.551702</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.511107</td>\n",
       "      <td>-0.801593</td>\n",
       "      <td>-0.291530</td>\n",
       "      <td>-0.149648</td>\n",
       "      <td>-0.885823</td>\n",
       "      <td>-0.679197</td>\n",
       "      <td>-1.809390</td>\n",
       "      <td>1.392497</td>\n",
       "      <td>1.610417</td>\n",
       "      <td>0.636615</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>0.676772</td>\n",
       "      <td>-0.382604</td>\n",
       "      <td>0.152292</td>\n",
       "      <td>1.184203</td>\n",
       "      <td>0.885681</td>\n",
       "      <td>-1.561482</td>\n",
       "      <td>0.544845</td>\n",
       "      <td>0.825152</td>\n",
       "      <td>0.851938</td>\n",
       "      <td>0.386944</td>\n",
       "      <td>...</td>\n",
       "      <td>0.706691</td>\n",
       "      <td>-1.175663</td>\n",
       "      <td>-0.441140</td>\n",
       "      <td>-1.470221</td>\n",
       "      <td>-0.088202</td>\n",
       "      <td>-0.315637</td>\n",
       "      <td>0.481602</td>\n",
       "      <td>0.378751</td>\n",
       "      <td>-1.696612</td>\n",
       "      <td>-0.433806</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>0.240678</td>\n",
       "      <td>-1.393210</td>\n",
       "      <td>0.187365</td>\n",
       "      <td>-0.798240</td>\n",
       "      <td>0.226787</td>\n",
       "      <td>-0.633688</td>\n",
       "      <td>-0.989422</td>\n",
       "      <td>-1.293567</td>\n",
       "      <td>1.050305</td>\n",
       "      <td>0.351630</td>\n",
       "      <td>...</td>\n",
       "      <td>1.583936</td>\n",
       "      <td>0.168961</td>\n",
       "      <td>-0.907365</td>\n",
       "      <td>1.536351</td>\n",
       "      <td>0.692415</td>\n",
       "      <td>-0.558356</td>\n",
       "      <td>1.183726</td>\n",
       "      <td>0.025276</td>\n",
       "      <td>0.922382</td>\n",
       "      <td>-0.886471</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>0.340047</td>\n",
       "      <td>0.938168</td>\n",
       "      <td>-1.118608</td>\n",
       "      <td>-0.523279</td>\n",
       "      <td>-0.761692</td>\n",
       "      <td>0.586611</td>\n",
       "      <td>0.016273</td>\n",
       "      <td>-0.059960</td>\n",
       "      <td>-0.971746</td>\n",
       "      <td>0.203671</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.582610</td>\n",
       "      <td>-1.445128</td>\n",
       "      <td>0.929069</td>\n",
       "      <td>0.529699</td>\n",
       "      <td>-0.288482</td>\n",
       "      <td>0.100620</td>\n",
       "      <td>-0.339643</td>\n",
       "      <td>-1.342788</td>\n",
       "      <td>0.285311</td>\n",
       "      <td>-1.530031</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>-0.216206</td>\n",
       "      <td>-0.081457</td>\n",
       "      <td>-0.066678</td>\n",
       "      <td>0.712012</td>\n",
       "      <td>-0.933661</td>\n",
       "      <td>0.107191</td>\n",
       "      <td>1.538183</td>\n",
       "      <td>1.312979</td>\n",
       "      <td>1.597155</td>\n",
       "      <td>0.204361</td>\n",
       "      <td>...</td>\n",
       "      <td>0.851806</td>\n",
       "      <td>1.574912</td>\n",
       "      <td>-1.057158</td>\n",
       "      <td>0.897952</td>\n",
       "      <td>0.334998</td>\n",
       "      <td>-1.499413</td>\n",
       "      <td>-0.557911</td>\n",
       "      <td>0.893911</td>\n",
       "      <td>-1.525342</td>\n",
       "      <td>-0.772764</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>-0.393874</td>\n",
       "      <td>-0.217956</td>\n",
       "      <td>0.505092</td>\n",
       "      <td>1.288478</td>\n",
       "      <td>0.743926</td>\n",
       "      <td>1.529977</td>\n",
       "      <td>-1.468972</td>\n",
       "      <td>0.813537</td>\n",
       "      <td>-1.114886</td>\n",
       "      <td>-0.573397</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.397053</td>\n",
       "      <td>0.327747</td>\n",
       "      <td>0.515145</td>\n",
       "      <td>0.648666</td>\n",
       "      <td>-0.041444</td>\n",
       "      <td>0.037236</td>\n",
       "      <td>0.563206</td>\n",
       "      <td>1.500904</td>\n",
       "      <td>0.985118</td>\n",
       "      <td>1.295535</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>1.448163</td>\n",
       "      <td>-1.468940</td>\n",
       "      <td>0.296056</td>\n",
       "      <td>-0.724831</td>\n",
       "      <td>0.647826</td>\n",
       "      <td>-0.180198</td>\n",
       "      <td>-1.700891</td>\n",
       "      <td>0.269400</td>\n",
       "      <td>0.671001</td>\n",
       "      <td>0.743764</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.011690</td>\n",
       "      <td>0.961830</td>\n",
       "      <td>-0.257341</td>\n",
       "      <td>-1.322110</td>\n",
       "      <td>-0.140934</td>\n",
       "      <td>1.127069</td>\n",
       "      <td>0.961686</td>\n",
       "      <td>1.278722</td>\n",
       "      <td>1.053308</td>\n",
       "      <td>0.611221</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>0.909765</td>\n",
       "      <td>1.254015</td>\n",
       "      <td>1.629871</td>\n",
       "      <td>-0.727945</td>\n",
       "      <td>0.364806</td>\n",
       "      <td>-1.244102</td>\n",
       "      <td>-0.660909</td>\n",
       "      <td>-1.646826</td>\n",
       "      <td>1.657767</td>\n",
       "      <td>1.276033</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.281521</td>\n",
       "      <td>1.723603</td>\n",
       "      <td>-1.584701</td>\n",
       "      <td>-0.319174</td>\n",
       "      <td>-1.711071</td>\n",
       "      <td>-1.183856</td>\n",
       "      <td>1.509604</td>\n",
       "      <td>0.526637</td>\n",
       "      <td>-0.805211</td>\n",
       "      <td>-1.732134</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>-0.734810</td>\n",
       "      <td>-0.748138</td>\n",
       "      <td>1.446927</td>\n",
       "      <td>0.207259</td>\n",
       "      <td>0.760452</td>\n",
       "      <td>1.116326</td>\n",
       "      <td>-0.842161</td>\n",
       "      <td>-0.789068</td>\n",
       "      <td>0.532212</td>\n",
       "      <td>0.759320</td>\n",
       "      <td>...</td>\n",
       "      <td>1.465185</td>\n",
       "      <td>0.401349</td>\n",
       "      <td>-0.966394</td>\n",
       "      <td>-0.362602</td>\n",
       "      <td>1.127971</td>\n",
       "      <td>0.752127</td>\n",
       "      <td>-0.106078</td>\n",
       "      <td>1.265856</td>\n",
       "      <td>0.211697</td>\n",
       "      <td>0.269893</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>0.190232</td>\n",
       "      <td>-0.380382</td>\n",
       "      <td>-0.956613</td>\n",
       "      <td>0.161797</td>\n",
       "      <td>0.358565</td>\n",
       "      <td>1.054044</td>\n",
       "      <td>-0.502211</td>\n",
       "      <td>1.479995</td>\n",
       "      <td>0.543587</td>\n",
       "      <td>-0.610027</td>\n",
       "      <td>...</td>\n",
       "      <td>0.905991</td>\n",
       "      <td>0.590617</td>\n",
       "      <td>0.979145</td>\n",
       "      <td>-1.668567</td>\n",
       "      <td>1.387817</td>\n",
       "      <td>-0.542651</td>\n",
       "      <td>-1.742281</td>\n",
       "      <td>-1.127449</td>\n",
       "      <td>-1.631693</td>\n",
       "      <td>0.071839</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>0.171497</td>\n",
       "      <td>-0.568547</td>\n",
       "      <td>-0.181602</td>\n",
       "      <td>1.280796</td>\n",
       "      <td>-0.607141</td>\n",
       "      <td>-1.314850</td>\n",
       "      <td>0.877709</td>\n",
       "      <td>-1.303426</td>\n",
       "      <td>-0.263439</td>\n",
       "      <td>-0.578028</td>\n",
       "      <td>...</td>\n",
       "      <td>0.463058</td>\n",
       "      <td>-0.343679</td>\n",
       "      <td>-1.369579</td>\n",
       "      <td>1.682706</td>\n",
       "      <td>-0.492890</td>\n",
       "      <td>1.073619</td>\n",
       "      <td>1.642233</td>\n",
       "      <td>-1.790007</td>\n",
       "      <td>-0.242860</td>\n",
       "      <td>-0.465673</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>-1.773808</td>\n",
       "      <td>-0.806683</td>\n",
       "      <td>1.710190</td>\n",
       "      <td>1.529340</td>\n",
       "      <td>0.149329</td>\n",
       "      <td>0.015717</td>\n",
       "      <td>-1.664649</td>\n",
       "      <td>-0.333638</td>\n",
       "      <td>0.959662</td>\n",
       "      <td>-1.626720</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.076300</td>\n",
       "      <td>0.181243</td>\n",
       "      <td>-0.343203</td>\n",
       "      <td>1.127871</td>\n",
       "      <td>-1.857502</td>\n",
       "      <td>-0.760829</td>\n",
       "      <td>-1.716068</td>\n",
       "      <td>-0.238514</td>\n",
       "      <td>0.830074</td>\n",
       "      <td>1.099593</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>-0.232519</td>\n",
       "      <td>-0.199589</td>\n",
       "      <td>0.034674</td>\n",
       "      <td>-0.284041</td>\n",
       "      <td>0.924887</td>\n",
       "      <td>1.394155</td>\n",
       "      <td>0.390990</td>\n",
       "      <td>0.467035</td>\n",
       "      <td>-0.711218</td>\n",
       "      <td>-0.232838</td>\n",
       "      <td>...</td>\n",
       "      <td>0.516714</td>\n",
       "      <td>0.670454</td>\n",
       "      <td>1.216928</td>\n",
       "      <td>1.133620</td>\n",
       "      <td>-1.013026</td>\n",
       "      <td>-1.129269</td>\n",
       "      <td>1.325263</td>\n",
       "      <td>1.292575</td>\n",
       "      <td>0.501611</td>\n",
       "      <td>1.526500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>-1.171088</td>\n",
       "      <td>0.141293</td>\n",
       "      <td>1.626429</td>\n",
       "      <td>0.168721</td>\n",
       "      <td>-1.727745</td>\n",
       "      <td>1.386053</td>\n",
       "      <td>0.263236</td>\n",
       "      <td>1.137646</td>\n",
       "      <td>0.360819</td>\n",
       "      <td>1.443515</td>\n",
       "      <td>...</td>\n",
       "      <td>0.862208</td>\n",
       "      <td>-1.184068</td>\n",
       "      <td>1.456381</td>\n",
       "      <td>0.892589</td>\n",
       "      <td>-0.674029</td>\n",
       "      <td>-1.409532</td>\n",
       "      <td>0.050445</td>\n",
       "      <td>-0.772777</td>\n",
       "      <td>1.630130</td>\n",
       "      <td>1.186272</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>-1.583545</td>\n",
       "      <td>0.526075</td>\n",
       "      <td>-0.406596</td>\n",
       "      <td>-1.025639</td>\n",
       "      <td>-1.104152</td>\n",
       "      <td>-1.492721</td>\n",
       "      <td>0.094901</td>\n",
       "      <td>-1.687825</td>\n",
       "      <td>0.522421</td>\n",
       "      <td>-0.947742</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.274502</td>\n",
       "      <td>-1.410834</td>\n",
       "      <td>-0.511294</td>\n",
       "      <td>-1.479222</td>\n",
       "      <td>1.539949</td>\n",
       "      <td>-0.185147</td>\n",
       "      <td>-1.623003</td>\n",
       "      <td>1.281739</td>\n",
       "      <td>0.106110</td>\n",
       "      <td>-0.587262</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>-0.247518</td>\n",
       "      <td>-0.116995</td>\n",
       "      <td>0.005844</td>\n",
       "      <td>1.353575</td>\n",
       "      <td>1.295124</td>\n",
       "      <td>-0.134358</td>\n",
       "      <td>1.053640</td>\n",
       "      <td>-1.656545</td>\n",
       "      <td>-0.071846</td>\n",
       "      <td>0.962144</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.318647</td>\n",
       "      <td>1.559977</td>\n",
       "      <td>-0.074145</td>\n",
       "      <td>-0.378504</td>\n",
       "      <td>0.869430</td>\n",
       "      <td>-0.069882</td>\n",
       "      <td>-1.669445</td>\n",
       "      <td>-0.498185</td>\n",
       "      <td>-1.576615</td>\n",
       "      <td>-0.777916</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>1.587095</td>\n",
       "      <td>0.230919</td>\n",
       "      <td>0.362958</td>\n",
       "      <td>-1.250820</td>\n",
       "      <td>1.657170</td>\n",
       "      <td>-0.718975</td>\n",
       "      <td>0.330160</td>\n",
       "      <td>-0.126438</td>\n",
       "      <td>-1.220022</td>\n",
       "      <td>-1.125991</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.649107</td>\n",
       "      <td>1.306017</td>\n",
       "      <td>0.482203</td>\n",
       "      <td>0.145802</td>\n",
       "      <td>1.448299</td>\n",
       "      <td>-0.520351</td>\n",
       "      <td>-1.056655</td>\n",
       "      <td>-0.805319</td>\n",
       "      <td>-1.254778</td>\n",
       "      <td>0.418933</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>0.935906</td>\n",
       "      <td>-0.145264</td>\n",
       "      <td>-1.250488</td>\n",
       "      <td>-1.470936</td>\n",
       "      <td>1.506688</td>\n",
       "      <td>-1.313323</td>\n",
       "      <td>1.518933</td>\n",
       "      <td>0.610692</td>\n",
       "      <td>-0.491017</td>\n",
       "      <td>-1.627820</td>\n",
       "      <td>...</td>\n",
       "      <td>0.902349</td>\n",
       "      <td>1.508875</td>\n",
       "      <td>-1.127943</td>\n",
       "      <td>-0.570377</td>\n",
       "      <td>0.352445</td>\n",
       "      <td>-0.110769</td>\n",
       "      <td>-1.567606</td>\n",
       "      <td>-1.748038</td>\n",
       "      <td>-1.510443</td>\n",
       "      <td>0.548930</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>0.719676</td>\n",
       "      <td>-0.814732</td>\n",
       "      <td>-1.725769</td>\n",
       "      <td>-1.235741</td>\n",
       "      <td>-0.586766</td>\n",
       "      <td>0.796515</td>\n",
       "      <td>-1.080151</td>\n",
       "      <td>0.608303</td>\n",
       "      <td>0.782711</td>\n",
       "      <td>-0.265900</td>\n",
       "      <td>...</td>\n",
       "      <td>1.390754</td>\n",
       "      <td>-1.492590</td>\n",
       "      <td>-0.500209</td>\n",
       "      <td>-0.435704</td>\n",
       "      <td>0.911975</td>\n",
       "      <td>1.868319</td>\n",
       "      <td>-0.857274</td>\n",
       "      <td>1.058341</td>\n",
       "      <td>-0.547400</td>\n",
       "      <td>0.169497</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>-0.209103</td>\n",
       "      <td>1.559806</td>\n",
       "      <td>-0.736238</td>\n",
       "      <td>0.930045</td>\n",
       "      <td>-1.183643</td>\n",
       "      <td>-1.525615</td>\n",
       "      <td>0.653475</td>\n",
       "      <td>-1.798585</td>\n",
       "      <td>-1.294609</td>\n",
       "      <td>0.813010</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.518635</td>\n",
       "      <td>0.192210</td>\n",
       "      <td>-0.855648</td>\n",
       "      <td>-1.609667</td>\n",
       "      <td>-0.225023</td>\n",
       "      <td>-0.247551</td>\n",
       "      <td>-0.314739</td>\n",
       "      <td>0.907275</td>\n",
       "      <td>-1.162187</td>\n",
       "      <td>0.812885</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>70</th>\n",
       "      <td>-0.374306</td>\n",
       "      <td>-0.509877</td>\n",
       "      <td>1.139351</td>\n",
       "      <td>0.463223</td>\n",
       "      <td>-0.122952</td>\n",
       "      <td>0.257494</td>\n",
       "      <td>0.984939</td>\n",
       "      <td>0.808924</td>\n",
       "      <td>-0.961834</td>\n",
       "      <td>-0.648294</td>\n",
       "      <td>...</td>\n",
       "      <td>0.403268</td>\n",
       "      <td>-1.599651</td>\n",
       "      <td>-1.036633</td>\n",
       "      <td>1.665229</td>\n",
       "      <td>-0.067446</td>\n",
       "      <td>1.100297</td>\n",
       "      <td>-0.316657</td>\n",
       "      <td>-0.748823</td>\n",
       "      <td>-1.401503</td>\n",
       "      <td>0.561532</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>71</th>\n",
       "      <td>-0.850873</td>\n",
       "      <td>-0.903579</td>\n",
       "      <td>1.431794</td>\n",
       "      <td>-0.028323</td>\n",
       "      <td>1.481066</td>\n",
       "      <td>-0.906899</td>\n",
       "      <td>1.372466</td>\n",
       "      <td>-0.408602</td>\n",
       "      <td>1.639764</td>\n",
       "      <td>1.169778</td>\n",
       "      <td>...</td>\n",
       "      <td>1.226428</td>\n",
       "      <td>1.316993</td>\n",
       "      <td>0.943541</td>\n",
       "      <td>0.488501</td>\n",
       "      <td>-0.272406</td>\n",
       "      <td>-1.459338</td>\n",
       "      <td>1.011081</td>\n",
       "      <td>-1.737450</td>\n",
       "      <td>1.757685</td>\n",
       "      <td>0.941178</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>72</th>\n",
       "      <td>0.455261</td>\n",
       "      <td>-1.356238</td>\n",
       "      <td>-1.665984</td>\n",
       "      <td>-1.043824</td>\n",
       "      <td>0.780949</td>\n",
       "      <td>-1.618006</td>\n",
       "      <td>0.502182</td>\n",
       "      <td>-0.488663</td>\n",
       "      <td>-0.570120</td>\n",
       "      <td>0.715019</td>\n",
       "      <td>...</td>\n",
       "      <td>0.338761</td>\n",
       "      <td>-1.490060</td>\n",
       "      <td>0.993442</td>\n",
       "      <td>0.918406</td>\n",
       "      <td>0.071260</td>\n",
       "      <td>-1.580971</td>\n",
       "      <td>0.975308</td>\n",
       "      <td>0.125080</td>\n",
       "      <td>-1.371668</td>\n",
       "      <td>-0.822416</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>73</th>\n",
       "      <td>1.398525</td>\n",
       "      <td>-0.630447</td>\n",
       "      <td>0.869634</td>\n",
       "      <td>1.186189</td>\n",
       "      <td>-0.693715</td>\n",
       "      <td>-0.056440</td>\n",
       "      <td>0.763450</td>\n",
       "      <td>0.636438</td>\n",
       "      <td>-0.362792</td>\n",
       "      <td>-0.817460</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.068658</td>\n",
       "      <td>1.172448</td>\n",
       "      <td>-1.668875</td>\n",
       "      <td>-0.478816</td>\n",
       "      <td>0.243758</td>\n",
       "      <td>-0.956590</td>\n",
       "      <td>-0.921063</td>\n",
       "      <td>0.527734</td>\n",
       "      <td>-0.551796</td>\n",
       "      <td>0.041946</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>74</th>\n",
       "      <td>1.195139</td>\n",
       "      <td>-0.649233</td>\n",
       "      <td>-1.749415</td>\n",
       "      <td>0.481350</td>\n",
       "      <td>-0.879385</td>\n",
       "      <td>0.861043</td>\n",
       "      <td>0.543140</td>\n",
       "      <td>-1.344145</td>\n",
       "      <td>1.061763</td>\n",
       "      <td>0.812840</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.217410</td>\n",
       "      <td>-0.466573</td>\n",
       "      <td>0.166679</td>\n",
       "      <td>0.379972</td>\n",
       "      <td>-1.893531</td>\n",
       "      <td>-1.453595</td>\n",
       "      <td>0.445461</td>\n",
       "      <td>-1.830092</td>\n",
       "      <td>-1.130029</td>\n",
       "      <td>-1.471436</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75</th>\n",
       "      <td>1.219581</td>\n",
       "      <td>-1.355438</td>\n",
       "      <td>-0.143437</td>\n",
       "      <td>1.374460</td>\n",
       "      <td>0.535197</td>\n",
       "      <td>0.517635</td>\n",
       "      <td>1.051577</td>\n",
       "      <td>-0.687447</td>\n",
       "      <td>1.252113</td>\n",
       "      <td>0.701283</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.661371</td>\n",
       "      <td>-1.249170</td>\n",
       "      <td>-1.097037</td>\n",
       "      <td>-1.135348</td>\n",
       "      <td>-1.109167</td>\n",
       "      <td>0.297080</td>\n",
       "      <td>1.468701</td>\n",
       "      <td>0.526295</td>\n",
       "      <td>0.359638</td>\n",
       "      <td>-0.103874</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>76</th>\n",
       "      <td>-0.772830</td>\n",
       "      <td>-0.029715</td>\n",
       "      <td>0.074375</td>\n",
       "      <td>-0.490430</td>\n",
       "      <td>1.480858</td>\n",
       "      <td>0.587917</td>\n",
       "      <td>-1.002865</td>\n",
       "      <td>0.425643</td>\n",
       "      <td>-0.961998</td>\n",
       "      <td>-0.647699</td>\n",
       "      <td>...</td>\n",
       "      <td>1.679556</td>\n",
       "      <td>-1.541915</td>\n",
       "      <td>0.857821</td>\n",
       "      <td>-0.828734</td>\n",
       "      <td>0.806509</td>\n",
       "      <td>-1.216620</td>\n",
       "      <td>0.150009</td>\n",
       "      <td>-0.438745</td>\n",
       "      <td>1.178379</td>\n",
       "      <td>-1.657935</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>77</th>\n",
       "      <td>-0.970610</td>\n",
       "      <td>1.621268</td>\n",
       "      <td>0.976901</td>\n",
       "      <td>-1.000428</td>\n",
       "      <td>0.486647</td>\n",
       "      <td>-1.027562</td>\n",
       "      <td>-0.227339</td>\n",
       "      <td>-0.018820</td>\n",
       "      <td>-0.136400</td>\n",
       "      <td>-0.170005</td>\n",
       "      <td>...</td>\n",
       "      <td>0.491278</td>\n",
       "      <td>0.778125</td>\n",
       "      <td>0.015861</td>\n",
       "      <td>0.396135</td>\n",
       "      <td>-0.920930</td>\n",
       "      <td>-0.695792</td>\n",
       "      <td>-0.312448</td>\n",
       "      <td>-0.247626</td>\n",
       "      <td>1.490141</td>\n",
       "      <td>-0.907475</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>78</th>\n",
       "      <td>-1.565164</td>\n",
       "      <td>1.675003</td>\n",
       "      <td>0.266903</td>\n",
       "      <td>-1.066366</td>\n",
       "      <td>-0.482731</td>\n",
       "      <td>1.611849</td>\n",
       "      <td>-1.662038</td>\n",
       "      <td>-0.139250</td>\n",
       "      <td>-1.121025</td>\n",
       "      <td>-1.244859</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.004240</td>\n",
       "      <td>-0.931624</td>\n",
       "      <td>0.501343</td>\n",
       "      <td>-0.268321</td>\n",
       "      <td>0.382614</td>\n",
       "      <td>-1.530718</td>\n",
       "      <td>0.115311</td>\n",
       "      <td>1.254945</td>\n",
       "      <td>0.306358</td>\n",
       "      <td>-0.465282</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>79</th>\n",
       "      <td>-1.588639</td>\n",
       "      <td>-0.972567</td>\n",
       "      <td>-0.409528</td>\n",
       "      <td>-0.931689</td>\n",
       "      <td>-1.281164</td>\n",
       "      <td>0.806443</td>\n",
       "      <td>-1.223291</td>\n",
       "      <td>0.080806</td>\n",
       "      <td>-1.573407</td>\n",
       "      <td>1.335915</td>\n",
       "      <td>...</td>\n",
       "      <td>0.917508</td>\n",
       "      <td>-0.523602</td>\n",
       "      <td>0.950502</td>\n",
       "      <td>1.499240</td>\n",
       "      <td>-1.719770</td>\n",
       "      <td>1.244792</td>\n",
       "      <td>0.629544</td>\n",
       "      <td>-1.428163</td>\n",
       "      <td>0.994619</td>\n",
       "      <td>-0.018197</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>80</th>\n",
       "      <td>0.040967</td>\n",
       "      <td>1.623519</td>\n",
       "      <td>-0.717045</td>\n",
       "      <td>-1.237592</td>\n",
       "      <td>-0.636891</td>\n",
       "      <td>0.066840</td>\n",
       "      <td>-0.408493</td>\n",
       "      <td>-0.823917</td>\n",
       "      <td>-1.419024</td>\n",
       "      <td>1.440702</td>\n",
       "      <td>...</td>\n",
       "      <td>1.614721</td>\n",
       "      <td>0.755044</td>\n",
       "      <td>-1.705512</td>\n",
       "      <td>1.534536</td>\n",
       "      <td>1.396306</td>\n",
       "      <td>-1.434376</td>\n",
       "      <td>-1.635364</td>\n",
       "      <td>-1.417336</td>\n",
       "      <td>0.186586</td>\n",
       "      <td>-1.529835</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>81</th>\n",
       "      <td>1.471870</td>\n",
       "      <td>0.065310</td>\n",
       "      <td>0.981485</td>\n",
       "      <td>1.151370</td>\n",
       "      <td>-1.252160</td>\n",
       "      <td>-0.416664</td>\n",
       "      <td>-0.109791</td>\n",
       "      <td>-0.216107</td>\n",
       "      <td>0.083090</td>\n",
       "      <td>-0.307073</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.734761</td>\n",
       "      <td>-1.161675</td>\n",
       "      <td>-0.098638</td>\n",
       "      <td>1.035213</td>\n",
       "      <td>1.393117</td>\n",
       "      <td>0.589706</td>\n",
       "      <td>0.940245</td>\n",
       "      <td>-0.886534</td>\n",
       "      <td>-0.368786</td>\n",
       "      <td>0.087320</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>82</th>\n",
       "      <td>0.443744</td>\n",
       "      <td>1.315541</td>\n",
       "      <td>-0.305109</td>\n",
       "      <td>0.001978</td>\n",
       "      <td>-0.079711</td>\n",
       "      <td>-0.171958</td>\n",
       "      <td>1.419704</td>\n",
       "      <td>1.473038</td>\n",
       "      <td>1.729698</td>\n",
       "      <td>0.986627</td>\n",
       "      <td>...</td>\n",
       "      <td>0.287173</td>\n",
       "      <td>1.571421</td>\n",
       "      <td>-0.454864</td>\n",
       "      <td>0.867487</td>\n",
       "      <td>-0.977401</td>\n",
       "      <td>0.555789</td>\n",
       "      <td>0.076087</td>\n",
       "      <td>0.173998</td>\n",
       "      <td>0.091385</td>\n",
       "      <td>0.482194</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>83</th>\n",
       "      <td>0.029843</td>\n",
       "      <td>0.767682</td>\n",
       "      <td>-0.993877</td>\n",
       "      <td>1.717344</td>\n",
       "      <td>-0.995321</td>\n",
       "      <td>-0.941138</td>\n",
       "      <td>-0.989065</td>\n",
       "      <td>1.184264</td>\n",
       "      <td>1.613218</td>\n",
       "      <td>1.674028</td>\n",
       "      <td>...</td>\n",
       "      <td>1.575743</td>\n",
       "      <td>-0.263912</td>\n",
       "      <td>0.753665</td>\n",
       "      <td>1.514962</td>\n",
       "      <td>0.051583</td>\n",
       "      <td>0.512572</td>\n",
       "      <td>-1.121129</td>\n",
       "      <td>-1.858649</td>\n",
       "      <td>1.716891</td>\n",
       "      <td>-1.288875</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>84</th>\n",
       "      <td>0.943205</td>\n",
       "      <td>-0.062812</td>\n",
       "      <td>0.137365</td>\n",
       "      <td>1.673334</td>\n",
       "      <td>1.457726</td>\n",
       "      <td>1.421604</td>\n",
       "      <td>-0.296355</td>\n",
       "      <td>1.440719</td>\n",
       "      <td>-0.053801</td>\n",
       "      <td>-1.800137</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.788354</td>\n",
       "      <td>1.578393</td>\n",
       "      <td>0.091042</td>\n",
       "      <td>-0.914965</td>\n",
       "      <td>0.418812</td>\n",
       "      <td>-0.225515</td>\n",
       "      <td>1.083822</td>\n",
       "      <td>-1.846586</td>\n",
       "      <td>-0.881830</td>\n",
       "      <td>1.241672</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>85</th>\n",
       "      <td>1.143780</td>\n",
       "      <td>-1.227919</td>\n",
       "      <td>-0.038486</td>\n",
       "      <td>-0.991480</td>\n",
       "      <td>0.334727</td>\n",
       "      <td>-0.003853</td>\n",
       "      <td>0.906715</td>\n",
       "      <td>-1.280948</td>\n",
       "      <td>-0.299935</td>\n",
       "      <td>-0.922888</td>\n",
       "      <td>...</td>\n",
       "      <td>1.605559</td>\n",
       "      <td>-0.014674</td>\n",
       "      <td>-1.172934</td>\n",
       "      <td>-1.618927</td>\n",
       "      <td>0.367595</td>\n",
       "      <td>0.110084</td>\n",
       "      <td>0.603344</td>\n",
       "      <td>-0.004074</td>\n",
       "      <td>-0.474540</td>\n",
       "      <td>-0.316894</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>86</th>\n",
       "      <td>-0.894993</td>\n",
       "      <td>-0.105199</td>\n",
       "      <td>-1.185358</td>\n",
       "      <td>-0.835168</td>\n",
       "      <td>0.180074</td>\n",
       "      <td>-0.075097</td>\n",
       "      <td>0.988637</td>\n",
       "      <td>0.710944</td>\n",
       "      <td>0.236767</td>\n",
       "      <td>-0.706053</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.825000</td>\n",
       "      <td>0.699982</td>\n",
       "      <td>1.274639</td>\n",
       "      <td>0.371174</td>\n",
       "      <td>0.052800</td>\n",
       "      <td>-1.530699</td>\n",
       "      <td>1.676907</td>\n",
       "      <td>-0.063711</td>\n",
       "      <td>0.262439</td>\n",
       "      <td>-0.854201</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>87</th>\n",
       "      <td>-0.719007</td>\n",
       "      <td>-0.071196</td>\n",
       "      <td>1.467955</td>\n",
       "      <td>0.876265</td>\n",
       "      <td>0.449004</td>\n",
       "      <td>0.403144</td>\n",
       "      <td>-0.545273</td>\n",
       "      <td>-1.497419</td>\n",
       "      <td>0.844362</td>\n",
       "      <td>0.976808</td>\n",
       "      <td>...</td>\n",
       "      <td>0.433169</td>\n",
       "      <td>-0.853505</td>\n",
       "      <td>-1.251983</td>\n",
       "      <td>-0.917957</td>\n",
       "      <td>1.104403</td>\n",
       "      <td>-1.157357</td>\n",
       "      <td>0.643374</td>\n",
       "      <td>0.211782</td>\n",
       "      <td>-0.543510</td>\n",
       "      <td>-0.295384</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>88</th>\n",
       "      <td>-0.901002</td>\n",
       "      <td>-1.211165</td>\n",
       "      <td>-0.040284</td>\n",
       "      <td>-1.324867</td>\n",
       "      <td>0.388089</td>\n",
       "      <td>-1.272009</td>\n",
       "      <td>-1.084499</td>\n",
       "      <td>1.501458</td>\n",
       "      <td>0.328346</td>\n",
       "      <td>-0.762704</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.708126</td>\n",
       "      <td>-0.261010</td>\n",
       "      <td>1.474982</td>\n",
       "      <td>-1.051313</td>\n",
       "      <td>1.270748</td>\n",
       "      <td>1.439772</td>\n",
       "      <td>1.314050</td>\n",
       "      <td>1.017364</td>\n",
       "      <td>-0.429077</td>\n",
       "      <td>-1.597541</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>89</th>\n",
       "      <td>-1.581999</td>\n",
       "      <td>0.329491</td>\n",
       "      <td>-1.593734</td>\n",
       "      <td>-1.164570</td>\n",
       "      <td>-0.062949</td>\n",
       "      <td>0.090999</td>\n",
       "      <td>1.343263</td>\n",
       "      <td>0.140127</td>\n",
       "      <td>1.047308</td>\n",
       "      <td>-1.889868</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.049631</td>\n",
       "      <td>0.298881</td>\n",
       "      <td>1.320489</td>\n",
       "      <td>-0.547441</td>\n",
       "      <td>-0.743548</td>\n",
       "      <td>-0.616080</td>\n",
       "      <td>0.404941</td>\n",
       "      <td>-1.630911</td>\n",
       "      <td>0.959541</td>\n",
       "      <td>0.794803</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>90</th>\n",
       "      <td>1.384090</td>\n",
       "      <td>-0.844580</td>\n",
       "      <td>-0.743064</td>\n",
       "      <td>-0.630105</td>\n",
       "      <td>-1.202180</td>\n",
       "      <td>-0.535705</td>\n",
       "      <td>-1.129373</td>\n",
       "      <td>0.385504</td>\n",
       "      <td>1.286978</td>\n",
       "      <td>-1.661751</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.187767</td>\n",
       "      <td>0.542780</td>\n",
       "      <td>0.900464</td>\n",
       "      <td>-1.498064</td>\n",
       "      <td>1.308647</td>\n",
       "      <td>-0.556545</td>\n",
       "      <td>0.042047</td>\n",
       "      <td>-0.086129</td>\n",
       "      <td>0.397801</td>\n",
       "      <td>-0.990178</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>91</th>\n",
       "      <td>-0.861300</td>\n",
       "      <td>1.182918</td>\n",
       "      <td>-0.226505</td>\n",
       "      <td>-0.187358</td>\n",
       "      <td>-0.301630</td>\n",
       "      <td>0.584219</td>\n",
       "      <td>1.485748</td>\n",
       "      <td>1.264118</td>\n",
       "      <td>-1.216566</td>\n",
       "      <td>0.193704</td>\n",
       "      <td>...</td>\n",
       "      <td>0.048404</td>\n",
       "      <td>-1.545104</td>\n",
       "      <td>1.450316</td>\n",
       "      <td>-0.095114</td>\n",
       "      <td>1.409027</td>\n",
       "      <td>0.779509</td>\n",
       "      <td>0.218895</td>\n",
       "      <td>0.658453</td>\n",
       "      <td>0.122641</td>\n",
       "      <td>-1.373730</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>92</th>\n",
       "      <td>-0.824783</td>\n",
       "      <td>-1.077926</td>\n",
       "      <td>0.891118</td>\n",
       "      <td>0.517056</td>\n",
       "      <td>-0.194426</td>\n",
       "      <td>1.435527</td>\n",
       "      <td>-0.239051</td>\n",
       "      <td>1.204818</td>\n",
       "      <td>-1.407671</td>\n",
       "      <td>-0.787198</td>\n",
       "      <td>...</td>\n",
       "      <td>0.444560</td>\n",
       "      <td>-0.254857</td>\n",
       "      <td>-0.679714</td>\n",
       "      <td>-1.054029</td>\n",
       "      <td>0.926229</td>\n",
       "      <td>1.437916</td>\n",
       "      <td>0.708352</td>\n",
       "      <td>-1.236232</td>\n",
       "      <td>-1.261535</td>\n",
       "      <td>-0.488064</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>93</th>\n",
       "      <td>0.785421</td>\n",
       "      <td>0.333046</td>\n",
       "      <td>0.050298</td>\n",
       "      <td>-1.126874</td>\n",
       "      <td>1.115591</td>\n",
       "      <td>1.287045</td>\n",
       "      <td>-0.095741</td>\n",
       "      <td>-0.176628</td>\n",
       "      <td>-1.383699</td>\n",
       "      <td>-1.748018</td>\n",
       "      <td>...</td>\n",
       "      <td>0.436805</td>\n",
       "      <td>-0.178552</td>\n",
       "      <td>-1.408312</td>\n",
       "      <td>-1.546488</td>\n",
       "      <td>1.305025</td>\n",
       "      <td>1.097852</td>\n",
       "      <td>0.815681</td>\n",
       "      <td>-1.185418</td>\n",
       "      <td>0.929243</td>\n",
       "      <td>0.570606</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>94</th>\n",
       "      <td>-1.189086</td>\n",
       "      <td>1.398801</td>\n",
       "      <td>-0.835365</td>\n",
       "      <td>-1.377584</td>\n",
       "      <td>0.708942</td>\n",
       "      <td>-0.990116</td>\n",
       "      <td>0.848418</td>\n",
       "      <td>0.566546</td>\n",
       "      <td>1.715034</td>\n",
       "      <td>-0.687138</td>\n",
       "      <td>...</td>\n",
       "      <td>1.412452</td>\n",
       "      <td>-0.520480</td>\n",
       "      <td>1.118536</td>\n",
       "      <td>0.857002</td>\n",
       "      <td>0.768750</td>\n",
       "      <td>0.795685</td>\n",
       "      <td>0.859676</td>\n",
       "      <td>-0.570313</td>\n",
       "      <td>0.916351</td>\n",
       "      <td>0.801122</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <td>-0.837958</td>\n",
       "      <td>-1.365456</td>\n",
       "      <td>0.184541</td>\n",
       "      <td>0.325820</td>\n",
       "      <td>0.127239</td>\n",
       "      <td>1.486810</td>\n",
       "      <td>0.300611</td>\n",
       "      <td>0.263508</td>\n",
       "      <td>-0.638503</td>\n",
       "      <td>1.576994</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.991597</td>\n",
       "      <td>0.176691</td>\n",
       "      <td>0.532893</td>\n",
       "      <td>1.618070</td>\n",
       "      <td>0.765631</td>\n",
       "      <td>0.161272</td>\n",
       "      <td>0.437025</td>\n",
       "      <td>0.783952</td>\n",
       "      <td>-0.232400</td>\n",
       "      <td>-1.849131</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>-0.228477</td>\n",
       "      <td>-1.329432</td>\n",
       "      <td>1.195103</td>\n",
       "      <td>-0.498452</td>\n",
       "      <td>1.203354</td>\n",
       "      <td>1.253191</td>\n",
       "      <td>-1.484169</td>\n",
       "      <td>-0.672890</td>\n",
       "      <td>-1.012603</td>\n",
       "      <td>0.135583</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.538102</td>\n",
       "      <td>-1.650884</td>\n",
       "      <td>-0.970296</td>\n",
       "      <td>-0.883116</td>\n",
       "      <td>-0.862598</td>\n",
       "      <td>1.180413</td>\n",
       "      <td>-0.473918</td>\n",
       "      <td>1.522473</td>\n",
       "      <td>1.424520</td>\n",
       "      <td>0.284405</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>97</th>\n",
       "      <td>-1.124243</td>\n",
       "      <td>-0.882249</td>\n",
       "      <td>-1.272757</td>\n",
       "      <td>0.278280</td>\n",
       "      <td>-0.231825</td>\n",
       "      <td>0.013484</td>\n",
       "      <td>0.751978</td>\n",
       "      <td>-0.734291</td>\n",
       "      <td>0.589624</td>\n",
       "      <td>0.708419</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.997549</td>\n",
       "      <td>-1.623525</td>\n",
       "      <td>-0.069153</td>\n",
       "      <td>-1.075970</td>\n",
       "      <td>0.138066</td>\n",
       "      <td>1.117055</td>\n",
       "      <td>-0.235805</td>\n",
       "      <td>-1.164599</td>\n",
       "      <td>0.428549</td>\n",
       "      <td>1.483252</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>98</th>\n",
       "      <td>0.197683</td>\n",
       "      <td>0.271390</td>\n",
       "      <td>-0.438227</td>\n",
       "      <td>-1.475379</td>\n",
       "      <td>0.154414</td>\n",
       "      <td>-1.211315</td>\n",
       "      <td>0.887269</td>\n",
       "      <td>-0.991987</td>\n",
       "      <td>1.370059</td>\n",
       "      <td>1.412520</td>\n",
       "      <td>...</td>\n",
       "      <td>0.643335</td>\n",
       "      <td>-0.854826</td>\n",
       "      <td>-0.558995</td>\n",
       "      <td>0.906758</td>\n",
       "      <td>-0.873148</td>\n",
       "      <td>1.879480</td>\n",
       "      <td>-0.615526</td>\n",
       "      <td>0.301785</td>\n",
       "      <td>0.414691</td>\n",
       "      <td>0.160866</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>99</th>\n",
       "      <td>0.974161</td>\n",
       "      <td>-1.046334</td>\n",
       "      <td>-1.358202</td>\n",
       "      <td>-0.644732</td>\n",
       "      <td>-0.289628</td>\n",
       "      <td>-1.222582</td>\n",
       "      <td>0.960976</td>\n",
       "      <td>1.144446</td>\n",
       "      <td>0.867853</td>\n",
       "      <td>0.491895</td>\n",
       "      <td>...</td>\n",
       "      <td>1.205216</td>\n",
       "      <td>0.752640</td>\n",
       "      <td>-1.621746</td>\n",
       "      <td>0.842248</td>\n",
       "      <td>-0.701166</td>\n",
       "      <td>0.881687</td>\n",
       "      <td>-0.847757</td>\n",
       "      <td>0.553707</td>\n",
       "      <td>1.235270</td>\n",
       "      <td>0.379624</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>100 rows × 100 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1         2         3         4         5         6   \\\n",
       "0   0.513870  1.396583 -0.246373  0.412241  1.579367  0.363903 -1.323891   \n",
       "1   1.631868 -1.075335  0.170484  1.453664  1.357602 -1.597306  1.342091   \n",
       "2  -0.514866  0.374350 -1.009489  0.086802 -1.696162  0.194635  1.231866   \n",
       "3   0.886998  0.052952  1.716351 -0.169000 -1.037321 -1.554467  1.375881   \n",
       "4   1.391114  0.418370 -1.037966  0.312837 -0.964962 -1.330757  0.641659   \n",
       "5  -0.978640  0.882280  1.098095  1.637879  1.623599  1.164122  0.459580   \n",
       "6   0.735374  1.603069 -0.607167  1.751502  1.457694 -1.035909  0.547590   \n",
       "7  -1.348100 -0.399150 -1.218192  1.062848  0.749450 -1.029018  0.392363   \n",
       "8   1.285660  0.526640 -0.327848 -0.794804  0.136058  0.355371  1.387508   \n",
       "9   1.564215 -0.530578 -1.378221  1.484833 -0.121855 -1.147937 -0.646704   \n",
       "10 -1.512300  1.257621 -0.950904  0.097102  0.066319  1.201285 -1.479766   \n",
       "11  0.676772 -0.382604  0.152292  1.184203  0.885681 -1.561482  0.544845   \n",
       "12  0.240678 -1.393210  0.187365 -0.798240  0.226787 -0.633688 -0.989422   \n",
       "13  0.340047  0.938168 -1.118608 -0.523279 -0.761692  0.586611  0.016273   \n",
       "14 -0.216206 -0.081457 -0.066678  0.712012 -0.933661  0.107191  1.538183   \n",
       "15 -0.393874 -0.217956  0.505092  1.288478  0.743926  1.529977 -1.468972   \n",
       "16  1.448163 -1.468940  0.296056 -0.724831  0.647826 -0.180198 -1.700891   \n",
       "17  0.909765  1.254015  1.629871 -0.727945  0.364806 -1.244102 -0.660909   \n",
       "18 -0.734810 -0.748138  1.446927  0.207259  0.760452  1.116326 -0.842161   \n",
       "19  0.190232 -0.380382 -0.956613  0.161797  0.358565  1.054044 -0.502211   \n",
       "20  0.171497 -0.568547 -0.181602  1.280796 -0.607141 -1.314850  0.877709   \n",
       "21 -1.773808 -0.806683  1.710190  1.529340  0.149329  0.015717 -1.664649   \n",
       "22 -0.232519 -0.199589  0.034674 -0.284041  0.924887  1.394155  0.390990   \n",
       "23 -1.171088  0.141293  1.626429  0.168721 -1.727745  1.386053  0.263236   \n",
       "24 -1.583545  0.526075 -0.406596 -1.025639 -1.104152 -1.492721  0.094901   \n",
       "25 -0.247518 -0.116995  0.005844  1.353575  1.295124 -0.134358  1.053640   \n",
       "26  1.587095  0.230919  0.362958 -1.250820  1.657170 -0.718975  0.330160   \n",
       "27  0.935906 -0.145264 -1.250488 -1.470936  1.506688 -1.313323  1.518933   \n",
       "28  0.719676 -0.814732 -1.725769 -1.235741 -0.586766  0.796515 -1.080151   \n",
       "29 -0.209103  1.559806 -0.736238  0.930045 -1.183643 -1.525615  0.653475   \n",
       "..       ...       ...       ...       ...       ...       ...       ...   \n",
       "70 -0.374306 -0.509877  1.139351  0.463223 -0.122952  0.257494  0.984939   \n",
       "71 -0.850873 -0.903579  1.431794 -0.028323  1.481066 -0.906899  1.372466   \n",
       "72  0.455261 -1.356238 -1.665984 -1.043824  0.780949 -1.618006  0.502182   \n",
       "73  1.398525 -0.630447  0.869634  1.186189 -0.693715 -0.056440  0.763450   \n",
       "74  1.195139 -0.649233 -1.749415  0.481350 -0.879385  0.861043  0.543140   \n",
       "75  1.219581 -1.355438 -0.143437  1.374460  0.535197  0.517635  1.051577   \n",
       "76 -0.772830 -0.029715  0.074375 -0.490430  1.480858  0.587917 -1.002865   \n",
       "77 -0.970610  1.621268  0.976901 -1.000428  0.486647 -1.027562 -0.227339   \n",
       "78 -1.565164  1.675003  0.266903 -1.066366 -0.482731  1.611849 -1.662038   \n",
       "79 -1.588639 -0.972567 -0.409528 -0.931689 -1.281164  0.806443 -1.223291   \n",
       "80  0.040967  1.623519 -0.717045 -1.237592 -0.636891  0.066840 -0.408493   \n",
       "81  1.471870  0.065310  0.981485  1.151370 -1.252160 -0.416664 -0.109791   \n",
       "82  0.443744  1.315541 -0.305109  0.001978 -0.079711 -0.171958  1.419704   \n",
       "83  0.029843  0.767682 -0.993877  1.717344 -0.995321 -0.941138 -0.989065   \n",
       "84  0.943205 -0.062812  0.137365  1.673334  1.457726  1.421604 -0.296355   \n",
       "85  1.143780 -1.227919 -0.038486 -0.991480  0.334727 -0.003853  0.906715   \n",
       "86 -0.894993 -0.105199 -1.185358 -0.835168  0.180074 -0.075097  0.988637   \n",
       "87 -0.719007 -0.071196  1.467955  0.876265  0.449004  0.403144 -0.545273   \n",
       "88 -0.901002 -1.211165 -0.040284 -1.324867  0.388089 -1.272009 -1.084499   \n",
       "89 -1.581999  0.329491 -1.593734 -1.164570 -0.062949  0.090999  1.343263   \n",
       "90  1.384090 -0.844580 -0.743064 -0.630105 -1.202180 -0.535705 -1.129373   \n",
       "91 -0.861300  1.182918 -0.226505 -0.187358 -0.301630  0.584219  1.485748   \n",
       "92 -0.824783 -1.077926  0.891118  0.517056 -0.194426  1.435527 -0.239051   \n",
       "93  0.785421  0.333046  0.050298 -1.126874  1.115591  1.287045 -0.095741   \n",
       "94 -1.189086  1.398801 -0.835365 -1.377584  0.708942 -0.990116  0.848418   \n",
       "95 -0.837958 -1.365456  0.184541  0.325820  0.127239  1.486810  0.300611   \n",
       "96 -0.228477 -1.329432  1.195103 -0.498452  1.203354  1.253191 -1.484169   \n",
       "97 -1.124243 -0.882249 -1.272757  0.278280 -0.231825  0.013484  0.751978   \n",
       "98  0.197683  0.271390 -0.438227 -1.475379  0.154414 -1.211315  0.887269   \n",
       "99  0.974161 -1.046334 -1.358202 -0.644732 -0.289628 -1.222582  0.960976   \n",
       "\n",
       "          7         8         9     ...           90        91        92  \\\n",
       "0  -1.113526 -0.877806  0.881624    ...     1.061778  1.647589  0.608297   \n",
       "1  -1.775401  1.129466 -1.180717    ...    -1.806966 -0.856221  0.223695   \n",
       "2   1.121161  0.736265 -0.563802    ...    -1.273403 -1.178026  1.542241   \n",
       "3   1.256623 -0.206046 -0.299600    ...     0.967154  1.519549  1.556544   \n",
       "4   1.299796  0.038224  0.356430    ...    -0.912055  0.942265 -0.054322   \n",
       "5  -1.200620 -0.101569 -1.025493    ...    -0.178119  0.153881 -1.489814   \n",
       "6   0.782969  1.545038  1.538226    ...     0.969993 -0.325719  0.994623   \n",
       "7   0.421657  0.277607  1.341795    ...     0.564476 -1.216358  1.071405   \n",
       "8  -0.973951 -1.477451  1.033896    ...     0.944201 -0.329253  0.670113   \n",
       "9   1.363795 -1.422009 -0.908234    ...    -1.839381  0.365275  1.490728   \n",
       "10  1.081254 -0.700119  0.551702    ...    -0.511107 -0.801593 -0.291530   \n",
       "11  0.825152  0.851938  0.386944    ...     0.706691 -1.175663 -0.441140   \n",
       "12 -1.293567  1.050305  0.351630    ...     1.583936  0.168961 -0.907365   \n",
       "13 -0.059960 -0.971746  0.203671    ...    -1.582610 -1.445128  0.929069   \n",
       "14  1.312979  1.597155  0.204361    ...     0.851806  1.574912 -1.057158   \n",
       "15  0.813537 -1.114886 -0.573397    ...    -0.397053  0.327747  0.515145   \n",
       "16  0.269400  0.671001  0.743764    ...    -1.011690  0.961830 -0.257341   \n",
       "17 -1.646826  1.657767  1.276033    ...    -0.281521  1.723603 -1.584701   \n",
       "18 -0.789068  0.532212  0.759320    ...     1.465185  0.401349 -0.966394   \n",
       "19  1.479995  0.543587 -0.610027    ...     0.905991  0.590617  0.979145   \n",
       "20 -1.303426 -0.263439 -0.578028    ...     0.463058 -0.343679 -1.369579   \n",
       "21 -0.333638  0.959662 -1.626720    ...    -0.076300  0.181243 -0.343203   \n",
       "22  0.467035 -0.711218 -0.232838    ...     0.516714  0.670454  1.216928   \n",
       "23  1.137646  0.360819  1.443515    ...     0.862208 -1.184068  1.456381   \n",
       "24 -1.687825  0.522421 -0.947742    ...    -0.274502 -1.410834 -0.511294   \n",
       "25 -1.656545 -0.071846  0.962144    ...    -1.318647  1.559977 -0.074145   \n",
       "26 -0.126438 -1.220022 -1.125991    ...    -0.649107  1.306017  0.482203   \n",
       "27  0.610692 -0.491017 -1.627820    ...     0.902349  1.508875 -1.127943   \n",
       "28  0.608303  0.782711 -0.265900    ...     1.390754 -1.492590 -0.500209   \n",
       "29 -1.798585 -1.294609  0.813010    ...    -1.518635  0.192210 -0.855648   \n",
       "..       ...       ...       ...    ...          ...       ...       ...   \n",
       "70  0.808924 -0.961834 -0.648294    ...     0.403268 -1.599651 -1.036633   \n",
       "71 -0.408602  1.639764  1.169778    ...     1.226428  1.316993  0.943541   \n",
       "72 -0.488663 -0.570120  0.715019    ...     0.338761 -1.490060  0.993442   \n",
       "73  0.636438 -0.362792 -0.817460    ...    -1.068658  1.172448 -1.668875   \n",
       "74 -1.344145  1.061763  0.812840    ...    -0.217410 -0.466573  0.166679   \n",
       "75 -0.687447  1.252113  0.701283    ...    -1.661371 -1.249170 -1.097037   \n",
       "76  0.425643 -0.961998 -0.647699    ...     1.679556 -1.541915  0.857821   \n",
       "77 -0.018820 -0.136400 -0.170005    ...     0.491278  0.778125  0.015861   \n",
       "78 -0.139250 -1.121025 -1.244859    ...    -1.004240 -0.931624  0.501343   \n",
       "79  0.080806 -1.573407  1.335915    ...     0.917508 -0.523602  0.950502   \n",
       "80 -0.823917 -1.419024  1.440702    ...     1.614721  0.755044 -1.705512   \n",
       "81 -0.216107  0.083090 -0.307073    ...    -1.734761 -1.161675 -0.098638   \n",
       "82  1.473038  1.729698  0.986627    ...     0.287173  1.571421 -0.454864   \n",
       "83  1.184264  1.613218  1.674028    ...     1.575743 -0.263912  0.753665   \n",
       "84  1.440719 -0.053801 -1.800137    ...    -1.788354  1.578393  0.091042   \n",
       "85 -1.280948 -0.299935 -0.922888    ...     1.605559 -0.014674 -1.172934   \n",
       "86  0.710944  0.236767 -0.706053    ...    -0.825000  0.699982  1.274639   \n",
       "87 -1.497419  0.844362  0.976808    ...     0.433169 -0.853505 -1.251983   \n",
       "88  1.501458  0.328346 -0.762704    ...    -0.708126 -0.261010  1.474982   \n",
       "89  0.140127  1.047308 -1.889868    ...    -0.049631  0.298881  1.320489   \n",
       "90  0.385504  1.286978 -1.661751    ...    -0.187767  0.542780  0.900464   \n",
       "91  1.264118 -1.216566  0.193704    ...     0.048404 -1.545104  1.450316   \n",
       "92  1.204818 -1.407671 -0.787198    ...     0.444560 -0.254857 -0.679714   \n",
       "93 -0.176628 -1.383699 -1.748018    ...     0.436805 -0.178552 -1.408312   \n",
       "94  0.566546  1.715034 -0.687138    ...     1.412452 -0.520480  1.118536   \n",
       "95  0.263508 -0.638503  1.576994    ...    -0.991597  0.176691  0.532893   \n",
       "96 -0.672890 -1.012603  0.135583    ...    -0.538102 -1.650884 -0.970296   \n",
       "97 -0.734291  0.589624  0.708419    ...    -0.997549 -1.623525 -0.069153   \n",
       "98 -0.991987  1.370059  1.412520    ...     0.643335 -0.854826 -0.558995   \n",
       "99  1.144446  0.867853  0.491895    ...     1.205216  0.752640 -1.621746   \n",
       "\n",
       "          93        94        95        96        97        98        99  \n",
       "0   0.931085 -0.305219 -0.679682  1.323216 -1.000440  1.158411  0.271465  \n",
       "1  -0.972374  0.176362  0.792399 -0.528541  0.796424  0.728051 -1.104085  \n",
       "2   1.006310  0.538693  0.789394  0.540420  0.742471  0.203087 -1.486384  \n",
       "3  -0.068761  1.182859 -0.647793 -0.700245  0.705043 -0.825873  1.851311  \n",
       "4   0.174229 -0.782228 -0.613781 -1.241414  0.528770 -1.546610 -0.655011  \n",
       "5   0.010346  1.043027  1.248067  1.028140 -0.870393 -0.706648  1.744279  \n",
       "6  -1.531772  1.115576  0.459712  0.949289 -0.787418 -0.295029  0.903614  \n",
       "7  -0.202719  0.165891 -0.592823  0.805909  0.591497 -1.093653 -1.055484  \n",
       "8   0.898907 -1.234780 -1.424890  1.544366 -0.845917  0.405283  0.693724  \n",
       "9  -0.444500  0.555258  1.260674 -0.156228 -1.821950  1.436147 -1.629020  \n",
       "10 -0.149648 -0.885823 -0.679197 -1.809390  1.392497  1.610417  0.636615  \n",
       "11 -1.470221 -0.088202 -0.315637  0.481602  0.378751 -1.696612 -0.433806  \n",
       "12  1.536351  0.692415 -0.558356  1.183726  0.025276  0.922382 -0.886471  \n",
       "13  0.529699 -0.288482  0.100620 -0.339643 -1.342788  0.285311 -1.530031  \n",
       "14  0.897952  0.334998 -1.499413 -0.557911  0.893911 -1.525342 -0.772764  \n",
       "15  0.648666 -0.041444  0.037236  0.563206  1.500904  0.985118  1.295535  \n",
       "16 -1.322110 -0.140934  1.127069  0.961686  1.278722  1.053308  0.611221  \n",
       "17 -0.319174 -1.711071 -1.183856  1.509604  0.526637 -0.805211 -1.732134  \n",
       "18 -0.362602  1.127971  0.752127 -0.106078  1.265856  0.211697  0.269893  \n",
       "19 -1.668567  1.387817 -0.542651 -1.742281 -1.127449 -1.631693  0.071839  \n",
       "20  1.682706 -0.492890  1.073619  1.642233 -1.790007 -0.242860 -0.465673  \n",
       "21  1.127871 -1.857502 -0.760829 -1.716068 -0.238514  0.830074  1.099593  \n",
       "22  1.133620 -1.013026 -1.129269  1.325263  1.292575  0.501611  1.526500  \n",
       "23  0.892589 -0.674029 -1.409532  0.050445 -0.772777  1.630130  1.186272  \n",
       "24 -1.479222  1.539949 -0.185147 -1.623003  1.281739  0.106110 -0.587262  \n",
       "25 -0.378504  0.869430 -0.069882 -1.669445 -0.498185 -1.576615 -0.777916  \n",
       "26  0.145802  1.448299 -0.520351 -1.056655 -0.805319 -1.254778  0.418933  \n",
       "27 -0.570377  0.352445 -0.110769 -1.567606 -1.748038 -1.510443  0.548930  \n",
       "28 -0.435704  0.911975  1.868319 -0.857274  1.058341 -0.547400  0.169497  \n",
       "29 -1.609667 -0.225023 -0.247551 -0.314739  0.907275 -1.162187  0.812885  \n",
       "..       ...       ...       ...       ...       ...       ...       ...  \n",
       "70  1.665229 -0.067446  1.100297 -0.316657 -0.748823 -1.401503  0.561532  \n",
       "71  0.488501 -0.272406 -1.459338  1.011081 -1.737450  1.757685  0.941178  \n",
       "72  0.918406  0.071260 -1.580971  0.975308  0.125080 -1.371668 -0.822416  \n",
       "73 -0.478816  0.243758 -0.956590 -0.921063  0.527734 -0.551796  0.041946  \n",
       "74  0.379972 -1.893531 -1.453595  0.445461 -1.830092 -1.130029 -1.471436  \n",
       "75 -1.135348 -1.109167  0.297080  1.468701  0.526295  0.359638 -0.103874  \n",
       "76 -0.828734  0.806509 -1.216620  0.150009 -0.438745  1.178379 -1.657935  \n",
       "77  0.396135 -0.920930 -0.695792 -0.312448 -0.247626  1.490141 -0.907475  \n",
       "78 -0.268321  0.382614 -1.530718  0.115311  1.254945  0.306358 -0.465282  \n",
       "79  1.499240 -1.719770  1.244792  0.629544 -1.428163  0.994619 -0.018197  \n",
       "80  1.534536  1.396306 -1.434376 -1.635364 -1.417336  0.186586 -1.529835  \n",
       "81  1.035213  1.393117  0.589706  0.940245 -0.886534 -0.368786  0.087320  \n",
       "82  0.867487 -0.977401  0.555789  0.076087  0.173998  0.091385  0.482194  \n",
       "83  1.514962  0.051583  0.512572 -1.121129 -1.858649  1.716891 -1.288875  \n",
       "84 -0.914965  0.418812 -0.225515  1.083822 -1.846586 -0.881830  1.241672  \n",
       "85 -1.618927  0.367595  0.110084  0.603344 -0.004074 -0.474540 -0.316894  \n",
       "86  0.371174  0.052800 -1.530699  1.676907 -0.063711  0.262439 -0.854201  \n",
       "87 -0.917957  1.104403 -1.157357  0.643374  0.211782 -0.543510 -0.295384  \n",
       "88 -1.051313  1.270748  1.439772  1.314050  1.017364 -0.429077 -1.597541  \n",
       "89 -0.547441 -0.743548 -0.616080  0.404941 -1.630911  0.959541  0.794803  \n",
       "90 -1.498064  1.308647 -0.556545  0.042047 -0.086129  0.397801 -0.990178  \n",
       "91 -0.095114  1.409027  0.779509  0.218895  0.658453  0.122641 -1.373730  \n",
       "92 -1.054029  0.926229  1.437916  0.708352 -1.236232 -1.261535 -0.488064  \n",
       "93 -1.546488  1.305025  1.097852  0.815681 -1.185418  0.929243  0.570606  \n",
       "94  0.857002  0.768750  0.795685  0.859676 -0.570313  0.916351  0.801122  \n",
       "95  1.618070  0.765631  0.161272  0.437025  0.783952 -0.232400 -1.849131  \n",
       "96 -0.883116 -0.862598  1.180413 -0.473918  1.522473  1.424520  0.284405  \n",
       "97 -1.075970  0.138066  1.117055 -0.235805 -1.164599  0.428549  1.483252  \n",
       "98  0.906758 -0.873148  1.879480 -0.615526  0.301785  0.414691  0.160866  \n",
       "99  0.842248 -0.701166  0.881687 -0.847757  0.553707  1.235270  0.379624  \n",
       "\n",
       "[100 rows x 100 columns]"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.DataFrame(np.random.uniform(0, 10, (100, 100)))\n",
    "\n",
    "df2 = (df - df.mean())/df.std()\n",
    "df2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Data Loading and Storing <a name=\"loading\"></a>\n",
    "Accessing data is a necessary first step for data science. In this section, the focus will be on data input and output in various formats using `pandas`\n",
    "\n",
    "Data usually fall into these categories:\n",
    "- text files\n",
    "- binary files (more efficient space-wise)\n",
    "- web data\n",
    "\n",
    "## Text formats <a name=\"text\"></a>\n",
    "The most common format in this category is by far `.csv`. This is an easy to read file format which is usually visualised like a spreadsheet. The data itself is usually separated with a `,` which is called the **delimiter**.\n",
    "\n",
    "Here is an example of a `.csv` file:\n",
    "\n",
    "```\n",
    "Sell,List,Living,Rooms,Beds,Baths,Age,Acres,Taxes\n",
    "142, 160, 28, 10, 5, 3,  60, 0.28,  3167\n",
    "175, 180, 18,  8, 4, 1,  12, 0.43,  4033\n",
    "129, 132, 13,  6, 3, 1,  41, 0.33,  1471\n",
    "138, 140, 17,  7, 3, 1,  22, 0.46,  3204\n",
    "232, 240, 25,  8, 4, 3,   5, 2.05,  3613\n",
    "135, 140, 18,  7, 4, 3,   9, 0.57,  3028\n",
    "150, 160, 20,  8, 4, 3,  18, 4.00,  3131\n",
    "207, 225, 22,  8, 4, 2,  16, 2.22,  5158\n",
    "271, 285, 30, 10, 5, 2,  30, 0.53,  5702\n",
    " 89,  90, 10,  5, 3, 1,  43, 0.30,  2054\n",
    " ```\n",
    "\n",
    "It detailed home sale statistics. The first line is called the header, and you can imagine that it is the name of the columns of a spreadsheet.\n",
    "\n",
    "Let's now see how we can load this data and analyse it. The file is located in the folder `data` and is called `homes.csv`. We can read it like this:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "homes = pd.read_csv(\"data/homes.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Sell</th>\n",
       "      <th>List</th>\n",
       "      <th>Living</th>\n",
       "      <th>Rooms</th>\n",
       "      <th>Beds</th>\n",
       "      <th>Baths</th>\n",
       "      <th>Age</th>\n",
       "      <th>Acres</th>\n",
       "      <th>Taxes</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>142</td>\n",
       "      <td>160</td>\n",
       "      <td>28</td>\n",
       "      <td>10</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>60</td>\n",
       "      <td>0.28</td>\n",
       "      <td>3167</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>175</td>\n",
       "      <td>180</td>\n",
       "      <td>18</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0.43</td>\n",
       "      <td>4033</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>143</td>\n",
       "      <td>145</td>\n",
       "      <td>21</td>\n",
       "      <td>7</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>10</td>\n",
       "      <td>1.20</td>\n",
       "      <td>3529</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>129</td>\n",
       "      <td>132</td>\n",
       "      <td>13</td>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>41</td>\n",
       "      <td>0.33</td>\n",
       "      <td>1471</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>138</td>\n",
       "      <td>140</td>\n",
       "      <td>17</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>22</td>\n",
       "      <td>0.46</td>\n",
       "      <td>3204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>232</td>\n",
       "      <td>240</td>\n",
       "      <td>25</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>5</td>\n",
       "      <td>2.05</td>\n",
       "      <td>3613</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>135</td>\n",
       "      <td>140</td>\n",
       "      <td>18</td>\n",
       "      <td>7</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>9</td>\n",
       "      <td>0.57</td>\n",
       "      <td>3028</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>150</td>\n",
       "      <td>160</td>\n",
       "      <td>20</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>18</td>\n",
       "      <td>4.00</td>\n",
       "      <td>3131</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>293</td>\n",
       "      <td>305</td>\n",
       "      <td>26</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>0.46</td>\n",
       "      <td>7088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>207</td>\n",
       "      <td>225</td>\n",
       "      <td>22</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>16</td>\n",
       "      <td>2.22</td>\n",
       "      <td>5158</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>271</td>\n",
       "      <td>285</td>\n",
       "      <td>30</td>\n",
       "      <td>10</td>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "      <td>30</td>\n",
       "      <td>0.53</td>\n",
       "      <td>5702</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>89</td>\n",
       "      <td>90</td>\n",
       "      <td>10</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>43</td>\n",
       "      <td>0.30</td>\n",
       "      <td>2054</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>153</td>\n",
       "      <td>157</td>\n",
       "      <td>22</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>18</td>\n",
       "      <td>0.38</td>\n",
       "      <td>4127</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>87</td>\n",
       "      <td>90</td>\n",
       "      <td>16</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>50</td>\n",
       "      <td>0.65</td>\n",
       "      <td>1445</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>234</td>\n",
       "      <td>238</td>\n",
       "      <td>25</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1.61</td>\n",
       "      <td>2087</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>106</td>\n",
       "      <td>116</td>\n",
       "      <td>20</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>13</td>\n",
       "      <td>0.22</td>\n",
       "      <td>2818</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>175</td>\n",
       "      <td>180</td>\n",
       "      <td>22</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>15</td>\n",
       "      <td>2.06</td>\n",
       "      <td>3917</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>165</td>\n",
       "      <td>170</td>\n",
       "      <td>17</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>33</td>\n",
       "      <td>0.46</td>\n",
       "      <td>2220</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>166</td>\n",
       "      <td>170</td>\n",
       "      <td>23</td>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>37</td>\n",
       "      <td>0.27</td>\n",
       "      <td>3498</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>136</td>\n",
       "      <td>140</td>\n",
       "      <td>19</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>22</td>\n",
       "      <td>0.63</td>\n",
       "      <td>3607</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>148</td>\n",
       "      <td>160</td>\n",
       "      <td>17</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>13</td>\n",
       "      <td>0.36</td>\n",
       "      <td>3648</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>151</td>\n",
       "      <td>153</td>\n",
       "      <td>19</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>24</td>\n",
       "      <td>0.34</td>\n",
       "      <td>3561</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>180</td>\n",
       "      <td>190</td>\n",
       "      <td>24</td>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>10</td>\n",
       "      <td>1.55</td>\n",
       "      <td>4681</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>293</td>\n",
       "      <td>305</td>\n",
       "      <td>26</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>0.46</td>\n",
       "      <td>7088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>167</td>\n",
       "      <td>170</td>\n",
       "      <td>20</td>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>46</td>\n",
       "      <td>0.46</td>\n",
       "      <td>3482</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>190</td>\n",
       "      <td>193</td>\n",
       "      <td>22</td>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "      <td>37</td>\n",
       "      <td>0.48</td>\n",
       "      <td>3920</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>184</td>\n",
       "      <td>190</td>\n",
       "      <td>21</td>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "      <td>27</td>\n",
       "      <td>1.30</td>\n",
       "      <td>4162</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>157</td>\n",
       "      <td>165</td>\n",
       "      <td>20</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>7</td>\n",
       "      <td>0.30</td>\n",
       "      <td>3785</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>110</td>\n",
       "      <td>115</td>\n",
       "      <td>16</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>26</td>\n",
       "      <td>0.29</td>\n",
       "      <td>3103</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>135</td>\n",
       "      <td>145</td>\n",
       "      <td>18</td>\n",
       "      <td>7</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>35</td>\n",
       "      <td>0.43</td>\n",
       "      <td>3363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>567</td>\n",
       "      <td>625</td>\n",
       "      <td>64</td>\n",
       "      <td>11</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>0.85</td>\n",
       "      <td>12192</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>180</td>\n",
       "      <td>185</td>\n",
       "      <td>20</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>11</td>\n",
       "      <td>1.00</td>\n",
       "      <td>3831</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>183</td>\n",
       "      <td>188</td>\n",
       "      <td>17</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>16</td>\n",
       "      <td>3.00</td>\n",
       "      <td>3564</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>185</td>\n",
       "      <td>193</td>\n",
       "      <td>20</td>\n",
       "      <td>9</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>56</td>\n",
       "      <td>6.49</td>\n",
       "      <td>3765</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>152</td>\n",
       "      <td>155</td>\n",
       "      <td>17</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>33</td>\n",
       "      <td>0.70</td>\n",
       "      <td>3361</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>148</td>\n",
       "      <td>153</td>\n",
       "      <td>13</td>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>22</td>\n",
       "      <td>0.39</td>\n",
       "      <td>3950</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>152</td>\n",
       "      <td>159</td>\n",
       "      <td>15</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>25</td>\n",
       "      <td>0.59</td>\n",
       "      <td>3055</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>146</td>\n",
       "      <td>150</td>\n",
       "      <td>16</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>31</td>\n",
       "      <td>0.36</td>\n",
       "      <td>2950</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>170</td>\n",
       "      <td>190</td>\n",
       "      <td>24</td>\n",
       "      <td>10</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>33</td>\n",
       "      <td>0.57</td>\n",
       "      <td>3346</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>106</td>\n",
       "      <td>116</td>\n",
       "      <td>20</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>13</td>\n",
       "      <td>0.22</td>\n",
       "      <td>2818</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>127</td>\n",
       "      <td>130</td>\n",
       "      <td>20</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>65</td>\n",
       "      <td>0.40</td>\n",
       "      <td>3334</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>265</td>\n",
       "      <td>270</td>\n",
       "      <td>36</td>\n",
       "      <td>10</td>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>33</td>\n",
       "      <td>1.20</td>\n",
       "      <td>5853</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>157</td>\n",
       "      <td>163</td>\n",
       "      <td>18</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>12</td>\n",
       "      <td>1.13</td>\n",
       "      <td>3982</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>128</td>\n",
       "      <td>135</td>\n",
       "      <td>17</td>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>25</td>\n",
       "      <td>0.52</td>\n",
       "      <td>3374</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>110</td>\n",
       "      <td>120</td>\n",
       "      <td>15</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>11</td>\n",
       "      <td>0.59</td>\n",
       "      <td>3119</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>123</td>\n",
       "      <td>130</td>\n",
       "      <td>18</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>43</td>\n",
       "      <td>0.39</td>\n",
       "      <td>3268</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>148</td>\n",
       "      <td>153</td>\n",
       "      <td>13</td>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>22</td>\n",
       "      <td>0.39</td>\n",
       "      <td>3950</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>212</td>\n",
       "      <td>230</td>\n",
       "      <td>39</td>\n",
       "      <td>12</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>202</td>\n",
       "      <td>4.29</td>\n",
       "      <td>3648</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>145</td>\n",
       "      <td>145</td>\n",
       "      <td>18</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>44</td>\n",
       "      <td>0.22</td>\n",
       "      <td>2783</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>129</td>\n",
       "      <td>135</td>\n",
       "      <td>10</td>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>15</td>\n",
       "      <td>1.00</td>\n",
       "      <td>2438</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>143</td>\n",
       "      <td>145</td>\n",
       "      <td>21</td>\n",
       "      <td>7</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>10</td>\n",
       "      <td>1.20</td>\n",
       "      <td>3529</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>247</td>\n",
       "      <td>252</td>\n",
       "      <td>29</td>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>1.25</td>\n",
       "      <td>4626</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>111</td>\n",
       "      <td>120</td>\n",
       "      <td>15</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>97</td>\n",
       "      <td>1.11</td>\n",
       "      <td>3205</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>133</td>\n",
       "      <td>145</td>\n",
       "      <td>26</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>42</td>\n",
       "      <td>0.36</td>\n",
       "      <td>3059</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>87</td>\n",
       "      <td>90</td>\n",
       "      <td>16</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>50</td>\n",
       "      <td>0.65</td>\n",
       "      <td>1445</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Sell  List  Living  Rooms  Beds  Baths  Age  Acres  Taxes\n",
       "0    142   160      28     10     5      3   60   0.28   3167\n",
       "1    175   180      18      8     4      1   12   0.43   4033\n",
       "2    143   145      21      7     4      2   10   1.20   3529\n",
       "3    129   132      13      6     3      1   41   0.33   1471\n",
       "4    138   140      17      7     3      1   22   0.46   3204\n",
       "5    232   240      25      8     4      3    5   2.05   3613\n",
       "6    135   140      18      7     4      3    9   0.57   3028\n",
       "7    150   160      20      8     4      3   18   4.00   3131\n",
       "8    293   305      26      8     4      3    6   0.46   7088\n",
       "9    207   225      22      8     4      2   16   2.22   5158\n",
       "10   271   285      30     10     5      2   30   0.53   5702\n",
       "11    89    90      10      5     3      1   43   0.30   2054\n",
       "12   153   157      22      8     3      3   18   0.38   4127\n",
       "13    87    90      16      7     3      1   50   0.65   1445\n",
       "14   234   238      25      8     4      2    2   1.61   2087\n",
       "15   106   116      20      8     4      1   13   0.22   2818\n",
       "16   175   180      22      8     4      2   15   2.06   3917\n",
       "17   165   170      17      8     4      2   33   0.46   2220\n",
       "18   166   170      23      9     4      2   37   0.27   3498\n",
       "19   136   140      19      7     3      1   22   0.63   3607\n",
       "20   148   160      17      7     3      2   13   0.36   3648\n",
       "21   151   153      19      8     4      2   24   0.34   3561\n",
       "22   180   190      24      9     4      2   10   1.55   4681\n",
       "23   293   305      26      8     4      3    6   0.46   7088\n",
       "24   167   170      20      9     4      2   46   0.46   3482\n",
       "25   190   193      22      9     5      2   37   0.48   3920\n",
       "26   184   190      21      9     5      2   27   1.30   4162\n",
       "27   157   165      20      8     4      2    7   0.30   3785\n",
       "28   110   115      16      8     4      1   26   0.29   3103\n",
       "29   135   145      18      7     4      1   35   0.43   3363\n",
       "30   567   625      64     11     4      4    4   0.85  12192\n",
       "31   180   185      20      8     4      2   11   1.00   3831\n",
       "32   183   188      17      7     3      2   16   3.00   3564\n",
       "33   185   193      20      9     3      2   56   6.49   3765\n",
       "34   152   155      17      8     4      1   33   0.70   3361\n",
       "35   148   153      13      6     3      2   22   0.39   3950\n",
       "36   152   159      15      7     3      1   25   0.59   3055\n",
       "37   146   150      16      7     3      1   31   0.36   2950\n",
       "38   170   190      24     10     3      2   33   0.57   3346\n",
       "39   106   116      20      8     4      1   13   0.22   2818\n",
       "40   127   130      20      8     4      1   65   0.40   3334\n",
       "41   265   270      36     10     6      3   33   1.20   5853\n",
       "42   157   163      18      8     4      2   12   1.13   3982\n",
       "43   128   135      17      9     4      1   25   0.52   3374\n",
       "44   110   120      15      8     4      2   11   0.59   3119\n",
       "45   123   130      18      8     4      2   43   0.39   3268\n",
       "46   148   153      13      6     3      2   22   0.39   3950\n",
       "47   212   230      39     12     5      3  202   4.29   3648\n",
       "48   145   145      18      8     4      2   44   0.22   2783\n",
       "49   129   135      10      6     3      1   15   1.00   2438\n",
       "50   143   145      21      7     4      2   10   1.20   3529\n",
       "51   247   252      29      9     4      2    4   1.25   4626\n",
       "52   111   120      15      8     3      1   97   1.11   3205\n",
       "53   133   145      26      7     3      1   42   0.36   3059\n",
       "54    87    90      16      7     3      1   50   0.65   1445"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "homes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Easy right?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 5\n",
    "Find the mean selling price of the homes in `data/homes.csv`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Sell       169.000000\n",
       "List       176.836364\n",
       "Living      20.945455\n",
       "Rooms        7.981818\n",
       "Beds         3.800000\n",
       "Baths        1.854545\n",
       "Age         29.309091\n",
       "Acres        0.980909\n",
       "Taxes     3711.545455\n",
       "dtype: float64"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "homes.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `read_csv` function has a lot of optional arguments (more than 50). It's impossible to memorise all of them - it's usually best just to look up the particular functionality when you need it. \n",
    "\n",
    "You can search `pandas read_csv` online and find all of the documentation.\n",
    "\n",
    "There are also many other functions that can read textual data. Here are some of them:\n",
    "\n",
    "| Function | Description\n",
    "| -- | -- |\n",
    "| read_csv       | Load delimited data from a file, URL, or file-like object. The default delimiter is a comma `,` |\n",
    "| read_table     | Load delimited data from a file, URL, or file-like object. The default delimiter is tab `\\t` |\n",
    "| read_clipboard | Reads the last object you have copied (Ctrl-C) |\n",
    "| read_excel     | Read tabular data from Excel XLS or XLSX file |\n",
    "| read_hdf       | Read HDF5 file written by pandas |\n",
    "| read_html      | Read all tables found in the given HTML document |\n",
    "| read_json      | Read data from a JSON string representation |\n",
    "| read_sql       | Read the results of a SQL query |\n",
    "\n",
    "*Note: there are also other loading functions which are not touched upon here*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 6\n",
    "There is another file in the data folder called `homes.xlsx`. Can you read it? Can you spot anything different?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Sell</th>\n",
       "      <th>List</th>\n",
       "      <th>Living</th>\n",
       "      <th>Rooms</th>\n",
       "      <th>Beds</th>\n",
       "      <th>Baths</th>\n",
       "      <th>Age</th>\n",
       "      <th>Acres</th>\n",
       "      <th>Taxes</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>142</td>\n",
       "      <td>160.0</td>\n",
       "      <td>28.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>60.0</td>\n",
       "      <td>0.28</td>\n",
       "      <td>3167.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>175</td>\n",
       "      <td>180.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.43</td>\n",
       "      <td>4033.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>129</td>\n",
       "      <td>132.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>41.0</td>\n",
       "      <td>0.33</td>\n",
       "      <td>1471.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>138</td>\n",
       "      <td>140.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>0.46</td>\n",
       "      <td>3204.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>232</td>\n",
       "      <td>240.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2.05</td>\n",
       "      <td>3613.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>135</td>\n",
       "      <td>140.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.57</td>\n",
       "      <td>3028.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>150</td>\n",
       "      <td>160.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>4.00</td>\n",
       "      <td>3131.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>207</td>\n",
       "      <td>225.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>2.22</td>\n",
       "      <td>5158.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>271</td>\n",
       "      <td>285.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>0.53</td>\n",
       "      <td>5702.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>89</td>\n",
       "      <td>90.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>43.0</td>\n",
       "      <td>0.30</td>\n",
       "      <td>2054.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>153</td>\n",
       "      <td>157.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>0.38</td>\n",
       "      <td>4127.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>87</td>\n",
       "      <td>90.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>0.65</td>\n",
       "      <td>1445.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>234</td>\n",
       "      <td>238.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.61</td>\n",
       "      <td>2087.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>106</td>\n",
       "      <td>116.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>0.22</td>\n",
       "      <td>2818.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>175</td>\n",
       "      <td>180.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>2.06</td>\n",
       "      <td>3917.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>165</td>\n",
       "      <td>170.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>33.0</td>\n",
       "      <td>0.46</td>\n",
       "      <td>2220.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>166</td>\n",
       "      <td>170.0</td>\n",
       "      <td>23.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>37.0</td>\n",
       "      <td>0.27</td>\n",
       "      <td>3498.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>136</td>\n",
       "      <td>140.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>0.63</td>\n",
       "      <td>3607.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>148</td>\n",
       "      <td>160.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>0.36</td>\n",
       "      <td>3648.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>151</td>\n",
       "      <td>153.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>0.34</td>\n",
       "      <td>3561.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>180</td>\n",
       "      <td>190.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1.55</td>\n",
       "      <td>4681.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>293</td>\n",
       "      <td>305.0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>0.46</td>\n",
       "      <td>7088.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>167</td>\n",
       "      <td>170.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>46.0</td>\n",
       "      <td>0.46</td>\n",
       "      <td>3482.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>190</td>\n",
       "      <td>193.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>37.0</td>\n",
       "      <td>0.48</td>\n",
       "      <td>3920.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>184</td>\n",
       "      <td>190.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>27.0</td>\n",
       "      <td>1.30</td>\n",
       "      <td>4162.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>157</td>\n",
       "      <td>165.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>0.30</td>\n",
       "      <td>3785.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>110</td>\n",
       "      <td>115.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0.29</td>\n",
       "      <td>3103.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>135</td>\n",
       "      <td>145.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0.43</td>\n",
       "      <td>3363.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>567</td>\n",
       "      <td>625.0</td>\n",
       "      <td>64.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>0.85</td>\n",
       "      <td>12192.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>180</td>\n",
       "      <td>185.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>1.00</td>\n",
       "      <td>3831.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>183</td>\n",
       "      <td>188.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>3.00</td>\n",
       "      <td>3564.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>185</td>\n",
       "      <td>193.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>56.0</td>\n",
       "      <td>6.49</td>\n",
       "      <td>3765.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>152</td>\n",
       "      <td>155.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>33.0</td>\n",
       "      <td>0.70</td>\n",
       "      <td>3361.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>148</td>\n",
       "      <td>153.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>0.39</td>\n",
       "      <td>3950.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>152</td>\n",
       "      <td>159.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>0.59</td>\n",
       "      <td>3055.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>146</td>\n",
       "      <td>150.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>31.0</td>\n",
       "      <td>0.36</td>\n",
       "      <td>2950.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>170</td>\n",
       "      <td>190.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>33.0</td>\n",
       "      <td>0.57</td>\n",
       "      <td>3346.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>127</td>\n",
       "      <td>130.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>65.0</td>\n",
       "      <td>0.40</td>\n",
       "      <td>3334.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>265</td>\n",
       "      <td>270.0</td>\n",
       "      <td>36.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>33.0</td>\n",
       "      <td>1.20</td>\n",
       "      <td>5853.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>157</td>\n",
       "      <td>163.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>1.13</td>\n",
       "      <td>3982.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>128</td>\n",
       "      <td>135.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>0.52</td>\n",
       "      <td>3374.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>110</td>\n",
       "      <td>120.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.59</td>\n",
       "      <td>3119.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>123</td>\n",
       "      <td>130.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>43.0</td>\n",
       "      <td>0.39</td>\n",
       "      <td>3268.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>212</td>\n",
       "      <td>230.0</td>\n",
       "      <td>39.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>202.0</td>\n",
       "      <td>4.29</td>\n",
       "      <td>3648.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>145</td>\n",
       "      <td>145.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>44.0</td>\n",
       "      <td>0.22</td>\n",
       "      <td>2783.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>129</td>\n",
       "      <td>135.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>1.00</td>\n",
       "      <td>2438.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>143</td>\n",
       "      <td>145.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1.20</td>\n",
       "      <td>3529.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>247</td>\n",
       "      <td>252.0</td>\n",
       "      <td>29.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.25</td>\n",
       "      <td>4626.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>111</td>\n",
       "      <td>120.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>97.0</td>\n",
       "      <td>1.11</td>\n",
       "      <td>3205.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>133</td>\n",
       "      <td>145.0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>42.0</td>\n",
       "      <td>0.36</td>\n",
       "      <td>3059.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td></td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Sell   List   Living   Rooms   Beds   Baths    Age   Acres    Taxes\n",
       "0   142  160.0     28.0    10.0    5.0     3.0   60.0    0.28   3167.0\n",
       "1   175  180.0     18.0     8.0    4.0     1.0   12.0    0.43   4033.0\n",
       "2   129  132.0     13.0     6.0    3.0     1.0   41.0    0.33   1471.0\n",
       "3   138  140.0     17.0     7.0    3.0     1.0   22.0    0.46   3204.0\n",
       "4   232  240.0     25.0     8.0    4.0     3.0    5.0    2.05   3613.0\n",
       "5   135  140.0     18.0     7.0    4.0     3.0    9.0    0.57   3028.0\n",
       "6   150  160.0     20.0     8.0    4.0     3.0   18.0    4.00   3131.0\n",
       "7   207  225.0     22.0     8.0    4.0     2.0   16.0    2.22   5158.0\n",
       "8   271  285.0     30.0    10.0    5.0     2.0   30.0    0.53   5702.0\n",
       "9    89   90.0     10.0     5.0    3.0     1.0   43.0    0.30   2054.0\n",
       "10  153  157.0     22.0     8.0    3.0     3.0   18.0    0.38   4127.0\n",
       "11   87   90.0     16.0     7.0    3.0     1.0   50.0    0.65   1445.0\n",
       "12  234  238.0     25.0     8.0    4.0     2.0    2.0    1.61   2087.0\n",
       "13  106  116.0     20.0     8.0    4.0     1.0   13.0    0.22   2818.0\n",
       "14  175  180.0     22.0     8.0    4.0     2.0   15.0    2.06   3917.0\n",
       "15  165  170.0     17.0     8.0    4.0     2.0   33.0    0.46   2220.0\n",
       "16  166  170.0     23.0     9.0    4.0     2.0   37.0    0.27   3498.0\n",
       "17  136  140.0     19.0     7.0    3.0     1.0   22.0    0.63   3607.0\n",
       "18  148  160.0     17.0     7.0    3.0     2.0   13.0    0.36   3648.0\n",
       "19  151  153.0     19.0     8.0    4.0     2.0   24.0    0.34   3561.0\n",
       "20  180  190.0     24.0     9.0    4.0     2.0   10.0    1.55   4681.0\n",
       "21  293  305.0     26.0     8.0    4.0     3.0    6.0    0.46   7088.0\n",
       "22  167  170.0     20.0     9.0    4.0     2.0   46.0    0.46   3482.0\n",
       "23  190  193.0     22.0     9.0    5.0     2.0   37.0    0.48   3920.0\n",
       "24  184  190.0     21.0     9.0    5.0     2.0   27.0    1.30   4162.0\n",
       "25  157  165.0     20.0     8.0    4.0     2.0    7.0    0.30   3785.0\n",
       "26  110  115.0     16.0     8.0    4.0     1.0   26.0    0.29   3103.0\n",
       "27  135  145.0     18.0     7.0    4.0     1.0   35.0    0.43   3363.0\n",
       "28  567  625.0     64.0    11.0    4.0     4.0    4.0    0.85  12192.0\n",
       "29  180  185.0     20.0     8.0    4.0     2.0   11.0    1.00   3831.0\n",
       "30  183  188.0     17.0     7.0    3.0     2.0   16.0    3.00   3564.0\n",
       "31  185  193.0     20.0     9.0    3.0     2.0   56.0    6.49   3765.0\n",
       "32  152  155.0     17.0     8.0    4.0     1.0   33.0    0.70   3361.0\n",
       "33  148  153.0     13.0     6.0    3.0     2.0   22.0    0.39   3950.0\n",
       "34  152  159.0     15.0     7.0    3.0     1.0   25.0    0.59   3055.0\n",
       "35  146  150.0     16.0     7.0    3.0     1.0   31.0    0.36   2950.0\n",
       "36  170  190.0     24.0    10.0    3.0     2.0   33.0    0.57   3346.0\n",
       "37  127  130.0     20.0     8.0    4.0     1.0   65.0    0.40   3334.0\n",
       "38  265  270.0     36.0    10.0    6.0     3.0   33.0    1.20   5853.0\n",
       "39  157  163.0     18.0     8.0    4.0     2.0   12.0    1.13   3982.0\n",
       "40  128  135.0     17.0     9.0    4.0     1.0   25.0    0.52   3374.0\n",
       "41  110  120.0     15.0     8.0    4.0     2.0   11.0    0.59   3119.0\n",
       "42  123  130.0     18.0     8.0    4.0     2.0   43.0    0.39   3268.0\n",
       "43  212  230.0     39.0    12.0    5.0     3.0  202.0    4.29   3648.0\n",
       "44  145  145.0     18.0     8.0    4.0     2.0   44.0    0.22   2783.0\n",
       "45  129  135.0     10.0     6.0    3.0     1.0   15.0    1.00   2438.0\n",
       "46  143  145.0     21.0     7.0    4.0     2.0   10.0    1.20   3529.0\n",
       "47  247  252.0     29.0     9.0    4.0     2.0    4.0    1.25   4626.0\n",
       "48  111  120.0     15.0     8.0    3.0     1.0   97.0    1.11   3205.0\n",
       "49  133  145.0     26.0     7.0    3.0     1.0   42.0    0.36   3059.0\n",
       "50         NaN      NaN     NaN    NaN     NaN    NaN     NaN      NaN"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.read_excel(\"data/homes.xlsx\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Writing CSV files\n",
    "Easy!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [],
   "source": [
    "homes.to_csv(\"test.csv\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise  7\n",
    "Create a DataFrame which consists of all numbers 0 to 1000. Reshape it into 50 rows and save it to a `.csv` file. How many columns did you end up with?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>13</th>\n",
       "      <th>14</th>\n",
       "      <th>15</th>\n",
       "      <th>16</th>\n",
       "      <th>17</th>\n",
       "      <th>18</th>\n",
       "      <th>19</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "      <td>12</td>\n",
       "      <td>13</td>\n",
       "      <td>14</td>\n",
       "      <td>15</td>\n",
       "      <td>16</td>\n",
       "      <td>17</td>\n",
       "      <td>18</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>20</td>\n",
       "      <td>21</td>\n",
       "      <td>22</td>\n",
       "      <td>23</td>\n",
       "      <td>24</td>\n",
       "      <td>25</td>\n",
       "      <td>26</td>\n",
       "      <td>27</td>\n",
       "      <td>28</td>\n",
       "      <td>29</td>\n",
       "      <td>30</td>\n",
       "      <td>31</td>\n",
       "      <td>32</td>\n",
       "      <td>33</td>\n",
       "      <td>34</td>\n",
       "      <td>35</td>\n",
       "      <td>36</td>\n",
       "      <td>37</td>\n",
       "      <td>38</td>\n",
       "      <td>39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>40</td>\n",
       "      <td>41</td>\n",
       "      <td>42</td>\n",
       "      <td>43</td>\n",
       "      <td>44</td>\n",
       "      <td>45</td>\n",
       "      <td>46</td>\n",
       "      <td>47</td>\n",
       "      <td>48</td>\n",
       "      <td>49</td>\n",
       "      <td>50</td>\n",
       "      <td>51</td>\n",
       "      <td>52</td>\n",
       "      <td>53</td>\n",
       "      <td>54</td>\n",
       "      <td>55</td>\n",
       "      <td>56</td>\n",
       "      <td>57</td>\n",
       "      <td>58</td>\n",
       "      <td>59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>60</td>\n",
       "      <td>61</td>\n",
       "      <td>62</td>\n",
       "      <td>63</td>\n",
       "      <td>64</td>\n",
       "      <td>65</td>\n",
       "      <td>66</td>\n",
       "      <td>67</td>\n",
       "      <td>68</td>\n",
       "      <td>69</td>\n",
       "      <td>70</td>\n",
       "      <td>71</td>\n",
       "      <td>72</td>\n",
       "      <td>73</td>\n",
       "      <td>74</td>\n",
       "      <td>75</td>\n",
       "      <td>76</td>\n",
       "      <td>77</td>\n",
       "      <td>78</td>\n",
       "      <td>79</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>80</td>\n",
       "      <td>81</td>\n",
       "      <td>82</td>\n",
       "      <td>83</td>\n",
       "      <td>84</td>\n",
       "      <td>85</td>\n",
       "      <td>86</td>\n",
       "      <td>87</td>\n",
       "      <td>88</td>\n",
       "      <td>89</td>\n",
       "      <td>90</td>\n",
       "      <td>91</td>\n",
       "      <td>92</td>\n",
       "      <td>93</td>\n",
       "      <td>94</td>\n",
       "      <td>95</td>\n",
       "      <td>96</td>\n",
       "      <td>97</td>\n",
       "      <td>98</td>\n",
       "      <td>99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>100</td>\n",
       "      <td>101</td>\n",
       "      <td>102</td>\n",
       "      <td>103</td>\n",
       "      <td>104</td>\n",
       "      <td>105</td>\n",
       "      <td>106</td>\n",
       "      <td>107</td>\n",
       "      <td>108</td>\n",
       "      <td>109</td>\n",
       "      <td>110</td>\n",
       "      <td>111</td>\n",
       "      <td>112</td>\n",
       "      <td>113</td>\n",
       "      <td>114</td>\n",
       "      <td>115</td>\n",
       "      <td>116</td>\n",
       "      <td>117</td>\n",
       "      <td>118</td>\n",
       "      <td>119</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>120</td>\n",
       "      <td>121</td>\n",
       "      <td>122</td>\n",
       "      <td>123</td>\n",
       "      <td>124</td>\n",
       "      <td>125</td>\n",
       "      <td>126</td>\n",
       "      <td>127</td>\n",
       "      <td>128</td>\n",
       "      <td>129</td>\n",
       "      <td>130</td>\n",
       "      <td>131</td>\n",
       "      <td>132</td>\n",
       "      <td>133</td>\n",
       "      <td>134</td>\n",
       "      <td>135</td>\n",
       "      <td>136</td>\n",
       "      <td>137</td>\n",
       "      <td>138</td>\n",
       "      <td>139</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>140</td>\n",
       "      <td>141</td>\n",
       "      <td>142</td>\n",
       "      <td>143</td>\n",
       "      <td>144</td>\n",
       "      <td>145</td>\n",
       "      <td>146</td>\n",
       "      <td>147</td>\n",
       "      <td>148</td>\n",
       "      <td>149</td>\n",
       "      <td>150</td>\n",
       "      <td>151</td>\n",
       "      <td>152</td>\n",
       "      <td>153</td>\n",
       "      <td>154</td>\n",
       "      <td>155</td>\n",
       "      <td>156</td>\n",
       "      <td>157</td>\n",
       "      <td>158</td>\n",
       "      <td>159</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>160</td>\n",
       "      <td>161</td>\n",
       "      <td>162</td>\n",
       "      <td>163</td>\n",
       "      <td>164</td>\n",
       "      <td>165</td>\n",
       "      <td>166</td>\n",
       "      <td>167</td>\n",
       "      <td>168</td>\n",
       "      <td>169</td>\n",
       "      <td>170</td>\n",
       "      <td>171</td>\n",
       "      <td>172</td>\n",
       "      <td>173</td>\n",
       "      <td>174</td>\n",
       "      <td>175</td>\n",
       "      <td>176</td>\n",
       "      <td>177</td>\n",
       "      <td>178</td>\n",
       "      <td>179</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>180</td>\n",
       "      <td>181</td>\n",
       "      <td>182</td>\n",
       "      <td>183</td>\n",
       "      <td>184</td>\n",
       "      <td>185</td>\n",
       "      <td>186</td>\n",
       "      <td>187</td>\n",
       "      <td>188</td>\n",
       "      <td>189</td>\n",
       "      <td>190</td>\n",
       "      <td>191</td>\n",
       "      <td>192</td>\n",
       "      <td>193</td>\n",
       "      <td>194</td>\n",
       "      <td>195</td>\n",
       "      <td>196</td>\n",
       "      <td>197</td>\n",
       "      <td>198</td>\n",
       "      <td>199</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>200</td>\n",
       "      <td>201</td>\n",
       "      <td>202</td>\n",
       "      <td>203</td>\n",
       "      <td>204</td>\n",
       "      <td>205</td>\n",
       "      <td>206</td>\n",
       "      <td>207</td>\n",
       "      <td>208</td>\n",
       "      <td>209</td>\n",
       "      <td>210</td>\n",
       "      <td>211</td>\n",
       "      <td>212</td>\n",
       "      <td>213</td>\n",
       "      <td>214</td>\n",
       "      <td>215</td>\n",
       "      <td>216</td>\n",
       "      <td>217</td>\n",
       "      <td>218</td>\n",
       "      <td>219</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>220</td>\n",
       "      <td>221</td>\n",
       "      <td>222</td>\n",
       "      <td>223</td>\n",
       "      <td>224</td>\n",
       "      <td>225</td>\n",
       "      <td>226</td>\n",
       "      <td>227</td>\n",
       "      <td>228</td>\n",
       "      <td>229</td>\n",
       "      <td>230</td>\n",
       "      <td>231</td>\n",
       "      <td>232</td>\n",
       "      <td>233</td>\n",
       "      <td>234</td>\n",
       "      <td>235</td>\n",
       "      <td>236</td>\n",
       "      <td>237</td>\n",
       "      <td>238</td>\n",
       "      <td>239</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>240</td>\n",
       "      <td>241</td>\n",
       "      <td>242</td>\n",
       "      <td>243</td>\n",
       "      <td>244</td>\n",
       "      <td>245</td>\n",
       "      <td>246</td>\n",
       "      <td>247</td>\n",
       "      <td>248</td>\n",
       "      <td>249</td>\n",
       "      <td>250</td>\n",
       "      <td>251</td>\n",
       "      <td>252</td>\n",
       "      <td>253</td>\n",
       "      <td>254</td>\n",
       "      <td>255</td>\n",
       "      <td>256</td>\n",
       "      <td>257</td>\n",
       "      <td>258</td>\n",
       "      <td>259</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>260</td>\n",
       "      <td>261</td>\n",
       "      <td>262</td>\n",
       "      <td>263</td>\n",
       "      <td>264</td>\n",
       "      <td>265</td>\n",
       "      <td>266</td>\n",
       "      <td>267</td>\n",
       "      <td>268</td>\n",
       "      <td>269</td>\n",
       "      <td>270</td>\n",
       "      <td>271</td>\n",
       "      <td>272</td>\n",
       "      <td>273</td>\n",
       "      <td>274</td>\n",
       "      <td>275</td>\n",
       "      <td>276</td>\n",
       "      <td>277</td>\n",
       "      <td>278</td>\n",
       "      <td>279</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>280</td>\n",
       "      <td>281</td>\n",
       "      <td>282</td>\n",
       "      <td>283</td>\n",
       "      <td>284</td>\n",
       "      <td>285</td>\n",
       "      <td>286</td>\n",
       "      <td>287</td>\n",
       "      <td>288</td>\n",
       "      <td>289</td>\n",
       "      <td>290</td>\n",
       "      <td>291</td>\n",
       "      <td>292</td>\n",
       "      <td>293</td>\n",
       "      <td>294</td>\n",
       "      <td>295</td>\n",
       "      <td>296</td>\n",
       "      <td>297</td>\n",
       "      <td>298</td>\n",
       "      <td>299</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>300</td>\n",
       "      <td>301</td>\n",
       "      <td>302</td>\n",
       "      <td>303</td>\n",
       "      <td>304</td>\n",
       "      <td>305</td>\n",
       "      <td>306</td>\n",
       "      <td>307</td>\n",
       "      <td>308</td>\n",
       "      <td>309</td>\n",
       "      <td>310</td>\n",
       "      <td>311</td>\n",
       "      <td>312</td>\n",
       "      <td>313</td>\n",
       "      <td>314</td>\n",
       "      <td>315</td>\n",
       "      <td>316</td>\n",
       "      <td>317</td>\n",
       "      <td>318</td>\n",
       "      <td>319</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>320</td>\n",
       "      <td>321</td>\n",
       "      <td>322</td>\n",
       "      <td>323</td>\n",
       "      <td>324</td>\n",
       "      <td>325</td>\n",
       "      <td>326</td>\n",
       "      <td>327</td>\n",
       "      <td>328</td>\n",
       "      <td>329</td>\n",
       "      <td>330</td>\n",
       "      <td>331</td>\n",
       "      <td>332</td>\n",
       "      <td>333</td>\n",
       "      <td>334</td>\n",
       "      <td>335</td>\n",
       "      <td>336</td>\n",
       "      <td>337</td>\n",
       "      <td>338</td>\n",
       "      <td>339</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>340</td>\n",
       "      <td>341</td>\n",
       "      <td>342</td>\n",
       "      <td>343</td>\n",
       "      <td>344</td>\n",
       "      <td>345</td>\n",
       "      <td>346</td>\n",
       "      <td>347</td>\n",
       "      <td>348</td>\n",
       "      <td>349</td>\n",
       "      <td>350</td>\n",
       "      <td>351</td>\n",
       "      <td>352</td>\n",
       "      <td>353</td>\n",
       "      <td>354</td>\n",
       "      <td>355</td>\n",
       "      <td>356</td>\n",
       "      <td>357</td>\n",
       "      <td>358</td>\n",
       "      <td>359</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>360</td>\n",
       "      <td>361</td>\n",
       "      <td>362</td>\n",
       "      <td>363</td>\n",
       "      <td>364</td>\n",
       "      <td>365</td>\n",
       "      <td>366</td>\n",
       "      <td>367</td>\n",
       "      <td>368</td>\n",
       "      <td>369</td>\n",
       "      <td>370</td>\n",
       "      <td>371</td>\n",
       "      <td>372</td>\n",
       "      <td>373</td>\n",
       "      <td>374</td>\n",
       "      <td>375</td>\n",
       "      <td>376</td>\n",
       "      <td>377</td>\n",
       "      <td>378</td>\n",
       "      <td>379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>380</td>\n",
       "      <td>381</td>\n",
       "      <td>382</td>\n",
       "      <td>383</td>\n",
       "      <td>384</td>\n",
       "      <td>385</td>\n",
       "      <td>386</td>\n",
       "      <td>387</td>\n",
       "      <td>388</td>\n",
       "      <td>389</td>\n",
       "      <td>390</td>\n",
       "      <td>391</td>\n",
       "      <td>392</td>\n",
       "      <td>393</td>\n",
       "      <td>394</td>\n",
       "      <td>395</td>\n",
       "      <td>396</td>\n",
       "      <td>397</td>\n",
       "      <td>398</td>\n",
       "      <td>399</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>400</td>\n",
       "      <td>401</td>\n",
       "      <td>402</td>\n",
       "      <td>403</td>\n",
       "      <td>404</td>\n",
       "      <td>405</td>\n",
       "      <td>406</td>\n",
       "      <td>407</td>\n",
       "      <td>408</td>\n",
       "      <td>409</td>\n",
       "      <td>410</td>\n",
       "      <td>411</td>\n",
       "      <td>412</td>\n",
       "      <td>413</td>\n",
       "      <td>414</td>\n",
       "      <td>415</td>\n",
       "      <td>416</td>\n",
       "      <td>417</td>\n",
       "      <td>418</td>\n",
       "      <td>419</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>420</td>\n",
       "      <td>421</td>\n",
       "      <td>422</td>\n",
       "      <td>423</td>\n",
       "      <td>424</td>\n",
       "      <td>425</td>\n",
       "      <td>426</td>\n",
       "      <td>427</td>\n",
       "      <td>428</td>\n",
       "      <td>429</td>\n",
       "      <td>430</td>\n",
       "      <td>431</td>\n",
       "      <td>432</td>\n",
       "      <td>433</td>\n",
       "      <td>434</td>\n",
       "      <td>435</td>\n",
       "      <td>436</td>\n",
       "      <td>437</td>\n",
       "      <td>438</td>\n",
       "      <td>439</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>440</td>\n",
       "      <td>441</td>\n",
       "      <td>442</td>\n",
       "      <td>443</td>\n",
       "      <td>444</td>\n",
       "      <td>445</td>\n",
       "      <td>446</td>\n",
       "      <td>447</td>\n",
       "      <td>448</td>\n",
       "      <td>449</td>\n",
       "      <td>450</td>\n",
       "      <td>451</td>\n",
       "      <td>452</td>\n",
       "      <td>453</td>\n",
       "      <td>454</td>\n",
       "      <td>455</td>\n",
       "      <td>456</td>\n",
       "      <td>457</td>\n",
       "      <td>458</td>\n",
       "      <td>459</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>460</td>\n",
       "      <td>461</td>\n",
       "      <td>462</td>\n",
       "      <td>463</td>\n",
       "      <td>464</td>\n",
       "      <td>465</td>\n",
       "      <td>466</td>\n",
       "      <td>467</td>\n",
       "      <td>468</td>\n",
       "      <td>469</td>\n",
       "      <td>470</td>\n",
       "      <td>471</td>\n",
       "      <td>472</td>\n",
       "      <td>473</td>\n",
       "      <td>474</td>\n",
       "      <td>475</td>\n",
       "      <td>476</td>\n",
       "      <td>477</td>\n",
       "      <td>478</td>\n",
       "      <td>479</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>480</td>\n",
       "      <td>481</td>\n",
       "      <td>482</td>\n",
       "      <td>483</td>\n",
       "      <td>484</td>\n",
       "      <td>485</td>\n",
       "      <td>486</td>\n",
       "      <td>487</td>\n",
       "      <td>488</td>\n",
       "      <td>489</td>\n",
       "      <td>490</td>\n",
       "      <td>491</td>\n",
       "      <td>492</td>\n",
       "      <td>493</td>\n",
       "      <td>494</td>\n",
       "      <td>495</td>\n",
       "      <td>496</td>\n",
       "      <td>497</td>\n",
       "      <td>498</td>\n",
       "      <td>499</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>500</td>\n",
       "      <td>501</td>\n",
       "      <td>502</td>\n",
       "      <td>503</td>\n",
       "      <td>504</td>\n",
       "      <td>505</td>\n",
       "      <td>506</td>\n",
       "      <td>507</td>\n",
       "      <td>508</td>\n",
       "      <td>509</td>\n",
       "      <td>510</td>\n",
       "      <td>511</td>\n",
       "      <td>512</td>\n",
       "      <td>513</td>\n",
       "      <td>514</td>\n",
       "      <td>515</td>\n",
       "      <td>516</td>\n",
       "      <td>517</td>\n",
       "      <td>518</td>\n",
       "      <td>519</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>520</td>\n",
       "      <td>521</td>\n",
       "      <td>522</td>\n",
       "      <td>523</td>\n",
       "      <td>524</td>\n",
       "      <td>525</td>\n",
       "      <td>526</td>\n",
       "      <td>527</td>\n",
       "      <td>528</td>\n",
       "      <td>529</td>\n",
       "      <td>530</td>\n",
       "      <td>531</td>\n",
       "      <td>532</td>\n",
       "      <td>533</td>\n",
       "      <td>534</td>\n",
       "      <td>535</td>\n",
       "      <td>536</td>\n",
       "      <td>537</td>\n",
       "      <td>538</td>\n",
       "      <td>539</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>540</td>\n",
       "      <td>541</td>\n",
       "      <td>542</td>\n",
       "      <td>543</td>\n",
       "      <td>544</td>\n",
       "      <td>545</td>\n",
       "      <td>546</td>\n",
       "      <td>547</td>\n",
       "      <td>548</td>\n",
       "      <td>549</td>\n",
       "      <td>550</td>\n",
       "      <td>551</td>\n",
       "      <td>552</td>\n",
       "      <td>553</td>\n",
       "      <td>554</td>\n",
       "      <td>555</td>\n",
       "      <td>556</td>\n",
       "      <td>557</td>\n",
       "      <td>558</td>\n",
       "      <td>559</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>560</td>\n",
       "      <td>561</td>\n",
       "      <td>562</td>\n",
       "      <td>563</td>\n",
       "      <td>564</td>\n",
       "      <td>565</td>\n",
       "      <td>566</td>\n",
       "      <td>567</td>\n",
       "      <td>568</td>\n",
       "      <td>569</td>\n",
       "      <td>570</td>\n",
       "      <td>571</td>\n",
       "      <td>572</td>\n",
       "      <td>573</td>\n",
       "      <td>574</td>\n",
       "      <td>575</td>\n",
       "      <td>576</td>\n",
       "      <td>577</td>\n",
       "      <td>578</td>\n",
       "      <td>579</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>580</td>\n",
       "      <td>581</td>\n",
       "      <td>582</td>\n",
       "      <td>583</td>\n",
       "      <td>584</td>\n",
       "      <td>585</td>\n",
       "      <td>586</td>\n",
       "      <td>587</td>\n",
       "      <td>588</td>\n",
       "      <td>589</td>\n",
       "      <td>590</td>\n",
       "      <td>591</td>\n",
       "      <td>592</td>\n",
       "      <td>593</td>\n",
       "      <td>594</td>\n",
       "      <td>595</td>\n",
       "      <td>596</td>\n",
       "      <td>597</td>\n",
       "      <td>598</td>\n",
       "      <td>599</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>600</td>\n",
       "      <td>601</td>\n",
       "      <td>602</td>\n",
       "      <td>603</td>\n",
       "      <td>604</td>\n",
       "      <td>605</td>\n",
       "      <td>606</td>\n",
       "      <td>607</td>\n",
       "      <td>608</td>\n",
       "      <td>609</td>\n",
       "      <td>610</td>\n",
       "      <td>611</td>\n",
       "      <td>612</td>\n",
       "      <td>613</td>\n",
       "      <td>614</td>\n",
       "      <td>615</td>\n",
       "      <td>616</td>\n",
       "      <td>617</td>\n",
       "      <td>618</td>\n",
       "      <td>619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>620</td>\n",
       "      <td>621</td>\n",
       "      <td>622</td>\n",
       "      <td>623</td>\n",
       "      <td>624</td>\n",
       "      <td>625</td>\n",
       "      <td>626</td>\n",
       "      <td>627</td>\n",
       "      <td>628</td>\n",
       "      <td>629</td>\n",
       "      <td>630</td>\n",
       "      <td>631</td>\n",
       "      <td>632</td>\n",
       "      <td>633</td>\n",
       "      <td>634</td>\n",
       "      <td>635</td>\n",
       "      <td>636</td>\n",
       "      <td>637</td>\n",
       "      <td>638</td>\n",
       "      <td>639</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>640</td>\n",
       "      <td>641</td>\n",
       "      <td>642</td>\n",
       "      <td>643</td>\n",
       "      <td>644</td>\n",
       "      <td>645</td>\n",
       "      <td>646</td>\n",
       "      <td>647</td>\n",
       "      <td>648</td>\n",
       "      <td>649</td>\n",
       "      <td>650</td>\n",
       "      <td>651</td>\n",
       "      <td>652</td>\n",
       "      <td>653</td>\n",
       "      <td>654</td>\n",
       "      <td>655</td>\n",
       "      <td>656</td>\n",
       "      <td>657</td>\n",
       "      <td>658</td>\n",
       "      <td>659</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>660</td>\n",
       "      <td>661</td>\n",
       "      <td>662</td>\n",
       "      <td>663</td>\n",
       "      <td>664</td>\n",
       "      <td>665</td>\n",
       "      <td>666</td>\n",
       "      <td>667</td>\n",
       "      <td>668</td>\n",
       "      <td>669</td>\n",
       "      <td>670</td>\n",
       "      <td>671</td>\n",
       "      <td>672</td>\n",
       "      <td>673</td>\n",
       "      <td>674</td>\n",
       "      <td>675</td>\n",
       "      <td>676</td>\n",
       "      <td>677</td>\n",
       "      <td>678</td>\n",
       "      <td>679</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>680</td>\n",
       "      <td>681</td>\n",
       "      <td>682</td>\n",
       "      <td>683</td>\n",
       "      <td>684</td>\n",
       "      <td>685</td>\n",
       "      <td>686</td>\n",
       "      <td>687</td>\n",
       "      <td>688</td>\n",
       "      <td>689</td>\n",
       "      <td>690</td>\n",
       "      <td>691</td>\n",
       "      <td>692</td>\n",
       "      <td>693</td>\n",
       "      <td>694</td>\n",
       "      <td>695</td>\n",
       "      <td>696</td>\n",
       "      <td>697</td>\n",
       "      <td>698</td>\n",
       "      <td>699</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>700</td>\n",
       "      <td>701</td>\n",
       "      <td>702</td>\n",
       "      <td>703</td>\n",
       "      <td>704</td>\n",
       "      <td>705</td>\n",
       "      <td>706</td>\n",
       "      <td>707</td>\n",
       "      <td>708</td>\n",
       "      <td>709</td>\n",
       "      <td>710</td>\n",
       "      <td>711</td>\n",
       "      <td>712</td>\n",
       "      <td>713</td>\n",
       "      <td>714</td>\n",
       "      <td>715</td>\n",
       "      <td>716</td>\n",
       "      <td>717</td>\n",
       "      <td>718</td>\n",
       "      <td>719</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>720</td>\n",
       "      <td>721</td>\n",
       "      <td>722</td>\n",
       "      <td>723</td>\n",
       "      <td>724</td>\n",
       "      <td>725</td>\n",
       "      <td>726</td>\n",
       "      <td>727</td>\n",
       "      <td>728</td>\n",
       "      <td>729</td>\n",
       "      <td>730</td>\n",
       "      <td>731</td>\n",
       "      <td>732</td>\n",
       "      <td>733</td>\n",
       "      <td>734</td>\n",
       "      <td>735</td>\n",
       "      <td>736</td>\n",
       "      <td>737</td>\n",
       "      <td>738</td>\n",
       "      <td>739</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>740</td>\n",
       "      <td>741</td>\n",
       "      <td>742</td>\n",
       "      <td>743</td>\n",
       "      <td>744</td>\n",
       "      <td>745</td>\n",
       "      <td>746</td>\n",
       "      <td>747</td>\n",
       "      <td>748</td>\n",
       "      <td>749</td>\n",
       "      <td>750</td>\n",
       "      <td>751</td>\n",
       "      <td>752</td>\n",
       "      <td>753</td>\n",
       "      <td>754</td>\n",
       "      <td>755</td>\n",
       "      <td>756</td>\n",
       "      <td>757</td>\n",
       "      <td>758</td>\n",
       "      <td>759</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>760</td>\n",
       "      <td>761</td>\n",
       "      <td>762</td>\n",
       "      <td>763</td>\n",
       "      <td>764</td>\n",
       "      <td>765</td>\n",
       "      <td>766</td>\n",
       "      <td>767</td>\n",
       "      <td>768</td>\n",
       "      <td>769</td>\n",
       "      <td>770</td>\n",
       "      <td>771</td>\n",
       "      <td>772</td>\n",
       "      <td>773</td>\n",
       "      <td>774</td>\n",
       "      <td>775</td>\n",
       "      <td>776</td>\n",
       "      <td>777</td>\n",
       "      <td>778</td>\n",
       "      <td>779</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>780</td>\n",
       "      <td>781</td>\n",
       "      <td>782</td>\n",
       "      <td>783</td>\n",
       "      <td>784</td>\n",
       "      <td>785</td>\n",
       "      <td>786</td>\n",
       "      <td>787</td>\n",
       "      <td>788</td>\n",
       "      <td>789</td>\n",
       "      <td>790</td>\n",
       "      <td>791</td>\n",
       "      <td>792</td>\n",
       "      <td>793</td>\n",
       "      <td>794</td>\n",
       "      <td>795</td>\n",
       "      <td>796</td>\n",
       "      <td>797</td>\n",
       "      <td>798</td>\n",
       "      <td>799</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>800</td>\n",
       "      <td>801</td>\n",
       "      <td>802</td>\n",
       "      <td>803</td>\n",
       "      <td>804</td>\n",
       "      <td>805</td>\n",
       "      <td>806</td>\n",
       "      <td>807</td>\n",
       "      <td>808</td>\n",
       "      <td>809</td>\n",
       "      <td>810</td>\n",
       "      <td>811</td>\n",
       "      <td>812</td>\n",
       "      <td>813</td>\n",
       "      <td>814</td>\n",
       "      <td>815</td>\n",
       "      <td>816</td>\n",
       "      <td>817</td>\n",
       "      <td>818</td>\n",
       "      <td>819</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>820</td>\n",
       "      <td>821</td>\n",
       "      <td>822</td>\n",
       "      <td>823</td>\n",
       "      <td>824</td>\n",
       "      <td>825</td>\n",
       "      <td>826</td>\n",
       "      <td>827</td>\n",
       "      <td>828</td>\n",
       "      <td>829</td>\n",
       "      <td>830</td>\n",
       "      <td>831</td>\n",
       "      <td>832</td>\n",
       "      <td>833</td>\n",
       "      <td>834</td>\n",
       "      <td>835</td>\n",
       "      <td>836</td>\n",
       "      <td>837</td>\n",
       "      <td>838</td>\n",
       "      <td>839</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>840</td>\n",
       "      <td>841</td>\n",
       "      <td>842</td>\n",
       "      <td>843</td>\n",
       "      <td>844</td>\n",
       "      <td>845</td>\n",
       "      <td>846</td>\n",
       "      <td>847</td>\n",
       "      <td>848</td>\n",
       "      <td>849</td>\n",
       "      <td>850</td>\n",
       "      <td>851</td>\n",
       "      <td>852</td>\n",
       "      <td>853</td>\n",
       "      <td>854</td>\n",
       "      <td>855</td>\n",
       "      <td>856</td>\n",
       "      <td>857</td>\n",
       "      <td>858</td>\n",
       "      <td>859</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>860</td>\n",
       "      <td>861</td>\n",
       "      <td>862</td>\n",
       "      <td>863</td>\n",
       "      <td>864</td>\n",
       "      <td>865</td>\n",
       "      <td>866</td>\n",
       "      <td>867</td>\n",
       "      <td>868</td>\n",
       "      <td>869</td>\n",
       "      <td>870</td>\n",
       "      <td>871</td>\n",
       "      <td>872</td>\n",
       "      <td>873</td>\n",
       "      <td>874</td>\n",
       "      <td>875</td>\n",
       "      <td>876</td>\n",
       "      <td>877</td>\n",
       "      <td>878</td>\n",
       "      <td>879</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>880</td>\n",
       "      <td>881</td>\n",
       "      <td>882</td>\n",
       "      <td>883</td>\n",
       "      <td>884</td>\n",
       "      <td>885</td>\n",
       "      <td>886</td>\n",
       "      <td>887</td>\n",
       "      <td>888</td>\n",
       "      <td>889</td>\n",
       "      <td>890</td>\n",
       "      <td>891</td>\n",
       "      <td>892</td>\n",
       "      <td>893</td>\n",
       "      <td>894</td>\n",
       "      <td>895</td>\n",
       "      <td>896</td>\n",
       "      <td>897</td>\n",
       "      <td>898</td>\n",
       "      <td>899</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>900</td>\n",
       "      <td>901</td>\n",
       "      <td>902</td>\n",
       "      <td>903</td>\n",
       "      <td>904</td>\n",
       "      <td>905</td>\n",
       "      <td>906</td>\n",
       "      <td>907</td>\n",
       "      <td>908</td>\n",
       "      <td>909</td>\n",
       "      <td>910</td>\n",
       "      <td>911</td>\n",
       "      <td>912</td>\n",
       "      <td>913</td>\n",
       "      <td>914</td>\n",
       "      <td>915</td>\n",
       "      <td>916</td>\n",
       "      <td>917</td>\n",
       "      <td>918</td>\n",
       "      <td>919</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>920</td>\n",
       "      <td>921</td>\n",
       "      <td>922</td>\n",
       "      <td>923</td>\n",
       "      <td>924</td>\n",
       "      <td>925</td>\n",
       "      <td>926</td>\n",
       "      <td>927</td>\n",
       "      <td>928</td>\n",
       "      <td>929</td>\n",
       "      <td>930</td>\n",
       "      <td>931</td>\n",
       "      <td>932</td>\n",
       "      <td>933</td>\n",
       "      <td>934</td>\n",
       "      <td>935</td>\n",
       "      <td>936</td>\n",
       "      <td>937</td>\n",
       "      <td>938</td>\n",
       "      <td>939</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>940</td>\n",
       "      <td>941</td>\n",
       "      <td>942</td>\n",
       "      <td>943</td>\n",
       "      <td>944</td>\n",
       "      <td>945</td>\n",
       "      <td>946</td>\n",
       "      <td>947</td>\n",
       "      <td>948</td>\n",
       "      <td>949</td>\n",
       "      <td>950</td>\n",
       "      <td>951</td>\n",
       "      <td>952</td>\n",
       "      <td>953</td>\n",
       "      <td>954</td>\n",
       "      <td>955</td>\n",
       "      <td>956</td>\n",
       "      <td>957</td>\n",
       "      <td>958</td>\n",
       "      <td>959</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>960</td>\n",
       "      <td>961</td>\n",
       "      <td>962</td>\n",
       "      <td>963</td>\n",
       "      <td>964</td>\n",
       "      <td>965</td>\n",
       "      <td>966</td>\n",
       "      <td>967</td>\n",
       "      <td>968</td>\n",
       "      <td>969</td>\n",
       "      <td>970</td>\n",
       "      <td>971</td>\n",
       "      <td>972</td>\n",
       "      <td>973</td>\n",
       "      <td>974</td>\n",
       "      <td>975</td>\n",
       "      <td>976</td>\n",
       "      <td>977</td>\n",
       "      <td>978</td>\n",
       "      <td>979</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>980</td>\n",
       "      <td>981</td>\n",
       "      <td>982</td>\n",
       "      <td>983</td>\n",
       "      <td>984</td>\n",
       "      <td>985</td>\n",
       "      <td>986</td>\n",
       "      <td>987</td>\n",
       "      <td>988</td>\n",
       "      <td>989</td>\n",
       "      <td>990</td>\n",
       "      <td>991</td>\n",
       "      <td>992</td>\n",
       "      <td>993</td>\n",
       "      <td>994</td>\n",
       "      <td>995</td>\n",
       "      <td>996</td>\n",
       "      <td>997</td>\n",
       "      <td>998</td>\n",
       "      <td>999</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     0    1    2    3    4    5    6    7    8    9    10   11   12   13   14  \\\n",
       "0     0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   \n",
       "1    20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   \n",
       "2    40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   \n",
       "3    60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   \n",
       "4    80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   \n",
       "5   100  101  102  103  104  105  106  107  108  109  110  111  112  113  114   \n",
       "6   120  121  122  123  124  125  126  127  128  129  130  131  132  133  134   \n",
       "7   140  141  142  143  144  145  146  147  148  149  150  151  152  153  154   \n",
       "8   160  161  162  163  164  165  166  167  168  169  170  171  172  173  174   \n",
       "9   180  181  182  183  184  185  186  187  188  189  190  191  192  193  194   \n",
       "10  200  201  202  203  204  205  206  207  208  209  210  211  212  213  214   \n",
       "11  220  221  222  223  224  225  226  227  228  229  230  231  232  233  234   \n",
       "12  240  241  242  243  244  245  246  247  248  249  250  251  252  253  254   \n",
       "13  260  261  262  263  264  265  266  267  268  269  270  271  272  273  274   \n",
       "14  280  281  282  283  284  285  286  287  288  289  290  291  292  293  294   \n",
       "15  300  301  302  303  304  305  306  307  308  309  310  311  312  313  314   \n",
       "16  320  321  322  323  324  325  326  327  328  329  330  331  332  333  334   \n",
       "17  340  341  342  343  344  345  346  347  348  349  350  351  352  353  354   \n",
       "18  360  361  362  363  364  365  366  367  368  369  370  371  372  373  374   \n",
       "19  380  381  382  383  384  385  386  387  388  389  390  391  392  393  394   \n",
       "20  400  401  402  403  404  405  406  407  408  409  410  411  412  413  414   \n",
       "21  420  421  422  423  424  425  426  427  428  429  430  431  432  433  434   \n",
       "22  440  441  442  443  444  445  446  447  448  449  450  451  452  453  454   \n",
       "23  460  461  462  463  464  465  466  467  468  469  470  471  472  473  474   \n",
       "24  480  481  482  483  484  485  486  487  488  489  490  491  492  493  494   \n",
       "25  500  501  502  503  504  505  506  507  508  509  510  511  512  513  514   \n",
       "26  520  521  522  523  524  525  526  527  528  529  530  531  532  533  534   \n",
       "27  540  541  542  543  544  545  546  547  548  549  550  551  552  553  554   \n",
       "28  560  561  562  563  564  565  566  567  568  569  570  571  572  573  574   \n",
       "29  580  581  582  583  584  585  586  587  588  589  590  591  592  593  594   \n",
       "30  600  601  602  603  604  605  606  607  608  609  610  611  612  613  614   \n",
       "31  620  621  622  623  624  625  626  627  628  629  630  631  632  633  634   \n",
       "32  640  641  642  643  644  645  646  647  648  649  650  651  652  653  654   \n",
       "33  660  661  662  663  664  665  666  667  668  669  670  671  672  673  674   \n",
       "34  680  681  682  683  684  685  686  687  688  689  690  691  692  693  694   \n",
       "35  700  701  702  703  704  705  706  707  708  709  710  711  712  713  714   \n",
       "36  720  721  722  723  724  725  726  727  728  729  730  731  732  733  734   \n",
       "37  740  741  742  743  744  745  746  747  748  749  750  751  752  753  754   \n",
       "38  760  761  762  763  764  765  766  767  768  769  770  771  772  773  774   \n",
       "39  780  781  782  783  784  785  786  787  788  789  790  791  792  793  794   \n",
       "40  800  801  802  803  804  805  806  807  808  809  810  811  812  813  814   \n",
       "41  820  821  822  823  824  825  826  827  828  829  830  831  832  833  834   \n",
       "42  840  841  842  843  844  845  846  847  848  849  850  851  852  853  854   \n",
       "43  860  861  862  863  864  865  866  867  868  869  870  871  872  873  874   \n",
       "44  880  881  882  883  884  885  886  887  888  889  890  891  892  893  894   \n",
       "45  900  901  902  903  904  905  906  907  908  909  910  911  912  913  914   \n",
       "46  920  921  922  923  924  925  926  927  928  929  930  931  932  933  934   \n",
       "47  940  941  942  943  944  945  946  947  948  949  950  951  952  953  954   \n",
       "48  960  961  962  963  964  965  966  967  968  969  970  971  972  973  974   \n",
       "49  980  981  982  983  984  985  986  987  988  989  990  991  992  993  994   \n",
       "\n",
       "     15   16   17   18   19  \n",
       "0    15   16   17   18   19  \n",
       "1    35   36   37   38   39  \n",
       "2    55   56   57   58   59  \n",
       "3    75   76   77   78   79  \n",
       "4    95   96   97   98   99  \n",
       "5   115  116  117  118  119  \n",
       "6   135  136  137  138  139  \n",
       "7   155  156  157  158  159  \n",
       "8   175  176  177  178  179  \n",
       "9   195  196  197  198  199  \n",
       "10  215  216  217  218  219  \n",
       "11  235  236  237  238  239  \n",
       "12  255  256  257  258  259  \n",
       "13  275  276  277  278  279  \n",
       "14  295  296  297  298  299  \n",
       "15  315  316  317  318  319  \n",
       "16  335  336  337  338  339  \n",
       "17  355  356  357  358  359  \n",
       "18  375  376  377  378  379  \n",
       "19  395  396  397  398  399  \n",
       "20  415  416  417  418  419  \n",
       "21  435  436  437  438  439  \n",
       "22  455  456  457  458  459  \n",
       "23  475  476  477  478  479  \n",
       "24  495  496  497  498  499  \n",
       "25  515  516  517  518  519  \n",
       "26  535  536  537  538  539  \n",
       "27  555  556  557  558  559  \n",
       "28  575  576  577  578  579  \n",
       "29  595  596  597  598  599  \n",
       "30  615  616  617  618  619  \n",
       "31  635  636  637  638  639  \n",
       "32  655  656  657  658  659  \n",
       "33  675  676  677  678  679  \n",
       "34  695  696  697  698  699  \n",
       "35  715  716  717  718  719  \n",
       "36  735  736  737  738  739  \n",
       "37  755  756  757  758  759  \n",
       "38  775  776  777  778  779  \n",
       "39  795  796  797  798  799  \n",
       "40  815  816  817  818  819  \n",
       "41  835  836  837  838  839  \n",
       "42  855  856  857  858  859  \n",
       "43  875  876  877  878  879  \n",
       "44  895  896  897  898  899  \n",
       "45  915  916  917  918  919  \n",
       "46  935  936  937  938  939  \n",
       "47  955  956  957  958  959  \n",
       "48  975  976  977  978  979  \n",
       "49  995  996  997  998  999  "
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.DataFrame(np.arange(1000).reshape(50, -1))\n",
    "df.to_csv(\"ex7.csv\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 8\n",
    "There is a dataset `data/yob2012.txt` which lists the number of newborns registered in 2018 with their names and sex. Open the dataset in pandas **as a csv**, explore it and derive the ratio between male and female newborns.\n",
    "\n",
    "*Note: The file doesn't contain a header so you will need to add your own column names with*\n",
    "```python\n",
    "pd.read_csv(\"...\", names=[\"Some\", \"Fun\", \"Columns\"]\n",
    "```\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.3694428812605515"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv(\"data/yob2012.txt\", names=[\"Name\", \"Sex\", \"idk\"])\n",
    "sexes = df.Sex.value_counts()\n",
    "\n",
    "sexes[0] / sexes[1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Web scraping <a name=\"web\"></a>\n",
    "It is also very easy to scrape webpages and extract tables from them.\n",
    "\n",
    "For example, let's consider extracting the table of failed American banks."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [],
   "source": [
    "url = \"https://www.fdic.gov/bank/individual/failed/banklist.html\"\n",
    "banks = pd.read_html(url)\n",
    "banks = banks[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Bank Name</th>\n",
       "      <th>City</th>\n",
       "      <th>ST</th>\n",
       "      <th>CERT</th>\n",
       "      <th>Acquiring Institution</th>\n",
       "      <th>Closing Date</th>\n",
       "      <th>Updated Date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Washington Federal Bank for Savings</td>\n",
       "      <td>Chicago</td>\n",
       "      <td>IL</td>\n",
       "      <td>30570</td>\n",
       "      <td>Royal Savings Bank</td>\n",
       "      <td>December 15, 2017</td>\n",
       "      <td>February 21, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>The Farmers and Merchants State Bank of Argonia</td>\n",
       "      <td>Argonia</td>\n",
       "      <td>KS</td>\n",
       "      <td>17719</td>\n",
       "      <td>Conway Bank</td>\n",
       "      <td>October 13, 2017</td>\n",
       "      <td>February 21, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Fayette County Bank</td>\n",
       "      <td>Saint Elmo</td>\n",
       "      <td>IL</td>\n",
       "      <td>1802</td>\n",
       "      <td>United Fidelity Bank, fsb</td>\n",
       "      <td>May 26, 2017</td>\n",
       "      <td>July 26, 2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Guaranty Bank, (d/b/a BestBank in Georgia &amp; Mi...</td>\n",
       "      <td>Milwaukee</td>\n",
       "      <td>WI</td>\n",
       "      <td>30003</td>\n",
       "      <td>First-Citizens Bank &amp; Trust Company</td>\n",
       "      <td>May 5, 2017</td>\n",
       "      <td>March 22, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>First NBC Bank</td>\n",
       "      <td>New Orleans</td>\n",
       "      <td>LA</td>\n",
       "      <td>58302</td>\n",
       "      <td>Whitney Bank</td>\n",
       "      <td>April 28, 2017</td>\n",
       "      <td>December 5, 2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Proficio Bank</td>\n",
       "      <td>Cottonwood Heights</td>\n",
       "      <td>UT</td>\n",
       "      <td>35495</td>\n",
       "      <td>Cache Valley Bank</td>\n",
       "      <td>March 3, 2017</td>\n",
       "      <td>March 7, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Seaway Bank and Trust Company</td>\n",
       "      <td>Chicago</td>\n",
       "      <td>IL</td>\n",
       "      <td>19328</td>\n",
       "      <td>State Bank of Texas</td>\n",
       "      <td>January 27, 2017</td>\n",
       "      <td>May 18, 2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Harvest Community Bank</td>\n",
       "      <td>Pennsville</td>\n",
       "      <td>NJ</td>\n",
       "      <td>34951</td>\n",
       "      <td>First-Citizens Bank &amp; Trust Company</td>\n",
       "      <td>January 13, 2017</td>\n",
       "      <td>May 18, 2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Allied Bank</td>\n",
       "      <td>Mulberry</td>\n",
       "      <td>AR</td>\n",
       "      <td>91</td>\n",
       "      <td>Today's Bank</td>\n",
       "      <td>September 23, 2016</td>\n",
       "      <td>September 25, 2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>The Woodbury Banking Company</td>\n",
       "      <td>Woodbury</td>\n",
       "      <td>GA</td>\n",
       "      <td>11297</td>\n",
       "      <td>United Bank</td>\n",
       "      <td>August 19, 2016</td>\n",
       "      <td>December 13, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>First CornerStone Bank</td>\n",
       "      <td>King of Prussia</td>\n",
       "      <td>PA</td>\n",
       "      <td>35312</td>\n",
       "      <td>First-Citizens Bank &amp; Trust Company</td>\n",
       "      <td>May 6, 2016</td>\n",
       "      <td>November 13, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>Trust Company Bank</td>\n",
       "      <td>Memphis</td>\n",
       "      <td>TN</td>\n",
       "      <td>9956</td>\n",
       "      <td>The Bank of Fayette County</td>\n",
       "      <td>April 29, 2016</td>\n",
       "      <td>September 14, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>North Milwaukee State Bank</td>\n",
       "      <td>Milwaukee</td>\n",
       "      <td>WI</td>\n",
       "      <td>20364</td>\n",
       "      <td>First-Citizens Bank &amp; Trust Company</td>\n",
       "      <td>March 11, 2016</td>\n",
       "      <td>March 13, 2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>Hometown National Bank</td>\n",
       "      <td>Longview</td>\n",
       "      <td>WA</td>\n",
       "      <td>35156</td>\n",
       "      <td>Twin City Bank</td>\n",
       "      <td>October 2, 2015</td>\n",
       "      <td>February 19, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>The Bank of Georgia</td>\n",
       "      <td>Peachtree City</td>\n",
       "      <td>GA</td>\n",
       "      <td>35259</td>\n",
       "      <td>Fidelity Bank</td>\n",
       "      <td>October 2, 2015</td>\n",
       "      <td>July 9, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>Premier Bank</td>\n",
       "      <td>Denver</td>\n",
       "      <td>CO</td>\n",
       "      <td>34112</td>\n",
       "      <td>United Fidelity Bank, fsb</td>\n",
       "      <td>July 10, 2015</td>\n",
       "      <td>February 20, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>Edgebrook Bank</td>\n",
       "      <td>Chicago</td>\n",
       "      <td>IL</td>\n",
       "      <td>57772</td>\n",
       "      <td>Republic Bank of Chicago</td>\n",
       "      <td>May 8, 2015</td>\n",
       "      <td>July 12, 2016</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>Doral Bank  En Espanol</td>\n",
       "      <td>San Juan</td>\n",
       "      <td>PR</td>\n",
       "      <td>32102</td>\n",
       "      <td>Banco Popular de Puerto Rico</td>\n",
       "      <td>February 27, 2015</td>\n",
       "      <td>May 13, 2015</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>Capitol City Bank &amp; Trust Company</td>\n",
       "      <td>Atlanta</td>\n",
       "      <td>GA</td>\n",
       "      <td>33938</td>\n",
       "      <td>First-Citizens Bank &amp; Trust Company</td>\n",
       "      <td>February 13, 2015</td>\n",
       "      <td>April 21, 2015</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>Highland Community Bank</td>\n",
       "      <td>Chicago</td>\n",
       "      <td>IL</td>\n",
       "      <td>20290</td>\n",
       "      <td>United Fidelity Bank, fsb</td>\n",
       "      <td>January 23, 2015</td>\n",
       "      <td>November 15, 2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>First National Bank of Crestview</td>\n",
       "      <td>Crestview</td>\n",
       "      <td>FL</td>\n",
       "      <td>17557</td>\n",
       "      <td>First NBC Bank</td>\n",
       "      <td>January 16, 2015</td>\n",
       "      <td>November 15, 2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>Northern Star Bank</td>\n",
       "      <td>Mankato</td>\n",
       "      <td>MN</td>\n",
       "      <td>34983</td>\n",
       "      <td>BankVista</td>\n",
       "      <td>December 19, 2014</td>\n",
       "      <td>January 3, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>Frontier Bank, FSB D/B/A El Paseo Bank</td>\n",
       "      <td>Palm Desert</td>\n",
       "      <td>CA</td>\n",
       "      <td>34738</td>\n",
       "      <td>Bank of Southern California, N.A.</td>\n",
       "      <td>November 7, 2014</td>\n",
       "      <td>November 10, 2016</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>The National Republic Bank of Chicago</td>\n",
       "      <td>Chicago</td>\n",
       "      <td>IL</td>\n",
       "      <td>916</td>\n",
       "      <td>State Bank of Texas</td>\n",
       "      <td>October 24, 2014</td>\n",
       "      <td>January 6, 2016</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>NBRS Financial</td>\n",
       "      <td>Rising Sun</td>\n",
       "      <td>MD</td>\n",
       "      <td>4862</td>\n",
       "      <td>Howard Bank</td>\n",
       "      <td>October 17, 2014</td>\n",
       "      <td>February 19, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>GreenChoice Bank, fsb</td>\n",
       "      <td>Chicago</td>\n",
       "      <td>IL</td>\n",
       "      <td>28462</td>\n",
       "      <td>Providence Bank, LLC</td>\n",
       "      <td>July 25, 2014</td>\n",
       "      <td>December 12, 2016</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>Eastside Commercial Bank</td>\n",
       "      <td>Conyers</td>\n",
       "      <td>GA</td>\n",
       "      <td>58125</td>\n",
       "      <td>Community &amp; Southern Bank</td>\n",
       "      <td>July 18, 2014</td>\n",
       "      <td>October 6, 2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>The Freedom State Bank</td>\n",
       "      <td>Freedom</td>\n",
       "      <td>OK</td>\n",
       "      <td>12483</td>\n",
       "      <td>Alva State Bank &amp; Trust Company</td>\n",
       "      <td>June 27, 2014</td>\n",
       "      <td>February 21, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>Valley Bank</td>\n",
       "      <td>Fort Lauderdale</td>\n",
       "      <td>FL</td>\n",
       "      <td>21793</td>\n",
       "      <td>Landmark Bank, National Association</td>\n",
       "      <td>June 20, 2014</td>\n",
       "      <td>February 14, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>Valley Bank</td>\n",
       "      <td>Moline</td>\n",
       "      <td>IL</td>\n",
       "      <td>10450</td>\n",
       "      <td>Great Southern Bank</td>\n",
       "      <td>June 20, 2014</td>\n",
       "      <td>June 26, 2015</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>525</th>\n",
       "      <td>ANB Financial, NA</td>\n",
       "      <td>Bentonville</td>\n",
       "      <td>AR</td>\n",
       "      <td>33901</td>\n",
       "      <td>Pulaski Bank and Trust Company</td>\n",
       "      <td>May 9, 2008</td>\n",
       "      <td>August 28, 2012</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>526</th>\n",
       "      <td>Hume Bank</td>\n",
       "      <td>Hume</td>\n",
       "      <td>MO</td>\n",
       "      <td>1971</td>\n",
       "      <td>Security Bank</td>\n",
       "      <td>March 7, 2008</td>\n",
       "      <td>August 28, 2012</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>527</th>\n",
       "      <td>Douglass National Bank</td>\n",
       "      <td>Kansas City</td>\n",
       "      <td>MO</td>\n",
       "      <td>24660</td>\n",
       "      <td>Liberty Bank and Trust Company</td>\n",
       "      <td>January 25, 2008</td>\n",
       "      <td>October 26, 2012</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>528</th>\n",
       "      <td>Miami Valley Bank</td>\n",
       "      <td>Lakeview</td>\n",
       "      <td>OH</td>\n",
       "      <td>16848</td>\n",
       "      <td>The Citizens Banking Company</td>\n",
       "      <td>October 4, 2007</td>\n",
       "      <td>September 12, 2016</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>529</th>\n",
       "      <td>NetBank</td>\n",
       "      <td>Alpharetta</td>\n",
       "      <td>GA</td>\n",
       "      <td>32575</td>\n",
       "      <td>ING DIRECT</td>\n",
       "      <td>September 28, 2007</td>\n",
       "      <td>August 28, 2012</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>530</th>\n",
       "      <td>Metropolitan Savings Bank</td>\n",
       "      <td>Pittsburgh</td>\n",
       "      <td>PA</td>\n",
       "      <td>35353</td>\n",
       "      <td>Allegheny Valley Bank of Pittsburgh</td>\n",
       "      <td>February 2, 2007</td>\n",
       "      <td>October 27, 2010</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>531</th>\n",
       "      <td>Bank of Ephraim</td>\n",
       "      <td>Ephraim</td>\n",
       "      <td>UT</td>\n",
       "      <td>1249</td>\n",
       "      <td>Far West Bank</td>\n",
       "      <td>June 25, 2004</td>\n",
       "      <td>April 9, 2008</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>532</th>\n",
       "      <td>Reliance Bank</td>\n",
       "      <td>White Plains</td>\n",
       "      <td>NY</td>\n",
       "      <td>26778</td>\n",
       "      <td>Union State Bank</td>\n",
       "      <td>March 19, 2004</td>\n",
       "      <td>April 9, 2008</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>533</th>\n",
       "      <td>Guaranty National Bank of Tallahassee</td>\n",
       "      <td>Tallahassee</td>\n",
       "      <td>FL</td>\n",
       "      <td>26838</td>\n",
       "      <td>Hancock Bank of Florida</td>\n",
       "      <td>March 12, 2004</td>\n",
       "      <td>April 17, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>534</th>\n",
       "      <td>Dollar Savings Bank</td>\n",
       "      <td>Newark</td>\n",
       "      <td>NJ</td>\n",
       "      <td>31330</td>\n",
       "      <td>No Acquirer</td>\n",
       "      <td>February 14, 2004</td>\n",
       "      <td>April 9, 2008</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>535</th>\n",
       "      <td>Pulaski Savings Bank</td>\n",
       "      <td>Philadelphia</td>\n",
       "      <td>PA</td>\n",
       "      <td>27203</td>\n",
       "      <td>Earthstar Bank</td>\n",
       "      <td>November 14, 2003</td>\n",
       "      <td>October 6, 2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>536</th>\n",
       "      <td>First National Bank of Blanchardville</td>\n",
       "      <td>Blanchardville</td>\n",
       "      <td>WI</td>\n",
       "      <td>11639</td>\n",
       "      <td>The Park Bank</td>\n",
       "      <td>May 9, 2003</td>\n",
       "      <td>June 5, 2012</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>537</th>\n",
       "      <td>Southern Pacific Bank</td>\n",
       "      <td>Torrance</td>\n",
       "      <td>CA</td>\n",
       "      <td>27094</td>\n",
       "      <td>Beal Bank</td>\n",
       "      <td>February 7, 2003</td>\n",
       "      <td>October 20, 2008</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>538</th>\n",
       "      <td>Farmers Bank of Cheneyville</td>\n",
       "      <td>Cheneyville</td>\n",
       "      <td>LA</td>\n",
       "      <td>16445</td>\n",
       "      <td>Sabine State Bank &amp; Trust</td>\n",
       "      <td>December 17, 2002</td>\n",
       "      <td>October 20, 2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>539</th>\n",
       "      <td>Bank of Alamo</td>\n",
       "      <td>Alamo</td>\n",
       "      <td>TN</td>\n",
       "      <td>9961</td>\n",
       "      <td>No Acquirer</td>\n",
       "      <td>November 8, 2002</td>\n",
       "      <td>March 18, 2005</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>540</th>\n",
       "      <td>AmTrade International Bank  En Espanol</td>\n",
       "      <td>Atlanta</td>\n",
       "      <td>GA</td>\n",
       "      <td>33784</td>\n",
       "      <td>No Acquirer</td>\n",
       "      <td>September 30, 2002</td>\n",
       "      <td>September 11, 2006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>541</th>\n",
       "      <td>Universal Federal Savings Bank</td>\n",
       "      <td>Chicago</td>\n",
       "      <td>IL</td>\n",
       "      <td>29355</td>\n",
       "      <td>Chicago Community Bank</td>\n",
       "      <td>June 27, 2002</td>\n",
       "      <td>October 6, 2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>542</th>\n",
       "      <td>Connecticut Bank of Commerce</td>\n",
       "      <td>Stamford</td>\n",
       "      <td>CT</td>\n",
       "      <td>19183</td>\n",
       "      <td>Hudson United Bank</td>\n",
       "      <td>June 26, 2002</td>\n",
       "      <td>February 14, 2012</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>543</th>\n",
       "      <td>New Century Bank</td>\n",
       "      <td>Shelby Township</td>\n",
       "      <td>MI</td>\n",
       "      <td>34979</td>\n",
       "      <td>No Acquirer</td>\n",
       "      <td>March 28, 2002</td>\n",
       "      <td>March 18, 2005</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>544</th>\n",
       "      <td>Net 1st National Bank</td>\n",
       "      <td>Boca Raton</td>\n",
       "      <td>FL</td>\n",
       "      <td>26652</td>\n",
       "      <td>Bank Leumi USA</td>\n",
       "      <td>March 1, 2002</td>\n",
       "      <td>April 9, 2008</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>545</th>\n",
       "      <td>NextBank, NA</td>\n",
       "      <td>Phoenix</td>\n",
       "      <td>AZ</td>\n",
       "      <td>22314</td>\n",
       "      <td>No Acquirer</td>\n",
       "      <td>February 7, 2002</td>\n",
       "      <td>February 5, 2015</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>546</th>\n",
       "      <td>Oakwood Deposit Bank Co.</td>\n",
       "      <td>Oakwood</td>\n",
       "      <td>OH</td>\n",
       "      <td>8966</td>\n",
       "      <td>The State Bank &amp; Trust Company</td>\n",
       "      <td>February 1, 2002</td>\n",
       "      <td>October 25, 2012</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>547</th>\n",
       "      <td>Bank of Sierra Blanca</td>\n",
       "      <td>Sierra Blanca</td>\n",
       "      <td>TX</td>\n",
       "      <td>22002</td>\n",
       "      <td>The Security State Bank of Pecos</td>\n",
       "      <td>January 18, 2002</td>\n",
       "      <td>November 6, 2003</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>548</th>\n",
       "      <td>Hamilton Bank, NA  En Espanol</td>\n",
       "      <td>Miami</td>\n",
       "      <td>FL</td>\n",
       "      <td>24382</td>\n",
       "      <td>Israel Discount Bank of New York</td>\n",
       "      <td>January 11, 2002</td>\n",
       "      <td>September 21, 2015</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>549</th>\n",
       "      <td>Sinclair National Bank</td>\n",
       "      <td>Gravette</td>\n",
       "      <td>AR</td>\n",
       "      <td>34248</td>\n",
       "      <td>Delta Trust &amp; Bank</td>\n",
       "      <td>September 7, 2001</td>\n",
       "      <td>October 6, 2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>550</th>\n",
       "      <td>Superior Bank, FSB</td>\n",
       "      <td>Hinsdale</td>\n",
       "      <td>IL</td>\n",
       "      <td>32646</td>\n",
       "      <td>Superior Federal, FSB</td>\n",
       "      <td>July 27, 2001</td>\n",
       "      <td>August 19, 2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>551</th>\n",
       "      <td>Malta National Bank</td>\n",
       "      <td>Malta</td>\n",
       "      <td>OH</td>\n",
       "      <td>6629</td>\n",
       "      <td>North Valley Bank</td>\n",
       "      <td>May 3, 2001</td>\n",
       "      <td>November 18, 2002</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>552</th>\n",
       "      <td>First Alliance Bank &amp; Trust Co.</td>\n",
       "      <td>Manchester</td>\n",
       "      <td>NH</td>\n",
       "      <td>34264</td>\n",
       "      <td>Southern New Hampshire Bank &amp; Trust</td>\n",
       "      <td>February 2, 2001</td>\n",
       "      <td>February 18, 2003</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>553</th>\n",
       "      <td>National State Bank of Metropolis</td>\n",
       "      <td>Metropolis</td>\n",
       "      <td>IL</td>\n",
       "      <td>3815</td>\n",
       "      <td>Banterra Bank of Marion</td>\n",
       "      <td>December 14, 2000</td>\n",
       "      <td>March 17, 2005</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>554</th>\n",
       "      <td>Bank of Honolulu</td>\n",
       "      <td>Honolulu</td>\n",
       "      <td>HI</td>\n",
       "      <td>21029</td>\n",
       "      <td>Bank of the Orient</td>\n",
       "      <td>October 13, 2000</td>\n",
       "      <td>March 17, 2005</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>555 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                             Bank Name                City  \\\n",
       "0                  Washington Federal Bank for Savings             Chicago   \n",
       "1      The Farmers and Merchants State Bank of Argonia             Argonia   \n",
       "2                                  Fayette County Bank          Saint Elmo   \n",
       "3    Guaranty Bank, (d/b/a BestBank in Georgia & Mi...           Milwaukee   \n",
       "4                                       First NBC Bank         New Orleans   \n",
       "5                                        Proficio Bank  Cottonwood Heights   \n",
       "6                        Seaway Bank and Trust Company             Chicago   \n",
       "7                               Harvest Community Bank          Pennsville   \n",
       "8                                          Allied Bank            Mulberry   \n",
       "9                         The Woodbury Banking Company            Woodbury   \n",
       "10                              First CornerStone Bank     King of Prussia   \n",
       "11                                  Trust Company Bank             Memphis   \n",
       "12                          North Milwaukee State Bank           Milwaukee   \n",
       "13                              Hometown National Bank            Longview   \n",
       "14                                 The Bank of Georgia      Peachtree City   \n",
       "15                                        Premier Bank              Denver   \n",
       "16                                      Edgebrook Bank             Chicago   \n",
       "17                              Doral Bank  En Espanol            San Juan   \n",
       "18                   Capitol City Bank & Trust Company             Atlanta   \n",
       "19                             Highland Community Bank             Chicago   \n",
       "20                    First National Bank of Crestview           Crestview   \n",
       "21                                  Northern Star Bank             Mankato   \n",
       "22              Frontier Bank, FSB D/B/A El Paseo Bank         Palm Desert   \n",
       "23               The National Republic Bank of Chicago             Chicago   \n",
       "24                                      NBRS Financial          Rising Sun   \n",
       "25                               GreenChoice Bank, fsb             Chicago   \n",
       "26                            Eastside Commercial Bank             Conyers   \n",
       "27                              The Freedom State Bank             Freedom   \n",
       "28                                         Valley Bank     Fort Lauderdale   \n",
       "29                                         Valley Bank              Moline   \n",
       "..                                                 ...                 ...   \n",
       "525                                  ANB Financial, NA         Bentonville   \n",
       "526                                          Hume Bank                Hume   \n",
       "527                             Douglass National Bank         Kansas City   \n",
       "528                                  Miami Valley Bank            Lakeview   \n",
       "529                                            NetBank          Alpharetta   \n",
       "530                          Metropolitan Savings Bank          Pittsburgh   \n",
       "531                                    Bank of Ephraim             Ephraim   \n",
       "532                                      Reliance Bank        White Plains   \n",
       "533              Guaranty National Bank of Tallahassee         Tallahassee   \n",
       "534                                Dollar Savings Bank              Newark   \n",
       "535                               Pulaski Savings Bank        Philadelphia   \n",
       "536              First National Bank of Blanchardville      Blanchardville   \n",
       "537                              Southern Pacific Bank            Torrance   \n",
       "538                        Farmers Bank of Cheneyville         Cheneyville   \n",
       "539                                      Bank of Alamo               Alamo   \n",
       "540             AmTrade International Bank  En Espanol             Atlanta   \n",
       "541                     Universal Federal Savings Bank             Chicago   \n",
       "542                       Connecticut Bank of Commerce            Stamford   \n",
       "543                                   New Century Bank     Shelby Township   \n",
       "544                              Net 1st National Bank          Boca Raton   \n",
       "545                                       NextBank, NA             Phoenix   \n",
       "546                           Oakwood Deposit Bank Co.             Oakwood   \n",
       "547                              Bank of Sierra Blanca       Sierra Blanca   \n",
       "548                      Hamilton Bank, NA  En Espanol               Miami   \n",
       "549                             Sinclair National Bank            Gravette   \n",
       "550                                 Superior Bank, FSB            Hinsdale   \n",
       "551                                Malta National Bank               Malta   \n",
       "552                    First Alliance Bank & Trust Co.          Manchester   \n",
       "553                  National State Bank of Metropolis          Metropolis   \n",
       "554                                   Bank of Honolulu            Honolulu   \n",
       "\n",
       "     ST   CERT                Acquiring Institution        Closing Date  \\\n",
       "0    IL  30570                   Royal Savings Bank   December 15, 2017   \n",
       "1    KS  17719                          Conway Bank    October 13, 2017   \n",
       "2    IL   1802            United Fidelity Bank, fsb        May 26, 2017   \n",
       "3    WI  30003  First-Citizens Bank & Trust Company         May 5, 2017   \n",
       "4    LA  58302                         Whitney Bank      April 28, 2017   \n",
       "5    UT  35495                    Cache Valley Bank       March 3, 2017   \n",
       "6    IL  19328                  State Bank of Texas    January 27, 2017   \n",
       "7    NJ  34951  First-Citizens Bank & Trust Company    January 13, 2017   \n",
       "8    AR     91                         Today's Bank  September 23, 2016   \n",
       "9    GA  11297                          United Bank     August 19, 2016   \n",
       "10   PA  35312  First-Citizens Bank & Trust Company         May 6, 2016   \n",
       "11   TN   9956           The Bank of Fayette County      April 29, 2016   \n",
       "12   WI  20364  First-Citizens Bank & Trust Company      March 11, 2016   \n",
       "13   WA  35156                       Twin City Bank     October 2, 2015   \n",
       "14   GA  35259                        Fidelity Bank     October 2, 2015   \n",
       "15   CO  34112            United Fidelity Bank, fsb       July 10, 2015   \n",
       "16   IL  57772             Republic Bank of Chicago         May 8, 2015   \n",
       "17   PR  32102         Banco Popular de Puerto Rico   February 27, 2015   \n",
       "18   GA  33938  First-Citizens Bank & Trust Company   February 13, 2015   \n",
       "19   IL  20290            United Fidelity Bank, fsb    January 23, 2015   \n",
       "20   FL  17557                       First NBC Bank    January 16, 2015   \n",
       "21   MN  34983                            BankVista   December 19, 2014   \n",
       "22   CA  34738    Bank of Southern California, N.A.    November 7, 2014   \n",
       "23   IL    916                  State Bank of Texas    October 24, 2014   \n",
       "24   MD   4862                          Howard Bank    October 17, 2014   \n",
       "25   IL  28462                 Providence Bank, LLC       July 25, 2014   \n",
       "26   GA  58125            Community & Southern Bank       July 18, 2014   \n",
       "27   OK  12483      Alva State Bank & Trust Company       June 27, 2014   \n",
       "28   FL  21793  Landmark Bank, National Association       June 20, 2014   \n",
       "29   IL  10450                  Great Southern Bank       June 20, 2014   \n",
       "..   ..    ...                                  ...                 ...   \n",
       "525  AR  33901       Pulaski Bank and Trust Company         May 9, 2008   \n",
       "526  MO   1971                        Security Bank       March 7, 2008   \n",
       "527  MO  24660       Liberty Bank and Trust Company    January 25, 2008   \n",
       "528  OH  16848         The Citizens Banking Company     October 4, 2007   \n",
       "529  GA  32575                           ING DIRECT  September 28, 2007   \n",
       "530  PA  35353  Allegheny Valley Bank of Pittsburgh    February 2, 2007   \n",
       "531  UT   1249                        Far West Bank       June 25, 2004   \n",
       "532  NY  26778                     Union State Bank      March 19, 2004   \n",
       "533  FL  26838              Hancock Bank of Florida      March 12, 2004   \n",
       "534  NJ  31330                          No Acquirer   February 14, 2004   \n",
       "535  PA  27203                       Earthstar Bank   November 14, 2003   \n",
       "536  WI  11639                        The Park Bank         May 9, 2003   \n",
       "537  CA  27094                            Beal Bank    February 7, 2003   \n",
       "538  LA  16445            Sabine State Bank & Trust   December 17, 2002   \n",
       "539  TN   9961                          No Acquirer    November 8, 2002   \n",
       "540  GA  33784                          No Acquirer  September 30, 2002   \n",
       "541  IL  29355               Chicago Community Bank       June 27, 2002   \n",
       "542  CT  19183                   Hudson United Bank       June 26, 2002   \n",
       "543  MI  34979                          No Acquirer      March 28, 2002   \n",
       "544  FL  26652                       Bank Leumi USA       March 1, 2002   \n",
       "545  AZ  22314                          No Acquirer    February 7, 2002   \n",
       "546  OH   8966       The State Bank & Trust Company    February 1, 2002   \n",
       "547  TX  22002     The Security State Bank of Pecos    January 18, 2002   \n",
       "548  FL  24382     Israel Discount Bank of New York    January 11, 2002   \n",
       "549  AR  34248                   Delta Trust & Bank   September 7, 2001   \n",
       "550  IL  32646                Superior Federal, FSB       July 27, 2001   \n",
       "551  OH   6629                    North Valley Bank         May 3, 2001   \n",
       "552  NH  34264  Southern New Hampshire Bank & Trust    February 2, 2001   \n",
       "553  IL   3815              Banterra Bank of Marion   December 14, 2000   \n",
       "554  HI  21029                   Bank of the Orient    October 13, 2000   \n",
       "\n",
       "           Updated Date  \n",
       "0     February 21, 2018  \n",
       "1     February 21, 2018  \n",
       "2         July 26, 2017  \n",
       "3        March 22, 2018  \n",
       "4      December 5, 2017  \n",
       "5         March 7, 2018  \n",
       "6          May 18, 2017  \n",
       "7          May 18, 2017  \n",
       "8    September 25, 2017  \n",
       "9     December 13, 2018  \n",
       "10    November 13, 2018  \n",
       "11   September 14, 2018  \n",
       "12       March 13, 2017  \n",
       "13    February 19, 2018  \n",
       "14         July 9, 2018  \n",
       "15    February 20, 2018  \n",
       "16        July 12, 2016  \n",
       "17         May 13, 2015  \n",
       "18       April 21, 2015  \n",
       "19    November 15, 2017  \n",
       "20    November 15, 2017  \n",
       "21      January 3, 2018  \n",
       "22    November 10, 2016  \n",
       "23      January 6, 2016  \n",
       "24    February 19, 2018  \n",
       "25    December 12, 2016  \n",
       "26      October 6, 2017  \n",
       "27    February 21, 2018  \n",
       "28    February 14, 2018  \n",
       "29        June 26, 2015  \n",
       "..                  ...  \n",
       "525     August 28, 2012  \n",
       "526     August 28, 2012  \n",
       "527    October 26, 2012  \n",
       "528  September 12, 2016  \n",
       "529     August 28, 2012  \n",
       "530    October 27, 2010  \n",
       "531       April 9, 2008  \n",
       "532       April 9, 2008  \n",
       "533      April 17, 2018  \n",
       "534       April 9, 2008  \n",
       "535     October 6, 2017  \n",
       "536        June 5, 2012  \n",
       "537    October 20, 2008  \n",
       "538    October 20, 2004  \n",
       "539      March 18, 2005  \n",
       "540  September 11, 2006  \n",
       "541     October 6, 2017  \n",
       "542   February 14, 2012  \n",
       "543      March 18, 2005  \n",
       "544       April 9, 2008  \n",
       "545    February 5, 2015  \n",
       "546    October 25, 2012  \n",
       "547    November 6, 2003  \n",
       "548  September 21, 2015  \n",
       "549     October 6, 2017  \n",
       "550     August 19, 2014  \n",
       "551   November 18, 2002  \n",
       "552   February 18, 2003  \n",
       "553      March 17, 2005  \n",
       "554      March 17, 2005  \n",
       "\n",
       "[555 rows x 7 columns]"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "banks"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Powerful no? Now let's turn that into an exercise.\n",
    "\n",
    "### Exercise 9\n",
    "Given the data you just extracted above, can you analyse how many banks have failed per state?\n",
    "\n",
    "Georgia (GA) should be the state with the most failed banks!\n",
    "\n",
    "*Hint: try searching the web for pandas counting occurrences* "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GA    93\n",
       "FL    75\n",
       "IL    69\n",
       "CA    41\n",
       "MN    23\n",
       "Name: ST, dtype: int64"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "banks.ST.value_counts().head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Data Cleaning <a name=\"cleaning\"></a>\n",
    "While doing data analysis and modeling, a significant amount of time is spent on data preparation: loading, cleaning, transforming and rearranging. Such tasks are often reported to take **up to 80%** or more of a data analyst's time. Often the way the data is stored in files isn't in the correct format and needs to be modified. Researchers usually do this on an ad-hoc basis using programming languages like Python.\n",
    "\n",
    "In this chapter, we will discuss tools for handling missing data, duplicate data, string manipulation, and some other analytical data transformations.\n",
    "\n",
    "## Handling missing data <a name=\"missing\"></a>\n",
    "Mussing data occurs commonly in many data analysis applications. One of the goals of pandas is to make working with missing data as painless as possible.\n",
    "\n",
    "In pandas, missing numeric data is represented by `NaN` (Not a Number) and can easily be handled:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0     orange\n",
       "1     tomato\n",
       "2        NaN\n",
       "3    avocado\n",
       "dtype: object"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "string_data = pd.Series(['orange', 'tomato', np.nan, 'avocado'])\n",
    "string_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    False\n",
       "1    False\n",
       "2     True\n",
       "3    False\n",
       "dtype: bool"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "string_data.isnull()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Furthermore, the pandas `NaN` is functionally equlevant to the standard Python type `NoneType` which can be defined with `x = None`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0       None\n",
       "1     tomato\n",
       "2        NaN\n",
       "3    avocado\n",
       "dtype: object"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "string_data[0] = None\n",
    "string_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0     True\n",
       "1    False\n",
       "2     True\n",
       "3    False\n",
       "dtype: bool"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "string_data.isnull()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here are some other methods which you can find useful:\n",
    "    \n",
    "| Method | Description |\n",
    "| -- | -- |\n",
    "| dropna | Filter axis labels based on whether the values of each label have missing data|\n",
    "| fillna | Fill in missing data with some value |\n",
    "| isnull | Return boolean values indicating which values are missing |\n",
    "| notnull | Negation of isnull |\n",
    "\n",
    "### Exercise 10\n",
    "Remove the missing data below using the appropriate method"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    1.0\n",
       "2    3.0\n",
       "3    4.0\n",
       "5    6.0\n",
       "dtype: float64"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.Series([1, None, 3, 4, None, 6])\n",
    "data.dropna()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`dropna()` by default removes any row/column that has a missing value. What if we want to remove only rows in which all of the data is missing though?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.0</td>\n",
       "      <td>6.5</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>6.5</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     0    1    2\n",
       "0  1.0  6.5  3.0\n",
       "1  1.0  NaN  NaN\n",
       "2  NaN  NaN  NaN\n",
       "3  NaN  6.5  3.0"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.DataFrame([[1., 6.5, 3.], [1., None, None],\n",
    "                    [None, None, None], [None, 6.5, 3.]])\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.0</td>\n",
       "      <td>6.5</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     0    1    2\n",
       "0  1.0  6.5  3.0"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.0</td>\n",
       "      <td>6.5</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>6.5</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     0    1    2\n",
       "0  1.0  6.5  3.0\n",
       "1  1.0  NaN  NaN\n",
       "3  NaN  6.5  3.0"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.dropna(how=\"all\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 11\n",
    "That's fine if we want to remove missing data, what if we want to fill in missing data? Do you know of a way? Try to fill in all of the missing values from the data below with **0s**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.DataFrame([[1., 6.5, 3.], [2., None, None],\n",
    "                    [None, None, None], [None, 1.5, 9.]])\n",
    "\n",
    "data.fillna()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "pandas also allows us to interpolate the data instead of just filling it with a constant. The easiest way to do that is shown below, but there are more complex ones that are not covered in this course."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.fillna(method=\"ffill\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you want you can explore the other capabilities of [`fillna`](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.fillna.html)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data Transformation  <a name=\"transformation\"></a>\n",
    "### Removing duplicates\n",
    "Duplicate data can be a serious issue, luckily pandas offers a simple way to remove duplicates"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.DataFrame([1, 2, 3, 4, 3, 2, 1])\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.drop_duplicates()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can also select which rows to keep"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.drop_duplicates(keep=\"last\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Replacing data\n",
    "You've already seen how you can fill in missing data with `fillna()`. That is actually a special case of more general value replacement. That is done via the `replace()` method.\n",
    "\n",
    "Let's consider an example where the dataset given to us had `-999` as sentinel values for missing data instead of `NaN`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.DataFrame([1., -999., 2., -999., 3., 4., -999, -999, 7.])\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.replace(-999, np.nan)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Detection and Filtering Outliers\n",
    "Filtering or transforming outliers is largely a matter of applying array operations. Consider a DataFrame with some normally distributed data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>1000.000000</td>\n",
       "      <td>1000.000000</td>\n",
       "      <td>1000.000000</td>\n",
       "      <td>1000.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>-0.007632</td>\n",
       "      <td>0.050024</td>\n",
       "      <td>-0.012849</td>\n",
       "      <td>0.016784</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.998612</td>\n",
       "      <td>1.006627</td>\n",
       "      <td>0.964622</td>\n",
       "      <td>1.000706</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-2.957364</td>\n",
       "      <td>-3.502528</td>\n",
       "      <td>-3.227869</td>\n",
       "      <td>-3.169486</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-0.665692</td>\n",
       "      <td>-0.626164</td>\n",
       "      <td>-0.662087</td>\n",
       "      <td>-0.670290</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.006478</td>\n",
       "      <td>0.048645</td>\n",
       "      <td>-0.030726</td>\n",
       "      <td>0.042760</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>0.669843</td>\n",
       "      <td>0.707385</td>\n",
       "      <td>0.645383</td>\n",
       "      <td>0.703211</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>2.772749</td>\n",
       "      <td>3.179202</td>\n",
       "      <td>3.247557</td>\n",
       "      <td>2.902432</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 0            1            2            3\n",
       "count  1000.000000  1000.000000  1000.000000  1000.000000\n",
       "mean     -0.007632     0.050024    -0.012849     0.016784\n",
       "std       0.998612     1.006627     0.964622     1.000706\n",
       "min      -2.957364    -3.502528    -3.227869    -3.169486\n",
       "25%      -0.665692    -0.626164    -0.662087    -0.670290\n",
       "50%       0.006478     0.048645    -0.030726     0.042760\n",
       "75%       0.669843     0.707385     0.645383     0.703211\n",
       "max       2.772749     3.179202     3.247557     2.902432"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.DataFrame(np.random.randn(1000, 4))\n",
    "data.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Suppose you now want to lower all absolute values exceeding 3 from one of the columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "86     3.247557\n",
       "211    3.133593\n",
       "494   -3.227869\n",
       "Name: 2, dtype: float64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "col = data[2]\n",
    "col[np.abs(col) > 3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>1000.000000</td>\n",
       "      <td>1000.000000</td>\n",
       "      <td>1000.000000</td>\n",
       "      <td>1000.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>-0.007632</td>\n",
       "      <td>0.050358</td>\n",
       "      <td>-0.013003</td>\n",
       "      <td>0.016953</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.998612</td>\n",
       "      <td>1.004265</td>\n",
       "      <td>0.962654</td>\n",
       "      <td>1.000180</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-2.957364</td>\n",
       "      <td>-3.000000</td>\n",
       "      <td>-3.000000</td>\n",
       "      <td>-3.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-0.665692</td>\n",
       "      <td>-0.626164</td>\n",
       "      <td>-0.662087</td>\n",
       "      <td>-0.670290</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.006478</td>\n",
       "      <td>0.048645</td>\n",
       "      <td>-0.030726</td>\n",
       "      <td>0.042760</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>0.669843</td>\n",
       "      <td>0.707385</td>\n",
       "      <td>0.645383</td>\n",
       "      <td>0.703211</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>2.772749</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>2.902432</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 0            1            2            3\n",
       "count  1000.000000  1000.000000  1000.000000  1000.000000\n",
       "mean     -0.007632     0.050358    -0.013003     0.016953\n",
       "std       0.998612     1.004265     0.962654     1.000180\n",
       "min      -2.957364    -3.000000    -3.000000    -3.000000\n",
       "25%      -0.665692    -0.626164    -0.662087    -0.670290\n",
       "50%       0.006478     0.048645    -0.030726     0.042760\n",
       "75%       0.669843     0.707385     0.645383     0.703211\n",
       "max       2.772749     3.000000     3.000000     2.902432"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[np.abs(data) > 3] = np.sign(data) * 3\n",
    "data.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 12\n",
    "Let's load again our file with home prices and filter out homes based on our preference:\n",
    "1. Load up the file `data/homes.csv`\n",
    "2. The data contains some duplicates. Filter them out.\n",
    "3. Let's say that the most we can spend on a house is £150. Keep only houses that have a **sell**ing price less than £150 and remove the rest\n",
    "4. Select only houses that have 4 or more bedrooms\n",
    "5. Select only houses that have 3 or more baths\n",
    "\n",
    "You should end up with only 2 houses"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Sell</th>\n",
       "      <th>List</th>\n",
       "      <th>Living</th>\n",
       "      <th>Rooms</th>\n",
       "      <th>Beds</th>\n",
       "      <th>Baths</th>\n",
       "      <th>Age</th>\n",
       "      <th>Acres</th>\n",
       "      <th>Taxes</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>142</td>\n",
       "      <td>160</td>\n",
       "      <td>28</td>\n",
       "      <td>10</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>60</td>\n",
       "      <td>0.28</td>\n",
       "      <td>3167</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>135</td>\n",
       "      <td>140</td>\n",
       "      <td>18</td>\n",
       "      <td>7</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>9</td>\n",
       "      <td>0.57</td>\n",
       "      <td>3028</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Sell  List  Living  Rooms  Beds  Baths  Age  Acres  Taxes\n",
       "0   142   160      28     10     5      3   60   0.28   3167\n",
       "6   135   140      18      7     4      3    9   0.57   3028"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.read_csv(\"data/homes.csv\")\n",
    "data = data.drop_duplicates()\n",
    "data = data[data[\"Sell\"] < 150]\n",
    "# data[data[\"Age\"] > 2]\n",
    "data = data[data[\"Beds\"] >= 4]\n",
    "data[data[\"Baths\"] >= 3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}