{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task"
   },
   "source": [
    "# *Introduction to* Data Analysis and Plotting with Pandas\n",
    "## JSC Tutorial\n",
    "\n",
    "Andreas Herten, Forschungszentrum Jülich, 26 February 2019"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "onlypresentation",
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "source": [
    "**Version: Slides**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "onlysolution",
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "source": [
    "**Version: Solutions**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "onlytask",
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "source": [
    "**Version: Tasks**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## My Motivation\n",
    "\n",
    "* I like Python\n",
    "* I like plotting data\n",
    "* I like sharing\n",
    "* I think Pandas is awesome and you should use it too"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task"
   },
   "source": [
    "## Outline\n",
    "\n",
    "* [Task 1](#task1)\n",
    "* [Task 2](#task2)\n",
    "* [Task 3](#task3)\n",
    "* [Task 4](#task4)\n",
    "* [Task 5](#task5)\n",
    "* [Task 6](#task6)\n",
    "* [Task 7](#task7)\n",
    "* [Bonus Task](#taskb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Tutorial Setup\n",
    "\n",
    "* 60 minutes (we might do this again for some advanced stuff if you want to)\n",
    "* Alternating between lecture and hands-on\n",
    "* Please give status via **[pollev.com/aherten538](https://pollev.com/aherten538)**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "* Please open Jupyter Notebook of this session\n",
    "    - … either on your **local machine** (which has Pandas)\n",
    "    - … or on the **JSC Jupyter service** at https://jupyter-jsc.fz-juelich.de/\n",
    "        - Either `pip install --user pandas seaborn` once in a shell and `cp $PROJECT_cjsc/herten1/pandas/notebook.ipynb ~/`\n",
    "        - Or \n",
    "            1. `ln -s $PROJECT_cjsc/herten1/pandas ~/.local/share/jupyter/kernels/` and \n",
    "            2. `cp $PROJECT_cjsc/herten1/pandas/notebook-with-kernel.ipynb ~/`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## About Pandas\n",
    "\n",
    "<img style=\"float: right; max-width: 200px;\" width=\"200px\" src=\"img/adorable-animal-animal-photography-1661535.jpg\" />\n",
    "\n",
    "* Python package (Python 2, Python 3)\n",
    "* For data analysis\n",
    "* With data structures (multi-dimensional table; time series), operations\n",
    "* Name from »**Pan**el **Da**ta« (multi-dimensional time series in economics)\n",
    "* Since 2008\n",
    "* https://pandas.pydata.org/\n",
    "* Install [via PyPI](https://pypi.org/project/pandas/): `pip install pandas`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Pandas Cohabitation\n",
    "\n",
    "* Pandas works great together with other established Python tools\n",
    "    * [Jupyter Notebooks](https://jupyter.org/)\n",
    "    * Plotting with [`matplotlib`](https://matplotlib.org/)\n",
    "    * Modelling with [`statsmodels`](https://www.statsmodels.org/stable/index.html), [`scikit-learn`](https://scikit-learn.org/)\n",
    "    * Nicer plots with [`seaborn`](https://seaborn.pydata.org/), [`altair`](https://altair-viz.github.io/), [`plotly`](https://plot.ly/)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## First Steps"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "import pandas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'0.24.1'"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.__version__"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mClass docstring:\u001b[0m\n",
       "    pandas - a powerful data analysis and manipulation library for Python\n",
       "    =====================================================================\n",
       "    \n",
       "    **pandas** is a Python package providing fast, flexible, and expressive data\n",
       "    structures designed to make working with \"relational\" or \"labeled\" data both\n",
       "    easy and intuitive. It aims to be the fundamental high-level building block for\n",
       "    doing practical, **real world** data analysis in Python. Additionally, it has\n",
       "    the broader goal of becoming **the most powerful and flexible open source data\n",
       "    analysis / manipulation tool available in any language**. It is already well on\n",
       "    its way toward this goal.\n",
       "    \n",
       "    Main Features\n",
       "    -------------\n",
       "    Here are just a few of the things that pandas does well:\n",
       "    \n",
       "      - Easy handling of missing data in floating point as well as non-floating\n",
       "        point data.\n",
       "      - Size mutability: columns can be inserted and deleted from DataFrame and\n",
       "        higher dimensional objects\n",
       "      - Automatic and explicit data alignment: objects can be explicitly aligned\n",
       "        to a set of labels, or the user can simply ignore the labels and let\n",
       "        `Series`, `DataFrame`, etc. automatically align the data for you in\n",
       "        computations.\n",
       "      - Powerful, flexible group by functionality to perform split-apply-combine\n",
       "        operations on data sets, for both aggregating and transforming data.\n",
       "      - Make it easy to convert ragged, differently-indexed data in other Python\n",
       "        and NumPy data structures into DataFrame objects.\n",
       "      - Intelligent label-based slicing, fancy indexing, and subsetting of large\n",
       "        data sets.\n",
       "      - Intuitive merging and joining data sets.\n",
       "      - Flexible reshaping and pivoting of data sets.\n",
       "      - Hierarchical labeling of axes (possible to have multiple labels per tick).\n",
       "      - Robust IO tools for loading data from flat files (CSV and delimited),\n",
       "        Excel files, databases, and saving/loading data from the ultrafast HDF5\n",
       "        format.\n",
       "      - Time series-specific functionality: date range generation and frequency\n",
       "        conversion, moving window statistics, moving window linear regressions,\n",
       "        date shifting and lagging, etc."
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%pdoc pd"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## DataFrames\n",
    "### It's all about DataFrames\n",
    "\n",
    "* Main data containers of Pandas\n",
    "    - Linear: `Series`\n",
    "    - Multi Dimension: `DataFrame`\n",
    "* `Series` is *only* special case of `DataFrame`\n",
    "* → Talk about `DataFrame`s, mention some special `Series` cases"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## DataFrames\n",
    "### Construction\n",
    "\n",
    "* To show features of `DataFrame`, let's construct one!\n",
    "* Many construction possibilities\n",
    "    - From lists, dictionaries, `numpy` objects\n",
    "    - From CSV, HDF5, JSON, Excel, HTML, fixed-width files\n",
    "    - From pickled Pandas data\n",
    "    - From clipboard\n",
    "    - *From Feather, Parquest, SAS, SQL, Google BigQuery, STATA*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## DataFrames\n",
    "\n",
    "### Examples, finally"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "ages  = [41, 56, 56, 57, 39, 59, 43, 56, 38, 60]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    0\n",
       "0  41\n",
       "1  56\n",
       "2  56\n",
       "3  57\n",
       "4  39\n",
       "5  59\n",
       "6  43\n",
       "7  56\n",
       "8  38\n",
       "9  60"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.DataFrame(ages)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>56</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    0\n",
       "0  41\n",
       "1  56\n",
       "2  56"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_ages = pd.DataFrame(ages)\n",
    "df_ages.head(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "* Let's add names to ages; put everything into a `dict()`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'Names': ['Liu', 'Rowland', 'Rivers', 'Waters', 'Rice', 'Fields', 'Kerr', 'Romero', 'Davis', 'Hall'], 'Ages': [41, 56, 56, 57, 39, 59, 43, 56, 38, 60]}\n"
     ]
    }
   ],
   "source": [
    "data = {\n",
    "    \"Names\": [\"Liu\", \"Rowland\", \"Rivers\", \"Waters\", \"Rice\", \"Fields\", \"Kerr\", \"Romero\", \"Davis\", \"Hall\"],\n",
    "    \"Ages\": ages\n",
    "}\n",
    "print(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>Names</th>\n",
       "      <th>Ages</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Liu</td>\n",
       "      <td>41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Rowland</td>\n",
       "      <td>56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Rivers</td>\n",
       "      <td>56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Waters</td>\n",
       "      <td>57</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     Names  Ages\n",
       "0      Liu    41\n",
       "1  Rowland    56\n",
       "2   Rivers    56\n",
       "3   Waters    57"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_sample = pd.DataFrame(data)\n",
    "df_sample.head(4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "* Two columns now; one for names, one for ages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['Names', 'Ages'], dtype='object')"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_sample.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "* `DataFrame` always have indexes; auto-generated or custom"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RangeIndex(start=0, stop=10, step=1)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_sample.index"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "* Make `Names` be index with `.set_index()`\n",
    "* `inplace=True` will modifiy the parent frame (*I don't like it*)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>Ages</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Names</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Liu</th>\n",
       "      <td>41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rowland</th>\n",
       "      <td>56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rivers</th>\n",
       "      <td>56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Waters</th>\n",
       "      <td>57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rice</th>\n",
       "      <td>39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fields</th>\n",
       "      <td>59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Kerr</th>\n",
       "      <td>43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Romero</th>\n",
       "      <td>56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Davis</th>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hall</th>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         Ages\n",
       "Names        \n",
       "Liu        41\n",
       "Rowland    56\n",
       "Rivers     56\n",
       "Waters     57\n",
       "Rice       39\n",
       "Fields     59\n",
       "Kerr       43\n",
       "Romero     56\n",
       "Davis      38\n",
       "Hall       60"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_sample.set_index(\"Names\", inplace=True)\n",
    "df_sample"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "* Some more operations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>Ages</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>10.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>50.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>9.009255</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>38.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>41.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>56.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>56.750000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>60.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Ages\n",
       "count  10.000000\n",
       "mean   50.500000\n",
       "std     9.009255\n",
       "min    38.000000\n",
       "25%    41.500000\n",
       "50%    56.000000\n",
       "75%    56.750000\n",
       "max    60.000000"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_sample.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>Names</th>\n",
       "      <th>Liu</th>\n",
       "      <th>Rowland</th>\n",
       "      <th>Rivers</th>\n",
       "      <th>Waters</th>\n",
       "      <th>Rice</th>\n",
       "      <th>Fields</th>\n",
       "      <th>Kerr</th>\n",
       "      <th>Romero</th>\n",
       "      <th>Davis</th>\n",
       "      <th>Hall</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Ages</th>\n",
       "      <td>41</td>\n",
       "      <td>56</td>\n",
       "      <td>56</td>\n",
       "      <td>57</td>\n",
       "      <td>39</td>\n",
       "      <td>59</td>\n",
       "      <td>43</td>\n",
       "      <td>56</td>\n",
       "      <td>38</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Names  Liu  Rowland  Rivers  Waters  Rice  Fields  Kerr  Romero  Davis  Hall\n",
       "Ages    41       56      56      57    39      59    43      56     38    60"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_sample.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['Liu', 'Rowland', 'Rivers', 'Waters', 'Rice', 'Fields', 'Kerr',\n",
       "       'Romero', 'Davis', 'Hall'],\n",
       "      dtype='object', name='Names')"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_sample.T.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "* Also: Arithmetic operations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>Ages</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Names</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Liu</th>\n",
       "      <td>82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rowland</th>\n",
       "      <td>112</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rivers</th>\n",
       "      <td>112</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         Ages\n",
       "Names        \n",
       "Liu        82\n",
       "Rowland   112\n",
       "Rivers    112"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_sample.multiply(2).head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>Names</th>\n",
       "      <th>Ages</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>LiuLiu</td>\n",
       "      <td>82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>RowlandRowland</td>\n",
       "      <td>112</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>RiversRivers</td>\n",
       "      <td>112</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Names  Ages\n",
       "0          LiuLiu    82\n",
       "1  RowlandRowland   112\n",
       "2    RiversRivers   112"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_sample.reset_index().multiply(2).head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>Ages</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Names</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Liu</th>\n",
       "      <td>20.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rowland</th>\n",
       "      <td>28.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rivers</th>\n",
       "      <td>28.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         Ages\n",
       "Names        \n",
       "Liu      20.5\n",
       "Rowland  28.0\n",
       "Rivers   28.0"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(df_sample / 2).head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "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>Ages</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Names</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Liu</th>\n",
       "      <td>1681</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rowland</th>\n",
       "      <td>3136</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rivers</th>\n",
       "      <td>3136</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         Ages\n",
       "Names        \n",
       "Liu      1681\n",
       "Rowland  3136\n",
       "Rivers   3136"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(df_sample * df_sample).head(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "Logical operations allowed as well"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>Ages</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Names</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Liu</th>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rowland</th>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rivers</th>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Waters</th>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rice</th>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fields</th>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Kerr</th>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Romero</th>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Davis</th>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hall</th>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          Ages\n",
       "Names         \n",
       "Liu       True\n",
       "Rowland   True\n",
       "Rivers    True\n",
       "Waters    True\n",
       "Rice     False\n",
       "Fields    True\n",
       "Kerr      True\n",
       "Romero    True\n",
       "Davis    False\n",
       "Hall      True"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_sample > 40"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task 1\n",
    "<a name=\"task1\"></a>\n",
    "\n",
    "* Create data frame with\n",
    "    - 10 names of dinosaurs, \n",
    "    - their favourite prime number, \n",
    "    - and their favourite color\n",
    "* Play around with the frame\n",
    "* Tell me on poll when you're done: [pollev.com/aherten538](https://pollev.com/aherten538)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "nopresentation",
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "source": [
    "Jupyter Notebook 101:\n",
    "\n",
    "* Execute cell: `shift+enter`\n",
    "* New cell in front of current cell: `a`\n",
    "* New cell after current cell: `b`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "happy_dinos = {\n",
    "    \"Dinosaur Name\": [],\n",
    "    \"Favourite Prime\": [],\n",
    "    \"Favourite Color\": []\n",
    "}\n",
    "#df_dinos = "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>Dinosaur Name</th>\n",
       "      <th>Aegyptosaurus</th>\n",
       "      <th>Tyrannosaurus</th>\n",
       "      <th>Panoplosaurus</th>\n",
       "      <th>Isisaurus</th>\n",
       "      <th>Triceratops</th>\n",
       "      <th>Velociraptor</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Favourite Prime</th>\n",
       "      <td>4</td>\n",
       "      <td>8</td>\n",
       "      <td>15</td>\n",
       "      <td>16</td>\n",
       "      <td>23</td>\n",
       "      <td>42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Favourite Color</th>\n",
       "      <td>blue</td>\n",
       "      <td>white</td>\n",
       "      <td>blue</td>\n",
       "      <td>purple</td>\n",
       "      <td>violet</td>\n",
       "      <td>gray</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Dinosaur Name   Aegyptosaurus Tyrannosaurus Panoplosaurus Isisaurus  \\\n",
       "Favourite Prime             4             8            15        16   \n",
       "Favourite Color          blue         white          blue    purple   \n",
       "\n",
       "Dinosaur Name   Triceratops Velociraptor  \n",
       "Favourite Prime          23           42  \n",
       "Favourite Color      violet         gray  "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "happy_dinos = {\n",
    "    \"Dinosaur Name\": [\"Aegyptosaurus\", \"Tyrannosaurus\", \"Panoplosaurus\", \"Isisaurus\", \"Triceratops\", \"Velociraptor\"],\n",
    "    \"Favourite Prime\": [\"4\", \"8\", \"15\", \"16\", \"23\", \"42\"],\n",
    "    \"Favourite Color\": [\"blue\", \"white\", \"blue\", \"purple\", \"violet\", \"gray\"]\n",
    "}\n",
    "df_dinos = pd.DataFrame(happy_dinos).set_index(\"Dinosaur Name\")\n",
    "df_dinos.T"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "Some more `DataFrame` examples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "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",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-2.718282</td>\n",
       "      <td>This</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>1.718282</td>\n",
       "      <td>column</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-1.304068</td>\n",
       "      <td>has</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>0.986231</td>\n",
       "      <td>entries</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-0.718282</td>\n",
       "      <td>entries</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B         C        D     E\n",
       "0  1.2 2018-02-26 -2.718282     This  Same\n",
       "1  1.2 2018-02-26  1.718282   column  Same\n",
       "2  1.2 2018-02-26 -1.304068      has  Same\n",
       "3  1.2 2018-02-26  0.986231  entries  Same\n",
       "4  1.2 2018-02-26 -0.718282  entries  Same"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo = pd.DataFrame({\n",
    "    \"A\": 1.2,\n",
    "    \"B\": pd.Timestamp('20180226'),\n",
    "    \"C\": [(-1)**i * np.sqrt(i) + np.e * (-1)**(i-1) for i in range(5)],\n",
    "    \"D\": pd.Categorical([\"This\", \"column\", \"has\", \"entries\", \"entries\"]),\n",
    "    \"E\": \"Same\"\n",
    "})\n",
    "df_demo"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-2.718282</td>\n",
       "      <td>This</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-1.304068</td>\n",
       "      <td>has</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-0.718282</td>\n",
       "      <td>entries</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>0.986231</td>\n",
       "      <td>entries</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>1.718282</td>\n",
       "      <td>column</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B         C        D     E\n",
       "0  1.2 2018-02-26 -2.718282     This  Same\n",
       "2  1.2 2018-02-26 -1.304068      has  Same\n",
       "4  1.2 2018-02-26 -0.718282  entries  Same\n",
       "3  1.2 2018-02-26  0.986231  entries  Same\n",
       "1  1.2 2018-02-26  1.718282   column  Same"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.sort_values(\"C\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "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",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>0.99</td>\n",
       "      <td>entries</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-0.72</td>\n",
       "      <td>entries</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B     C        D     E\n",
       "3  1.2 2018-02-26  0.99  entries  Same\n",
       "4  1.2 2018-02-26 -0.72  entries  Same"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.round(2).tail(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "A                              6\n",
       "C                          -2.03\n",
       "D    Thiscolumnhasentriesentries\n",
       "E           SameSameSameSameSame\n",
       "dtype: object"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.round(2).sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\\begin{tabular}{lrlrll}\n",
      "\\toprule\n",
      "{} &    A &          B &     C &        D &     E \\\\\n",
      "\\midrule\n",
      "0 &  1.2 & 2018-02-26 & -2.72 &     This &  Same \\\\\n",
      "1 &  1.2 & 2018-02-26 &  1.72 &   column &  Same \\\\\n",
      "2 &  1.2 & 2018-02-26 & -1.30 &      has &  Same \\\\\n",
      "3 &  1.2 & 2018-02-26 &  0.99 &  entries &  Same \\\\\n",
      "4 &  1.2 & 2018-02-26 & -0.72 &  entries &  Same \\\\\n",
      "\\bottomrule\n",
      "\\end{tabular}\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(df_demo.round(2).to_latex())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Reading External Data\n",
    "\n",
    "(Links to documentation)\n",
    "* [`.read_json()`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_json.html#pandas.read_json)\n",
    "* [`.read_csv()`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html#pandas.read_csv)\n",
    "* [`.read_hdf5()`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_hdf.html#pandas.read_hdf)\n",
    "* [`.read_excel()`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html#pandas.read_excel)\n",
    "\n",
    "Example:\n",
    "\n",
    "```json\n",
    "{\n",
    "    \"Character\": [\"Sawyer\", \"…\", \"Walt\"],\n",
    "    \"Actor\": [\"Josh Holloway\", \"…\", \"Malcolm David Kelley\"],\n",
    "    \"Main Cast\": [true,  \"…\", false]\n",
    "}\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>Actor</th>\n",
       "      <th>Main Cast</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Character</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Hurley</th>\n",
       "      <td>Jorge Garcia</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Jack</th>\n",
       "      <td>Matthew Fox</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Kate</th>\n",
       "      <td>Evangeline Lilly</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Locke</th>\n",
       "      <td>Terry O'Quinn</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sawyer</th>\n",
       "      <td>Josh Holloway</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Walt</th>\n",
       "      <td>Malcolm David Kelley</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                          Actor  Main Cast\n",
       "Character                                 \n",
       "Hurley             Jorge Garcia       True\n",
       "Jack                Matthew Fox       True\n",
       "Kate           Evangeline Lilly       True\n",
       "Locke             Terry O'Quinn       True\n",
       "Sawyer            Josh Holloway       True\n",
       "Walt       Malcolm David Kelley      False"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.read_json(\"lost.json\").set_index(\"Character\").sort_index()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task 2\n",
    "<a name=\"task2\"></a>\n",
    "\n",
    "* Read in `nest-data.csv` to `DataFrame`; call it `df`\n",
    "* Get to know it and play a bit with it\n",
    "* Tell me when you're done: [pollev.com/aherten538](https://pollev.com/aherten538)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "exercise": "task"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "id,Nodes,Tasks/Node,Threads/Task,Runtime Program / s,Scale,Plastic,Avg. Neuron Build Time / s,Min. Edge Build Time / s,Max. Edge Build Time / s,Min. Init. Time / s,Max. Init. Time / s,Presim. Time / s,Sim. Time / s,Virt. Memory (Sum) / kB,Local Spike Counter (Sum),Average Rate (Sum),Number of Neurons,Number of Connections,Min. Delay,Max. Delay\n",
      "5,1,2,4,420.42,10,true,0.29,88.12,88.18,1.14,1.20,17.26,311.52,46560664.00,825499,7.48,112500,1265738500,1.5,1.5\n",
      "5,1,4,4,200.84,10,true,0.15,46.03,46.34,0.70,1.01,7.87,142.97,46903088.00,802865,7.03,112500,1265738500,1.5,1.5\n"
     ]
    }
   ],
   "source": [
    "!cat nest-data.csv | head -3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>id</th>\n",
       "      <th>Nodes</th>\n",
       "      <th>Tasks/Node</th>\n",
       "      <th>Threads/Task</th>\n",
       "      <th>Runtime Program / s</th>\n",
       "      <th>Scale</th>\n",
       "      <th>Plastic</th>\n",
       "      <th>Avg. Neuron Build Time / s</th>\n",
       "      <th>Min. Edge Build Time / s</th>\n",
       "      <th>Max. Edge Build Time / s</th>\n",
       "      <th>...</th>\n",
       "      <th>Max. Init. Time / s</th>\n",
       "      <th>Presim. Time / s</th>\n",
       "      <th>Sim. Time / s</th>\n",
       "      <th>Virt. Memory (Sum) / kB</th>\n",
       "      <th>Local Spike Counter (Sum)</th>\n",
       "      <th>Average Rate (Sum)</th>\n",
       "      <th>Number of Neurons</th>\n",
       "      <th>Number of Connections</th>\n",
       "      <th>Min. Delay</th>\n",
       "      <th>Max. Delay</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>420.42</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.29</td>\n",
       "      <td>88.12</td>\n",
       "      <td>88.18</td>\n",
       "      <td>...</td>\n",
       "      <td>1.20</td>\n",
       "      <td>17.26</td>\n",
       "      <td>311.52</td>\n",
       "      <td>46560664.0</td>\n",
       "      <td>825499</td>\n",
       "      <td>7.48</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>200.84</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.15</td>\n",
       "      <td>46.03</td>\n",
       "      <td>46.34</td>\n",
       "      <td>...</td>\n",
       "      <td>1.01</td>\n",
       "      <td>7.87</td>\n",
       "      <td>142.97</td>\n",
       "      <td>46903088.0</td>\n",
       "      <td>802865</td>\n",
       "      <td>7.03</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>8</td>\n",
       "      <td>202.15</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.28</td>\n",
       "      <td>47.98</td>\n",
       "      <td>48.48</td>\n",
       "      <td>...</td>\n",
       "      <td>1.20</td>\n",
       "      <td>7.95</td>\n",
       "      <td>142.81</td>\n",
       "      <td>47699384.0</td>\n",
       "      <td>802865</td>\n",
       "      <td>7.03</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>8</td>\n",
       "      <td>89.57</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.15</td>\n",
       "      <td>20.41</td>\n",
       "      <td>23.21</td>\n",
       "      <td>...</td>\n",
       "      <td>3.04</td>\n",
       "      <td>3.19</td>\n",
       "      <td>60.31</td>\n",
       "      <td>46813040.0</td>\n",
       "      <td>821491</td>\n",
       "      <td>7.23</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>164.16</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.20</td>\n",
       "      <td>40.03</td>\n",
       "      <td>41.09</td>\n",
       "      <td>...</td>\n",
       "      <td>1.58</td>\n",
       "      <td>6.08</td>\n",
       "      <td>114.88</td>\n",
       "      <td>46937216.0</td>\n",
       "      <td>802865</td>\n",
       "      <td>7.03</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   id  Nodes  Tasks/Node  Threads/Task  Runtime Program / s  Scale  Plastic  \\\n",
       "0   5      1           2             4               420.42     10     True   \n",
       "1   5      1           4             4               200.84     10     True   \n",
       "2   5      1           2             8               202.15     10     True   \n",
       "3   5      1           4             8                89.57     10     True   \n",
       "4   5      2           2             4               164.16     10     True   \n",
       "\n",
       "   Avg. Neuron Build Time / s  Min. Edge Build Time / s  \\\n",
       "0                        0.29                     88.12   \n",
       "1                        0.15                     46.03   \n",
       "2                        0.28                     47.98   \n",
       "3                        0.15                     20.41   \n",
       "4                        0.20                     40.03   \n",
       "\n",
       "   Max. Edge Build Time / s  ...  Max. Init. Time / s  Presim. Time / s  \\\n",
       "0                     88.18  ...                 1.20             17.26   \n",
       "1                     46.34  ...                 1.01              7.87   \n",
       "2                     48.48  ...                 1.20              7.95   \n",
       "3                     23.21  ...                 3.04              3.19   \n",
       "4                     41.09  ...                 1.58              6.08   \n",
       "\n",
       "   Sim. Time / s  Virt. Memory (Sum) / kB  Local Spike Counter (Sum)  \\\n",
       "0         311.52               46560664.0                     825499   \n",
       "1         142.97               46903088.0                     802865   \n",
       "2         142.81               47699384.0                     802865   \n",
       "3          60.31               46813040.0                     821491   \n",
       "4         114.88               46937216.0                     802865   \n",
       "\n",
       "   Average Rate (Sum)  Number of Neurons  Number of Connections  Min. Delay  \\\n",
       "0                7.48             112500             1265738500         1.5   \n",
       "1                7.03             112500             1265738500         1.5   \n",
       "2                7.03             112500             1265738500         1.5   \n",
       "3                7.23             112500             1265738500         1.5   \n",
       "4                7.03             112500             1265738500         1.5   \n",
       "\n",
       "   Max. Delay  \n",
       "0         1.5  \n",
       "1         1.5  \n",
       "2         1.5  \n",
       "3         1.5  \n",
       "4         1.5  \n",
       "\n",
       "[5 rows x 21 columns]"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv(\"nest-data.csv\")\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Read CSV Options\n",
    "\n",
    "* See also full [API documentation](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html)\n",
    "* Important parameters\n",
    "    - `sep`: Set separator (for example `:` instead of `,`)\n",
    "    - `header`: Specify info about headers for columns; able to use multi-index for columns!\n",
    "    - `names`: Alternative to `header` – provide your own column titles\n",
    "    - `usecols`: Don't read whole set of columns, but only these; works with any list (`range(0:20:2)`)…\n",
    "    - `skiprows`: Don't read in these rows\n",
    "    - `na_values`: What string(s) to recognize as `N/A` values (which will be ignored during operations on data frame)\n",
    "    - `parse_dates`: Try to parse dates in CSV; different behaviours as to provided data structure; optionally used together with `date_parser`\n",
    "    - `compression`: Treat input file as compressed file (\"infer\", \"gzip\", \"zip\", …)\n",
    "    - `decimal`: Decimal point divider – for German data…\n",
    "    \n",
    "```python\n",
    "pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.', lineterminator=None, quotechar='\"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Slicing of Data Frames\n",
    "\n",
    "### Slicing Columns\n",
    "\n",
    "* Use square-bracket operators to slice data frame: `[]`\n",
    "    * Use column name to select column\n",
    "    * Also: Slice horizontally\n",
    "* Example: Select only columnn `C` from `df_demo`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "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",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-2.718282</td>\n",
       "      <td>This</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>1.718282</td>\n",
       "      <td>column</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-1.304068</td>\n",
       "      <td>has</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B         C       D     E\n",
       "0  1.2 2018-02-26 -2.718282    This  Same\n",
       "1  1.2 2018-02-26  1.718282  column  Same\n",
       "2  1.2 2018-02-26 -1.304068     has  Same"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0   -2.718282\n",
       "1    1.718282\n",
       "2   -1.304068\n",
       "3    0.986231\n",
       "4   -0.718282\n",
       "Name: C, dtype: float64"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo[\"C\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "* Select more than one column by providing list `[]` to slice operator `[]`\n",
    "* *You usually end up forgett one of the brackets…*\n",
    "* Example: Select list of columns `A` and `C`, `[\"A\", \"C\"]` from `df_demo`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>C</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.2</td>\n",
       "      <td>-2.718282</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.2</td>\n",
       "      <td>1.718282</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.2</td>\n",
       "      <td>-1.304068</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.2</td>\n",
       "      <td>0.986231</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.2</td>\n",
       "      <td>-0.718282</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A         C\n",
       "0  1.2 -2.718282\n",
       "1  1.2  1.718282\n",
       "2  1.2 -1.304068\n",
       "3  1.2  0.986231\n",
       "4  1.2 -0.718282"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo[[\"A\", \"C\"]]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Slicing of Data Frames\n",
    "\n",
    "### Slicing rows\n",
    "\n",
    "* Use numberical values to slice into rows\n",
    "* Use ranges just like with Python lists"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "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",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>1.718282</td>\n",
       "      <td>column</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-1.304068</td>\n",
       "      <td>has</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B         C       D     E\n",
       "1  1.2 2018-02-26  1.718282  column  Same\n",
       "2  1.2 2018-02-26 -1.304068     has  Same"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo[1:3]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "* Get a certain range as **per the current sort structure**"
   ]
  },
  {
   "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>A</th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "      <th>D</th>\n",
       "      <th>E</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>1.718282</td>\n",
       "      <td>column</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-1.304068</td>\n",
       "      <td>has</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B         C       D     E\n",
       "1  1.2 2018-02-26  1.718282  column  Same\n",
       "2  1.2 2018-02-26 -1.304068     has  Same"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.iloc[1:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "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",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>1.718282</td>\n",
       "      <td>column</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>0.986231</td>\n",
       "      <td>entries</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B         C        D     E\n",
       "1  1.2 2018-02-26  1.718282   column  Same\n",
       "3  1.2 2018-02-26  0.986231  entries  Same"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.iloc[1:6:2]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "* Attention: `.iloc[]` location might change after re-sorting!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-1.304068</td>\n",
       "      <td>has</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-0.718282</td>\n",
       "      <td>entries</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B         C        D     E\n",
       "2  1.2 2018-02-26 -1.304068      has  Same\n",
       "4  1.2 2018-02-26 -0.718282  entries  Same"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.sort_values(\"C\").iloc[1:3]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "* One more row-slicing option: `.loc[]`\n",
    "* See the difference with a *proper* index (and not the auto-generated default index from before)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>E</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>D</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>This</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-2.718282</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>column</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>1.718282</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>has</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-1.304068</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>entries</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>0.986231</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>entries</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-0.718282</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           A          B         C     E\n",
       "D                                      \n",
       "This     1.2 2018-02-26 -2.718282  Same\n",
       "column   1.2 2018-02-26  1.718282  Same\n",
       "has      1.2 2018-02-26 -1.304068  Same\n",
       "entries  1.2 2018-02-26  0.986231  Same\n",
       "entries  1.2 2018-02-26 -0.718282  Same"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo_indexed = df_demo.set_index(\"D\")\n",
    "df_demo_indexed"
   ]
  },
  {
   "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>A</th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "      <th>E</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>D</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>entries</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>0.986231</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>entries</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-0.718282</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           A          B         C     E\n",
       "D                                      \n",
       "entries  1.2 2018-02-26  0.986231  Same\n",
       "entries  1.2 2018-02-26 -0.718282  Same"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo_indexed.loc[\"entries\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Advanced Slicing: Logical Slicing\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "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",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>1.718282</td>\n",
       "      <td>column</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>0.986231</td>\n",
       "      <td>entries</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B         C        D     E\n",
       "1  1.2 2018-02-26  1.718282   column  Same\n",
       "3  1.2 2018-02-26  0.986231  entries  Same"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo[df_demo[\"C\"] > 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-0.718282</td>\n",
       "      <td>entries</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B         C        D     E\n",
       "4  1.2 2018-02-26 -0.718282  entries  Same"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo[(df_demo[\"C\"] < 0) & (df_demo[\"D\"] == \"entries\")]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Adding to Existing Data Frame\n",
    "\n",
    "* Add new columns with `frame[\"new col\"] = something` or `.insert()`\n",
    "* Add new rows with `frame.append()`\n",
    "* Combine data frames\n",
    "    - Concat: Combine several data frames along an axis\n",
    "    - Merge: Combine data frames on basis of common columns; database-style\n",
    "    - (Join)\n",
    "    - See user guide [on merging](https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-2.718282</td>\n",
       "      <td>This</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>1.718282</td>\n",
       "      <td>column</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-1.304068</td>\n",
       "      <td>has</td>\n",
       "      <td>Same</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B         C       D     E\n",
       "0  1.2 2018-02-26 -2.718282    This  Same\n",
       "1  1.2 2018-02-26  1.718282  column  Same\n",
       "2  1.2 2018-02-26 -1.304068     has  Same"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "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>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-2.718282</td>\n",
       "      <td>This</td>\n",
       "      <td>Same</td>\n",
       "      <td>-3.918282</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>1.718282</td>\n",
       "      <td>column</td>\n",
       "      <td>Same</td>\n",
       "      <td>0.518282</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-1.304068</td>\n",
       "      <td>has</td>\n",
       "      <td>Same</td>\n",
       "      <td>-2.504068</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B         C       D     E         F\n",
       "0  1.2 2018-02-26 -2.718282    This  Same -3.918282\n",
       "1  1.2 2018-02-26  1.718282  column  Same  0.518282\n",
       "2  1.2 2018-02-26 -1.304068     has  Same -2.504068"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo[\"F\"] = df_demo[\"C\"] - df_demo[\"A\"]\n",
    "df_demo.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_demo.insert(len(df_demo) + 1, \"G\", df_demo[\"C\"] ** 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "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",
       "      <th>G</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-1.304068</td>\n",
       "      <td>has</td>\n",
       "      <td>Same</td>\n",
       "      <td>-2.504068</td>\n",
       "      <td>1.700594</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>0.986231</td>\n",
       "      <td>entries</td>\n",
       "      <td>Same</td>\n",
       "      <td>-0.213769</td>\n",
       "      <td>0.972652</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-0.718282</td>\n",
       "      <td>entries</td>\n",
       "      <td>Same</td>\n",
       "      <td>-1.918282</td>\n",
       "      <td>0.515929</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B         C        D     E         F         G\n",
       "2  1.2 2018-02-26 -1.304068      has  Same -2.504068  1.700594\n",
       "3  1.2 2018-02-26  0.986231  entries  Same -0.213769  0.972652\n",
       "4  1.2 2018-02-26 -0.718282  entries  Same -1.918282  0.515929"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.tail(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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",
       "      <th>G</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-2.718282</td>\n",
       "      <td>This</td>\n",
       "      <td>Same</td>\n",
       "      <td>-3.918282</td>\n",
       "      <td>7.389056</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>1.718282</td>\n",
       "      <td>column</td>\n",
       "      <td>Same</td>\n",
       "      <td>0.518282</td>\n",
       "      <td>2.952492</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-1.304068</td>\n",
       "      <td>has</td>\n",
       "      <td>Same</td>\n",
       "      <td>-2.504068</td>\n",
       "      <td>1.700594</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>0.986231</td>\n",
       "      <td>entries</td>\n",
       "      <td>Same</td>\n",
       "      <td>-0.213769</td>\n",
       "      <td>0.972652</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.2</td>\n",
       "      <td>2018-02-26</td>\n",
       "      <td>-0.718282</td>\n",
       "      <td>entries</td>\n",
       "      <td>Same</td>\n",
       "      <td>-1.918282</td>\n",
       "      <td>0.515929</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1.3</td>\n",
       "      <td>2018-02-27</td>\n",
       "      <td>-0.777000</td>\n",
       "      <td>has it?</td>\n",
       "      <td>Same</td>\n",
       "      <td>23.000000</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B         C        D     E          F         G\n",
       "0  1.2 2018-02-26 -2.718282     This  Same  -3.918282  7.389056\n",
       "1  1.2 2018-02-26  1.718282   column  Same   0.518282  2.952492\n",
       "2  1.2 2018-02-26 -1.304068      has  Same  -2.504068  1.700594\n",
       "3  1.2 2018-02-26  0.986231  entries  Same  -0.213769  0.972652\n",
       "4  1.2 2018-02-26 -0.718282  entries  Same  -1.918282  0.515929\n",
       "5  1.3 2018-02-27 -0.777000  has it?  Same  23.000000       NaN"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.append(\n",
    "    {\"A\": 1.3, \"B\": pd.Timestamp(\"2018-02-27\"), \"C\": -0.777, \"D\": \"has it?\", \"E\": \"Same\", \"F\": 23},\n",
    "    ignore_index=True\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Combining Frames\n",
    "\n",
    "* First, create some simpler data frame to show `.concat()` and `.merge()`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>Key</th>\n",
       "      <th>Value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>First</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Second</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Key  Value\n",
       "0   First      1\n",
       "1  Second      1"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_1 = pd.DataFrame({\"Key\": [\"First\", \"Second\"], \"Value\": [1, 1]})\n",
    "df_1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "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>Key</th>\n",
       "      <th>Value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>First</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Second</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Key  Value\n",
       "0   First      2\n",
       "1  Second      2"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_2 = pd.DataFrame({\"Key\": [\"First\", \"Second\"], \"Value\": [2, 2]})\n",
    "df_2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "* Concatenate list of data frame vertically (`axis=0`)"
   ]
  },
  {
   "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>Key</th>\n",
       "      <th>Value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>First</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Second</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>First</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Second</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Key  Value\n",
       "0   First      1\n",
       "1  Second      1\n",
       "0   First      2\n",
       "1  Second      2"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat([df_1, df_2])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "* Same, but re-index"
   ]
  },
  {
   "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>Key</th>\n",
       "      <th>Value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>First</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Second</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>First</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Second</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Key  Value\n",
       "0   First      1\n",
       "1  Second      1\n",
       "2   First      2\n",
       "3  Second      2"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat([df_1, df_2], ignore_index=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "* Concat, but horizontally"
   ]
  },
  {
   "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>Key</th>\n",
       "      <th>Value</th>\n",
       "      <th>Key</th>\n",
       "      <th>Value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>First</td>\n",
       "      <td>1</td>\n",
       "      <td>First</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Second</td>\n",
       "      <td>1</td>\n",
       "      <td>Second</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Key  Value     Key  Value\n",
       "0   First      1   First      2\n",
       "1  Second      1  Second      2"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat([df_1, df_2], axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "* Merge on common column"
   ]
  },
  {
   "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>Key</th>\n",
       "      <th>Value_x</th>\n",
       "      <th>Value_y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>First</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Second</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Key  Value_x  Value_y\n",
       "0   First        1        2\n",
       "1  Second        1        2"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.merge(df_1, df_2, on=\"Key\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Task 3\n",
    "<a name=\"task3\"></a>\n",
    "\n",
    "* Add a column to the Nest data frame called `Virtual Processes` which is the total number of threads across all nodes (i.e. the product of threads per task and tasks per node and nodes)\n",
    "* Remember to tell me when you're done: [pollev.com/aherten538](https://pollev.com/aherten538)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>id</th>\n",
       "      <th>Nodes</th>\n",
       "      <th>Tasks/Node</th>\n",
       "      <th>Threads/Task</th>\n",
       "      <th>Runtime Program / s</th>\n",
       "      <th>Scale</th>\n",
       "      <th>Plastic</th>\n",
       "      <th>Avg. Neuron Build Time / s</th>\n",
       "      <th>Min. Edge Build Time / s</th>\n",
       "      <th>Max. Edge Build Time / s</th>\n",
       "      <th>...</th>\n",
       "      <th>Presim. Time / s</th>\n",
       "      <th>Sim. Time / s</th>\n",
       "      <th>Virt. Memory (Sum) / kB</th>\n",
       "      <th>Local Spike Counter (Sum)</th>\n",
       "      <th>Average Rate (Sum)</th>\n",
       "      <th>Number of Neurons</th>\n",
       "      <th>Number of Connections</th>\n",
       "      <th>Min. Delay</th>\n",
       "      <th>Max. Delay</th>\n",
       "      <th>Virtual Processes</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>420.42</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.29</td>\n",
       "      <td>88.12</td>\n",
       "      <td>88.18</td>\n",
       "      <td>...</td>\n",
       "      <td>17.26</td>\n",
       "      <td>311.52</td>\n",
       "      <td>46560664.0</td>\n",
       "      <td>825499</td>\n",
       "      <td>7.48</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>200.84</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.15</td>\n",
       "      <td>46.03</td>\n",
       "      <td>46.34</td>\n",
       "      <td>...</td>\n",
       "      <td>7.87</td>\n",
       "      <td>142.97</td>\n",
       "      <td>46903088.0</td>\n",
       "      <td>802865</td>\n",
       "      <td>7.03</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>8</td>\n",
       "      <td>202.15</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.28</td>\n",
       "      <td>47.98</td>\n",
       "      <td>48.48</td>\n",
       "      <td>...</td>\n",
       "      <td>7.95</td>\n",
       "      <td>142.81</td>\n",
       "      <td>47699384.0</td>\n",
       "      <td>802865</td>\n",
       "      <td>7.03</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>8</td>\n",
       "      <td>89.57</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.15</td>\n",
       "      <td>20.41</td>\n",
       "      <td>23.21</td>\n",
       "      <td>...</td>\n",
       "      <td>3.19</td>\n",
       "      <td>60.31</td>\n",
       "      <td>46813040.0</td>\n",
       "      <td>821491</td>\n",
       "      <td>7.23</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>164.16</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.20</td>\n",
       "      <td>40.03</td>\n",
       "      <td>41.09</td>\n",
       "      <td>...</td>\n",
       "      <td>6.08</td>\n",
       "      <td>114.88</td>\n",
       "      <td>46937216.0</td>\n",
       "      <td>802865</td>\n",
       "      <td>7.03</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 22 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   id  Nodes  Tasks/Node  Threads/Task  Runtime Program / s  Scale  Plastic  \\\n",
       "0   5      1           2             4               420.42     10     True   \n",
       "1   5      1           4             4               200.84     10     True   \n",
       "2   5      1           2             8               202.15     10     True   \n",
       "3   5      1           4             8                89.57     10     True   \n",
       "4   5      2           2             4               164.16     10     True   \n",
       "\n",
       "   Avg. Neuron Build Time / s  Min. Edge Build Time / s  \\\n",
       "0                        0.29                     88.12   \n",
       "1                        0.15                     46.03   \n",
       "2                        0.28                     47.98   \n",
       "3                        0.15                     20.41   \n",
       "4                        0.20                     40.03   \n",
       "\n",
       "   Max. Edge Build Time / s  ...  Presim. Time / s  Sim. Time / s  \\\n",
       "0                     88.18  ...             17.26         311.52   \n",
       "1                     46.34  ...              7.87         142.97   \n",
       "2                     48.48  ...              7.95         142.81   \n",
       "3                     23.21  ...              3.19          60.31   \n",
       "4                     41.09  ...              6.08         114.88   \n",
       "\n",
       "   Virt. Memory (Sum) / kB  Local Spike Counter (Sum)  Average Rate (Sum)  \\\n",
       "0               46560664.0                     825499                7.48   \n",
       "1               46903088.0                     802865                7.03   \n",
       "2               47699384.0                     802865                7.03   \n",
       "3               46813040.0                     821491                7.23   \n",
       "4               46937216.0                     802865                7.03   \n",
       "\n",
       "   Number of Neurons  Number of Connections  Min. Delay  Max. Delay  \\\n",
       "0             112500             1265738500         1.5         1.5   \n",
       "1             112500             1265738500         1.5         1.5   \n",
       "2             112500             1265738500         1.5         1.5   \n",
       "3             112500             1265738500         1.5         1.5   \n",
       "4             112500             1265738500         1.5         1.5   \n",
       "\n",
       "   Virtual Processes  \n",
       "0                  8  \n",
       "1                 16  \n",
       "2                 16  \n",
       "3                 32  \n",
       "4                 16  \n",
       "\n",
       "[5 rows x 22 columns]"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[\"Virtual Processes\"] = df[\"Nodes\"] * df[\"Tasks/Node\"] * df[\"Threads/Task\"]\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "exercise": "solution"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['id', 'Nodes', 'Tasks/Node', 'Threads/Task', 'Runtime Program / s',\n",
       "       'Scale', 'Plastic', 'Avg. Neuron Build Time / s',\n",
       "       'Min. Edge Build Time / s', 'Max. Edge Build Time / s',\n",
       "       'Min. Init. Time / s', 'Max. Init. Time / s', 'Presim. Time / s',\n",
       "       'Sim. Time / s', 'Virt. Memory (Sum) / kB', 'Local Spike Counter (Sum)',\n",
       "       'Average Rate (Sum)', 'Number of Neurons', 'Number of Connections',\n",
       "       'Min. Delay', 'Max. Delay', 'Virtual Processes'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Aside: Plotting without Pandas\n",
    "\n",
    "### Matplotlib 101\n",
    "\n",
    "* Matplotlib: de-facto standard for plotting in Python\n",
    "* Main interface: `pyplot`; provides MATLAB-like interface\n",
    "* Better: Use object-oriented API with `Figure` and `Axis`\n",
    "* Great integration into Jupyter Notebooks\n",
    "* Since v. 3: Only support for Python 3\n",
    "* → https://matplotlib.org/"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [],
   "source": [
    "x = np.linspace(0, 2*np.pi, 400)\n",
    "y = np.sin(x**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "ax.plot(x, y)\n",
    "ax.set_title('Use like this')\n",
    "ax.set_xlabel(\"Numbers again\");\n",
    "ax.set_ylabel(\"$\\sqrt{x}$\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "* Plot multiple lines into one canvas\n",
    "* Call `ax.plot()` multiple times"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [],
   "source": [
    "y2 = y/np.exp(y*1.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "ax.plot(x, y, label=\"y\")\n",
    "ax.plot(x, y2, label=\"y2\")\n",
    "ax.legend()\n",
    "ax.set_title(\"This plot makes no sense\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task 4\n",
    "<a name=\"task4\"></a>\n",
    "\n",
    "* Sort the data frame by the virtual proccesses\n",
    "* Plot `\"Presim. Time / s\"` and `\"Sim. Time / s\"` of our data frame `df` as a function of the virtual processes\n",
    "* Use a dashed, red line for `\"Presim. Time / s\"`, a blue line for `\"Sim. Time / s\"` (see [API description](https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plot))\n",
    "* Don't forget to label your axes and to add a legend\n",
    "* Submit when you're done: [pollev.com/aherten538](https://pollev.com/aherten538)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "df.sort_values([\"Virtual Processes\", \"Nodes\", \"Tasks/Node\", \"Threads/Task\"], inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "exercise": "solution"
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEKCAYAAAAB0GKPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xl8VdW5//HPQwgJCIqSaJHBgOIAgoFGxOKQioiiFfWK0ksVbr1X2+rtVaut3taK/sSrVdFarcNVXmC1WpwqdWSoQ/WqGChaBJSoKFCUQUAZJfD8/lj7kJPknOSQ5OScJN/367Vfe5+19vDs7OQ8WXtY29wdERGRurTJdAAiItI8KGGIiEhKlDBERCQlShgiIpISJQwREUmJEoaIiKRECUNERFKihCEiIilRwhARkZS0zXQADVFQUOBFRUWZDkNEpFmZO3fuGncv3N3lmnXCKCoqoqysLNNhiIg0K2b2aX2W0ykpERFJiRKGiIikRAlDRERS0qyvYYhI49u+fTvLly9n69atmQ5FGig/P5/u3buTm5vbKOtTwhCRKpYvX06nTp0oKirCzDIdjtSTu7N27VqWL19Or169GmWdOiUlIlVs3bqVLl26KFk0c2ZGly5dGrWlqIQhIjUoWbQMjX0cW2XCWLAAfvlLWLs205GIiDQfrTJhLFkCN94In32W6UhEJJGcnByKi4s5/PDDGT16NJs3b27wOu+9914eeuihBq/n4osvpri4mL59+9K+fXuKi4spLi7miSee4Ne//jWzZs1q8DYSuemmm3jkkUfSsu5UtcqL3gUFYbx6dWbjEJHE2rdvz/z58wEYO3Ys9957L5dffvmuenfH3WnTJvX/eX/0ox81Smx33303AEuXLuW0007bFSfA2Wef3SjbSOSll15i2rRpaVt/KlplC6Mw6kFFCUMk+x177LGUl5ezdOlSDjnkEM4//3wOP/xwli1bxowZMzj66KMZNGgQo0ePZuPGjQBcddVV9O3blwEDBnDFFVcAMGHCBG699VYASktLueyyyygpKeGwww7jnXfe4ayzzqJPnz786le/qnes48eP54knngBC10VXX301xcXFlJSUMG/ePEaMGMGBBx7Ivffeu2uZW265hSOPPJIBAwZw7bXXJlzvV199xTfffENhYdXun1599dVdLZyBAwfy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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "ax.plot(df[\"Virtual Processes\"], df[\"Presim. Time / s\"], linestyle=\"dashed\", color=\"red\")\n",
    "ax.plot(df[\"Virtual Processes\"], df[\"Sim. Time / s\"], \"-b\")\n",
    "ax.set_xlabel(\"Virtual Process\")\n",
    "ax.set_ylabel(\"Time / s\")\n",
    "ax.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Plotting with Pandas\n",
    "\n",
    "* Each data frame hast a `.plot()` function (see [API](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.html))\n",
    "* Plots with Matplotlib\n",
    "* Important API options:\n",
    "    - `kind`: `line` (default), `bar[h]`, `hist`, `box`, `kde`, `scatter`, `hexbin`\n",
    "    - `subplots`: Make a sub-plot for each column (good together with `sharex`, `sharey`)\n",
    "    - `figsize`\n",
    "    - `grid`: Add a grid to plot (use Matplotlib options)\n",
    "    - `style`: Line style per column (accepts list or dict)\n",
    "    - `logx`, `logy`, `loglog`: Logarithmic plots\n",
    "    - `xticks`, `yticks`: Use values for ticks\n",
    "    - `xlim`, `ylim`: Limits of axes\n",
    "    - `yerr`, `xerr`: Add uncertainty to data points\n",
    "    - `stacked`: Stack a bar plot\n",
    "    - `secondary_y`: Use a secondary `y` axis for this plot\n",
    "    - Labeling\n",
    "        * `title`: Add title to plot (Use a list of strings if `subplots=True`)\n",
    "        * `legend`: Add a legend\n",
    "        * `table`: If `true`, add table of data under plot\n",
    "    - `**kwds`: Every non-parsed keyword is passed through to Matplotlib's plotting methods"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "* Either slice and plot…"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x144 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_demo[\"C\"].plot(figsize=(10, 2));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "* … or plot and select"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x144 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_demo.plot(y=\"C\", figsize=(10, 2));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* I prefer slicing first, as it allows for further operations on the sliced data frame"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_demo[\"C\"].plot(kind=\"bar\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* There are pseudo-sub-functions for each of the plot `kind`s\n",
    "* I prefer to just call `.plot(kind=\"smthng\")`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAD4CAYAAAD4k815AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAACTlJREFUeJzt3X+oZ3ldx/HXe3dQEqL+mCFtp+sNlGILibyshH9kZDQykRUEbkGY4vyTZPRHbS4R/REM9Ef/FMRQawTlQsGyC7u1rVlKP9lZEXVdM4sRV7BWlEQUbd13f8yVuy7jzuz9nr7nzvv7ePwz3HO+fM6bw53nPfec73emujsAzHHL2gMAsCxhBxhG2AGGEXaAYYQdYBhhBxhG2AGGEXaAYYQdYJhTaxz09OnTvb+/v8ahAW5ajz322Ge7+8z1XrdK2Pf393P58uU1Dg1w06qqT97I69yKARhG2AGGEXaAYYQdYBhhBxhG2AGGEXaAYYQdYJhVPqDEsvbvenDtEXLl4vm1RwAOuWIHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gmEXCXlX3VNV/V9VHllgPgONb6or9T5KcW2gtADawSNi7+/1JPrfEWgBs5tS2DlRVF5JcSJK9vb1tHRZ21v5dD649Qq5cPL/2CDtpaw9Pu/tSdx9098GZM2e2dViAneNdMQDDCDvAMEu93fHdSf45yfdU1ZNV9dYl1gXghVvk4Wl337nEOgBszq0YgGGEHWAYYQcYRtgBhhF2gGGEHWAYYQcYRtgBhhF2gGGEHWAYYQcYRtgBhhF2gGGEHWAYYQcYRtgBhhF2gGGEHWAYYQcYRtgBhhF2gGGEHWAYYQcYRtgBhhF2gGGEHWAYYQcYRtgBhhF2gGGEHWAYYQcYRtgBhhF2gGGEHWAYYQcYZpGwV9W5qvq3qvpEVd21xJoAHM/GYa+qW5P8QZI3JLk9yZ1Vdfum6wJwPEtcsd+R5BPd/Z/d/dUk9yZ54wLrAnAMpxZY47Ykn3rW108mec1zX1RVF5JcSJK9vb2ND7p/14Mbr7GpKxfPrz1CkpMzx0ng++LISZnjJNi174utPTzt7kvdfdDdB2fOnNnWYQF2zhJh/3SS73rW12cPtwGwgiXC/miSV1bVd1fVi5K8KckDC6wLwDFsfI+9u5+uqrcneTjJrUnu6e7HN54MgGNZ4uFpuvuhJA8tsRYAm/HJU4BhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gmFNrDwDw/+3KxfNrj7BVrtgBhhF2gGGEHWAYYQcYRtgBhhF2gGGEHWAYYQcYRtgBhtko7FX1s1X1eFU9U1UHSw0FwPFtesX+kSQ/k+T9C8wCwAI2+rdiuvuJJKmqZaYBYGNbu8deVReq6nJVXX7qqae2dViAnXPdK/aqek+Sl15j193dff+NHqi7LyW5lCQHBwd9wxMC8IJcN+zd/fptDALAMrzdEWCYTd/u+NNV9WSSH0ryYFU9vMxYABzXpu+KuS/JfQvNAsAC3IoBGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gmI0+oAQnzZWL59ceAVbnih1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGGajsFfV71bVx6rqQ1V1X1V9+1KDAXA8m16xP5Lk+7v7VUk+nuQ3Nh8JgE1sFPbu/pvufvrwy39JcnbzkQDYxJL32N+S5K8WXA+AYzh1vRdU1XuSvPQau+7u7vsPX3N3kqeT/NnzrHMhyYUk2dvbO9awAFzfdcPe3a9/vv1V9eYkP5HkR7u7n2edS0kuJcnBwcE3fR0Am7lu2J9PVZ1L8mtJfri7v7TMSABsYtN77L+f5FuTPFJVH6yqP1xgJgA2sNEVe3e/YqlBAFiGT54CDCPsAMMIO8Awwg4wjLADDCPsAMMIO8Awwg4wjLADDCPsAMMIO8Awwg4wjLADDCPsAMMIO8Awwg4wjLADDCPsAMMIO8Awwg4wjLADDCPsAMMIO8Awwg4wjLADDCPsAMMIO8Awp9Ye4LiuXDy/9ggAJ5IrdoBhhB1gGGEHGEbYAYYRdoBhhB1gGGEHGEbYAYap7t7+QaueSvLJrR/4G51O8tmVZzgpnIsjzsUR5+LISTkXL+/uM9d70SphPwmq6nJ3H6w9x0ngXBxxLo44F0dutnPhVgzAMMIOMMwuh/3S2gOcIM7FEefiiHNx5KY6Fzt7jx1gql2+YgcYSdgBhhF2gGFu2v9B6YWqqu9N8sYktx1u+nSSB7r7ifWmgpOjqu5I0t39aFXdnuRcko9190Mrj7a6qvrT7v6Ftee4UTvx8LSqfj3JnUnuTfLk4eazSd6U5N7uvrjWbKzr8Af+bUn+tbu/+Kzt57r7r9ebbLuq6reSvCFXL/YeSfKaJH+X5MeSPNzdv7PieFtVVQ88d1OSH0ny3iTp7p/c+lAv0K6E/eNJvq+7//c521+U5PHufuU6k508VfWL3f2utefYhqr65SS/lOSJJD+Q5B3dff/hvg909w+uOd82VdWHc/UcvDjJZ5Kc7e4vVNW35OoPvVetOuAWVdUHknw0yR8l6VwN+7tz9UIw3f2+9aa7Mbtyj/2ZJN95je0vO9zHkd9ee4AteluSV3f3TyV5XZLfrKp3HO6r1aZax9Pd/bXu/lKS/+juLyRJd385u/d35CDJY0nuTvI/3f33Sb7c3e+7GaKe7M499l9J8rdV9e9JPnW4bS/JK5K8fbWpVlJVH/pmu5J8xzZnWdktX7/90t1Xqup1Sf6yql6e3Qv7V6vqJYdhf/XXN1bVt2XHwt7dzyT5var6i8M//ys3WSt34lZMklTVLUnuyDc+PH20u7+23lTrOPxG/fEkn3/uriT/1N3X+u1mnKp6b5Jf7e4PPmvbqST3JPn57r51teG2rKpe3N1fucb200le1t0fXmGsE6Gqzid5bXe/c+1ZbtTOhJ0jVfXHSd7V3f9wjX1/3t0/t8JYW1dVZ3P1FsRnrrHvtd39jyuMBRsTdoBhduXhKcDOEHaAYYQdYBhhBxjm/wBdj80waBTiTgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_demo[\"C\"].plot.bar();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_demo[\"C\"].plot(kind=\"bar\", legend=True, figsize=(12, 4), ylim=(-1, 3), title=\"This is a C plot\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task 5\n",
    "<a name=\"task5\"></a>\n",
    "\n",
    "Use the NEST data frame `df` to:\n",
    "\n",
    "1. Make the virtual processes the index of the data frame (`.set_index()`)\n",
    "2. Plot `\"Presim. Program / s\"` and `\"Sim. Time / s`\" individually\n",
    "3. Plot them onto one common canvas!\n",
    "4. Make them have the same line colors and styles as before\n",
    "5. Add a legend, add missing labels\n",
    "\n",
    "* Done? Tell me! [pollev.com/aherten538](https://pollev.com/aherten538)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [],
   "source": [
    "df.set_index(\"Virtual Processes\", inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {
    "exercise": "solution"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[\"Presim. Time / s\"].plot(figsize=(10, 3));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "exercise": "solution"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[\"Sim. Time / s\"].plot(figsize=(10, 3));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[\"Presim. Time / s\"].plot();\n",
    "df[\"Sim. Time / s\"].plot();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = df[[\"Presim. Time / s\", \"Sim. Time / s\"]].plot();\n",
    "ax.set_ylabel(\"Time / s\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## More Plotting with Pandas\n",
    "### Our first proper Pandas plot\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[[\"Presim. Time / s\", \"Sim. Time / s\"]].plot();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* **That's why I think Pandas is great!**\n",
    "* It has great defaults to quickly plot data\n",
    "* Plotting functionality is very versatile\n",
    "* Before plotting, data can be *massaged* within data frames, if needed"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## More Plotting with Pandas\n",
    "### Some versatility"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_demo[[\"A\", \"C\", \"F\"]].plot(kind=\"bar\", stacked=True);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_demo[df_demo[\"F\"] < 0][[\"A\", \"C\", \"F\"]].plot(kind=\"bar\", stacked=True);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x288 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_demo[df_demo[\"F\"] < 0][[\"A\", \"C\", \"F\"]]\\\n",
    "    .plot(kind=\"barh\", subplots=True, sharex=True, title=\"Subplots\", figsize=(12, 4));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x432 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_demo[df_demo[\"F\"] < 0][[\"A\", \"F\"]]\\\n",
    "    .plot(\n",
    "        style=[\"-*r\", \"--ob\"], \n",
    "        secondary_y=\"A\", \n",
    "        figsize=(12, 6),\n",
    "        table=True\n",
    "    );"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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HTt2pHr16oU+59JLL+X1118/fkIjwNKlS+nfv38JPpvwMtYGNx8HIDAJ/F9APPCstfbPhT0+qW5Tm75nS9DHFREREc80cl0mvv/+e04//XTfMYpl5cqVPPLII0yZMqXIx6amplKlShX27dtHly5dWLp0KfXr1y/2sT7//HP++c9/FnisU71uxpg0a23p5qqUQkjmXFtr5wBzQrEvEREREYkeHTt2pE+fPuTk5PxkreuTDR48mAMHDpCZmcl9991XomIN7gTKP/3pT8HELXNhO6FRRERERGJT/iX1CrNw4cKgjhPJ00GO0eXPRURERERCROVaRERERCREVK5FREREREJE5VpEREREJER0QqOIiIiI/ER8fDxnnXXW8dtvvPEGKSkp/gJFCZVrERERkVjwcGs4shsq14O71wa9u+TkZL744osQBCtfNC1ERERESm/rJ7B5iSt24teR3Se+Fy80ci0iIiKll5vl3qvQlZ13xsPOrwu+f+snga+DAax7P7E6xCVAk/NO/Zz6Z8HFDxV62KNHj9KhQwcAmjdvzuuvv16q+OWNyrWIiIiU3LEpCMfEJ7pCF6IpCVICx37BwZ74/vj20tG0kNJRuRYREZGSO3mkOifz1NsleEWMMB//RSe+IuRk5L2vXA9unB2ejHKcyrWIiIiUjLWQUAmy0vJtDExJSEiG7EyokOgrXflz7C8FE6u79zkZMPGgvzzlnE5oFBERkeKzFub+3hXrTjfmvwO6jIGso/BMf9i33lvEcqtyvRPfixcq1yIiIlI81sL798Ky/4PON8El/3QnzYErdIMehmFT4cdNMKkXfD3Da9xy5+61bsQ6RHPeU1NTQ7Kf8kblWkRERIpmLbw7AT563I1QX/IPiItzq1E0655X6E4fDOOWwGlnwGs3waxfQuYRv9lFwkjlWkRERApnLbxzD3zyXzjvVrj4b2BMwY+v0QRumA097oLPp8KTfWDXt+HLK+KRyrWIiIgULDcX5twFn06CC26DgQ8WXqyPia8A/e6D69+A9APwVF/47BlX1EVimMq1iIiInFpuLsy+Ez57Grr+Gi56oHjFOr8Wvd00kWbd3L5eHQVHD5RF2phj9YtIiUTK66VyLSIiIj+Vmwtv3w4rnoPud0D/P5a8WB9TpR5cO8PtY9VseKIHbP0stHljTFJSEvv27YuYwhjprLXs27ePpKQk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\n",
      "text/plain": [
       "<Figure size 864x432 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_demo[df_demo[\"F\"] < 0][[\"A\", \"F\"]]\\\n",
    "    .plot(\n",
    "        style=[\"-*r\", \"--ob\"], \n",
    "        secondary_y=\"A\", \n",
    "        figsize=(12, 6),\n",
    "        yerr={\n",
    "            \"A\": df_demo[df_demo[\"F\"] < 0][\"C\"], \n",
    "            \"F\": 0.2\n",
    "        }, \n",
    "        capsize=4,\n",
    "        title=\"Bug: style is ignored with yerr\",\n",
    "        marker=\"P\"\n",
    "    );  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Combine Pandas with Matplotlib\n",
    "\n",
    "* Pandas shortcuts very handy\n",
    "* But sometimes, one needs to access underlying Matplotlib functionality\n",
    "* No problemo!\n",
    "* **Option 1**: Pandas always returns axis\n",
    "    - Use this to manipulate the canvas\n",
    "    - Get underlying `figure` with `ax.get_figure()` (for `fig.savefig()`)\n",
    "* **Option 2**: Create figure and axes with Matplotlib, use when drawing\n",
    "    - `.plot()`: Use `ax` option"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Option 1: Pandas Returns Axis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = df_demo[\"C\"].plot(figsize=(10, 4))\n",
    "ax.set_title(\"Hello there!\");\n",
    "fig = ax.get_figure()\n",
    "fig.suptitle(\"This title is super!\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Option 2: Draw on Matplotlib Axes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(10, 4))\n",
    "df_demo[\"C\"].plot(ax=ax)\n",
    "ax.set_title(\"Hello there!\");\n",
    "fig.suptitle(\"This title is super!\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "* We can also get fancy!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAskAAAD8CAYAAACFHTnaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xd4lFXaBvD7TEkmvRJa6CSsNCkWEOtaVwUsq4sioihYYD+ajeK6UlRUQFcQBJRiVxQ7i+IquiqwgFQVQokhtFQy6ZOZOd8fJ0iMgZR5Z86U+3dduQQyec/tkByeOXPe8wgpJYiIiIiI6CST7gBERERERP6GRTIRERERUS0skomIiIiIamGRTERERERUC4tkIiIiIqJaWCQTEREREdXicZEshGgjhPhKCPGTEGKXEGKsEcGIiIiIiHQRnp6TLIRoCaCllHKLECIGwGYA10kpfzIiIBERERGRr3m8kiylPCKl3FL962IAPwNo7el1iYiIiIh0sRh5MSFEewC9AWyo43OjADwIIN5msyV369bNyKGJiHxi8+bNeVLKZrpzeBvnbCIKFk2dtz3ebvHbhYSIBrAOwEwp5fune+xZZ50lN23aZMi4RES+JITYLKU8S3cOX+KcTUSBrKnztiGnWwghrADeA/B6fQUyEREREZG/M+J0CwHgZQA/SynneB6JiIiIiEgvI1aSBwAYBuDPQoit1R9XG3BdIiIiIiItPL5xT0r5XwDCgCxEFAKqqqqQnZ2NiooK3VFOy2azITU1FVarVXcUIiLtAmHuNnreNvR0CyKi+mRnZyMmJgbt27eH2q3lf6SUyM/PR3Z2Njp06KA7DhGRdv4+d3tj3mZbaiLyqYqKCiQlJfnlJHuCEAJJSUl+vWJCRORL/j53e2PeZpFMRD7nr5NsTYGQkYjIl/x9XjQ6H4tkP7dlC/Dtt7pTEBEREYUWFsl+rKICGDgQuPxyYPt23WmIgsvRo0cxZMgQdOrUCX379sXVV1+NPXv26I5FRESnYDab0atXr98+MjMzvToeb9zzY0uXAocPA9HRwC23AJs2ARERulMRBT4pJa6//noMHz4cb731FgBg27ZtOHbsGNLT0zWnIyKiukRERGDr1q0+G48ryX7K4QCefBLo3x94/33gp5+ABx7QnYooOHz11VewWq249957f/uzM888ExdccIHGVERE5E+4kuynVqwADh4EFi1S2y0mTgRmzwauvBIYNEh3OiJjjBsHGL0o0KsX8Nxzp3/Mzp070bdvX2MHJiIKETsLZ8Du+MnQa8aGdUX3hKmnfUx5eTl69eoFAOjQoQNWrVplaIbaWCT7IadTrSKfdZYqigFg5kzgP/8BRoxQ+5NbtdKbkYiIiMiXfL3dgkWyH3rjDWD/fmDuXODEaSbh4cCbbwJ9+gDDhwNr1gAmbpahAFffiq+3dOvWDStXrtQzOBFRgKtvxTdYsMzyMy6XWjU+80x1skVNXboAzz8PrF0LzJmjJx9RMPjzn/+MyspKLFq06Lc/2759O77leYtERFSNRbKfeecdYM8eYOrUk6vINd11F3DDDcDkycDmzb7PRxQMhBBYtWoV1q5di06dOqFbt26YNGkSWrRooTsaERH5CW638CNut1pF7tpVFcJ1EQJYvBjo2RO49VbVbCQqyrc5iYJBq1at8M477+iOQUREDVRSUuLT8biS7EdWrQJ27VKryKfbb5yYCLz2GpCRoU4HICIiIiJjsUj2E1ICM2YA6enAzTfX//iLLwYmTQKWLAF4/xERERGRsVgk+4lPPlHnxU6eDJjNDfuaf/4TOOccYORIdaYyUaCQUuqOUK9AyEhE5Ev+Pi8anY9Fsh+QEpg2DejQQe0zbiirVR0X53QCt92mTsYg8nc2mw35+fl+PdlKKZGfnw+bzaY7ChGRX/D3udsb8zZv3PMDa9YAmzapG/Ks1sZ9badOwPz56uzkWbPUSjSRP0tNTUV2djZyc3N1Rzktm82G1NRU3TGIiPxCIMzdRs/bLJI1kxKYPh1o2xa4/famXWPYMODf/wb+8Q/g0kuBc881NiORkaxWKzp06KA7BhERNUIozt3cbqHZV18B338PPPwwEBbWtGsIASxYALRpo7Zr2O3GZiQiIiIKNSySNZs+HWjZEhgxwrPrxMWpY+EyM4ExYwyJRkRERBSyWCRr9O23wNdfAw89BBixz3zAALXl4tVX1Q19RERERNQ0LJI1mj4dSEkBRo0y7ppTpqhi+b77gAMHjLsuERERUShhkazJhg3AF18ADzwAREYad12LBXj9dbVPeehQdTwcERERETUOi2RNpk8HkpLUiq/R2rUDFi4EfvhBjUNEREREjcMiWYMtW4BPPwXGjweio70zxpAh6uzkGTPU3mciIiIiajhDimQhxCtCiBwhxE4jrhfspk8H4uO9fwrFCy+oLn633QYcP+7dsYiIiIiCiVErycsAXGXQtYLa9u3ABx8AY8eqY9u8KSZGnXJx+DBwzz2qcQkRERER1c+QIllK+Q2AAiOuFexmzlTF69ixvhnvnHPUyvU77wDLl/tmTCIiIqJA57M9yUKIUUKIDCFEblZWlq+G9Ss//wy8+67aZpGQ4LtxH3wQuPhiNW5Ghu/GJf/38svAwIFAiP5I0mlwziaiUOezIllKuUhKmSalbNa2bVtfDetXnngCiIhQN+z5ktmsGoyEham21Q6Hb8cn/7R8OXD33cAnnwB9+wJffqk7EfkTztlEFOp4uoWPZGSo/cH33Qc0a+b78VNTgSVLgE2bgMce8/345F9WrlSt0C+/HNi2TTW1ueIKYNYs7l0nIiICWCT7zJNPqpXcBx7Ql+GGG1R3v1mzgP/8R18O0mv1avWOQv/+wKpVQM+eqrnNjTcCjzwC/PWvgN2uOyUREZFeRh0B9yaAHwB0EUJkCyHuMuK6wSIzU213GDUKaNFCb5Y5c4D0dGDYMCA/X28W8r1169SLpR491FndUVHqz6OjgbffBp59FvjwQ+Dcc9UeeiIiolBl1OkWt0gpW0oprVLKVCnly0ZcN1g89RRgMgEPPaQ7iSqK3nwTyM1V+1H51nro2LgRuPZadXb2v//9xyMIhQAmTgTWrlUvoM45B3jvPT1ZiYiIdON2Cy87eBB45RW1/7N1a91plN69VeH+wQfA4sW605Av7NgBXHWV2nu8du3p98VffLHqCtmtm9p68dBDgNPps6hERER+gUWylz39tFqtfeQR3Ul+b9w4daPWuHF8Wz3YZWSoG/QiI1WB3KpV/V+Tmqq2Ztx7L/DMM8CVV6p3H4iIiEIFi2QvOnJErdQOHw60a6c7ze+ZTOoIsOho4JZbgMpK3YnIG7KygEsvBVwuVSB36NDwrw0PBxYsAJYuBb77Th0T97//eS8rERGRP2GR7EXPPqvepp40SXeSurVoobaCbNvmvxmp6Y4eVQWy3Q58/jnwpz817Tp33KGKZJMJOP98btEhIqLQwCLZS3JzgYUL1VFbnTrpTnNq116rOvHNnatu5qLgUFCgttMcOaKOfOvd27Pr9e0LbN4MXHSROqXl7ruBigpjshIREfkjFsleMmcOUF4OTJ6sO0n9nn4a6N5drRjm5OhOQ54qLlY36e3Zo45z69/fmOsmJamCe/Jk1c76ggvYzpqIiIIXi2QvyM8H5s0Dbr656W9x+1JEhDoW7vhx4M47eSxcICsrAwYOVKdTvPuu2m5hJLMZmDlTnYyyZw/Qp4/a60xERBRsWCR7wfPPAyUlwNSpupM0XPfuag/1Z5+pAp8Cj8Ohjmz75hvVvGbgQO+NNXiwuomveXN18sVTT/HFFRERBRcWyQYrKgL+9S/V1ax7d91pGmf0aOCaa4AHH1Tn6lLgcDqBoUPVdohFi9SJJd6Wnq7aWf/1r+rGzxtvZDtrIiIKHiySDfbCC6pQDqRV5BOEUMd9JSSoIqu8XHciagi3Gxg5Eli5Uu2Fv/tu340dHQ289RYwezbw0UeqSx/P3SYiomDAItlAxcXqlIhrr/X8NAFdmjVT5yfv2qVWlMm/SQmMHQssWwY8/jgwfrzvMwgBTJig9iYXFrKdNYW2Kncxciu+1x2DiAzAItlAL76ojt569FHdSTxzxRXAxInA/PnAxx/rTkOnM3Wq2kM+caL+77uLL1bHxLGdNYWyHQWPYX3O7ThcxjM1iQIdi2SDlJaqt5yvvFKtpAW6mTOBXr3UaReHD+tOQ3V56ingiSfUucXPPKNWdHVjO2sKZSVVmThU9glMsGJ7wRSUOzl5EgUyFskGWbRIFQO6V/OMEh6ujoUrK1Nttd1u3Ymopnnz1M1yt96q3sHwhwL5hNrtrPv0ATZu1J2KyPv22hfAJMLQv/lrcMsq/Jj/AKR06Y5FRE3EItkAFRVq1eySS4ABA3SnMc6f/qSOs1u7Vu21Jv+wfDnw97+rY9iWLVNnF/ujO+4Avv9e5bvgArazpuBW6sxCdukHaBc9BInhfdEj4Z/Ir9yIvfaXdEcjoiZikWyAl19W7X+DZRW5prvvVsfZTZqkGlSQXitXAiNGAJddpk6VsFp1Jzq9Pn3UPuWLL2Y7awpue4tegoAZnWNGAgBSo65Hq8hrsLvoeRRWbtWcjoiagkWyhyor1d7QAQNUIRBshFArgCkp6li40lLdiULX6tVqe0W/fqrjnc2mO1HDJCWpJjVTppxsZ/3rr7pTERmnzHkYB0vfR9vom2CzNAcACCHQM3E6bObm2JI/HlXuYs0piaixWCR7aPlyIDsb+Mc//GtfqJESE1UHt4wMYNw43WlC07p1JxvUfPopEBWlO1HjmM3AjBkn21n37ct21hQ89tkXAQA6xd7zuz+3mmLRO2kOypyHsLNwmo5oROQBFskeqKoCnnxSnWZx+eW603jXJZcAjzwCLFnCM3B9beNGdfZ2hw7AmjVAfLzuRE3HdtYUbCqcx5BV8g7aRN2ASEurP3w+yXYW0mNHI7t0FbJLP9KQkIiaikWyB15/HcjMVHuRg3UVuabHHwfOPlt1dzt4UHea0LBjB3DVVWq7y9q1qtlLoGM7awome4sXQ8KFznH3nPIxaXGjkRDWBzsK/oEyJydPokDBIrmJXC51Rm3v3sA11+hO4xtWK/DGG2oFfdgw9RyQ92RkqHcoIiNVgdzqj4tUAYvtrCkYVLry8WvJW2gdNRhRlranfJxJWNAneTYAYEveBLglu+wQBQIWyU309tuqiJk6NTRWkU/o3Fmd0btuHTBrlu40wSsrC7j0UvVCZO1atdUi2NTVznrlSt2piBpun/1luKUDabH31fvYSEsb9EycjkLHj8gomu+DdETkKRbJTeB2q5uQuncHrrtOdxrfu/12YMgQdbPihg260wSfo0dVgWy3A59/rs6rDmYn2ll37w7cdBPbWVNgcLgKkVnyGlpHXoNoa8NexbaOGojUqOuxxz4f+RWbvJyQiDzFIrkJ3ntPvTU8dSpgCsFnUAjVUS01VR1JVsyTjQxTUABccYU6d3v1arWdJxSkpgJffw3cd59qzHPFFUBOju5URKe2v3gZXLK8QavINfVIeAyRltb4MX8CqtzcjE/kz0KwxPPMiVXkLl3UjUehKj7+5I2LY8boThMciovVTXp79gAffgj07687kW+Fh6sW20uXqk59ffuynTX5pyq3HQeKl6NlxJWICUtv1NdaTNHokzQXFa5j2F4wFZLHuxD5LRbJjfTxx8D27aoxgr+2A/aVAQPUyR4rVqgb+qjpysqAgQNVV8N331XbLUJV7XbWixbxmDjyLweKl8MpS5AWN7pJX58Q3gtd4sbicNlnyC593+B0RGQUQ4pkIcRVQojdQoi9QohHjLimP5ISmD4d6NRJdZ8jteXkvPPU2+QHDuhOE5gcDvWuxDffqKYtAwfqTqRfzXbW99zDdtbkP6rcxdhfvAzNIy5FXNgZTb5O59h7kBR+DnYUPo7SqkzjAhKRYTwukoUQZgDzAfwFQFcAtwghunp6XX+0erX6h3vyZMBi0Z3GP1gsatsFANx2G2+4aiynExg6VH1vLVrEF1811Wxn/corbGdN/iGz+HVUuYuQHuvZPjMhzOid9CxMworN+ePhlg6DEhKRUYxYST4HwF4p5X4ppQPAWwAGG3Bdv3JiFbldO3VGMJ3Uvj3w0kvqLfIZM3SnCRxut2rMsnIlMGeOWi2l32M7a/InTncZ9he/jBTbRYgP7+Hx9SIsrdAzcSaKHDuwu+h5AxISkZGMKJJbA6jZQii7+s+CypdfAuvXq9bMVqvuNP5nyBB1NNz06cB//6s7jf+TEhg7Fli2THUyHD9edyL/dqKddYsWbGdN+vxa8gYc7sIm70WuS6vIq9A26mbstS9CXsUPhl2XiDznsxv3hBCjhBAZQojcrKwsXw1rmOnTgdatgTvv1J3Ef82bp1aVhw4Fjh/Xnca/TZminq+JE9XNj1S/9HT1QvWmm9jO2hcCfc42mstdgX32JUgOPw+J4X0MvXa3hKmIsrTHj/kPwOEqNPTaRNR0RhTJhwC0qfH71Oo/+x0p5SIpZZqUslnbtqdu3+mP1q1TN1U99JA6porqFhMDvPkmcPgwcO+9XOk7lSefVB+jRqkzgUOpY6OnoqPV99icOSfbWf/0k+5UwSmQ52xvyCp9B5XuPENXkU+wmCLRJ3kuKl0F2FYwhcfCEfkJI4rk/wFIE0J0EEKEARgC4CMDrus3pk8HmjdX+0fp9M45B5g2TbXtXrFCdxr/M2+euvHz1lvVmcAskBtPCLU95csvT7azfvdd3akomLlkJfbaX0Ji+NlItp3rlTHiw7rjjPiJOFr+ObJK3/bKGETUOB4XyVJKJ4AxANYA+BnAO1LKXZ5e11/88IP6x/jBB4GICN1pAsNDD6mju0aPBvbu1Z3GfyxfDvz972p/7bJlPGfbUxddpE6b6dEDuPlm9TPK01XIGw6WvI8K1zGkx3m3c1LHmBFItg3AzsIZKK7i5EmkmyF7kqWUn0kp06WUnaSUM424pr+YPh1ITlbbB6hhzGZ13m9YmDrSzMGTjbByJTBiBHDZZcBbb/HmT6PUbGf97LNsZ03Gc8sq7LUvREJYLySHn+fVsYQwoXfSM7CICGzJGw+XrPTqeER0euy4dxqbNqnzaydMAKKidKcJLKmpwOLF6jl87DHdafRavVptr+jXTx1lZrPpThRcTrSzXrZMvfPDdtZkpOzSD1DuOoS0uDEQPtgfZTOn4MzEp2Cv+hm/HJ/t9fGI6NRYJJ/GjBlAQoLaNkCNd+ONah/3rFnAV1/pTqPHunXADTcA3bsDn37KF1veNHy4OqvbYmE7azKGWzqRYV+AuLDuSLFd5LNxW0ReivbRt2F/8SvIKf/GZ+OS/7M7dmNz3ljYHb/ojhISWCSfwrZtwIcfAuPGAbGxutMErrlz1dFdw4YB+fm60/jWxo3AtdcCHToAa9YA8fG6EwW/3r3VuxeXXMJ21uS5w2WfoMyZhbTY0T5ZRa6pa/wjiLGmYWv+Q6h0hdjkSXUqqTqA9TnDcbjsU3x77K/ILv1Qd6SgxyL5FGbMUMXx//2f7iSBLSpKHdmVk6NWlUNlZW/HDuCqq4BmzYAvvlD/Jd9ISlKr9lOnqnbW55/PdtbUeFK6kFG0ADHWLmgRcanPxzebbOiT9Byq3HZszX+Yx8KFuDLnIfyQczskXOif8hriw3rgx/yJ2FkwHW5ZpTte0GKRXIeffgLee0+dRMDVP8/17q3OBV61Su1TDnYZGcDll6vTUL78UjWhId8ym9VNtx9+qP4++vZVL1aIGupw2b9R4tyH9LjREELPP5WxYV3QNeER5FR8jcySV7VkIP0qXLlYn3M7nO4S9EtZhmRbP/RPWYGOMXfiQMly/JAzDBUu3rHsDSyS6zBzJhAZqbZakDHGj1eF47hxwM8/607jPVlZwKWXAi4XsHat2mpB+gwadLKd9VVXqRdrXJCj+kjpRoZ9PqItndAy4iqtWdpHD0OK7WL8VPgU7I7dWrOQ7zlchVifMxwVrlycm/Iy4sK6AQBMwopuCVPQJ2kuihy78M3R61BQuVlz2uDDIrmWPXvUEV3336+OfiNjmEzqnOCoKHXSQ2UQnmx09KgqkO124PPPgTPO0J2IgN+3s548Wd1IyXbWdDpHy9eiuGoP0uLu17aKfIIQAr2SZsFqisWW/HFwubnJPlRUuYuxIfculFZl4uxmC+tsh946aiDOb74SFhGB748NxYHiFdyaYyAWybU88YQ6UmriRN1Jgk/LlsDSpcDWrapYCSYFBeqM3iNHgM8+U1tMyH/UbGf98cfA2WeznTXVTUqJPUXzEGVph1aR1+iOAwAINyehV9LTKK7KwE/Hn9Idh3zA6S7HxtxRKHLsQt/kF9DMduozumPDuuCCFquQEnEhdhZOw4/5D8DpLvdh2uDFIrmG/fuB115Td8U3b647TXC69lp1pN6cOerEh2BQXKzeyt+zR+2BPc+7/QaoiWq2sz5+nO2sqW45FV/DXvUTOsfeB5Ow6I7zm5SIC9Ex5k5klryGo2Vf6o5DXuSWDmzKG42Cyk3onfQsWkTWf+Oo1RSLs5MXokvceBwq+wjfHbsJpVW8Y9lTLJJreOopdcbqgw/qThLcnnkG6NZNnWsb6N3RysqAgQOBLVtUwXWp72+Cp0a66CL198V21lTbiVXkCHMqUqMG647zB3+KfwCx1jOwreAR3qgVpNzSiS1545Fb8Q16Js5A66iBDf5aIUxIjxuNc5stQbnrCL49ej2OlX/tvbAhgEVytaws1bHrrruAVq10pwluERHqre/jx1Wr5kDdPuVwAH/9K/DNN6oN98CGz2WkWevWqtHL/feznTWdlFvxXxx3bENa3L0wCf/rHW8W4eiTPBdOWY4f8x+ElG7dkchAUrqxrWAyjpSvQdf4yWgX/bcmXScl4iJc2OIDRFhaY2PuSOwu+he/V5qIRXK1p59W/334Yb05QkWPHqo4+fRTYP583Wkaz+kEhg5VLacXLQJuuUV3ImqssDD1vVeznfWGDbpTkS5SSmTY58NmboHUqOt1xzmlGGtndE+YiryK77C/+BXdccggUkrsLJyG7NL30SVuLDrFjvDoepGWNji/+btIjboOe4r+hY2598DhLjIobehgkQzg8GFgyRL19n/btrrThI7Ro4FrrgEeeEA13wgUbrfq5LZypdpbfffduhORJ2q2s77wQuCllwL33Q1quvzKDSio3ITOsaNgFuG645xW26i/oUXEFfj5+Gwcd+zUHYcM8EvRbGSWvIaOMXchLXaMIdc0m2zolfg0eiT8E7kV/8W3R69nO+tGYpEMtUfW6QQmTdKdJLQIoTqixcerldjyALgZV0pg7Fh1nN3jj6sbwSjw1Wxnfe+9attVIHw/knEyiuYj3NQMbaNu1h2lXkIInJk4E+HmRGzJGw+nu0x3JPJARtEC7LUvRNvoIega/4ihLdCFEGgfcxvOa/463LKS7awbKeSL5JwctXJ0221Ax46604SelBRVcO7aFRg3TE6ZAsybp44IfPRR3WnISDXbWS9dynbWoaSgcjPyKn9Ap9iRMJtsuuM0SJg5Ab2TnkWpMxO7CmfqjkNNdKB4BX4pmo3WkYPQM+FxQwvkmhLD++CCFh+wnXUjhXyRPHu2amwRbOf2BpIrrwQmTFD7Qz/5RHeaU3vySfUxapR698FLcxlpVLOd9d69bGcdKvYUzUOYKRHtogPr5oJkW390jh2FrNK3cbjs37rjUCMdLHkPOwunoXnEZeiVNAtCmL06ns3cjO2sGymki+S8PFWY/e1vqisX6fPEE0CvXsCdd6qGHP5m3jz1QurWW4EXX2SBHOwGDVLbL1q2ZDvrYFdYuQ25Fd+iU+xdsJgidMdptC5xYxEX1gPbC6ag3HlYdxxqoMNlq7G1YBKSbQPQN/l5n52mcrKd9XOqnfWRwWxnfRohXSQ/9xxQWqreQie9wsOBN95Qfx/Dh6ub4/zF8uXA3/8ODB6sTkIwe/fFPvmJtDTVzvrmm9nOOphl2OfDaopH++ihuqM0iUmEoU/SXLhlFX7MfwBSunRHonocK/8aW/ImICGsF85OXqDlRtHWUdfi/ObvwWKKYjvr0wjZIvn4ceCFF9Q5t9266U5DAHDGGeqFyxdfAHPn6k6jrFypznK+7DLgrbcAq/8dnUpeFBWlXrzNnXuynTUFjyLHLhwr/w86xtwBiylad5wmi7a2R4+Ex5BfuRF77S/pjkOnkVexAZvyRiPGmoZzU5bAYorUliU2LL26nfVF1e2sJ7KddS0hWyT/619qVWjqVN1JqKaRI4Hrr1cnjfz4o94sq1er7RX9+gEffADYAuN+HjKYEMC4cSfbWVPw2FP0IiwiBh1ibtcdxWOpUTegVeQ12F30PAort+qOQ3UorNyGjbmjEGlORb+UpbCaYnVHgtUUg7OTF6BL3AQcKvuY7axrCcki2W5XK5aDBgFnnqk7DdUkBLB4sTr14pZb1PYLHdatU2+vd++uTjyIitKTg/zHiXbWFBzsjj04Wr4GHWKG+0Wx4ikhBHomTofN3Bxb8sfD6S7RHYlqsDt2Y0PuCISbE9E/ZQXCzUm6I/1GtbO+n+2s6xCSRfKLLwKFhTzCy18lJak2z3v26DmHeONG4NprgQ4dgDVr1DnORIBqZ03BIcP+IswiCh1j7tAdxTBWUyx6J81BmfMQdhQ+rjsOVSupOoD1OcNhFjb0T1kBm6W57kh1YjvrPwq5Irm0VB37dtVVwFln6U5Dp3LJJapF+OLFwHvv+W7cHTvU90azZmpvdLNmvhubiHyjpGo/Dpd9ig4xQxFmDq5XwUm2s5Aeez+yS1fhUOnHuuOEvDLnYfyQczskXOiXsgKRlja6I53WyXbW17OdNUKwSF64UB399o9/6E5C9Zk2Td0oNXIkcPCg98fLyAAuvxyIiFD7T7lqSBScMuwLYBLh6Bhzl+4oXpEWNwYJYb2xveBRlDmzdccJWRWuXKzPGQanuwT9UpYhxtpJd6QGUe2sZ6FHwuPV7ayvC9l21iFVJJeXqyYQl14K9O+vOw3Vx2pVJws4HMDttwMuL55slJWlvi9cLmDtWrXVgoiCT2nVrzhU+hHaR9/qV/tCjWQSFvTvGLcYAAAgAElEQVRJngMA2JI3AW7p1Jwo9Dhcx7E+ZzgqXLk4N+VlxIUF1jFaqp310Op21o6QbWcdUkXykiXAsWPcixxIOndWjTy+/hp4+mnvjHH0qCqQ7Xbg88/VUXREFJz22hdCwIxOsXfrjuJVkZY26JE4DYWOLcgomq87TkipchdjQ+4IlFZl4uxmC5EY3kd3pCZLDO+DC1t8iISwntXtrKfBLR26Y/mMR0WyEOImIcQuIYRbCOHXO3wrK4FZs4ALLlB3qVPgGD5cdUV89FFgwwZjr11QAFxxhery99lnQO/exl6fiPxHmfMQDpauQtvov8FmTtEdx+tSowYhNfI67LHPR37FJt1xQoLTXY6NuaNQ5NiFvskvoJntPN2RPBZuTka/lOXoGDMCB0pW4PsQamft6UryTgA3APjGgCxetXQpcOgQV5EDkRBqL3nr1urc4uJiY65rt6ub9HbvBj78EDgv8OcyIjoN1WhDoHPsSN1RfKZ74mOItLTGj/kTUOVmy0hvcksHNueNQUHlJvROehYtIi/VHckwqp31ZPRJeg52x0/45sjgkHjh5VGRLKX8WUq526gw3lJVBTz1lGoKcdllutNQU8THA6+/DmRmqhbRniorAwYOVOfevvuu2m5BRMGr3HkUB0veRZvoGxFhaaU7js9YTTHokzQXFa5j2F7wKFsPe4lbOrElbzxyKtahZ+IMtI4aqDuSV9RsZ/1Dzm1B3846JPYkv/oq8OuvahVZCN1pqKnOP1/9HS5fDrz5ZtOv43CoduTffqu+NwYNMi4jEfmnffbFkJBIi71XdxSfSwjvhS5xY3G47FNkl67SHSfoSOnGtoLJOFK+Bl3jJ6Nd9N90R/KqUGpnXW+RLIRYK4TYWcfH4MYMJIQYJYTIEELkZmVlNT1xIzmdwBNPAH37An/5i8+GJS+ZOlVti7j3XrWq3FhOp9qysXo18NJLqqsfEf2RrjnbGypcufi19C2kRl2HSEuq7jhadI69B0nh52BH4T9RWpWpO07QkFJiZ+E0ZJe+jy5xY9EpdoTuSD4RKu2s6y2SpZSXSSm71/HRqLNApJSLpJRpUspmbdu2bXriRnrrLWDfPlVccRU58FkswGuvqV8PHaqK3oZyu4G771bNSebMUecvE1HddM3Z3rDf/jLcsiokV5FPEMKM3knPwgQLNuePD6kTCrzpl6LZyCx5DR1j7kJa7BjdcXzqZDvrl1HuOlrdzvor3bEMFdTbLVwuYMYMoEcPvqUeTDp0UDfyff+9+vttCCmBsWPVVo1//lNPu2si8r1KVwEyS95A68hrEWVtrzuOVhGWVuiZNBNFjh3YXfS87jgBL6NoAfbaF6Jt9BB0jX8EIkRX4lIiLsSFLVYhwpKq2lkffz5o2ll7egTc9UKIbAD9AXwqhFhjTCxjrFypTi549FHAFNQvB0LPLbeoBiPTpwPffVf/46dMUectT5zIbotEoWR/8VK4ZDnS4u7XHcUvtIr8C9pG3Yy99kXIq/hBd5yAdaB4BX4pmo3WkYPQM+HxkC2QT1DtrN9BatQN2GN/ARtzRwVFO2tPT7dYJaVMlVKGSymbSymvNCqYp9xutcp4xhnAjTfqTkPeMG8e0L692nZx/PipH/fkk+pj1CjVcTHE5zKikOFwHUdm8Qq0ivwLYqyddcfxG90SpiLK0h4/5j8Ah6tQd5yAc7DkPewsnIbmEZehV9IsCGHWHckv/L6d9Xf49uh1KHL8rDuWR4J2ffXDD4GdO9UKIleRg1NMjGpbnZ2tbuSr6xSaefOAyZPVzXovvsgCmSiUHCheDqcsRVrsaN1R/IrFFIk+yXNR6SrAtoIpQX2El9EOl63G1oJJSLYNQN/k52ESVt2R/Ertdtb/PXYTsks/0B2ryYKyfJRSvQ3fubPq1EbB69xzgWnTgLffBlas+P3nli9XZyoPHgwsWwaY+WKfKGRUuYtxoHg5WkRcjtiwLrrj+J34sO44I34ijpZ/jqzSt3XHCQjHyr/GlrwJSAjrhbOTF8AswnVH8lu/b2f9QMC2sw7KIvnTT4Eff1QriBaL7jTkbQ8/rFqNjxkD7N2r/mzlSmDECNU85q23ACtf7BOFlMziV1El7UiL4yryqXSMGYFk2wDsLJyB4qp9uuP4tbyKDdiUNxox1jScm7IEFlOk7kh+LxjaWQddkXxiFbl9e+C223SnIV8wm1VTEKtVbav46CP13379gA8+AGw23QmJyJec7lLsK16KFNvFiA/rrjuO3xLChN5Jz8AiIrAlbxxcslJ3JL9UWLkNG3NHIdKcin4pS2E1xeqOFDBOtrN+HnbHzwHXzjroiuQvvgA2bgQmTeLqYShp0wZYvBj43//U9oru3dU7ClFRupMRka9llryBKnch0rmKXC+bOQVnJj4Je9XP+OX4bN1x/I7dsRsbckcg3JSIfinLEW5O0h0pILWOugYXNF/5Wzvr/cXLA2IvfFAVySdWkVNTgeHDdachX7vxRmDCBOCcc4A1a4D4eN2JiMjXnO5y7LMvQbJtABLCe+uOExBaRF6G9tFDsb/4FeSUf6M7jt8oqTqA9TnDYRY29G++AhGWFrojBbSY39pZX4xdhdOr21mX6Y51WkFVJK9bB/z3v2qPajj304ek2bOBDRuAZs10JyEiHbJK3obDnY/0EOt+5qmu8ZMQbe2MrfkPodKVrzuOdmXOw/gh53ZIuNAvZTkiLW10RwoKqp31i7+1s/7vsZv8uk16UBXJ06YBLVoAd92lOwkREfmaS1ZiX/FiJIWfgyTb2brjBBSzyYa+Sc+hym3H1vxHAuKtcG+pcOVifc4wON0l6JeyjGdsG6xmO+sK1zF8c/R6HCv/j+5YdQqaIvm774CvvgIeegiIiNCdhoiIfO1gyUpUuI4hLY6ryE0RG/YndE14BDkVXyGz5FXdcbRwuI5jfc5wVLhycW7Ky4gL66Y7UtA60c460tIGG3NH+WU766ApkqdPV2+x33OP7iRERORrbulAhn0hEsL6IDm8v+44Aat99DCk2C7GT4VPwe7YrTuOT1W5i7EhdwRKqzJxdrOFSAzvoztS0DvRzrpN1I1+2c46KIrkjRvVjVoTJwKRPLqQiCjkHCxdhQrXEaTHjYZga80mE0KgV9IsWE2x2JI/Di53he5IPuF0l2Nj7igUOXahb/ILaGY7T3ekkGE22XBm4lPokTDN79pZB0WRPGMGkJgI3H+/7iRERORrbunEXvtCxIX1QDPbhbrjBLxwcxJ6Jc1CcVUGfjo+S3ccr3NLBzbnjUFB5Sb0TnoWLSIv1R0p5Kh21rdiQPM3/KqddcAXyT/+CHz8MTBuHBATozsNERH52qHSj1HmPIj0WK4iGyUl4iJ0jLkTmSWv+u1NVUZwSye25I1HTsU69EycgdZRA3VHCmkJ4b1/1856R8HjWttZB3yRPGMGEBcH/P3vupMQEZGvSelChv1FxFrPQPMIrgAa6U/xDyDWega25j8ccO2EG0JKN7YVTMaR8jXoGj8Z7aL/pjsS4UQ76xXoGDMCmSWv4vtjt6HCeUxLloAuknfuBN5/H/i//2PjCCKiUHS47DOUOg8gjXuRDWcW4eiTPAdOWY4f8x/0u5MHPCGlxM7C6cgufR9d4saiU+wI3ZGoBpOwnGxnXfULvjl6HfIr/uf7HD4f0UAzZwLR0WqrBRERhRYp3ciwv4gYaxpaRlyhO05QirGmoVv8FORVfIf9xa/ojmOYX4pmI7PkVXSMuQtpbDzjt37fznqYz9tZB2yRvHs38PbbwOjR6qY9IiIKLUfKP0dxVQbSYu+HEAH7z5nfaxc9BC0iLsfPx2ejyLFLdxyPZRQtwF77QrSNHoKu8Y/wHQg/p7OddcDOKk88AdhswIQJupMQEZGvSSmRUTQfUZYOaBV5te44QU0IgTMTn0C4ORGb88b7rEDxhgPFK/BL0Wy0jhyEngmPs0AOECfaWf/Jx+2sA7JI3rcPeP114L77gJQU3WmIiMjXjpX/B/aqn5EWex+EMOuOE/TCzAnonfQsSp0HsKtwpu44TXKw5H3sLJyG5hGXoVfSLH7fBBghTEjzcTvrgCySn3wSsFiABx7QnYSIiHxNSok99nmINLfhkV0+lGzrj86xI5FV+jYOl/1bd5xGOVy2GlsLHkGybQD6Jj8Pk7DqjkRNpNpZf1CjnfVzXrupNOCK5F9/BZYvB0aOBFq21J2GiIh8LbfiGxQ5dqBz3L0sdnysS9w4xIX1wPaCKSh3HtYdp0GOlX+NLXkTkBDWC2cnL4BZhOuORB6KtKTWaGc9DxtzR8LhOm74OAFXJM+aBQgBPPSQ7iRERORrUkrsKZqPCHMrtIm6XneckGMSYeiTNBduWVV9LJxLd6TTyqvYgE15oxFjTcO5KUtgMUXqjkQG+X076+/x7dHrUeT4ydAxAqpIPnQIePll4M47gTZtdKchIiJfy69cj0LHFnSOHQWTCNMdJyRFW9uje8I/kF+5AXvti3THOaXCym3YmDsKkeZU9EtZCqspVnckMtjv2llDtbM+WLrKsOsHVJH89NOA2w1MmqQ7CRER6bCnaB7CzSloE32T7ighrU3UjWgVeTV2Fz2HwsqtuuP8gd2xGxtyRyDclIh+KcsRbk7SHYm86GQ76zOxNf9Bw9pZB0yRfPQosGgRMGwY0L697jRERORr+RX/Q37lBnSOGcl9pZoJIdAjcTps5ubYkj8eTneJ7ki/Kak6gPU5w2EWNvRvvgIRlha6I5EPeKOddcAUybNnAw4HMHmy7iRERKTDHvs8hJmS0DZ6iO4oBCDMFIfeSbNR5jyEHYXTdMcBAJQ5D+OHnNsh4UK/lOWItHBvZigxup21R0WyEOIZIcQvQojtQohVQoh4T653Knl5wIIFwC23AJ07e2MEIiLyZ4WVW5FX8R06xd4NiylCdxyqlmQ7G+mx9yO79H0cKv1Ya5YKVy7W5wyD012CfinLEGNlwRCqarezbipPV5K/ANBdStkTwB4AXtktPHcuUFYGTJnijasTEZG/21M0H1ZTAtpH36o7CtWSFjcGCWG9sb3gUZQ5s7VkcLiOY33OcFS4cnFuysuIC+umJQf5jxPtrNtG39zka3hUJEspP5dSOqt/ux5AqifXq0tBAfDCC8BNNwFnnGH01YmIyN8dd+xETsVX6BhzJyymKN1xqBaTsKBP8hwAElvyJsD9W1ngG1XuYmzIHYHSqgM4u9lCJIb38en45L+sphj0TGz6ViAj9ySPALDawOsBAP71L6C4GJg61egrExFRIMgomg+riEWHmKa/bUreFWlpgx6J01Ho2IKMovk+G9fpLsfG3FEocuxC3+QX0Mx2ns/GpuBXb5EshFgrhNhZx8fgGo+ZAsAJ4PXTXGeUECJDCJGblZXVoHB2O/D888B11wE9ejToS4iIyABNmbO9we74BUfLv0CHmOGwmmK05aD6pUYNQmrkddhjn4+Cys1eH88tHdicNwYFlZvQO+lZtIi8zOtjUmipt0iWUl4mpexex8eHACCEuAPAtQCGSinlaa6zSEqZJqVs1rZt2waFmzcPOH6cq8hERL7WlDnbGzLsL8IiotAh9g5tGajhuic+hkhLa2zJm4Aqt91r47ilE1vyxiOnYh16Jk5H66iBXhuLQpenp1tcBeAhAIOklGXGRFJKSoA5c4Crrwb69jXyykREFAiKq/bicNlqtI8ZhjBTnO441ABWUwz6JM1Fhesothc8itOsnTWZlG5sK5iMI+Vr0DV+MtrxSEDyEk/3JM8DEAPgCyHEViHEQgMyAVBHvuXnA48+atQViYgokGQULYBZ2NAx5k7dUagREsJ7IT1uLA6XfYpsA1sEA4CUEjsLpyO79H2kx/0fOsWOMPT6RDVZPPliKaVXDiEsKwOefRa4/HKgXz9vjEBERP6spCoTh8o+RseYO9lSOAClxd6D3IpvsaPwn0gM74Moa3tDrvtL0WxklryKjjF3IT3274Zck+hU/LLj3uLFQE4OV5GJiELVXvtCmIQVnWLv1h2FmkAIM/okzYYJFmzJnwC3rPL4mhlFC7DXvhBto4ega/wjEEIYkJTo1PyuSK6oAJ5+GrjoIuCCC3SnISIiXytzZiO79AO0ixoCm7mZ7jjURBGWVuiZNBPHHduxu+h5j651oHgFfimajdaRg9Az4XEWyOQTflckL10KHD7MVWQiolC11/4SBAQ6xY7UHYU81CryL2gbdRP22l9CXsUPTbrGwZL3sbNwGppHXIZeSbMghNnglER186si2eEAnnwSOO884M9/1p2GiIh8rdx5GFklK9Em+iZEWFrojkMG6JYwFVGW9vgx/wE4XIWN+trDZauxteARJNsGoG/y8zAJq5dSEv2RXxXJK1YABw+qVWS+k0JEFHr22hcDkOgce4/uKGQQiykKfZLnotJVgG0FUxt8LNyx8nXYkjcBCWG9cHbyAphFuJeTEv2e3xTJTqdaRT7rLODKK3WnISIiX6tw5SCr5G20iboekZbWuuOQgeLDuuOM+Ik4Wr4GWaVv1/v4vIoN2JR3P2KsaTg3ZQkspkgfpCT6Pb8pkt94A9i/n6vIREShap99CSRc6Bx7r+4o5AUdY0Yg2TYAOwtnoLhq3ykfV1i5DRtzRyHSnIp+KUthNcX6MCXRSX5RJLtcwMyZwJlnAgPZWZKIKORUuvLxa8mbaB05EFHWdrrjkBcIYULvxKdhFhHYkjcOLln5h8fYHbuxIXcEwk2J6JeynGdkk1Z+USS/8w6wZw9XkYmIQtX+4lfgkhXoHHef7ijkRTZLc/RKfBL2qp/xy/HZv/tcSVUm1ucMh1nY0L/5Ct64SdppL5LdbrWK3K0bcP31utMQEZGvOVzHcaD4NbSKvBox1k6645CXtYi8DO2jh2J/8SvIKf8WAFDmPIwfcoZBwoV+KcsRaWmjOSWRHxTJq1YBu3YBU6YAJu1piIjI1/YXL4NLliItdrTuKOQjXeMnIdraGVvzH4TdsRvrc4bB6S5Bv5RliLF21h2PCIDmIllKYMYMID0duPlmnUmIiEiHKncxDhQvR4uIKxEblq47DvmI2WRD36TnUOW245ujg1DhysW5KS8jLqyb7mhEv9FaJH/yCbB1KzB5MmBmAx0iopBzoHgFnLIY6XH3645CPhYb9id0S5gCs4jE2c0WIjG8j+5IRL9j0TWwlMC0aUDHjsCtt+pKQUREujjdJdhfvBTNbZdwBTFEtY8ZinbRQ9hqmvyStiJ5zRpg0yZg8WLAyi6TREQhJ7PkDVS5jyMtbozuKKQRC2TyV9q2W0yfDrRtC9x+u64ERESki9Ndhn32JWhmuwAJ4WfqjkNE9AdaVpKLi4HNm4H584GwMB0JiIhIp19L3oLDXYB0riITkZ/SspJ8+DDQsiUwYoSO0YmISCeXrMS+4iVICu+HxPC+uuMQEdVJS5FcUgI8/DBgs+kYnYiIdMoqeQeVrhykx/FcZCLyX1qKZIsFGDlSx8hERKSTS1Zir/0lJIT3RVJ4P91xiIhOSUuR3Lo1EBmpY2QiItIpu3QVKlxHkR47BkII3XGIiE5JS5GcnKxjVCIi0sktq5BRtBDxYWeime183XGIiE5La8c9IiIKHYdKP0K5KxvpcaO5ikxEfo9FMhEReZ2ULmTYFyDW2hUptkt0xyEiqheLZCIi8rpDZZ+i1JnJVWQiChgskomIyKukdCOjaD5irOloEXG57jhERA3CIpmIiLzqSPm/UeLch7TY0RCC/+wQUWDwaLYSQkwXQmwXQmwVQnwuhGhlVDAiIgp8ahX5RURZOqJV5FW64xARNZinL+mfkVL2lFL2AvAJgH8YkImIiILEsfIvYa/6BWlx90EIs+44REQN5lGRLKW01/htFADpWRwiIgoWUkrssc9HpKUtWkcO1B2HiKhRPN4cJoSYKYQ4CGAoTrOSLIQYJYTIEELkZmVleTosERF5kRFzdk7FOhQ5diIt9l6YhMXghERE3lVvkSyEWCuE2FnHx2AAkFJOkVK2AfA6gDGnuo6UcpGUMk1K2axt27bG/R8QEZHhPJ2zpZTIKJqHCHNrpEZd54WERETeVe9LeynlZQ281usAPgPwmEeJiIgo4OVVfo9Cx1b0SJgGkwjTHYeIqNE8Pd0ircZvBwP4xbM4REQUDPYUzYPN3Bxtom/UHYWIqEk83ST2lBCiCwA3gF8B3Ot5JCIiCmR5FRtQUPk/dEt4FGYRrjsOEVGTeFQkSym5REBERL+TUTQf4aZktIv6m+4oRERNxtZHRERkmILKLcir/B6dYu+G2WTTHYeIqMlYJBMRkWEyiuYjzJSAdtG36o5CROQRFslERGSI45U7kFOxDh1jRsBiitQdh4jIIyySiYjIEHvs82E1xaF9zG26oxAReYxFMhEReazI8TOOla9Fh5jhsJpidMchIvIYi2QiIvJYRtF8WEQ0OsQM1x2FiMgQLJKJiMgjxVUZOFK+Bh1ibkeYKU53HCIiQ7BIJiIij2QULYBZRKBDzB26oxARGYZFMhERNVlJ1QEcKvsE7aOHItycqDsOEZFhWCQTEVGTZdgXwCTC0Cn2Lt1RiIgMxSKZiIiapNSZhUOlH6Jd9BCEm5N1xyEiMhSLZCIiapK9RS9BwIzOMSN1RyEiMhyLZCIiarQy52EcLH0fbaNvgs3SXHccIiLDsUgmIqJG22dfBADoFHuP5iRERN7BIpmIiBqlwnkMWSXvoE3U9Yi0tNIdh4jIK1gkExFRo+wtXgwJFzrH3as7ChGR17BIJiKiBqt05ePXkrfQOmowoixtdcchIvIaFslERNRg++wvwy0dSIu9T3cUIiKvYpFMREQNUukqQGbJa2gdeQ2irR10xyEi8ioWyURE1CAHipfBJcu4ikxEIYFFMhER1avKbceB4hVoGXEVYsLSdcchIvI6FslERFSvA8XL4ZQlSIsbrTsKEZFPsEgmIqLTknBjf/EyNI+4FHFhZ+iOQ0TkExbdAYiIyL85XPmocluRHjtGdxQiIp/hSjIREZ1WpSsPzWwXIj68h+4oREQ+wyKZiIhOS8KF9DiuIhNRaDGkSBZCTBRCSCFEshHXIyIi/2E1xSMxvI/uGEREPuVxkSyEaAPgCgBZnschIiJ/E2lJ1R2BiMjnjFhJngvgIQDSgGsREREREWnnUZEshBgM4JCUclsDHjtKCJEhhMjNyuKiMxGRP+OcTUShrt4j4IQQawG0qONTUwBMhtpqUS8p5SIAiwDgrLPO4qozEZEf45xNRKGu3iJZSnlZXX8uhOgBoAOAbUIIAEgFsEUIcY6U8qihKYmIiIiIfKjJzUSklDsApJz4vRAiE8BZUso8A3IREREREWnDc5KJiIiIiGoxrC21lLK9UdciIiIiItKJK8lERERERLUIKX1/07IQohjAbp8PXL9kAP64p5q5Goe5Goe5GqeLlDJGdwhf4pzdaMzVOMzVOP6aC/DfbE2atw3bbtFIu6WUZ2ka+5SEEJuYq+GYq3GYq3H8OZfuDBpwzm4E5moc5mocf80F+G+2ps7b3G5BRERERFQLi2QiIiIiolp0FcmLNI1bH+ZqHOZqHOZqHObyH/76/8xcjcNcjcNcjeev2ZqUS8uNe0RERERE/ozbLYiIiIiIamGRTERERERUi1eLZCHEVUKI3UKIvUKIR+r4fLgQ4u3qz28QQrT3Zp5G5LpDCJErhNha/XG3DzK9IoTIEULsPMXnhRDiX9WZtwsh+ng7UwNzXSyEKKrxXP3DR7naCCG+EkL8JITYJYQYW8djfP6cNTCXz58zIYRNCLFRCLGtOtfjdTzG5z+PDczl85/HGmObhRA/CiE+qeNzWuYvb+Kc3ahMnLMbl4tzduNycc5uWj5j52wppVc+AJgB7APQEUAYgG0AutZ6zP0AFlb/egiAt72Vp5G57gAwz9tZao15IYA+AHae4vNXA1gNQADoB2CDn+S6GMAnvnyuqsdtCaBP9a9jAOyp4+/R589ZA3P5/Dmrfg6iq39tBbABQL9aj9Hx89iQXD7/eawx9gQAb9T196Xj+fLy/yvn7Mbl4pzduFycsxuXi3N20/IZOmd7cyX5HAB7pZT7pZQOAG8BGFzrMYMBLK/+9UoAlwohhBczNTSXz0kpvwFQcJqHDAawQirrAcQLIVr6QS4tpJRHpJRbqn9dDOBnAK1rPcznz1kDc/lc9XNQUv1ba/VH7bt2ff7z2MBcWgghUgFcA2DJKR6iY/7yJs7ZjcA5u3E4ZzcO5+zG88ac7c0iuTWAgzV+n40/fuP99hgppRNAEYAkL2ZqaC4AuLH67Z6VQog2Xs7UEA3NrUP/6rdeVgshuvl68Oq3THpDvaKtSetzdppcgIbnrPptqK0AcgB8IaU85fPlw5/HhuQC9Pw8PgfgIQDuU3xey/PlRZyzjcU5+xQ4Zzc4D+fsxjF8zuaNe3X7GEB7KWVPAF/g5CsP+qMtANpJKc8E8AKAD3w5uBAiGsB7AMZJKe2+HPt06sml5TmTUrqklL0ApAI4RwjR3Rfj1qcBuXz+8yiEuBZAjpRys7fHIkNwzm44ztl14JzdcKE0Z3uzSD4EoOarh9TqP6vzMUIIC4A4APlezNSgXFLKfCllZfVvlwDo6+VMDdGQ59PnpJT2E2+9SCk/A2AVQiT7YmwhhBVqUntdSvl+HQ/R8pzVl0vnc1Y95nEAXwG4qtandPw81ptL08/jAACDhBCZUG/v/1kI8Vqtx2h9vryAc7axOGfXwjm7aThnN4hX5mxvFsn/A5AmhOgghAiD2iT9Ua3HfARgePWv/wrgP1JKb+9tqTdXrT1Qg6D2KOn2EYDbhdIPQJGU8ojuUEKIFif29AghzoH6nvL6D2n1mC8D+FlKOecUD/P5c9aQXDqeMyFEMyFEfPWvIwBcDuCXWg/z+c9jQ3Lp+HmUUk6SUqZKKdtDzRH/kVLeVuthOuYvb+KcbSzO2b8fl3N243JxzgmrNlQAAAD/SURBVG4Eb83ZFsOTVpNSOoUQYwCsgbo7+RUp5S4hxDQAm6SUH0F9Y74qhNgLdaPBEG/laWSu/xNCDALgrM51h7dzCSHehLqDNlkIkQ3gMagN8ZBSLgTwGdSdv3sBlAG409uZGpjrrwDuE0I4AZQDGOKjQmEAgGEAdlTvjQKAyQDa1sim4zlrSC4dz1lLAMuFEGaoCf4dKeUnun8eG5jL5z+Pp+IHz5fXcM5uHM7ZjcY5u3E4ZxvA0+eLbamJiIiIiGrhjXtERERERLWwSCYiIiIiqoVFMhERERFRLSySiYiIiIhqYZFMRERERFQLi2QiIiIiolpYJBMRERER1fL/kNtHWR2VbcgAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 864x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, (ax1, ax2) = plt.subplots(ncols=2, sharey=True, figsize=(12, 4))\n",
    "for ax, column, color in zip([ax1, ax2], [\"C\", \"F\"], [\"blue\", \"#b2e123\"]):\n",
    "    df_demo[column].plot(ax=ax, legend=True, color=color)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Aside: Seaborn\n",
    "\n",
    "* Python package on top of Matplotlib\n",
    "* Powerful API shortcuts for plotting of statistical data\n",
    "* Manipulate color palettes\n",
    "* Works well together with Pandas\n",
    "* Also: New clever defaults for Matplotlib\n",
    "* → https://seaborn.pydata.org/"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "import seaborn as sns\n",
    "sns.set()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_demo[[\"A\", \"C\"]].plot();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Seaborn Color Palette Example"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAABQCAYAAADiBIpwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAAr1JREFUeJzt2cGLjGEAx/GHBkOZtbZ1VE5ObhQXF+XfkAMpykVWOEopF3HYTA7+Bc5Srty4K0fTYEaxu229LlJ+N9M+PWP6fC7P6alfvb31rWdX13VdAQDgj92tBwAAzBuBBAAQBBIAQBBIAABBIAEABIEEABAEEgBAEEgAAEEgAQAEgQQAEAQSAEAQSAAAoTfrxZuP35TxZGMnt8yNZ3fPl09PrrSeUc3Ra+vl6ss7rWdUcfHFuJwcrpd3lxbz+50crpdH9161nlHN9bvnyvMHN1rPqObC2sPy8enb1jOqOXb5VBkOh61nVHH6+KicOHu7vH9zv/WUKk6cvV1uvf7QekYVy/09Ze3M8X++N3MgjScb5fPXn7Nen3vbk1HrCVWNfnxpPaGKzc+jv85FNFng/66UUr5/G7eeUNX2dLP1hKqm02nrCVVsbXz961xE459brSfMFU9sAABBIAEABIEEABAEEgBAEEgAAEEgAQAEgQQAEAQSAEAQSAAAQSABAASBBAAQBBIAQBBIAABBIAEABIEEABAEEgBAEEgAAEEgAQAEgQQAEAQSAEAQSAAAQSABAASBBAAQBBIAQBBIAABBIAEABIEEABAEEgBAEEgAAEEgAQAEgQQAEAQSAEAQSAAAQSABAASBBAAQBBIAQBBIAABBIAEABIEEABAEEgBAEEgAAEEgAQAEgQQAEAQSAEAQSAAAQSABAASBBAAQBBIAQBBIAABBIAEABIEEABB6s15cWerv5I6501tabT2hqtUDh1tPqGLfke73ubjfb2l5f+sJVR08tNJ6QlW9wb7WE6oaDAatJ1Sxt7/5+1xuvKSelf17W0+oYrm/Z6Z7u7qu63Z4CwDAf80TGwBAEEgAAEEgAQAEgQQAEAQSAEAQSAAAQSABAASBBAAQBBIAQBBIAABBIAEABIEEABB+AfAGVV2++a/SAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 720x72 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.palplot(sns.color_palette())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAABQCAYAAADiBIpwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAAplJREFUeJzt2TGKE3EYxuFvZRQJihpIZzGd9R5CLDyEF4g3EAvZSrByLmDtCcTKE1jbTWEX2VUUER0Yq1i8nWGHyQ7P06T6s+8HS/hBTsZxHAsAgH+uzT0AAODYCCQAgCCQAACCQAIACAIJACAIJACAIJAAAIJAAgAIAgkAIAgkAIAgkAAAgkACAAjNoQ8/nz2v4eL8MrccjfZVV/277dwzJtM+6upDv8z73lfVWdvVs4Xed9Z2te3fzD1jMl37pLaf+rlnTKZ70Nb2dT/3jMl0T9t6ue3nnjGJh1V12rX1caH3nXZt9du3c8+YRLNe1f0Xj///3aF/cLg4r+HL7tDnR2/4udzbqqp+Dcu8b5/s5wu9r6pqN3yfe8Kkdn+GuSdMavdt2fd93S3zvt/7z4XeV1U17H7MPeGo+IkNACAIJACAIJAAAIJAAgAIAgkAIAgkAIAgkAAAgkACAAgCCQAgCCQAgCCQAACCQAIACAIJACAIJACAIJAAAIJAAgAIAgkAIAgkAIAgkAAAgkACAAgCCQAgCCQAgCCQAACCQAIACAIJACAIJACAIJAAAIJAAgAIAgkAIAgkAIAgkAAAgkACAAgCCQAgCCQAgCCQAACCQAIACAIJACAIJACAIJAAAIJAAgAIAgkAIAgkAIAgkAAAgkACAAgCCQAgCCQAgCCQAACCQAIACAIJACAIJACAIJAAAEJz8MN768vccXSa1WbuCZO62Szzvv1/5Xqh91VVbZrbc0+Y1Ob6wV9LV8LmzrLvu7tZ5n039p8Lva+qqtncmnvCJJr16qB3J+M4jpe8BQDgSvMTGwBAEEgAAEEgAQAEgQQAEAQSAEAQSAAAQSABAASBBAAQBBIAQBBIAABBIAEABIEEABD+AsYQTZBcSEeRAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 720x72 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.palplot(sns.color_palette(\"hls\", 10))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABHYAAABQCAYAAAB8i/K4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAABBlJREFUeJzt27+OVVUYxuEXQRqIhAQNkgl7V1qpN2C8BazUC9BKbbT1LoyVVlbGSm+BeANipdXahIB/JjEYaDB4LA6hJZ7Mcs238jzNamYn71dN5hc4s9vtdgEAAACgnOdGDwAAAADgMMIOAAAAQFHCDgAAAEBRwg4AAABAUcIOAAAAQFHCDgAAAEBRwg4AAABAUcIOAAAAQFHCDgAAAEBRwg4AAABAUcIOAAAAQFHCDgAAAEBR5w7+8pM3k+M7JzjlFPm6JV+to1f0835LfllHr+ji7ivJtbTczTp6ShfX0vLNpLclyXtp+WDi+75My6sT3/dzWta8O3pGJ2+l5cOs+WL0kC72t/00ekY3La9l/XX0in7a1WT9dvSKfto7yfrR6BWd3EzarWR9ffSQPtqt5O119Ip+vmvJ5+voFf183JIf19Er+nmjJVn/HD2jk5tJu5Gs348e0ke7kayfjl7Rx9Hl5IfP/vNnh4ed4zvJb9vBn596f018W5L8Ped9j5++c96XJA8mvi1Jfp/8vm36+2b96/l+kmR78s5oy6PRE7raHj/7ZyrbHoxe0Nf2x+gFndzeP9vtsTN6ujf3r73cn/y+R5Pfl+2f0Qs6ebh/todjZ/S0HY9ecKr4r1gAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFCTsAAAAARQk7AAAAAEUJOwAAAABFnTv4yytHJzjjFHphGb2gr+fnvO/s03fO+5Lk4sS3JclLk9+3TH/f1dETOrmUJFmevDNacn70hK6Ws8/+mcqWi6MX9LW8OHpBJ9f3z3J97IyeXp77114uTX7f+cnvyzLrv3O4sH+WC2Nn9LRcGb2gj6PLB312Zrfb7U54CgAAAAD/g1kTJQAAAMD0hB0AAACAooQdAAAAgKKEHQAAAICihB0AAACAooQdAAAAgKKEHQAAAICihB0AAACAooQdAAAAgKKEHQAAAICihB0AAACAooQdAAAAgKL+BVCMY5TLW1IBAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1440x72 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.palplot(sns.color_palette(\"hsv\", 20))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAABQCAYAAADiBIpwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAArVJREFUeJzt2T1LFVAAxvHjWyRKiCBkCDW4FThW0BRCU04S1NdoaKqhra2Ghr5ALtHiJElTkI2u0RJcMhpEQrnhS7ctuM/WxcOxy++3nOnAMx3+cEZ6vV6vAADw12jrAQAAZ41AAgAIAgkAIAgkAIAgkAAAgkACAAgCCQAgCCQAgCCQAACCQAIACAIJACAIJACAMD7oxXeff5Tu0clpbjkzVq7Ol1vP3reeUc2HR7fLZudV6xlVvNh6W9ZXN8rdN3daT6lifXWjHK+9bj2jmvH7D8rO9ZutZ1Qz/+lj+b31tPWMakZvPCnl+ZXWM6rYvrZZlpYXy/bml9ZTqlhaXiyP7621nlHFzNxUefhy5Z/vDRxI3aOTcnA4nIFUSimdvW7rCVV1j3+2nlDFzsG3vnMo7e+3XlDVSafTekJdv3ZbL6hr72vrBVUcdo/6zmG0+32435Z/5YsNACAIJACAIJAAAIJAAgAIAgkAIAgkAIAgkAAAgkACAAgCCQAgCCQAgCCQAACCQAIACAIJACAIJACAIJAAAIJAAgAIAgkAIAgkAIAgkAAAgkACAAgCCQAgCCQAgCCQAACCQAIACAIJACAIJACAIJAAAIJAAgAIAgkAIAgkAIAgkAAAgkACAAgCCQAgCCQAgCCQAACCQAIACAIJACAIJACAIJAAAIJAAgAIAgkAIAgkAIAgkAAAgkACAAgCCQAgCCQAgCCQAACCQAIACAIJACAIJACAIJAAAML4oBcnJ8ZOc8eZszAz2XpCVZPjF1pPqGJ+6lLfOZSmp1svqGpsYaH1hLrOz7ZeUNfM5dYLqjg3OdF3DqPZi8P5tszMTQ10b6TX6/VOeQsAwH/NFxsAQBBIAABBIAEABIEEABAEEgBAEEgAAEEgAQAEgQQAEAQSAEAQSAAAQSABAASBBAAQ/gBg1VC50SDDXAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 720x72 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.palplot(sns.color_palette(\"Paired\", 10))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Seaborn Plot Examples\n",
    "\n",
    "* Most of the time, I use a regression plot from Seaborn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.simplefilter(action='ignore', category=FutureWarning)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "with sns.color_palette(\"hls\", 2):\n",
    "    sns.regplot(x=\"C\", y=\"F\", data=df_demo);\n",
    "    sns.regplot(x=\"C\", y=\"G\", data=df_demo);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "* A joint plot combines two plots into one\n",
    "* Very handy for showing a fuller picture of two-dimensionally scattered variables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [],
   "source": [
    "x, y = np.random.multivariate_normal([0, 0], [[1, -.5], [-.5, 1]], size=300).T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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brvtNmzevBm/+tWvnA4HAPCDH/wATzzxhNNhzCysaU4sFrMeeOABa8mSJU6HYt10003WyZMnLcuyrB/+8IfWj370I8diuf76662jR49almVZL730kvXoo486FotlWVYoFLL+7u/+zmppabGeeeYZR2Lo6uqyrr/+emtwcNCKRqPWHXfckf77coIDBw5Yt99+u7V8+XLr3LlzjsVhWZa1c+dO64EHHrCSyaSlqqr18MMPW9u3b3csnt27d1sPPvigpWmaFY/Hreuvv95qbW11LB7Lsqxdu3ZZa9eutb7xjW84GsdMY9pnQt///vfxyCOPOB0GAOD111/HokWLoGkauru74ff7HYlDVVV89atfRXNzMwBg6dKl6OzsdCQWmx07dmDBggX4q7/6K8di2LVrF9atW4dAIACPx4PPfe5z2LZtm2Px/Pa3v8Xf//3fo7a21rEYbGpqavDEE09AlmVIkoSmpiZ0dHQ4Fs9VV12Ff/3Xf4Uoiujv74dhGPB4PI7FMzQ0hKeffhqPPvqoYzHMVKa1CO3YsQOJRAKbNm1yOhQAgCRJOH78ODZs2IDdu3dj8+bNjsQhyzLuuusuAIBpmvjJT36Cm266yZFYbO6++278zd/8DQRBcCyGnp4e1NTUpP9cW1uL7u5ux+L57ne/izVr1jh2/kwWL16MVatWAQDOnj2L119/HRs2bHA0JkmS8Mwzz2Dz5s1Yv3496urqHIvlW9/6Fh5//HHHXixnMo6NciiGN954A9/73veyfrZw4UJEIhE899xzUyae5557DkuXLsWuXbvw4osv4vHHH8eLL77oWCyqquKJJ56Aruv44he/OKlxFBKP01h5DOM5jmz5Mzl58iS++MUv4hvf+AYWLFjgdDj4yle+gi984Qt49NFH8dvf/hYPPPDARY/hpZdeQkNDA9avX4+tW7de9PPPdKaFCN1666249dZbs3720ksv4ec//zkeeuih9M/uuusuPP/88/D5fBc9nmQyiTfffDOdcdx55534wQ9+MKlxjBQLAESjUTz22GMIBALYsmULJEma9FhGi2cqUFdXhz179qT/3NPTMyWWwqYKe/fuxVe+8hV885vfdCyLt2ltbYWqqli2bBncbjduueUWHD9+3JFYXn/9dfT29uKuu+5CMBhELBbDk08+iW9+85uOxDPTmBYilI/7778f999/f/rPS5cuxe9//3vH4hFFEf/wD/+A+vp6rFixAm+88QZWr17tWDxf+9rXMH/+fHz729+mt/0UV199NZ599lkMDAzA7XZj+/bt+M53vuN0WFOCzs5OfOlLX8LTTz+N9evXOx0Ozp8/j2eeeQb/9m//BoAtvd97772OxJJZmbd161Z8+OGHJEAlZNqK0FRDEAQ8/fTT+Na3vgXDMFBXV4fvfve7jsRy5MgR7NixA4sWLcLdd98NgO1//OIXv3AknqlCXV0dHn/8cTz88MPQNA333XcfWlpanA5rSvAv//IvSCaT+P73v5/+2YMPPojPf/7zjsSzYcMGHDx4EHfffTcEQcAtt9zieHZGTA40WZUgCIJwjGldHUcQBEFMb0iECIIgCMcgESIIgiAcg0SIIAiCcAwSIYIgCMIxSIQIgiAIxyARIgiCIByDRIggCIJwjP8fWSaTuOAvUsYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x432 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.jointplot(x=x, y=y, kind=\"reg\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task 6\n",
    "<a name=\"task6\"></a>\n",
    "\n",
    "* To your `df` NEST data frame, add a column with the unaccounted time (`Unaccounted Time / s`), which is the difference of program runtime, average neuron build time, minimal edge build time, minimal initialization time, presimulation time, and simulation time.  \n",
    "(*I know this is technically not super correct, but it will do for our example.*)\n",
    "* Plot a stacked bar plot of all these columns (except for program runtime) over the virtual processes\n",
    "* Remember: [pollev.com/aherten538](https://pollev.com/aherten538)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "cols = [\n",
    "    'Avg. Neuron Build Time / s', \n",
    "    'Min. Edge Build Time / s', \n",
    "    'Min. Init. Time / s', \n",
    "    'Presim. Time / s', \n",
    "    'Sim. Time / s'\n",
    "]\n",
    "df[\"Unaccounted Time / s\"] = df['Runtime Program / s']\n",
    "for entry in cols:\n",
    "    df[\"Unaccounted Time / s\"] = df[\"Unaccounted Time / s\"] - df[entry]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "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>Runtime Program / s</th>\n",
       "      <th>Unaccounted Time / s</th>\n",
       "      <th>Avg. Neuron Build Time / s</th>\n",
       "      <th>Min. Edge Build Time / s</th>\n",
       "      <th>Min. Init. Time / s</th>\n",
       "      <th>Presim. Time / s</th>\n",
       "      <th>Sim. Time / s</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Virtual Processes</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>420.42</td>\n",
       "      <td>2.09</td>\n",
       "      <td>0.29</td>\n",
       "      <td>88.12</td>\n",
       "      <td>1.14</td>\n",
       "      <td>17.26</td>\n",
       "      <td>311.52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>202.15</td>\n",
       "      <td>2.43</td>\n",
       "      <td>0.28</td>\n",
       "      <td>47.98</td>\n",
       "      <td>0.70</td>\n",
       "      <td>7.95</td>\n",
       "      <td>142.81</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   Runtime Program / s  Unaccounted Time / s  \\\n",
       "Virtual Processes                                              \n",
       "8                               420.42                  2.09   \n",
       "16                              202.15                  2.43   \n",
       "\n",
       "                   Avg. Neuron Build Time / s  Min. Edge Build Time / s  \\\n",
       "Virtual Processes                                                         \n",
       "8                                        0.29                     88.12   \n",
       "16                                       0.28                     47.98   \n",
       "\n",
       "                   Min. Init. Time / s  Presim. Time / s  Sim. Time / s  \n",
       "Virtual Processes                                                        \n",
       "8                                 1.14             17.26         311.52  \n",
       "16                                0.70              7.95         142.81  "
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[[\"Runtime Program / s\", \"Unaccounted Time / s\", *cols]].head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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WURERETEBWqcRURERERcoMZZRERERMQFapxFRERERFygxllERERExAVqnEVEREREXGC50wXc7fyL+uDj6+u0LSCgiNPPaampnE9Kc2dZIiIiInIdNc53mI+vLzOH9bzlmPCIeYAaZxEREZE7SVM1RERERERcoMZZRERERMQFLjfOKSkptG3blpMnTwIwbNgwWrRoQfv27Wnfvj3fffcdAFFRUYSGhtKiRQumTZuWO1WLiIiIiLiZS3Ocd+3axciRIzl+/Lhj2969e1m0aBGBgYGObZcvX2b48OEsXLiQ0qVLExYWxqZNmwgJCTG8cBERERERd3LpivOyZcsYM2aMo0m+ePEip0+fZtSoUYSGhjJjxgxsNhu7d++mQoUKlC9fHovFQmhoKOvXr8/VExARERERcQeXrjhPmDDB6eeEhATq16/PuHHj8PPzIywsjBUrVuDn50dAQIBjXGBgIDExMdkqqESJwtkaf9X1j3C7HUZleUJNnlBDbuUYmaWa3J+lmtyfpZrcn6Wa3J+lmtyfld9rulaOHkdXvnx53n//fcfP3bp1Y/Xq1bRq1SrTWJPJlK3shIQUbDa742dXTzwuLvmWr2fnDTQqK6sco7NulJ2T/XIzSzW5N8dTs1ST+7NUk/uzVJP7s1ST+7Pyak1msylHF2tz9FSNgwcPsmHDBsfPdrsdi8VCqVKliI+Pd2yPjY11mgMtIiIiIpJX5ahxttvtTJw4kfPnz5Oens7SpUtp3rw5NWvW5NixY5w4cYKMjAzWrl1L48aNja5ZRERERMTtcjRVo2rVqvTt25fnnnsOq9VKixYtaNu2LQCTJk2if//+pKamEhIScsPpG2K8Gy3dDVq+W0RERMQo2Wqcv//+e8e/u3btSteuXTONadCgAWvWrLn9yiRbXFm6G7R8t4iIiEhOaeVAEREREREXqHEWEREREXGBGmcREREREReocRYRERERcYEaZxERERERF6hxFhERERFxgRpnEREREREXqHEWEREREXGBGmcREREREReocRYRERERcYEaZxERERERF6hxFhERERFxgRpnEREREREXqHEWEREREXGB5U4XkBVrehrhEfOyHCMiIiIikptcbpxTUlLo0qULH330EeXKlSMqKoqIiAhSU1N58sknGThwIAD79+9n5MiRpKSkUKdOHd566y0slpz35xZvH8YNWnvL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\n",
      "text/plain": [
       "<Figure size 864x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[[\"Unaccounted Time / s\", *cols]].plot(kind=\"bar\", stacked=True, figsize=(12, 4));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "* Make it relative to the total program run time\n",
    "* **Slight complication**: Our virtual processes as indexes are not unique; we need to find new unique indexes\n",
    "* Let's use a multi index!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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></th>\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>Runtime Program / s</th>\n",
       "      <th>Scale</th>\n",
       "      <th>Plastic</th>\n",
       "      <th>Avg. Neuron Build Time / s</th>\n",
       "      <th>Min. Edge Build Time / s</th>\n",
       "      <th>Max. Edge Build Time / s</th>\n",
       "      <th>Min. Init. Time / s</th>\n",
       "      <th>Max. Init. Time / s</th>\n",
       "      <th>Presim. Time / s</th>\n",
       "      <th>Sim. Time / s</th>\n",
       "      <th>Virt. Memory (Sum) / kB</th>\n",
       "      <th>Local Spike Counter (Sum)</th>\n",
       "      <th>Average Rate (Sum)</th>\n",
       "      <th>Number of Neurons</th>\n",
       "      <th>Number of Connections</th>\n",
       "      <th>Min. Delay</th>\n",
       "      <th>Max. Delay</th>\n",
       "      <th>Unaccounted Time / s</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Nodes</th>\n",
       "      <th>Tasks/Node</th>\n",
       "      <th>Threads/Task</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"3\" valign=\"top\">1</th>\n",
       "      <th rowspan=\"2\" valign=\"top\">2</th>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>420.42</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.29</td>\n",
       "      <td>88.12</td>\n",
       "      <td>88.18</td>\n",
       "      <td>1.14</td>\n",
       "      <td>1.20</td>\n",
       "      <td>17.26</td>\n",
       "      <td>311.52</td>\n",
       "      <td>46560664.0</td>\n",
       "      <td>825499</td>\n",
       "      <td>7.48</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>2.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>5</td>\n",
       "      <td>202.15</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.28</td>\n",
       "      <td>47.98</td>\n",
       "      <td>48.48</td>\n",
       "      <td>0.70</td>\n",
       "      <td>1.20</td>\n",
       "      <td>7.95</td>\n",
       "      <td>142.81</td>\n",
       "      <td>47699384.0</td>\n",
       "      <td>802865</td>\n",
       "      <td>7.03</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>2.43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>200.84</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.15</td>\n",
       "      <td>46.03</td>\n",
       "      <td>46.34</td>\n",
       "      <td>0.70</td>\n",
       "      <td>1.01</td>\n",
       "      <td>7.87</td>\n",
       "      <td>142.97</td>\n",
       "      <td>46903088.0</td>\n",
       "      <td>802865</td>\n",
       "      <td>7.03</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>3.12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <th>2</th>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>164.16</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.20</td>\n",
       "      <td>40.03</td>\n",
       "      <td>41.09</td>\n",
       "      <td>0.52</td>\n",
       "      <td>1.58</td>\n",
       "      <td>6.08</td>\n",
       "      <td>114.88</td>\n",
       "      <td>46937216.0</td>\n",
       "      <td>802865</td>\n",
       "      <td>7.03</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>2.45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>12</th>\n",
       "      <td>6</td>\n",
       "      <td>141.70</td>\n",
       "      <td>10</td>\n",
       "      <td>True</td>\n",
       "      <td>0.30</td>\n",
       "      <td>32.93</td>\n",
       "      <td>33.26</td>\n",
       "      <td>0.62</td>\n",
       "      <td>0.95</td>\n",
       "      <td>5.41</td>\n",
       "      <td>100.16</td>\n",
       "      <td>50148824.0</td>\n",
       "      <td>813743</td>\n",
       "      <td>7.27</td>\n",
       "      <td>112500</td>\n",
       "      <td>1265738500</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>2.28</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               id  Runtime Program / s  Scale  Plastic  \\\n",
       "Nodes Tasks/Node Threads/Task                                            \n",
       "1     2          4              5               420.42     10     True   \n",
       "                 8              5               202.15     10     True   \n",
       "      4          4              5               200.84     10     True   \n",
       "2     2          4              5               164.16     10     True   \n",
       "1     2          12             6               141.70     10     True   \n",
       "\n",
       "                               Avg. Neuron Build Time / s  \\\n",
       "Nodes Tasks/Node Threads/Task                               \n",
       "1     2          4                                   0.29   \n",
       "                 8                                   0.28   \n",
       "      4          4                                   0.15   \n",
       "2     2          4                                   0.20   \n",
       "1     2          12                                  0.30   \n",
       "\n",
       "                               Min. Edge Build Time / s  \\\n",
       "Nodes Tasks/Node Threads/Task                             \n",
       "1     2          4                                88.12   \n",
       "                 8                                47.98   \n",
       "      4          4                                46.03   \n",
       "2     2          4                                40.03   \n",
       "1     2          12                               32.93   \n",
       "\n",
       "                               Max. Edge Build Time / s  Min. Init. Time / s  \\\n",
       "Nodes Tasks/Node Threads/Task                                                  \n",
       "1     2          4                                88.18                 1.14   \n",
       "                 8                                48.48                 0.70   \n",
       "      4          4                                46.34                 0.70   \n",
       "2     2          4                                41.09                 0.52   \n",
       "1     2          12                               33.26                 0.62   \n",
       "\n",
       "                               Max. Init. Time / s  Presim. Time / s  \\\n",
       "Nodes Tasks/Node Threads/Task                                          \n",
       "1     2          4                            1.20             17.26   \n",
       "                 8                            1.20              7.95   \n",
       "      4          4                            1.01              7.87   \n",
       "2     2          4                            1.58              6.08   \n",
       "1     2          12                           0.95              5.41   \n",
       "\n",
       "                               Sim. Time / s  Virt. Memory (Sum) / kB  \\\n",
       "Nodes Tasks/Node Threads/Task                                           \n",
       "1     2          4                    311.52               46560664.0   \n",
       "                 8                    142.81               47699384.0   \n",
       "      4          4                    142.97               46903088.0   \n",
       "2     2          4                    114.88               46937216.0   \n",
       "1     2          12                   100.16               50148824.0   \n",
       "\n",
       "                               Local Spike Counter (Sum)  Average Rate (Sum)  \\\n",
       "Nodes Tasks/Node Threads/Task                                                  \n",
       "1     2          4                                825499                7.48   \n",
       "                 8                                802865                7.03   \n",
       "      4          4                                802865                7.03   \n",
       "2     2          4                                802865                7.03   \n",
       "1     2          12                               813743                7.27   \n",
       "\n",
       "                               Number of Neurons  Number of Connections  \\\n",
       "Nodes Tasks/Node Threads/Task                                             \n",
       "1     2          4                        112500             1265738500   \n",
       "                 8                        112500             1265738500   \n",
       "      4          4                        112500             1265738500   \n",
       "2     2          4                        112500             1265738500   \n",
       "1     2          12                       112500             1265738500   \n",
       "\n",
       "                               Min. Delay  Max. Delay  Unaccounted Time / s  \n",
       "Nodes Tasks/Node Threads/Task                                                \n",
       "1     2          4                    1.5         1.5                  2.09  \n",
       "                 8                    1.5         1.5                  2.43  \n",
       "      4          4                    1.5         1.5                  3.12  \n",
       "2     2          4                    1.5         1.5                  2.45  \n",
       "1     2          12                   1.5         1.5                  2.28  "
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_multind = df.set_index([\"Nodes\", \"Tasks/Node\", \"Threads/Task\"])\n",
    "df_multind.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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ozVDhgzg2LHfeKlhI9q1eY3Tf555KjmLRnREREREsqzYu3f/94a09I/7KMGBQbRp1YqRY0eTkJAAQEj5CnTp8uZj9Td89Cjatm5DyRIlHuv41Lz2amtmz5tLWO/3MJlMdGzfgcKFnyE+3gTce610VFQUefLkTXJs+/admDBhFHfvxODq6kqXN9L/LXeSPBU6IiIiIlnUvbVu7r0G2mh0ITL8rE3H+RUuarnJf1z1/1WX+v9KOk0tPt7EunWbAShYsBCNG4da9u/cudfy9ZAhwy35Dh046JF9JcZLVLFiZSpWrAxgteZNkyZNeb5CsOXzpnXrAciePTsfvNcrxfju7u4prp1TsmQpFi1aZvO1lfSjqWsiIiIiIuJ0VOiIiIiIiIjTUaEjIiIikkWYzeaMTkHkkdLzZ1SFjoiIiEgW4OpqJC4uNqPTEHkkM2A0Jn3F9+NQoSMiIiKSBeTMmZsbNy4TG3tXIzuSKZnNZmLu3MbHxydd4umtayIiIiJZgKdnDgBu3rxCQkJ8kv0uLi5E3bpqU6z4iwZMJtveupbRcR0p18wQNyNzNZvN3Lp8kQqVq3D16m2b4j6KCh0RERGRLMLTM4el4HmYr68XMwfYtsZL2NhFXL4cZVPbjI7rSLlmhriZIddG/3nNpnap0dQ1ERERERFxOip0RERERETE6ajQERERERERp6NCR0REREREnI4KHRERERERcToqdERERERExOmo0BEREREREaejQkdERERERJyOCh0REREREXE6KnRERERERMTpqNARERERERGno0JHREREREScjgodERERERFxOip0RERERETE6ajQERERERERp6NCR0REREREnI4KHRERERERcToqdERERERExOmo0BEREREREaejQkdERERERJyOCh0REREREXE6KnRERERERMTpqNARERERERGno0JHREREREScjgodERERERFxOip0RERERETE6ajQERERERERp6NCR0REREREnI4KHRERERERcToqdERERERExOmo0BEREREREaejQkdERERERJyOTYXO5s2bady4MS+++CLLly9Psv/MmTO0b9+epk2b0qVLF27evJnuiYqIiIiIiNgq1UInIiKCKVOmsGLFCjZu3Mjq1as5deqUZb/ZbKZ79+5069aNTZs2UaZMGebOnWvXpEVERERERB4l1UJn165dVKtWjdy5c5M9e3YaNWrEli1bLPuPHj1K9uzZeeGFFwB4++23adeunf0yFhERERERSUWqhU5kZCS+vr6Wz35+fkRERFg+nzt3jnz58tGvXz9CQ0MZOnQo2bNnt0+2IiIiIiIiNjCm1sBsNifZZjAYLF/Hx8ezZ88eli1bRlBQEFOnTmXcuHGMGzfO5iTy5s1pc9vk+Pp6PdHxivt0YzpaXEfK1V5xHSlXR4vrSLnaK64j5WqvuI6Uq6PFdaRc7RXXkXK1V1xHytXR4mbmXFMtdPLnz8/evXstnyMjI/Hz83sgCV+KFClCUFAQAE2aNKFnz55pSuLq1WhMJuuCKi0nd/lylE3t0nrBnDGuI+WaWeI6Uq72iutIuWZ0XEfKNbPEdaRc7RXXkXLN6LiOlGtmietIudorriPlmtFxM2OuLi6GxxoYSXXqWo0aNfj555+5du0aMTExbNu2zfI8DkBISAjXrl3j+PHjAHz33XeUK1cuzYmIiIiIiIikF5tGdHr37k2HDh2Ii4ujZcuWBAcH061bN3r27ElQUBCffPIJgwYNIiYmhgIFCjBhwoSnkbuIiIiIiEiyUi10AEJDQwkNDbXaNm/ePMvX5cuXZ926dembmYiIiIiIyGOyacFQERERERERR6JCR0REREREnI4KHRERERERcToqdERERERExOmo0BEREREREaejQkdERERERJyOCh0REREREXE6KnRERERERMTpqNARERERERGno0JHREREREScjgodERERERFxOip0RERERETE6ajQERERERERp6NCR0REREREnI4KHRERERERcToqdERERERExOmo0BEREREREaejQkdERERERJyOCh0REREREXE6KnRERERERMTpqNARERERERGno0JHREREREScjgodERERERFxOip0RERERETE6ajQERERERERp6NCR0REREREnI4KHRERERERcToqdERERERExOmo0BEREREREaejQkdERERERJyOCh0REREREXE6KnRERERERMTpqNARERERERGno0JHREREREScjgodERERERFxOip0RERERETE6ajQERERERERp6NCR0REREREnI4KHRERERERcToqdERERERExOkYMzoBEREREXFe8XGxhI1dZHNbkfSiQkdERERE7Mbo5s6ID76wqe2QyU2Au/ZNSLIMTV0TERER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\n",
      "text/plain": [
       "<Figure size 1008x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_multind[[\"Unaccounted Time / s\", *cols]]\\\n",
    "    .divide(df_multind[\"Runtime Program / s\"], axis=\"index\")\\\n",
    "    .plot(kind=\"bar\", stacked=True, figsize=(14, 6), title=\"Relative Time Distribution\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Next Level: Hierarchical Data\n",
    "\n",
    "* `MultiIndex` only a first level\n",
    "* More powerful:\n",
    "    - Grouping: `.groupby()` ([API](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.groupby.html))\n",
    "    - Pivoting: `.pivot_table()` ([API](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.pivot_table.html)); also `.pivot()` ([API](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.pivot.html))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "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>id</th>\n",
       "      <th>Tasks/Node</th>\n",
       "      <th>Threads/Task</th>\n",
       "      <th>Runtime Program / s</th>\n",
       "      <th>Scale</th>\n",
       "      <th>Plastic</th>\n",
       "      <th>Avg. Neuron Build Time / s</th>\n",
       "      <th>Min. Edge Build Time / s</th>\n",
       "      <th>Max. Edge Build Time / s</th>\n",
       "      <th>Min. Init. Time / s</th>\n",
       "      <th>...</th>\n",
       "      <th>Presim. Time / s</th>\n",
       "      <th>Sim. Time / s</th>\n",
       "      <th>Virt. Memory (Sum) / kB</th>\n",
       "      <th>Local Spike Counter (Sum)</th>\n",
       "      <th>Average Rate (Sum)</th>\n",
       "      <th>Number of Neurons</th>\n",
       "      <th>Number of Connections</th>\n",
       "      <th>Min. Delay</th>\n",
       "      <th>Max. Delay</th>\n",
       "      <th>Unaccounted Time / s</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Nodes</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5.333333</td>\n",
       "      <td>3.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>185.023333</td>\n",
       "      <td>10.0</td>\n",
       "      <td>True</td>\n",
       "      <td>0.220000</td>\n",
       "      <td>42.040000</td>\n",
       "      <td>42.838333</td>\n",
       "      <td>0.583333</td>\n",
       "      <td>...</td>\n",
       "      <td>7.226667</td>\n",
       "      <td>132.061667</td>\n",
       "      <td>4.806585e+07</td>\n",
       "      <td>816298.000000</td>\n",
       "      <td>7.215000</td>\n",
       "      <td>112500.0</td>\n",
       "      <td>1.265738e+09</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>2.891667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5.333333</td>\n",
       "      <td>3.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>73.601667</td>\n",
       "      <td>10.0</td>\n",
       "      <td>True</td>\n",
       "      <td>0.168333</td>\n",
       "      <td>19.628333</td>\n",
       "      <td>20.313333</td>\n",
       "      <td>0.191667</td>\n",
       "      <td>...</td>\n",
       "      <td>2.725000</td>\n",
       "      <td>48.901667</td>\n",
       "      <td>4.975288e+07</td>\n",
       "      <td>818151.000000</td>\n",
       "      <td>7.210000</td>\n",
       "      <td>112500.0</td>\n",
       "      <td>1.265738e+09</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.986667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5.333333</td>\n",
       "      <td>3.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>43.990000</td>\n",
       "      <td>10.0</td>\n",
       "      <td>True</td>\n",
       "      <td>0.138333</td>\n",
       "      <td>12.810000</td>\n",
       "      <td>13.305000</td>\n",
       "      <td>0.135000</td>\n",
       "      <td>...</td>\n",
       "      <td>1.426667</td>\n",
       "      <td>27.735000</td>\n",
       "      <td>5.511165e+07</td>\n",
       "      <td>820465.666667</td>\n",
       "      <td>7.253333</td>\n",
       "      <td>112500.0</td>\n",
       "      <td>1.265738e+09</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.745000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.333333</td>\n",
       "      <td>3.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>31.225000</td>\n",
       "      <td>10.0</td>\n",
       "      <td>True</td>\n",
       "      <td>0.116667</td>\n",
       "      <td>9.325000</td>\n",
       "      <td>9.740000</td>\n",
       "      <td>0.088333</td>\n",
       "      <td>...</td>\n",
       "      <td>1.066667</td>\n",
       "      <td>19.353333</td>\n",
       "      <td>5.325783e+07</td>\n",
       "      <td>819558.166667</td>\n",
       "      <td>7.288333</td>\n",
       "      <td>112500.0</td>\n",
       "      <td>1.265738e+09</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.275000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>5.333333</td>\n",
       "      <td>3.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>24.896667</td>\n",
       "      <td>10.0</td>\n",
       "      <td>True</td>\n",
       "      <td>0.140000</td>\n",
       "      <td>7.468333</td>\n",
       "      <td>7.790000</td>\n",
       "      <td>0.070000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.771667</td>\n",
       "      <td>14.950000</td>\n",
       "      <td>6.075634e+07</td>\n",
       "      <td>815307.666667</td>\n",
       "      <td>7.225000</td>\n",
       "      <td>112500.0</td>\n",
       "      <td>1.265738e+09</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.496667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>5.333333</td>\n",
       "      <td>3.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>20.215000</td>\n",
       "      <td>10.0</td>\n",
       "      <td>True</td>\n",
       "      <td>0.106667</td>\n",
       "      <td>6.165000</td>\n",
       "      <td>6.406667</td>\n",
       "      <td>0.051667</td>\n",
       "      <td>...</td>\n",
       "      <td>0.630000</td>\n",
       "      <td>12.271667</td>\n",
       "      <td>6.060652e+07</td>\n",
       "      <td>815456.333333</td>\n",
       "      <td>7.201667</td>\n",
       "      <td>112500.0</td>\n",
       "      <td>1.265738e+09</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.990000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>6 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             id  Tasks/Node  Threads/Task  Runtime Program / s  Scale  \\\n",
       "Nodes                                                                   \n",
       "1      5.333333         3.0           8.0           185.023333   10.0   \n",
       "2      5.333333         3.0           8.0            73.601667   10.0   \n",
       "3      5.333333         3.0           8.0            43.990000   10.0   \n",
       "4      5.333333         3.0           8.0            31.225000   10.0   \n",
       "5      5.333333         3.0           8.0            24.896667   10.0   \n",
       "6      5.333333         3.0           8.0            20.215000   10.0   \n",
       "\n",
       "       Plastic  Avg. Neuron Build Time / s  Min. Edge Build Time / s  \\\n",
       "Nodes                                                                  \n",
       "1         True                    0.220000                 42.040000   \n",
       "2         True                    0.168333                 19.628333   \n",
       "3         True                    0.138333                 12.810000   \n",
       "4         True                    0.116667                  9.325000   \n",
       "5         True                    0.140000                  7.468333   \n",
       "6         True                    0.106667                  6.165000   \n",
       "\n",
       "       Max. Edge Build Time / s  Min. Init. Time / s  ...  Presim. Time / s  \\\n",
       "Nodes                                                 ...                     \n",
       "1                     42.838333             0.583333  ...          7.226667   \n",
       "2                     20.313333             0.191667  ...          2.725000   \n",
       "3                     13.305000             0.135000  ...          1.426667   \n",
       "4                      9.740000             0.088333  ...          1.066667   \n",
       "5                      7.790000             0.070000  ...          0.771667   \n",
       "6                      6.406667             0.051667  ...          0.630000   \n",
       "\n",
       "       Sim. Time / s  Virt. Memory (Sum) / kB  Local Spike Counter (Sum)  \\\n",
       "Nodes                                                                      \n",
       "1         132.061667             4.806585e+07              816298.000000   \n",
       "2          48.901667             4.975288e+07              818151.000000   \n",
       "3          27.735000             5.511165e+07              820465.666667   \n",
       "4          19.353333             5.325783e+07              819558.166667   \n",
       "5          14.950000             6.075634e+07              815307.666667   \n",
       "6          12.271667             6.060652e+07              815456.333333   \n",
       "\n",
       "       Average Rate (Sum)  Number of Neurons  Number of Connections  \\\n",
       "Nodes                                                                 \n",
       "1                7.215000           112500.0           1.265738e+09   \n",
       "2                7.210000           112500.0           1.265738e+09   \n",
       "3                7.253333           112500.0           1.265738e+09   \n",
       "4                7.288333           112500.0           1.265738e+09   \n",
       "5                7.225000           112500.0           1.265738e+09   \n",
       "6                7.201667           112500.0           1.265738e+09   \n",
       "\n",
       "       Min. Delay  Max. Delay  Unaccounted Time / s  \n",
       "Nodes                                                \n",
       "1             1.5         1.5              2.891667  \n",
       "2             1.5         1.5              1.986667  \n",
       "3             1.5         1.5              1.745000  \n",
       "4             1.5         1.5              1.275000  \n",
       "5             1.5         1.5              1.496667  \n",
       "6             1.5         1.5              0.990000  \n",
       "\n",
       "[6 rows x 21 columns]"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby(\"Nodes\").mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Pivoting\n",
    "\n",
    "* Combine categorically-similar columns\n",
    "* Creates hierarchical index\n",
    "* Respected during plotting!\n",
    "* A pivot table has three *layers*; if confused, think about these questions\n",
    "    - `index`: »What's on the `x` axis?«\n",
    "    - `values`: »What value do I want to plot?«\n",
    "    - `columns`: »What categories do I want [to be in the legend]?«\n",
    "* All can be populated from base data frame\n",
    "* Might be aggregated, if needed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [],
   "source": [
    "df_demo[\"H\"] = [(-1)**n for n in range(5)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "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>H</th>\n",
       "      <th>-1</th>\n",
       "      <th>1</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>F</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>-3.918282</th>\n",
       "      <td>NaN</td>\n",
       "      <td>7.389056</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-2.504068</th>\n",
       "      <td>NaN</td>\n",
       "      <td>1.700594</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-1.918282</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0.515929</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-0.213769</th>\n",
       "      <td>0.972652</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.518282</th>\n",
       "      <td>2.952492</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "H                -1         1\n",
       "F                            \n",
       "-3.918282       NaN  7.389056\n",
       "-2.504068       NaN  1.700594\n",
       "-1.918282       NaN  0.515929\n",
       "-0.213769  0.972652       NaN\n",
       " 0.518282  2.952492       NaN"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_pivot = df_demo.pivot_table(\n",
    "    index=\"F\",\n",
    "    values=\"G\",\n",
    "    columns=\"H\"\n",
    ")\n",
    "df_pivot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_pivot.plot();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task 7\n",
    "<a name=\"task7\"></a>\n",
    "\n",
    "* Create a pivot table based on the NEST `df` data frame\n",
    "* Let the `x` axis show the number of nodes; display the values of the simulation time `\"Sim. Time / s\"` for the tasks per node and threas per task configurations\n",
    "* Please plot a bar plot\n",
    "* Done? [pollev.com/aherten538](https://pollev.com/aherten538)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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nH0YEREREZEy4/QLAUVEREREKhunT88QEREREalsFJpFREREROxQaBYRERERsUOhWURERETEDoVmERERERE7FJpFruGbb75h6dKlnDlzpsD2lStXllNFUhyxsbHEx8cDsGrVKqZNm8aWLVvKuSopiYiIiPIuQRx05MgR2+MffviBiIgIIiMjOXz4cDlWJY7avXs3KSkpAERHRzNlyhTWrFlTzlVVLFpyTuT/iYyM5OjRo9SvX5+tW7cyevRowsLCAOjatSvr1q0r5wqlKEuWLGHp0qVYLBZatWrF+fPneeyxx9i5cycPPPAAQ4cOLe8S5TrGjh1baNvOnTt59NFHAZg5c2ZZlyTF8L9/H5ctW8aXX35J9+7dAVi3bh09e/bkmWeeKecK5XqmT5/OsWPHmD17NsuWLeOf//wnf/3rX/n++++pXbs24eHh5V1iheD0m5tIvnPnzhW5/4477iijSqS4du3axbp16zCZTPTr14+BAwfi7u5Ox44d0XfMim/NmjVs2bKFxMREOnfuzL59+/Dw8KBnz5706NFDobkCq169OtHR0bz44otUq1YNgH379tGiRYtyrkyKIyoqis8//5xbb70VgB49etCjRw+F5gps7969bNy4ETc3N7777juioqJwd3enV69edO7cubzLqzAUmkvJkCFDiI2Nxc/Pr1DQMhgM7Nixo5wqE3usVisGgwGAO++8kw8//JDnnnuO2267zbZdKi6LxYK7uzsBAQEMHDgQDw8P2768vLxyrEzsGT16NO3ateP999/n1VdfpWXLlnz22Wd07dq1vEsTB+Tm5mKxWKhRowbe3t627e7u7hiNmg1akXl6epKUlISfnx81atQgPT0dd3d3MjIyMJkUFf9H0zNKSVpaGn369GHixIk0a9asvMuRYpg3bx4xMTGMGTPGdgv4Q4cOMWzYMLKzszl06FA5VyhFmTNnDvv37+fzzz/Hzc0NgJ9//pnw8HAefvhhhg0bVs4Vij1Xrlxh4sSJ3HHHHezZs4eNGzeWd0nigP79+3Pq1CkMBgOtW7cmIiKCH374gXfeeYeHH36YESNGlHeJch07d+5k0qRJdOrUidzcXPbt20dQUBB79uzhhRdeoFu3buVdYoWg0FyKjhw5wqpVq5g6dWp5lyLF9MMPP+Dn50f9+vVt286fP8/ixYt56623yrEyccSBAwd48MEHbc9PnjxJXFwcwcHB5ViVFNeqVavYunUrixcvLu9SpBhOnjxJSkoKTZs25dChQ6SmpvLwww+Xd1liR1xcHN988w2nT58mLy+PmjVr8sgjj9hOHolCs4iIiIiIXZpkJCIiIiJih0KziIiIiIgdCs0iIuXo7Nmz3H333axatarA9kWLFjFmzBiH+7l06RJ33323s8sTEZH/UmgWESlnRqORt99+m1OnTpV3KSIich1afE9EpJx5enry3HPP8dprr/Hll1/i7u5u25eamsrkyZP5+eefMRgMPPTQQ7z66quYTCa++uorZs+ejZeXF3/+858L9Llq1SpWrFiBxWKhevXqjB8/nvr163Pw4EEiIiKwWCxA/pryHTp0KNP3KyLiinSmWUSkAnjppZfw8vJi9uzZBbZPmzaN6tWrs3HjRtasWcPx48dZvHgxiYmJjBs3jg8++IC1a9cSEBBge83+/fuJjo5m2bJlREdH88ILLzB8+HAAPvjgA5577jnWrl3LjBkz2LdvX5m+TxERV6UzzSIiFYDRaOSdd96ha9eutG3b1rb9+++/Z8WKFRgMBtzd3enduzefffYZdevWpVGjRjRo0ACAXr168d577wHw3Xffcfr0aXr37m3rJzk5mStXrtCxY0emTJnCzp07ad26Na+++mrZvlERERel0CwiUkHccccdTJo0idGjR9OlSxcA2zSK/7FYLOTm5mIwGPjjMvt/vNWtxWIhLCyMN954w/Y8ISGBW265hd69e/PII4+wd+9edu/ezbx589iwYQO+vr5l8A5FRFyXpmeIiFQgHTt2pF27dnz22WcAtG3blmXLlmG1WsnOziYqKorWrVvTvHlzTpw4wc8//wzA2rVrbX20adOGzZs3k5CQAMCKFSt49tlnAejduzfHjh2jW7duTJ06lZSUFJKTk8v4XYqIuB6daRYRqWDCw8M5dOiQ7fG0adMIDQ0lJyeHhx56iBdffBF3d3ciIyN5/fXXqVKlSoHbhj/00EMMGjSIgQMHYjAY8PHxYd68eRgMBl5//XVmzJjB+++/j9FoZNiwYdSuXbu83qqIiMvQbbRFREREROzQ9AwRERERETsUmkVERERE7FBoFhERERGxQ6FZRERERMQOhWYRERERETsUmkVERERE7FBoFhERERGxQ6FZRERERMSO/wPgkCk9ZX0M6wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 864x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.pivot_table(\n",
    "    index=[\"Nodes\"],\n",
    "    columns=[\"Tasks/Node\", \"Threads/Task\"],\n",
    "    values=\"Sim. Time / s\",\n",
    ").plot(kind=\"bar\", figsize=(12, 4));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "<a name=\"taskb\"></a>\n",
    "\n",
    "* Bonus task\n",
    "    - Use `Sim. Time / s` and `Presim. Time / s` as values to show\n",
    "    - Show a stack of those two values inside the pivot table"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## The End\n",
    "\n",
    "* Pandas works on data frames\n",
    "* Slice frames to your likings\n",
    "* Plot frames\n",
    "    - Together with Matplotlib, Seaborn, others\n",
    "* Pivot tables are next level greatness\n",
    "* Thanks for being here! 😍"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task"
   },
   "source": [
    "<span class=\"feedback\">Tell me what you think about this tutorial! <a href=\"mailto:a.herten@fz-juelich.de\">a.herten@fz-juelich.de</a></span>"
   ]
  }
 ],
 "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.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}