Skip to content
Snippets Groups Projects
Introduction-to-Pandas--solution.ipynb 145 KiB
Newer Older
Andreas Herten's avatar
Andreas Herten committed
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "tags": [
     "task"
    ]
   },
   "source": [
    "# Data Analysis and Plotting in Python with Pandas\n",
    "\n",
    "_Andreas Herten, J\u00fclich Supercomputing Centre, Forschungszentrum J\u00fclich, 27 May 2021_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "onlysolution",
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "source": [
    "**Version: Solutions**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "## Task 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",
    "* [Task 7B](#task7b)"
Andreas Herten's avatar
Andreas Herten committed
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task 1\n",
    "<a name=\"task1\"></a>\n",
    "<span class=\"task\" style=\"padding: 2px 8px; color: white; background-color: #b9d25f; float: right; text-weight: bolder;\">TASK</em></span>\n",
Andreas Herten's avatar
Andreas Herten committed
    "\n",
    "* Create data frame with\n",
    "    - 6 names of dinosaurs, \n",
    "    - their favourite prime number, \n",
    "    - and their favorite color.\n",
    "* Play around with the frame\n",
    "* Tell me when you're done with status icon in BigBlueButton: \ud83d\udc4d"
   ]
  },
  {
   "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": 25,
Andreas Herten's avatar
Andreas Herten committed
   "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": 26,
Andreas Herten's avatar
Andreas Herten committed
   "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": 26,
Andreas Herten's avatar
Andreas Herten committed
     "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": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task 2\n",
    "<a name=\"task2\"></a>\n",
    "<span class=\"task\" style=\"padding: 2px 8px; color: white; background-color: #b9d25f; float: right; text-weight: bolder;\">TASK</em></span>\n",
Andreas Herten's avatar
Andreas Herten committed
    "\n",
    "* Read in `data-nest.csv` to `DataFrame`; call it `df`  \n",
    "  *(Data was produced with [JUBE](http://www.fz-juelich.de/ias/jsc/EN/Expertise/Support/Software/JUBE/_node.html))*\n",
    "* Get to know it and play a bit with it\n",
    "* Tell me when you're done with status icon in BigBlueButton: \ud83d\udc4d"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
Andreas Herten's avatar
Andreas Herten committed
   "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 data-nest.csv | head -3"
Andreas Herten's avatar
Andreas Herten committed
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
Andreas Herten's avatar
Andreas Herten committed
   "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 \u00d7 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": 34,
Andreas Herten's avatar
Andreas Herten committed
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv(\"data-nest.csv\")\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Task 3\n",
    "<a name=\"task3\"></a>\n",
    "<span class=\"task\" style=\"padding: 2px 8px; color: white; background-color: #b9d25f; float: right; text-weight: bolder;\">TASK</em></span>\n",
Andreas Herten's avatar
Andreas Herten committed
    "\n",
    "* Add a column to the Nest data frame form Task 2 called `Threads` 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",
    "* Tell me when you're done with status icon in BigBlueButton: \ud83d\udc4d"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
Andreas Herten's avatar
Andreas Herten committed
   "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>Threads</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 \u00d7 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  Threads  \n",
       "0             112500             1265738500         1.5         1.5        8  \n",
       "1             112500             1265738500         1.5         1.5       16  \n",
       "2             112500             1265738500         1.5         1.5       16  \n",
       "3             112500             1265738500         1.5         1.5       32  \n",
       "4             112500             1265738500         1.5         1.5       16  \n",
       "\n",
       "[5 rows x 22 columns]"
      ]
     },
     "execution_count": 62,
Andreas Herten's avatar
Andreas Herten committed
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[\"Threads\"] = df[\"Nodes\"] * df[\"Tasks/Node\"] * df[\"Threads/Task\"]\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
Andreas Herten's avatar
Andreas Herten committed
   "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', 'Threads'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 63,
Andreas Herten's avatar
Andreas Herten committed
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
Andreas Herten's avatar
Andreas Herten committed
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task 4\n",
    "<a name=\"task4\"></a>\n",
    "<span class=\"task\" style=\"padding: 2px 8px; color: white; background-color: #b9d25f; float: right; text-weight: bolder;\">TASK</em></span>\n",
Andreas Herten's avatar
Andreas Herten committed
    "\n",
    "\n",
    "* Sort the Nest data frame by threads\n",
Andreas Herten's avatar
Andreas Herten committed
    "* Plot `\"Presim. Time / s\"` and `\"Sim. Time / s\"` of our data frame `df` as a function of threads\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 _(1st rule of plotting)_\n",
    "* Tell me when you're done with status icon in BigBlueButton: \ud83d\udc4d"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
Andreas Herten's avatar
Andreas Herten committed
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "df.sort_values([\"Threads\", \"Nodes\", \"Tasks/Node\", \"Threads/Task\"], inplace=True)  # multi-level sort"
Andreas Herten's avatar
Andreas Herten committed
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
Andreas Herten's avatar
Andreas Herten committed
   "metadata": {
    "exercise": "solution"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "ax.plot(df[\"Threads\"], df[\"Presim. Time / s\"], linestyle=\"dashed\", color=\"red\", label=\"Presim. Time / s\")\n",
    "ax.plot(df[\"Threads\"], df[\"Sim. Time / s\"], \"-b\", label=\"Sim. Time / s\")\n",
    "ax.set_xlabel(\"Virtual Process\")\n",
    "ax.set_ylabel(\"Time / s\")\n",
    "ax.legend(loc='best');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task 5\n",
    "<a name=\"task5\"></a>\n",
    "<span class=\"task\" style=\"padding: 2px 8px; color: white; background-color: #b9d25f; float: right; text-weight: bolder;\">TASK</em></span>\n",
Andreas Herten's avatar
Andreas Herten committed
    "\n",
    "Use the Nest data frame `df` to:\n",
Andreas Herten's avatar
Andreas Herten committed
    "\n",
    "1. Make threads index of the data frame (`.set_index()`)\n",
Andreas Herten's avatar
Andreas Herten committed
    "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 axes labels\n",
    "6. Tell me when you're done with status icon in BigBlueButton: \ud83d\udc4d"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
Andreas Herten's avatar
Andreas Herten committed
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [],
   "source": [
    "df.set_index(\"Threads\", inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
Andreas Herten's avatar
Andreas Herten committed
   "metadata": {
    "exercise": "solution"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[\"Presim. Time / s\"].plot(figsize=(10, 3));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
Andreas Herten's avatar
Andreas Herten committed
   "metadata": {
    "exercise": "solution"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[\"Sim. Time / s\"].plot(figsize=(10, 3));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
Andreas Herten's avatar
Andreas Herten committed
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEGCAYAAABiq/5QAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAehUlEQVR4nO3dfZQcdZ3v8fe3e54yE0hIZowxCSSwETaABBxZWJ9QBCWea+KB1bAu5rpcw3phD96rdw/quVe9R+7V9XG96+KJwoKsIiAiObvIg1lYlLsCE02ABGIChJvEkIzkiTzNQ8/3/lG/nunp6Z7umZ6Z6q7+vM7pU9W/qur6/qaSb1X9qupX5u6IiEj9SMUdgIiITC0lfhGROqPELyJSZ5T4RUTqjBK/iEidaYg7AID29nZfuHBh3GGIiNSU9evX/8HdO8a6XFUk/oULF9LV1RV3GCIiNcXMXh7PcmrqERGpM0r8IiJ1RolfRKTOKPGLiNQZJX4RkTqjxC8iUmeU+EVE6kxtJ/49m2Hd/4Sj++KORESkZtR24t/3Avzy63BwR9yRiIjUjNpO/K2zo+GRP8Qbh4hIDanxxN8eDY++Gm8cIiI1pLYTf5sSv4jIWJVM/GbWYmZPmtlGM9tkZl8M5YvM7Akz22Zmd5pZUyhvDt+3hekLJy36lplgaTX1iIiMQTlH/D3Au939HGAp8D4zuwD4CvBNd/8jYD9wdZj/amB/KP9mmG9ypFLQOguOKvGLiJSrZOL3yOHwtTF8HHg38JNQfhuwIowvD98J0y82M5uogEdona0jfhGRMSirjd/M0ma2AdgLPAy8ABxw9/4wy05gXhifB+wACNMPArMnMObhWtvVxi8iMgZlJX53z7j7UmA+cD5wRqUrNrPVZtZlZl3d3d3j/6G22Ur8IiJjMKa7etz9APAIcCEw08yyb/CaD+wK47uABQBh+gxgRGZ29zXu3ununR0dY35z2JDWdjX1iIiMQTl39XSY2cwwPg24BHiOaAdwRZhtFXBfGF8bvhOm/6u7+wTGPFzrbDi2HwYyk7YKEZEkKeedu3OB28wsTbSjuMvd/9nMNgM/NrMvAb8Fbg7z3wzcbmbbgH3AykmIe0hbO+BRfz3TKzhzEBGpEyUTv7s/DZxboPxFovb+/PLjwJ9NSHTlyHbbcPRVJX4RkTLU9pO7kPP0rtr5RUTKUfuJP9tfjy7wioiUJQGJP9vUo8QvIlKO5CT+I7qXX0SkHLWf+BuaoHmGHuISESlT7Sd+CE/vqqlHRKQcyUj86qhNRKRsCUn86qhNRKRcyUj86qhNRKRsyUj82Y7aJrFLIBGRpEhG4m9rh4E+6DkUdyQiIlUvGYl/8F5+XeAVESklIYk/21+P2vlFREpJRuJvy+mhU0RERpWMxK+O2kREypaMxK+umUVEypaMxN/YCg0tOuIXESlDMhK/WXh6d1/ckYiIVL1kJH5QR20iImVKTuLPPr0rIiKjSlDi1xG/iEg5kpP429r1Fi4RkTIkJ/G3zoa+I9B3LO5IRESqWsnEb2YLzOwRM9tsZpvM7PpQ/gUz22VmG8JnWc4ynzGzbWa2xczeO5kVGNSmbhtERMrRUMY8/cCn3P03ZnYCsN7MHg7TvunuX8ud2cyWACuBM4E3AL8wsze6e2YiAx8h9+ndGfMndVUiIrWs5BG/u+9299+E8deA54B5oyyyHPixu/e4+0vANuD8iQh2VNkeOnWBV0RkVGNq4zezhcC5wBOh6Doze9rMbjGzk0LZPGBHzmI7KbCjMLPVZtZlZl3d3d1jjzzfYFOPHuISERlN2YnfzKYD9wCfdPdDwE3AacBSYDfw9bGs2N3XuHunu3d2dHSMZdHC1Ce/iEhZykr8ZtZIlPR/6O4/BXD3Pe6ecfcB4HsMNefsAhbkLD4/lE2ulplgaTX1iIiUUM5dPQbcDDzn7t/IKZ+bM9sHgWfD+FpgpZk1m9kiYDHw5MSFXEQqBa2zdMQvIlJCOXf1vBW4CnjGzDaEss8CV5rZUsCB7cA1AO6+yczuAjYT3RF07aTf0ZPV2q7bOUVESiiZ+N39V4AVmHT/KMvcCNxYQVzj06bELyJSSnKe3IXoAq+aekRERpWsxN/Wrou7IiIlJCvxt86GY/sh0x93JCIiVSthiT88xHVsf7xxiIhUsWQl/jZ12yAiUkqyEn9uR20iIlJQwhK/jvhFREpJVuJv0xG/iEgpyUr8g0f86qFTRKSYZCX+dCO0zFBTj4jIKJKV+CG6wKumHhGRohKY+GfriF9EZBTJS/xt7WrjFxEZRfISvzpqExEZVfISf7ZrZve4IxERqUrJS/yts2GgD44fjDsSEZGqlMDEHx7i0gtZREQKSl7ib1PiFxEZTfISf/bpXV3gFREpKHmJf/CIX4lfRKSQ5CV+HfGLiIwqeYm/qQ0apqmNX0SkiOQlfhi6l19EREYomfjNbIGZPWJmm81sk5ldH8pnmdnDZrY1DE8K5WZm3zazbWb2tJmdN9mVGEFP74qIFFXOEX8/8Cl3XwJcAFxrZkuAG4B17r4YWBe+A1wGLA6f1cBNEx51KW3turgrIlJEycTv7rvd/Tdh/DXgOWAesBy4Lcx2G7AijC8HfuCRXwMzzWzuRAc+qtbZcERNPSIihYypjd/MFgLnAk8Ac9x9d5j0CjAnjM8DduQstjOU5f/WajPrMrOu7u7uscY9ula18YuIFFN24jez6cA9wCfd/VDuNHd3YEy9orn7GnfvdPfOjo6OsSxaWtts6DsCfccm9ndFRBKgrMRvZo1ESf+H7v7TULwn24QThntD+S5gQc7i80PZ1GnVS9dFRIop564eA24GnnP3b+RMWgusCuOrgPtyyj8a7u65ADiY0yQ0NQZfuq7ELyKSr6GMed4KXAU8Y2YbQtlngS8Dd5nZ1cDLwIfCtPuBZcA24CjwsYkMuCzZbht0gVdEZISSid/dfwVYkckXF5jfgWsrjKsy6ppZRKSohD65q6YeEZFikpn4W2aCpXVxV0SkgGQmfrPoAq+O+EVERkhm4ofQbcO+uKMQEak6yU386qhNRKSg5CZ+ddQmIlJQchO/jvhFRApKcOJvh+MHINMXdyQiIlUluYk/+/Tusf3xxiEiUmWSm/j10nURkYKSm/izR/y6wCsiMkxyE7+O+EVECkpw4ldHbSIihSQ48c+Khkr8IiLDJDfxpxujztrU1CMiMkxyEz+oozYRkQKSnfjb2nXELyKSJ9mJv1U9dIqI5Et24m9TU4+ISL5kJ/7W9uiuHve4IxERqRoJT/yzYaA/6qxNRESApCf+wW4b1M4vIpKV7MSffXpXd/aIiAwqmfjN7BYz22tmz+aUfcHMdpnZhvBZljPtM2a2zcy2mNl7JyvwsrSF/np0gVdEZFA5R/y3Au8rUP5Nd18aPvcDmNkSYCVwZljmH8wsPVHBjpk6ahMRGaFk4nf3x4ByG8mXAz929x53fwnYBpxfQXyVaVXXzCIi+Spp47/OzJ4OTUEnhbJ5wI6ceXaGshHMbLWZdZlZV3d3dwVhjKKpFRpbdXFXRCTHeBP/TcBpwFJgN/D1sf6Au69x90537+zo6BhnGGVoVbcNIiK5xpX43X2Pu2fcfQD4HkPNObuABTmzzg9l8dHTuyIiw4wr8ZvZ3JyvHwSyd/ysBVaaWbOZLQIWA09WFmKFXnkGtv0i1hBERKpJQ6kZzOwO4CKg3cx2Ap8HLjKzpYAD24FrANx9k5ndBWwG+oFr3T0zKZGXa6A/1tWLiFSbkonf3a8sUHzzKPPfCNxYSVAT6qzL4f/9Ou4oRESqRrKf3AVINURv4xIREaAeEr+IiAyjxC8iUmeU+EVE6owSv4hInVHiFxGpM0r8IiJ1RolfRKTOKPGLiNQZJX4RkTqjxC8iUmeU+EVE6owSv4hInVHiFxGpM0r8IiJ1pj4S/0AG3OOOQkSkKiQ/8c85Cw7ugMe+FnckIiJVoeQbuGrehdfBnk3wyJdg2kw4/+NxRyQiEqvkJ/5UCpb/PfQcgvs/DS0z4E0fijsqEZHYJL+pB6JXL17xj7Dw7XDvX8GWB+KOSEQkNvWR+AEaW2Dlj+D1Z8Pdq2D743FHJCISi/pJ/AAtJ8Jf3AMzT4Y7VsLvN8QdkYjIlCuZ+M3sFjPba2bP5pTNMrOHzWxrGJ4Uys3Mvm1m28zsaTM7bzKDH5e2drjq3qit/58uhz9sjTsiEZEpVc4R/63A+/LKbgDWuftiYF34DnAZsDh8VgM3TUyYE2zGfLjqZ9H4D1bAgR1xRiMiMqVKJn53fwzYl1e8HLgtjN8GrMgp/4FHfg3MNLO5ExTrxGr/I7jqp9HdPrevgMPdcUckIjIlxtvGP8fdd4fxV4A5YXwekHv4vDOUVae558Cf3wn7XoQnvht3NCIiU6Lii7vu7sCY+0Mws9Vm1mVmXd3dMR5tn/Kn0DQd+o7GF4OIyBQab+Lfk23CCcO9oXwXsCBnvvmhbAR3X+Pune7e2dHRMc4wRERkrMab+NcCq8L4KuC+nPKPhrt7LgAO5jQJiYhIFSjZZYOZ3QFcBLSb2U7g88CXgbvM7GrgZSDbB8L9wDJgG3AU+NgkxCwiIhUomfjd/coiky4uMK8D11YalIiITJ76enJXRESU+EVE6o0Sv4hInVHiFxGpM0r8IiJ1RolfRKTOKPGLiNQZJX4RkTqjxC8iUmeU+EVE6owSv4hInVHiFxGpM0r8IiJ1RolfRKTOKPGLiNQZJX4RkTqjxJ916Pdw/FDcUYiITLqSb+CqCycthM0/g+f/BU65EBZfGn3a3whmcUcnIjKhLHpbYrw6Ozu9q6srvgAyfbDjSdj6IGx9GPZujspnnjK0E1j0dmicFl+MIiJ5zGy9u3eOeTkl/gIO7IBtD0c7gRcfhb6j0DQdrnkMZp8Wd3QiIsD4E7/a+AuZuQA6/xKuvAP+5iW47KvQexgO7ow7MhGRiinxl9LYAnPOjDsKEZEJo8QvIlJnKrqrx8y2A68BGaDf3TvNbBZwJ7AQ2A58yN33VxamiIhMlIk44n+Xuy/NucBwA7DO3RcD68J3ERGpEpPR1LMcuC2M3wasmIR1iIjIOFWa+B14yMzWm9nqUDbH3XeH8VeAOYUWNLPVZtZlZl3d3d0VhiEiIuWq9Mndt7n7LjN7HfCwmT2fO9Hd3cwKPijg7muANRDdx19hHCIiUqaKjvjdfVcY7gXuBc4H9pjZXIAw3FtpkCIiMnHGnfjNrM3MTsiOA5cCzwJrgVVhtlXAfZUGKSIiE6eSpp45wL0WdWLWAPzI3R8ws6eAu8zsauBl4EOVhxmz5unRcP0/wvy3QFNrvPGIiFRg3Inf3V8EzilQ/ipwcSVBVZ3Xvwne9Tl45H/BH7bCh2+HWafGHZWIyLjoyd1ymME7/wY+cnfUX8+ai+B3D8UdlYjIuCjxj8XiS2D1ozDzZPjRh+DRL8PAQNxRiYiMiRL/WM1aBH/5EJyzEh7933DHSjhWZo8UO9fD/u2TGp6ISCl6A9d4NLXCiptg3pvhgc9ETT8f/iG8/qzh8/X3RIl+34vw6gvw0Oei8i8cnOqIRUQGKfGPlxmc/3GYew7c9VH4/nvgwmvh+IEoye97Iboe4GoKEpHqosRfqQXnR2/muvtj8MuvQcsMmHUaLPgTOOfKaHz2adFdQN9/D7zh3LgjFpE6p8Q/Eaa/Dv7jP0PPIWg+US9oF5GqpsQ/Ucyio30RkSqnu3qmmmegCl5wLyL1S0f8UyndBJvuhS0/h+lzwud1cMLrc77nlLV1QLox7qhFJGGU+KfSin+Alx+Hw3vgtT3R8NUXorKCzwIYtM7O20G8LrqT6KzLpzx8EUkGJf6pNO+86FNIfw8c3hs+e+DwK0PjuTuJw69AphdOfz80tkxt/CKSCEr81aKhGWYuiD6j+dW34Befh8e+CqkGyPRApi/aceSOzzwZ/vg/RA+Z6S4jEcmhxF9rZsyPhr/8WjRMNUY7jXQjpJuj6wjpRnhuLTz+LThxXrQD+OMPwMkXQCodW+giUh1qOvHv2HeUG//lOT7/gSXMnTEt7nCmxtlXwOnLogSebip+NH9sP/zuQdi8FtbfCk98N7pYfMb7o53AonfowrFInTKvglsLOzs7vaura8zL/WLzHv76jt/SkDa++IEz+eC58zA1a4zUcxi2PhSdBfzuIeg7Eu00Tl8Gi94Oja3Q0BING6cNfRqm5X1vUbORSBUxs/Xu3jnm5Wo58QO8/OoRPn33Rp7avp9Ll8zhxg+eTccJzRMcYYL0HYvOBO5eVXreQhqmRReVszuLJcvhPZ+f2BhFpCx1m/gBMgPOLb96ia8+tIXpzQ18acVZLDt77gRGmEADGeg9Av3Hoe8o9GWHx6D/WDTMluXPk/3+23+Kfuv9Xw/XFvI/jUPjDUXKc8t0NiEyJnWd+LO27nmN/3rXRp7ZdZDlS9/AFz9wJjNbmyYgQinogc/Cr78zcb+XahxlJ9EY3cWUahwaTzdG31PpaLxpOkw7KXxm5oyfBC3he/MJ2sFIYijxB32ZAW569AW+vW4rs9qa+Mrlb+JdZ7xuQn5b8rhHF5EH+sPtpL3R7aSDw/yy3pxbTwuUZ29HHVbWG+bvi9Yz0AeZ7LAvGg5kovl6DkfxZHqKx2zp4juGHU9A9xaY3hHtRBpboalt6NPYGpU3hfLG7LTWkfM3tIRPUzQc7UK8yDgp8ed5dtdBPnXXRrbseY3rL17Mf7nkjRP6+1LF+o5FO4DBz4Hh34/nfT+2H44dhJ7wgpxzroTew9B7NGoO6zsSDXO/j+c9Cw0t4dbb5qHxwWFz3vewsxg2X1PODqXYPDm/098DG380dCaVzt76m3sm1ZzX9JZ7e3CR5rvsb+jW4NiNN/HX9O2cozlr3gzW/vVbWf73j3Pr/93OtKY0bc0NtA0OG2hrjsanNzcwd0aL7ghKiuxdSCe+YWzLZfqjYbrEfwv36DpH79FoB9EXdgjZT/Y6SP/xKPkOG/YWLs/0Qs9rcKS7+LzEf5A2jKWKX9cpuvMY7bpPc4npTUM7HEtFZ2+pdM4wFX2GlaUhlRrj/OnEn50lNvEDNDekWb50Hn/74PN8+efPjzrvDZedwV+987QpikyqUqmEn2U2tHNpmz25MWW5h2aysJMYtvMYZYfS1Bb16+QemsdGa27rLaNJrkgzXLHpmd4otr6DxZv0+sNwoG9q/pblGrEzCDuEincsefMvWQHnfmRKqzZpid/M3gf8HZAGvu/uX56sdY3mExedxjXvOJVjfRmO9PZzpCfDkZ5+jvT0c7Q3w+Gefj5990Zu+dVLrHtuD2ZG2ox0yjCDdMo42pPhye37uOcTF3LmG2bQ0qhTXJliZqGpZ5w3K5hBKjQDVavszm3UnVBv1Mw2kIm6OB8cDkTlw8oyoWyM8w8ulz9/psBvjWP+/t7h8/cenvI/9aQkfjNLA98BLgF2Ak+Z2Vp33zwZ6ysllbKoeae5AU4YOf35Vw6xccdBBtzJDDj9AwP0ZqLbRAfceXpn1PZ7+U3/DkBTQ4oTWxo5cVpDGDZyYksD0xrTZMJvZD/9A85AGP7b77oxg09fevqw9eeeVRpWoGxovp37j/H0zoNcdcEppFKQMhv8pFNgeePZnVg0T7QjS6WMzIDTlE4x4FEd+zND8ebGnv17FJtn8ZzpLF0wM68+w0+TC500559JW95clZxpm0W/l/0NCzHl/h3H26yXvSaWvTTmOeWFGmKy6x4az8aQ7KaEcal05yZlm6wj/vOBbe7+IoCZ/RhYDsSS+Ev5b+89Y9TpAwPOuuf3sufQcQ4d7+PQsf4w7OPQ8X4OHutj576jHOvLkE4ZDSG5NoSE25COEjBECeOrD26pOOYNOw5U/BsSiXYUQ8l4MLmH6ZN9/0N2/VBgB8XQ3qtQebFlySvPXdewdQ+Lo/gOe+R+qtzfzJ82vliGzVdgUrHZ8w8oii5fdF0Fli+8onH/5sq3LOA/vf3UInNPjslK/POAHTnfdwJ/kjuDma0GVgOcfPLJkxTGxEiljEuWzKn4d9ydvkw2qQw/chw+X844I48w9x/pjc6Kw9G6u5MZYPDofSCMZzw624jOXBg8o8m4s+9wLzOmNZJO2eDOKp0KO6lUavBMIfqeMz2VIpWChlSKu7t28MCmV3h/zsNy+fUpdBw8cp7Rpxf7nUIG/045R+Y+7O/ng2XZGfKn558tRCMFjtrzzs5yp+Wue2jcR5STc6ZQbJ7ccoaV+7B/F/l1HPm3GV7ow6blzZszdbTtNXI9oyxX4N914WnlL1dwgVGKC93FWOxfVuF/h5X9ZqEJ7dOnvvkttou77r4GWAPR7ZxxxTGVzIymhspP8ac3V8c1+WveeRrX6IK4SM2ZrHfu7gJyO5afH8pERCRmk5X4nwIWm9kiM2sCVgJrJ2ldIiIyBpPSZuDu/WZ2HfAg0e2ct7j7pslYl4iIjM2kNRa7+/3A/ZP1+yIiMj6T1dQjIiJVSolfRKTOKPGLiNQZJX4RkTpTFf3xm1k38HKRye3AH6YwnKmietWepNZN9ao92bqd4u4dY124KhL/aMysazwvGqh2qlftSWrdVK/aU2nd1NQjIlJnlPhFROpMLST+NXEHMElUr9qT1LqpXrWnorpVfRu/iIhMrFo44hcRkQmkxC8iUmeqNvGb2fvMbIuZbTOzG+KOp1Jmtt3MnjGzDWbWFcpmmdnDZrY1DE+KO85SzOwWM9trZs/mlBWsh0W+Hbbh02Z2XnyRj65Ivb5gZrvCNttgZstypn0m1GuLmb03nqhLM7MFZvaImW02s01mdn0oT8I2K1a3mt5uZtZiZk+a2cZQry+G8kVm9kSI/87Q5T1m1hy+bwvTF5ZciYdX91XTh6gr5xeAU4EmYCOwJO64KqzTdqA9r+xvgRvC+A3AV+KOs4x6vAM4D3i2VD2AZcDPid5KeAHwRNzxj7FeXwA+XWDeJeHfZDOwKPxbTcddhyL1mgucF8ZPAH4X4k/CNitWt5rebuFvPz2MNwJPhG1xF7AylH8X+EQY/8/Ad8P4SuDOUuuo1iP+wZe1u3svkH1Ze9IsB24L47cBK+ILpTzu/hiwL6+4WD2WAz/wyK+BmWY2lypUpF7FLAd+7O497v4SsI3o32zVcffd7v6bMP4a8BzRO7GTsM2K1a2Ymthu4W9/OHxtDB8H3g38JJTnb7PstvwJcLGN9rZ6qrepp9DL2kfboLXAgYfMbH140TzAHHffHcZfASp/o3s8itUjCdvxutDkcUtOU1xN1is0AZxLdASZqG2WVzeo8e1mZmkz2wDsBR4mOjs54O79YZbc2AfrFaYfBGaP9vvVmviT6G3ufh5wGXCtmb0jd6JH52k1f29tUuoR3AScBiwFdgNfjzWaCpjZdOAe4JPufih3Wq1vswJ1q/nt5u4Zd19K9L7y84EzJvL3qzXxJ+5l7e6+Kwz3AvcSbcw92dPoMNwbX4QVKVaPmt6O7r4n/AccAL7HULNATdXLzBqJEuMP3f2noTgR26xQ3ZKy3QDc/QDwCHAhUbNb9q2JubEP1itMnwG8OtrvVmviT9TL2s2szcxOyI4DlwLPEtVpVZhtFXBfPBFWrFg91gIfDXeKXAAczGleqHp5bdsfJNpmENVrZbibYhGwGHhyquMrR2jrvRl4zt2/kTOp5rdZsbrV+nYzsw4zmxnGpwGXEF2/eAS4IsyWv82y2/IK4F/DWVxxcV/BHuXK9jKiq/QvAJ+LO54K63Iq0d0EG4FN2foQtcOtA7YCvwBmxR1rGXW5g+j0uY+onfHqYvUgujvhO2EbPgN0xh3/GOt1e4j76fCfa27O/J8L9doCXBZ3/KPU621EzThPAxvCZ1lCtlmxutX0dgPeBPw2xP8s8D9C+alEO6ptwN1AcyhvCd+3hemnllqHumwQEakz1drUIyIik0SJX0Skzijxi4jUGSV+EZE6o8QvIlJnGkrPIlI7zCx7myLA64EM0A0sBH7v7kumIIbD7j59stcjMl464pdEcfdX3X2pR4+7fxf4ZhhfCgyUWj7nyUiRxFLil3qSNrPvhT7OHwpPRWJmj5rZtyx6T8L1ZvZmM/u30KHegzldG3zczJ4K/aTfY2atoXyRmf27Re9b+FJ2ZWY218weC33CP2tmb4+l1iJ5lPilniwGvuPuZwIHgMtzpjW5eyfwbeD/AFe4+5uBW4Abwzw/dfe3uPs5RI/QXx3K/w64yd3PJnr6N+vPgQfDGcc5RE+WisROp7VST15y9w1hfD1Ru3/WnWF4OnAW8HDo0jzNUDI/KxzRzwSmAw+G8rcytBO5HfhKGH8KuCV0JPaznHWLxEpH/FJPenLGMww/8DkShgZsyl4ncPez3f3SMO1W4LpwZP9Foj5Sskb0feLRy13eQdR74q1m9tGJqYZIZZT4RYbbAnSY2YUQdftrZmeGaScAu8MR/EdylnmcqAdZcsvN7BRgj7t/D/g+0asdRWKnxC+Sw6NXfV4BfMXMNhK1y/9pmPzfid7w9DjwfM5i1xO9XOcZhr/R6SJgo5n9Fvgw0bUAkdipd04RkTqjI34RkTqjxC8iUmeU+EVE6owSv4hInVHiFxGpM0r8IiJ1RolfRKTO/H/krC07/iFWSQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[\"Presim. Time / s\"].plot();\n",
    "df[\"Sim. Time / s\"].plot();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
Andreas Herten's avatar
Andreas Herten committed
   "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": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = df[[\"Presim. Time / s\", \"Sim. Time / s\"]].plot();\n",
    "ax.set_ylabel(\"Time / s\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task 6\n",
    "<a name=\"task6\"></a>\n",
    "<span class=\"task\" style=\"padding: 2px 8px; color: white; background-color: #b9d25f; float: right; text-weight: bolder;\">TASK</em></span>\n",
Andreas Herten's avatar
Andreas Herten committed
    "\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",
Andreas Herten's avatar
Andreas Herten committed
    "(*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 threads\n",
    "* Tell me when you're done with status icon in BigBlueButton: \ud83d\udc4d"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {