Skip to content
Snippets Groups Projects
Introduction-to-Pandas.ipynb 679 KiB
Newer Older
Andreas Herten's avatar
Andreas Herten committed
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "title-slide",
    "slideshow": {
     "id": "title-slide",
     "slide_type": "slide"
    }
   },
   "source": [
Andreas Herten's avatar
Andreas Herten committed
    "# *Introduction to* Data Analysis and Plotting with Pandas\n",
    "## JSC Tutorial\n",
    "\n",
    "Andreas Herten, Forschungszentrum Jülich, 26 February 2019"
Andreas Herten's avatar
Andreas Herten committed
   ]
  },
  {
   "cell_type": "markdown",
Andreas Herten's avatar
Andreas Herten committed
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
Andreas Herten's avatar
Andreas Herten committed
   "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",
Andreas Herten's avatar
Andreas Herten committed
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
Andreas Herten's avatar
Andreas Herten committed
   "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",
Andreas Herten's avatar
Andreas Herten committed
    "* Direct feedback via https://www.polleverywhere.com/"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
Andreas Herten's avatar
Andreas Herten committed
    "* Please open Jupyter Notebook of this session\n",
    "    - … either on your **local machine** (which has Pandas)  \n",
    "    Download here\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",
Andreas Herten's avatar
Andreas Herten committed
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
Andreas Herten's avatar
Andreas Herten committed
   "source": [
    "## About Pandas\n",
    "\n",
    "<img style=\"float: right; max-width: 200px;\" width=\"200px\" src=\"img/adorable-animal-animal-photography-1661535.jpg\" />\n",
    "\n",
Andreas Herten's avatar
Andreas Herten committed
    "* Python package (Python 2, Python 3)\n",
Andreas Herten's avatar
Andreas Herten committed
    "* For data analysis\n",
    "* With data structures (multi-dimensional table; time series), operations\n",
Andreas Herten's avatar
Andreas Herten committed
    "* Name from »**Pan**el **Da**ta« (multi-dimensional time series in economics)\n",
Andreas Herten's avatar
Andreas Herten committed
    "* Since 2008\n",
    "* https://pandas.pydata.org/\n",
    "* Install [via PyPI](https://pypi.org/project/pandas/): `pip install pandas`"
   ]
  },
  {
   "cell_type": "markdown",
Andreas Herten's avatar
Andreas Herten committed
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
Andreas Herten's avatar
Andreas Herten committed
   "source": [
Andreas Herten's avatar
Andreas Herten committed
    "## Pandas Cohabitation\n",
Andreas Herten's avatar
Andreas Herten committed
    "\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",
Andreas Herten's avatar
Andreas Herten committed
    "    * 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"
Andreas Herten's avatar
Andreas Herten committed
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "slideshow": {
Andreas Herten's avatar
Andreas Herten committed
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "import pandas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
Andreas Herten's avatar
Andreas Herten committed
    }
   },
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
Andreas Herten's avatar
Andreas Herten committed
  },
  {
   "cell_type": "code",
Andreas Herten's avatar
Andreas Herten committed
   "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",
Andreas Herten's avatar
Andreas Herten committed
       "        `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"
    }
   },
Andreas Herten's avatar
Andreas Herten committed
   "outputs": [],
Andreas Herten's avatar
Andreas Herten committed
288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200
   "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": "explanation",
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task\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"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "exercise": "task",
    "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": 95,
   "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": 95,
     "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>2017-05-03</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>2017-05-03</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>2017-05-03</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>2017-05-03</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>2017-05-03</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 2017-05-03 -2.718282     This  Same\n",
       "2  1.2 2017-05-03 -1.304068      has  Same\n",
       "4  1.2 2017-05-03 -0.718282  entries  Same\n",
       "3  1.2 2017-05-03  0.986231  entries  Same\n",
       "1  1.2 2017-05-03  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>2017-05-03</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>2017-05-03</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 2017-05-03  0.99  entries  Same\n",
       "4  1.2 2017-05-03 -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 & 2017-05-03 & -2.72 &     This &  Same \\\\\n",
      "1 &  1.2 & 2017-05-03 &  1.72 &   column &  Same \\\\\n",
      "2 &  1.2 & 2017-05-03 & -1.30 &      has &  Same \\\\\n",
      "3 &  1.2 & 2017-05-03 &  0.99 &  entries &  Same \\\\\n",
      "4 &  1.2 & 2017-05-03 & -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": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task\n",
    "\n",
    "* Read in `nest-data.csv` to `DataFrame`; call it `df`\n",
    "* Get to know it"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "id,Nodes,Tasks/Node,Thread/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": 170,
   "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>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>"
      ],
Andreas Herten's avatar
Andreas Herten committed
2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200
      "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": 170,
     "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": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>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>2017-05-03</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>2017-05-03</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>2017-05-03</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 2017-05-03 -2.718282    This  Same\n",
       "1  1.2 2017-05-03  1.718282  column  Same\n",
       "2  1.2 2017-05-03 -1.304068     has  Same"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "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": 56,
     "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": 66,
   "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": 66,
     "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": 74,
   "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>2017-05-03</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>2017-05-03</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 2017-05-03  1.718282  column  Same\n",
       "2  1.2 2017-05-03 -1.304068     has  Same"
      ]
     },
     "execution_count": 74,
     "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": 99,
   "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": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.iloc[1:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "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": 100,
     "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": 94,
   "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>2017-05-03</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>2017-05-03</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 2017-05-03 -1.304068      has  Same\n",
       "4  1.2 2017-05-03 -0.718282  entries  Same"
      ]
     },
     "execution_count": 94,
     "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": 90,
   "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>2017-05-03</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>2017-05-03</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>2017-05-03</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>2017-05-03</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>2017-05-03</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 2017-05-03 -2.718282  Same\n",
       "column   1.2 2017-05-03  1.718282  Same\n",
       "has      1.2 2017-05-03 -1.304068  Same\n",
       "entries  1.2 2017-05-03  0.986231  Same\n",
       "entries  1.2 2017-05-03 -0.718282  Same"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo_indexed = df_demo.set_index(\"D\")\n",
    "df_demo_indexed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "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>2017-05-03</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>2017-05-03</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 2017-05-03  0.986231  Same\n",
       "entries  1.2 2017-05-03 -0.718282  Same"
      ]
     },
     "execution_count": 91,
     "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": 490,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>A</th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "      <th>D</th>\n",
       "      <th>E</th>\n",
       "      <th>F</th>\n",
       "      <th>G</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",
       "      <td>0.518282</td>\n",
       "      <td>2.952492</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",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     A          B         C        D     E         F         G\n",
       "1  1.2 2018-02-26  1.718282   column  Same  0.518282  2.952492\n",
       "3  1.2 2018-02-26  0.986231  entries  Same -0.213769  0.972652"
      ]
     },
     "execution_count": 490,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo[df_demo[\"C\"] > 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 495,
   "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>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",
       "4  1.2 2018-02-26 -0.718282  entries  Same -1.918282  0.515929"
      ]
     },
     "execution_count": 495,
     "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": 117,
   "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": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "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": 118,
     "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": 440,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_demo.insert(len(df_demo) + 1, \"G\", df_demo[\"C\"] ** 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 441,
   "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": 441,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.tail(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "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",
       "    </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",
       "    <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",
       "    </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",
       "    </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",
       "    </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\n",
       "3  1.2 2018-02-26  0.986231  entries  Same  -0.213769\n",
       "4  1.2 2018-02-26 -0.718282  entries  Same  -1.918282\n",
       "5  1.3 2018-02-27 -0.777000  has it?  Same  23.000000"
      ]
     },
     "execution_count": 125,
     "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": 138,
   "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": 138,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_1 = pd.DataFrame({\"Key\": [\"First\", \"Second\"], \"Value\": [1, 1]})\n",
    "df_1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "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": 154,
     "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": 140,
   "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": 140,
     "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": 141,
   "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": 141,
     "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": 152,
   "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": 152,
     "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": 162,
   "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": 162,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.merge(df_1, df_2, on=\"Key\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Task\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)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "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",
Andreas Herten's avatar
Andreas Herten committed
4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200
       "      <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": 174,
     "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": 176,
   "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": 176,
     "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": 48,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "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": 52,
   "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": 109,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [],
   "source": [
    "y2 = y/np.exp(y*1.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "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": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task\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"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 187,
   "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": 200,
   "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": 247,
   "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": 248,
   "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": 228,
   "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": 206,
   "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": 240,
   "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": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task\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"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "exercise": "solution",
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [],
   "source": [
    "df.set_index(\"Virtual Processes\", inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 243,
   "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": 244,
   "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": 221,
   "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": 234,
   "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": 249,
   "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": 256,
   "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": 255,
   "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": 270,
   "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": 334,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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dWLGjBklugfdnbFjx+72e1PU+20p3JuJNaokqps9XNq9Vq1aXpicY8qbzZs3e3Z2tru7L1y40Nu0afOLY9auXetNmzb1NWvWuLv7hRde6G+//ba7uy9btswXLlzoI0aM8Oeffz73NR988IH37dvXMzMzPTMz03v37u0zZszwrVu3+vTp093dfefOnX7MMcf41KlT3d191KhRPm7cOHd3//zzz7158+bu7r5lyxafNWuWjx8/3q+44orca2RkZPihhx7qP/30k7u7X3fddX7LLbe4u/ubb77pGRkZ7u5+/fXX+/XXX+/u7pMmTfJzzz3X3d23bt3qzZs392XLluWe89577/Xhw4f7GWeckdt20UUX7fa95bj22mv9r3/9q7u7L1myxE844QR3d8/MzPQjjzzSv/32W9+5c6d36tTJP//889zXffLJJ37BBRfsdj898cQTu31vpc7dVlMAABPiSURBVKm83puF+eCDD3z9+vXu7j516lTv2bNngccV9u/22muv+cCBAz07O9vnzJnzi9dfddVVPnz48N3+PXr06OFz5szx7OxsHzhwYO49O336dD/xxBN9x44d7u7+448/unvh99n333/v8+bNc3f3TZs2eatWrXLvjcLOlZGR4SkpKb5gwQJ3D7+PmZmZRcZ18skn5z5/7bXX/Pjjj3d39xkzZux2b+dYtGiRd+jQwbdu/f/tnXtQU0f/xp/IRYtXrGJDIkYEJFwSjFXxUtSiWLFQL6hYra2itlbtSMXKtNq+tloVW/HOdKq1Ba3MtIpQdbyiFFsookZsRUFMlICiqHghGIl8f3/kzQ4xnIP2dX5Su58ZZ5xz9uye2X2+z+7Z3SzVVFtbS6GhoVRcXExERJ999hmtXLmywTr+X2kq2mxME0Qk6l1CPmgymVh73r17l7p06UJlZWV2eWs0GsrKyiIioqKiIgoKCmIat+pAyFPF/Lk+a9eupSlTphAR0e7du2nIkCFUW1tL9+7do5dffplu375NREQnT54knU5HXbp0Yd4qVkdieXl7e9PZs2eJiGjDhg309ttvExGx+0RE6enpNGzYMFa2tX7OnDlD7u7uLN2TxuDToKno80mpqKigvLw8+vjjjwVj9+HDhySXy+n8+fNERLRo0SLatGmT6PMGg4EUCgUZjUYiIho7dixt2bKFiCz6qKuro7q6OoqOjmZ9+dKl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\n",
      "text/plain": [
       "<Figure size 864x288 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": 498,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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8Vh/zvKb3r1789lnn5GTk8M111zDmjVrmDNnDj/99BOnnHIKW7ZsOeTPw+v15st/KMOGDeO+++7D4/HQp08fUlNTD/vznzFjRr7n+efnLSJSkjQHW0RKhV9//ZW1a9dy/PHHU61aNTZv3szOnTuxbZs5c+bk7XfGGWcwefLkvJHX36ZSHM7HH3/MFVdcQfv27RkxYgSDBg3Km1vtdrvziqhhGFxyySXce++99O/fP28U+Tft2rVj3bp1fPXVVwD88MMP9O3bl23bth3y3I8//jj//Oc/6dWrF/feey/NmjVj7dq1h9z/jDPO4N133yUWi5FIJJg6dephnxtAp06dWLBgARs2bABg4cKFZGVlcdJJJx2wb9euXXnnnXfYt28fAM888wx33nknVapU4YQTTsgrrytXruSnn3466Pl69OjBwoUL+eGHH2jbti1dunThmWeeoXv37geUcrfbne8fSEerQ4cOuFwuJkyYkPebhML8/EVEnKARbBFxxB/nYENyZPWBBx6gcePGAFx88cWcf/75pKen06NHj7z9rr/+eh544AEGDBhA5cqVqV69et6o7htvvMF3333HP/7xj3zn6t69O5999hn9+/cnJSWF4447jgcffBCAXr16cdttt/HQQw/RtWtXMjMzGTdu3EFXFqlWrRrPPvssjz76KNFoFNu2efTRR6lbt+4hn+fll1/OyJEj6d+/Pz6fj5YtW+b7AOefDR48mF9//ZVBgwaRkpJCvXr1CAaDh/1ZNmvWjDFjxjB8+HBM0yQQCPCvf/3roFNRLrjggry5y4ZhULt2bcaOHQvAk08+yd13382bb75JgwYNaNKkyUHPl5aWRtOmTQkGg7jdbrp27cq9995Lnz59Dti3efPmuN1uhgwZwlNPPXXY53Gwn8WsWbPy5lgX5ucvIuIEwz7Y7xZFREqp9957j0qVKnHGGWdgWRYjRoygS5cueVMeiuL4U6dO5d///neRHK+g5s+fz86dO/P+8fHQQw/h9/u54447HMnjlEQiwfDhwznvvPM499xznY4jIlIgKtgiUqb89NNPjB49mnA4TDwe57TTTuOee+7JN7e3sC699FJ27NjBc889R7NmzYogbcFt3bqVkSNHsnPnTkzTpFWrVtx3332H/WBkebN69WqGDh1K9+7deeyxx45qnr2ISGmigi0iIiIiUoQ0LCAiIiIi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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": 465,
   "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": 464,
   "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": 467,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\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": 473,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "import seaborn as sns\n",
    "sns.set()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 349,
   "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": 477,
   "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": 478,
   "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": 480,
   "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": 481,
   "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": 475,
   "metadata": {
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.simplefilter(action='ignore', category=FutureWarning)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 476,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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O7j//vtpaWkB4POf/zwbN25Mec3IyAi33nornZ2dNDc389BDD+H1egvRXCHEIohPj3ksk3GtCURsmR4rQUUTLPv372fTpk2sXr161tc89NBDrFixgh/84Afs2LGDrVu38tBDD+WxlUKIfDA01KOotkzGtJbiliWmaNZY9u/fz44dO1i7di233norw8Mzq/e+/vrrrFmzBoDVq1fz85//nHCmEilCiJJmoWhUBg0uC1PuBSoZRRMsXq+Xm2++mZdeeom2tja2bNky4zW9vb2JqS/Lsqirq2NwcDDfTRVC5JlHQ7NlUmuZyPp+8cv7VNiuXbvYtm1bymPLly9n+/btiY+//vWvc955583r/Ywsr8dtaamb92u93sq8u6RS+w2V2/dS6nfQcRiN2IRytLjf1FyZV0zMp9/mAt8778HS0dFBR0dHymOjo6Ns376dr371q0D0fhIrTS0tn89Hf38/ra2tRCIRxsbGaGxszOrrDwyM4czjNFal3qRYqf2Gyu17afZbo5ViLGITOYqAaWquZWhwPIftKg3z7bfLNPD7si+MWxRTYTU1NfzLv/wLv/3tbwF45plnOP/882e8buXKlezYsQOAnTt3smLFClwuV17bKoQoBtHilk2WSZ1MjxWdotgVZpomDz30EHfddReBQIATTjiBe++9F4CHH34Yn8/HlVdeyYYNG9i0aROrVq2ivr6e+++/v8AtF0IUkooVt/RYFuNS3LJoKK0r6xSSTIVlVqn9hsrte7n0WykIQlZ3v8hUWGYu0+Bjvoas378opsKEEOJoaU307hdDpscKTYJFCFF2alA0WRZVpoHkS/5JsAghypIZu/ulwWViyfAlryRYhBBlKzo9pmgyTOpdFoac3s8LCRYhRNmLF7dstkyqLVOmxxZZUWw3FkKIfEgpbulIYcvFIiMWIUTFsVA0GiZLTFOKWy4CCRYhRMWqs8xEcUvJl9yRYBFCVDSloTa2Pdljyo/EXJD/ikIIAVgaGpSiwWVhyfDlqMjivRBCJCg8GtyWyYTWTNo286wOI5LIiEUIIaZJnh6T0/vZk2ARQohZTJ3et+T0fhYkWIQQIgMpbpk9CRYhhJinGhTNMj02JwkWIYTIgiHFLeckwSKEEFmS4paZFcV244GBAb72ta8lPh4dHWVoaIi333475XVdXV2sWrWK4447DoClS5fy1FNP5bWt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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": 482,
   "metadata": {},
   "outputs": [],
   "source": [
    "x, y = np.random.multivariate_normal([0, 0], [[1, -.5], [-.5, 1]], size=300).T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 484,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaEAAAGkCAYAAACYZZpxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xd0XPd54P3vLdNn0BtJFHYSFJvEIlHd6hYdxS2um6w33rPJJhtv3s2u3j3v8Sbe3ZPz5ihbkmx2nbyJk9ixZTm2ZUuWbBVTlSrsvRMkBQIgept+55b3j4sZAiAAYtAGBJ7POTaLMHd+MwDvM7/f7/k9j+I4joMQQghRAGqhByCEEGLxkiAkhBCiYCQICSGEKBgJQkIIIQpGgpAQQoiCkSAkhBCiYCQICSGEKBgJQkIIIQpGgpAQQoiCkSAkhBCiYCQICSGEKBgJQkIIIQpGL8STdnVFC/G0YyotDdLXlyj0MHJkPBOT8UxMxjOx2R5PZWVk1q69UC36mZCua4UewggynonJeCYm45nYfBuPKNBMSAjThnTGzOsxPo/8uAqx0Mi/alEQ6YzJgTMdeT1mR2P1LI1GCFEoi345TtwabNvByFhYtvRgFGIhkZmQmDdsx6F3ME1Hb4LewRTRRIZoIoNhWjgOfPe18wAEfDohv05FsZ/qsiA1ZUGW10RoqIng98qPtBC3EvkXKwrKdhzaexJcahvkameMjGkDEPLrRIJe6qvD+L0amqpQX1NEKOilqydOLJWhqz/JoXNdxJIZABQFllWE2LC8jA3Ly1hXX4LPo015/0mXdQIhZp0EIVEQiZTJiaYezjX3k0ibeHWV+uowS8pD1JQFCfpv/NHc0VjN8trSG1L8BxMGV65FuXxtkPNX+3njcCuvHbiKV1fZtLKcTavLSRsWnjyiyo7GanSf/PMQYrbJvzIxp2LJDL/48CPePNJKyrBYUh5ke2MVdZUhNG3iIKGoCp29CRLpkbMaTVNZVVvMqtpiHtlRh2FaNLUOcKKpl2MXujl0vgtdU1i+pIi1tcWUF/tRFGU2X6YQYpIkCIk5kTFt9hxq4WfvXyFlmNy+ppKlFUHKivyTvkY6Y3Hmo06isdSkvn7FkggNNWGKwj5e+7CZK9cGudgyQHmRjw0rymiojqCqEoyEKCQJQmLWHW/q5ruvnad7IMWmleV87mOrKCny552iPRWqorBqWTF3b6phe2Mll9sGOXOlj3ePXeNIoJvbVpSxurYYTYKREAUhQUjMmv5Ymmd/eYGDZztZUh7kDz6/ldtWlAEQT+eXKDATvLrGuvpS1taVcLUzxslLvew73cHJSz1sXl3OqqXFMjMSYo5JEBIzznEcPjjVzvdev0DGtPnUfSv4+F0N6DfZ85kriqJQXx2hripMW3eCoxe6+eBkB6ev9LFtXSXLKkKFHqIQi4YEITGjBhMG33nlHIfPd7G6tpivPtlIdVmw0MMak6IoLKsMsbQiSHNHjMPnu3jjUCtLyoPUVUVYvay40EMUYsGTICSmLXsO5+xHfXznlbMk0ya/et8KHrqjFlVVxlx6m0+FDxRFoaEmQm1VmPPN/Rxr6uZPvnuIh7bV8sl7VxD0ewo9RCEWLAlCYtoSKYO/+dlpTl3upSTs5eN3NVAc8nLoXOe4j9mytnIORzg5mqrQuLyUFUsjtHYl2HOwhf2nO/j8Q2u467ZqSesWYhbMj0V6ccvqi6b58x8e59TlXtbUFvPkrgZKI75CD2ta/F6dLzyyhj/8yg4qSgL8zUun+dPvH+FaT7zQQxNiwZEgJKbsXHMf//kfDtDaHeO+LUvYtbFm3iQfzISGmgj/z69v4zceX0dzR4w/+rv9vLD3cq60kBBi+mQ5TuTNcRx+eaiFH+y5SFVpgH/zmU20dMYKPaxZoSoKD96+jDvWVvL9PRd4Ye9l9p/p4F98vJHVtZK4IMR0LZyPrWJOmJbNP/ziLN//5QW2rC7nP/3z7SwpX/gpzUUhL7/11G38/q9twcjY/L/fPcRzey6QMub+vJMQC4nMhETOWNWmnWG12qIJg7/92WkutQ3y+J31PLmrAZv5lek22zavKue//sud/PCtJl47cJUTl3v5yhPrWFNbUuihCXFLkiAkcsbqdhoJ+4nGUgzE0uw51EoybXLfliVUlwY4dNbNfpuPmW6zye/V+fXH1rF9XRXffvUcf/K9w+zetZyn7lm+oPbEhJgLEoTETbX3JHjrSCuqqvDYzjoqSwKFHtKsU8Y53zRcfU2EP/zNO/nuL07z0vtXOHGph99+6rZ5ezhXiPlIgpCY0NmPennz4FUiIS8P31FLOLg4Dm6mMxbHznfd9OsiYT9r69zmeQfOdvKNfzjAV55Yz50bqudglELc+iQIiTE5jsPxph6OXeyhpizIg7cvxevRCj2seauhJsIjO+r4u5fO8NcvnuLk5R4+8+DqSTXSky6uYjGTICRuYNkOH55qp6l1kHUNpWxfVymtDiYhGPBwz6Yagn6d9060c/ajfh64fSnhwMSzR+niKhYz+fwlRjAyFnsOttDUOsjmVeU8vL1OAlAeVFVh27pKPnbHMgbjBi+//xHtPYlCD0uIeUuCkMjpHkjyiw+b6exLcM+mGrauqZB6aVNUVxXmyV0N+L0arx+8ytmP+go9JCHmJQlCAoDzV/v5798/SjJt8sj2OlZJG4NpKw57+fiuepZVhNh/ppN9pzuwF9OhKiEmQRaiBW8fbeW7r52nrMjPw9uWURy+tQuQzideXePBO5Zx5Hw3py73MhA3eGDrUnyS5CEEIDOhRS1j2vzja+f49ivnaGwo5d9/casEoFmgKu4+0T2baujsTfDKh81EE0ahhyXEvCAzoUWqsz/JX/30JFfaozyxs57PPLiSVEaqQ8+mVcuKCQc8vHmklZ9/0MzH7lhKVakcbBWLm8yEFqEDZzv5z39/gM6+JL/36U187qHVaKr8KMyF6rIgT97VgNej8tr+Fi61DRR6SEIUlMyEFpFYMsN3XzvH/jOdrFgS4bd/deOiKMEz3xSFvDx5VwNvHW1l7/F2QgEvv/bgKlTJRBSLkAShRcBxHA6c7eTZX14gnszwqftW8PG7GqTYZgH5vBqPbK9j36kOXt3XTM9Aiq8+2YjPKwkLYnGRILTAtXXH+d7r5znzUR/1VWH+3ee2UF8dKfSwBKCpCrs2VrNxZRkv7L1MZ2+Cf/OZTVQUy+xULB4ShBaogbjBS+9d4a2jrfg8Gl9+dC0P3r5U9n7mGUVReHh7HSuWFPFXL5ziv/zDQX7nkxtZ31Ba6KEJMSckCC0w8VSG1/Zf5bUDV8mYNvdvWcIn71tJUchb6KGJCWxaWc7Xf2Mb/+vHJ/jT547w6ftX8vG7GmSfSCx4EoQWiGjC4LUDV3njcAvJtMWO9VV86v6V1Ehvm1vGkvIQ/+mfb+fbr5zlx29f4mLLAF/9xIabFkAV4lYmQegW192f5LUDV3nneBuZjM22dZV84u7lLK2MkM6YN23MNpxUlCm8gE/nt566jTW1JTy35wL/6Vv7+OruRjauKC/00ISYFRKEbgGm7bbeHq65Pcobh1s4cr4LFIXt6yp5ZEcdS8pDACQNk0NnO8a63LgWW5vu+UpRFB7eVsvqZcX8zUun+R8/OMbDd9Ty2QdXSfacWHAkCN0C0hmTA2c6sB2Hls4Yp6/00dmXxKOprG8opXF5KSG/h5bOGC2dMUACykLQUBPhD//5dn70dhO/PNjC0Yvd/Prja9m8qqLQQxNixkgQugUk0yanr/Ry9qN+YskM4YCH7esrWV1bjFeXT8YLmdej8aVH1rJ9XRXffuUsf/bD42xfV8nnPraaCjloLBYACULz2LWeOG8camXviWukMxZVpQG2raukriqMKo3mFpW1dSX859/cyS/2NfPS+1c4erGbR7bVsfvuBkJ+SVwQty4JQvOMZTscudDFG4dbOXW5F11TuGNtJZUlAcqL/YUenpgFiqpMOoHkoW213L62kl98+BGv7m/mnWNtPLK9lke210kWnbglSRCaJwZiafaeuMa7J9rp7E1QEvbyyXtX8MDty9B1lQNn8ksyELeOdMbi2PmuvB7zpUfX8viOOl7Ye5kX37vCqweu8uDWpXz2kXXIAq24lUgQKiDbdjh5uZe9x9s4cqEby3bYvLqCz96/kq1rKnK13fJJsxaLR311hN/7zGZaOmO89MEVXj/QwmsHrrJpZTkPbFnKplXlUh9QzHsShOZQNtW6rTvOwbOdHDjTQX/MIOTXuX/rUu7ZtIQVtaUkEmnSpk3adPv7yPkdMdrwJbzSYj+//sR6fuXeFRw428Vbh1s43nSCoE9n65oKtq6pYHVtCeGAF11ikphnJAjNkbbuOB+e6WDvsTb6YwYKsLQyxJbVFdRWhdBUleaOKH3xDNFYasRjJd1ajDbeEl5ddYSn7lnOtZ4El68Nsv9MB++fbEfXFBqXl7FxRRlra0skuUXMGxKEZknGtDjfMsCpS70cvdhNe28CgMoSPzsbq2ioiRDwydsvZp6qKiyrDLGsMoRpVdPem6C1K05rV4wTTT0A+L0a9dUR6qvD1FdFqCkPUlMWlOQGMefkLjhDEimTK+2DXGgZ4PzVfppaBzBMG01VWFtXwsPbalnXUMrFlv5CD1UsIrqmUlsZprYyzI7GalIpk/Mt/VxsGaC5I8o7R9swzOtt3cMBD+XFfiqK/ZRF/JRGfJSEvRSHfRSHvBSFvIT8OooUVhUzRIJQnpJpk67+JO29Ca71JGjtjtPcHqWzPwmAokBdZZj7tyzlthVlrKsvwe9132ZJMBCFpKgKfr/O5tUVbF7tVl2wbYfugSQdvUk6+xJ09afojaZo6Ypx4lIPRsa+4TqaqhAJeigKeokEPYSDXiIBT+734YCHsF8nFPDg6BqptInfq0ngEmNa1EHIcRzSGYvBhEEqbZJImyRSJrFkhmgiQzRhMBg36I8Z9EXTdA8kiaeuBxIFKC/2U1sV5s7bqqmrCrN8SdGIZTbLuR58JMFAFNLNUsGLhmY6qyjK/Z1hWqyuLWEg5v5bGEwYxBIZ999I3CCWzNDRlySWzJAyrHGvrakKAZ9OwKcR8OkEfTp+r47fq+H3avi8Gn6vjs/j/t7nUYf9XsOra3iH/s7r0fDqKh5dlcC2ABQkCE1lQ7R3MMWrB65iDn0ycwAH967uOG5AcXA/2TmOg2072I77Z9N2sGwb03KwTJuMZZMx3f/ZzsSRIRRwP/HV10TYsqaCsoiP0oiPorCXtu74iCZxtgOX2gbHvVbjijKCNzndHvDpWObIr9E19aaPG22mHjPWeGbruSbzmMmMZ6aeazKPGT6eqTzPTI9vovdnKs8TxENlaZDu/tRQENGpHqffnm27H+oM06K+uohEKoNpOwzG0yTTFqm0STpjkTYs0hmbdMakL5bGMG2MjEXGvHHWdTO6ruJRVTRdxaMqaJqCrquoioKuqSiqgqaAqiioCnh9HkzTQsEtFJuNYQoKivsbUBTu37KEBulAPCcUx7nJXVgIIYSYJXJqQAghRMFIEBJCCFEwEoSEEEIUjAQhIYQQBSNBSAghRMFIEBJCCFEwEoSEEEIUjAQhIYQQBSNBSAghRMFIEBJCCFEwBStg2tMTw54HFT1LS4P09SUKPYwcGc/EZDwTk/FMbLbHU1mZX725+XIfnCn5vn6QmRC6rhV6CCPIeCYm45mYjGdi8208QoKQEEKIApIgJIQQomAkCAkhhCgYCUJCCCEKRoKQEEKIgpEgJIQQomAkCAkhhCgYCUJCCCEKRoKQEEKIgpEgJIQQomAkCAkhhCgYCUJCCCEKRoKQEEKIgpEgJIQQomAkCAkhhCgYCUJCCCEKRoKQEEKIgpEgJIQQomCmFYT+/M//nCeffJLdu3fz93//9zM1JiGEEIuEPtUH7t+/nw8//JAXX3wR0zR58skneeCBB1i5cuVMjk8IIcQCNuWZ0M6dO/nOd76Druv09PRgWRbBYHAmxyaEEGKBm9ZynMfj4S/+4i/YvXs3u3btorq6eqbGJYQQYhFQHMdxpnuRZDLJb//2b/Pkk0/y+c9/fibGJYQQYhGY8p5QU1MThmHQ2NhIIBDgscce49y5c5N+fE9PDNuedvybtsrKCF1d0UIPI0fGMzEZz8RkPBOb7fFUVkby+vr5ch+cKfm+fpjGclxLSwtf//rXMQwDwzDYs2cP27Ztm+rlhBBCLEJTngk98MADHDt2jE9+8pNomsZjjz3G7t27Z3JsQgghFrgpByGAr33ta3zta1+bqbEIIYRYZKRighBCiIKRICSEEKJgJAgJIYQoGAlCQgghCkaCkBBCiIKRICSEEKJgJAgJIYQoGAlCQgghCkaCkBBCiIKRICSEEAViT7+JwS1PgpAQQhRI2rAKPYSCkyAkhBAFEk9lCj2EgpMgJIQQBRJPmoUeQsFJEBJCiAKJJmUmJEFICCEKJBo3Cj2EgpMgJIQQBTIgQUiCkBBCFMpAPF3oIRScBCEhhCiQ3qgEIQlCQghRIL2DEoQkCAkhRIEMxtJkzMV9YFUv9ADE/HbwTAc/eO0s3QMpKor9PHFnPZtXVRR6WEIsCA7Q0Zuktipc6KEUjAQhMa7jTd08t+ciKBD06/THDb73+nkACURCzJC2nviiDkKyHCfG9cq+ZnRdwefRUBT3V01TeWVfc6GHJsSCoCjQ2hUv9DAKSoKQGFf3QAqfRxvxd15dpXsgVaARCbGwVBQHuHxtkHjaxLQLPZrCkCAkxlVR7CedGblpapg2FcX+Ao1IiIUl4NNpahtg/+l20pnFWUdOgpAY1xN31mOaDumMheO4v1qWzRN31hd6aEIsCCURH8m0RSK9OAMQSGKCmMDmVRUUFwclO06IWVJe5K4qdPYlCzySwpEgJCa0vbGahopgoYchxIJUHPLi0VQ6ehOFHkrByHKcEEIUiKoqVJUFaO+RIFQA0ltdCCGWlocYTGTo6l+cS3IFC0LRZAbbXqQ5iUIIMaS2KgTAyUs9BR5JYRRsTyhtWMSTJuGAh4BPRynUQMSUHG/q5pV9zYsiYWExvVYx9yJBLyVhL8ebevjEruWFHs6cK+iekG07DMYN+qJpjMV6UusWdLypm++9fp7+uDGinM/xpu5CD23GLabXKgqnoSZCU8sAvYOL7yD4vEhMMDIWfdEU0WQGR/aK5r1X9jWjaeqiKOezmF6rKJyVS4twgH2nOwo9lDk3rSD0l3/5l+zevZvdu3fzzDPPTGsgjgPxZIaegRTpjIUi63PzVvdACq8+8kdnoZbzWUyvVRROJOhlxZIi9p64huMsrg/iUw5C77//Pnv37uUnP/kJP/3pTzl16hSvv/76tAdkWg79sTT9MQPLXlzfjMk63tTNM88e5ulvvs8zzx6e86WhimL/DcunC7Wcz2J6raKw7t5Uw7WeBGeb+ws9lDk15SBUWVnJf/yP/xGv14vH42HVqlW0tbXNyKAcB5Jpk97BFKmMhaRzXzcf9iieuLMey7IXRTmfxfRaRWHdsa6ScMDDG4daCj2UOTXl7Lg1a9bkfn/lyhV+/vOf89xzz0368cXFwUnPdBSPRlHIi3dUReeZUlkZmZXrTtVE49nzo+P4vBp+r/ut83o0UobJniNtPHzXijkZz8OVEYqLgzz/1kU6exNUlQX59IOr2d5YPSvPf7PxzKbJvNZb6eenEGQ84wuHfGi6e18rKQry+F0N/OSti5iKypKKUIFHNzcUZ5oLkBcuXOC3fuu3+L3f+z0+9alPTfpx5y51YWQmnxGnqgqRoIeAV4MZTOiurIzQ1RWdsetN183G8/Q33yfo11GGbZo5jkMiZfLMv757zscz12Q8E5PxTGy2x5NvgHv53SYSqQwAOxqrMQyL//uv3ufeTUv4jSfWz8YQZ9VUAvy0EhMOHTrEV77yFf7gD/4grwA0FbbtMBAzhvaKFm86t+xRCLFwNK4oY8vaSrasrURRFbxejTs31LD3xDVae+KLos/QlJfjrl27xu/+7u/yP//n/2TXrl0zOaYJpQwLw7QJ+XVCfs+cPe988cSd9Xzv9fOkcbO0DNOWPQohblFnLvfmZkJZVaV+LNvhu6+e484N1exorEb3Ldxa01N+Zd/61rdIp9P8yZ/8Se7vvvCFL/DFL35xRgY2Edt2iCYyJA2TooAXn1djsWQ1Zk/qywl+IRamSNDL6mXFXLjaz20rygo9nFk35SD09a9/na9//eszOZa8maZDXyyNz6sRCXjQ1Hlx9nbWbV5VIUFHiAVs86pymtoGOXaxm4/dUVvo4cyqgt21D57twrSmv9jpOJBKW/QMpomPmtYKIcStKBTwsK6uhEutg7R1xws9nFlVsCD0xuEW/scPjnL4fBf2DBxKzS7R9QwmMTK2VFwQQtzSNq0qx6OrvPDupUIPZVYVbLdLVRX6YwY/equJd4+18fjOetbVl4xIPZ6KjOnQF0sR8OmEAx5UiUYLmlS4FguV36uxaVU5h851cepy74LdHypYEPrq7kZe3HuFE5d66OhL8p1Xz9FQE+GJnfU01EzvMJnjQCJlkjYsIiEvfo/KTJ4tysdc3yQX0005Wz1C09QR1SOABfuaxeKyvr6Ey9cG+cEbF/nGv9iBqi68D9UFW44rjfj44iNr+N1PbWT1smIAPmqP8tcvnuIfXz03Iz3XLduhP5qmP2pgFuBs0VyX2JkPJX3mklS4Fgudpqn86r0raemKsffEtUIPZ1YUPPl8WWWY39zdyMXWAV7d30xrV5wzH/Vx9qM+bl9bwcPb6iiN+Kb1HKmMhTFgEwpM/2xRPjON4TdJAJ9HIz3096Mfk71ub8ygLOyd0gwmn+ebTXM1G+seSBH0j/wRnqjC9WKaJYqF4/a1FbxzrIifvHOJnY1VuZJdC8W8eTWrlxWz6pMbOXm5l9cPXKV7IMXh890cu9jDXbdV8+Dty6YVQGzHTVxIGRaRoBefR837bFG+yz+TvUkOv24kMPVlpXxvyvmazE18LpfIKor99MeNXNCF8atHyNKduFUpisIXHlrDH//jIV7Z18wn71tZ6CHNqHl1sEZRFDatLOff/toWPnXfCoqCHizb4b0T7fy37x/ljcMtpDPWtJ4jY9r0RVMMxA3sPKNQvss/Nyuxk23J8L+fP8FAzMCy7GktK81mSZ/JLvWNfo8sy2YgZvC/nz8x420n8qlwLUt34la2alkxO9ZX8cq+Zvqi6UIPZ0bNqyCUpakKOxqr+Xdf2MrjO+vwezXSGYtfHmzhvz93lA9OtU/rjFE2caF3IEUsaTDZVhH5Njib6CY5/KZuOw6249AbTRNPZm563fHMZtuByd7Eh79HiVSG3mg69/pmeo9q86oKvvzoWkpCXhIpk5KQly8/unbcWak0pxO3ss8+uArbcfjJOwsrZXveLMeNxatrPLB1GTsbq3n7aCvvn2wnlszws/eu8N7xazy6o45Nq8qnnIZtDhVFTcQMIsGbV1zIZ/kHJi6x88yzh3M3dY+uYVoOCm5Dv6rS4JRmMLNZ0meyS33D36PBRGYoJ1HBo6uzskc12eoR+X7vhJhvKksCPHRHLa8fvMrjO+tYVhku9JBmxLwOQlkBn84Tdzaw67Ya3jjcyqFznfRG0/zgjYu8e6yNx3bWs6a2eMpnjHJFUQMegl593IOuUykeOt5NcvhNvSjkpXcwheO4y4VTmcGM3q/5Z4+NPSOYqsnexIe/R+bQ0qCiOBSF3OSSQs0+pPCrWAg+cfdy3j3exo/fvsTXPru50MOZEbdEEMoqDvv41P0ruWfzEl4/cJVTl3tp60nwD784y4olRTxxZx11VVM7Y2TbDtG4QSptjpu4MJMzjeE39YBPp6zIT380jQOUhPLLjputTffjTd3s+dFxrnXF8Hs1BqIpLNtNfddUBb9X4wsPrR7xmOHvUU9/CkWBkoiPwFAV4ELNPqTwq1gIwgEPT97VwI/fvsSFln7W1JYUekjTdksFoayqkgBffnQtVztjvLq/mUttg1y+Nsg3f3qK25aX8ejOOqpKAlO6djZxYbyKCzNVPHT0J3NVVSgOe/mdz26loSKY17VmIzU7G9h8Xo2gX3czCzM218/KKYw3Zcy+R9lrqKqC4zgFn31I4Vcx3zSuKLvp/raiKsTTZu7Pd29awusHWvinNy/yb39ty9AerY4+L3f4b+6WDEJZdVVhvpo9Y7SvmbaeBKeu9HLmo17uWFfFw9tqKQ55877u8IoL4aCHwAzm5Q9fNvN7VFAUEikz98l8e2N13p0fZyM1OxvY/F6djGmTTJuoioKuq9SUuUEynbFygW6i9O2JZh/z5ezOfBmHWFzG6ic0GesbSth/ppMX3r3MssrQLd1z6NYc9TCKorCmtoRVy4o50dTD6wev0juY5uDZTo5e6OLujTXcv2XZDTfpybCGEhdSHvdska5Nr2TG6GUzw7SxTGva+zezsek+OrCZljsLMoelgGcD3c2WA8d7bfPl7M58GYcQk7WmroTTV/o4cqGLpXmunMw3t+gE7kaqorBldQW//2tbeOqe5YQDHkzL4Z1j1/hvzx3h7aOtGObUzhilMxY9g0liqQzOJNO5xzKVsyrZs0RPf/P9cc/ZzEZq9ugzR7qmYjugD5vzZwPdVM/gzJezO/NlHEJMlqYqbFldTu9gmuaOWKGHMy0FC0K6ps5KSVFdU7nrthr+4AtbeXR7HT6PRsqweHX/Vf7Hc0fZf6YDawqtIxwHYokMPYOpKbeKyPesymQPiOZzXmaysoEtZZg4jkPAp+PgEPBqOI7DYNygpz9Fa3ecptYBrFHr2pNZDpwvZ3fmyziEyMeKpUUUh7wcvdA9pXvafFGw5biSsA+/VyeRygx9gp/Z6/s8Gh+7Yxk7N1Tx9pE2PjjVzmAiw0/fvczeoTNGG6dQGt2cRquIfJfN8kk4mOlN9+y19hxp41pXjOrSAA9sWcLZ5n7auuMkDQuPrmBkbDKWQ1d/iuKQRUnEf9PXlTVfzu7Ml3EIkQ9VUdi6poK3j7ax/3QHj2y7NTuwFnRPyKur+CI+TMsmkbZIps0ZaXA3XMjv4cldDdy9qYZfHmzhyPkuugdSfP+XF6itDPHZh9dSVZRfgdRs4oJhWITzaBWR71m+pi8DAAAgAElEQVSViRIO5mIjffOqCh6+a8WIRImngGeePUx7b4Jo0j2Mqqlg2TAQz+DRVXRdm9Ry4Hw5uzNfxiFEvuqrw1QU+/n5B1e4f/MSvMM+SN0qtG984xvfKMQTJ5NGbvajDq3DB3w6mq5i2zbODHde8Ht1NiwvY+OKMgbjBt0DKQYTGT482U5zR5Sq0iBFwfwy6WwH0oaFaTl4dfWmh2Wry4JUlwZo6YwxEDcoi/j49P0rRwSPUMhHImEAcORCF/G0ia6N3IfxagpHLnZjmDZ+r0Y8bXLsYjfVpQGqy2Z2k3L4eLJe2HuZeMpdplMVBVVRUBT3/ciYDkvLgze8rrGMfj+8moKuqRw+382RC11Egp4bXs9Y45muyXxfxjMb45kOGc/EZns8oVB+H2gvNPeRMad+s1MUhUjIy6nLffh9esHPDeX7+mGeZcepikLQqxP06hgZ212qM2d2qa66LMivP76Oj9qjvLK/mY/ao1xoGeBCywk2rSzn0R21VBRP/oyRw/WKC+GAh4BPn3BOlM+y2Xif0PWhjfNCtWyoKPbTG00zMllQwedRiAS9PP2lOyZ9rdFnigqVoSZniMStqqYsyG0rynj5gyvcu2kJRVM4llJI8zY7zutRKS3yUV7sJxTwzHhHwYaaCP/qVzbwO5/dQnWpG3ROXOrhz/7pOC/svUw0z09Ltu1u1vdF02SmUVx1uPESDlKGVdCN9CfurEdTFbIrp+6vDkG/Z8r7KLd6htpkshiFmC2fvH8lRsbm+XeaCj2UvM2rmdBojgO6qhIJqIT8OqmMRSKVwTRnZmqkKAqbV1ewtMTPsYvdvH7wKv0xg32nOzh8vot7NtZw/9aleTWRMjIWvYMWQb+HcEBHmWYO4Fif0CuKmwu6kb55VQW776rn5Q+asWwbXVMJ+t1zVFPdR5ns/teSyjAP3750Xs1aCj2LE6KmLMjD22p5/cBVHti6jBVLigo9pEmbF3tCk6EoCh5NJeDz4NPdum7WDKzTBQJeUqkMS8pD3LmhmqBfp7U7TtqwuNIeZf+ZTlQVlpaH0PKYjWULkeqqOuJszc1MZs06EvRw7GI3tuOeF8gu0336/pUztid0vKmbb79ylh/sucDhc5037M+sqy+loSZMXzSNZTtUlQQmvY8ylnH3v3SVIxeu738l0xmOXJid/a+pCIV8fPPHxzFMOzeLy56paumMcc+mJXM+nsW0B5OvhbYnlLWsMsz6ulL2Hm/jQssA921eOuWCztNxy+8JTYYCeD0aPq9GxnRIGuaMZdXpmso9m5awbV0le49fY+/xayTTJr/4sJn3T7TzyPZabl9TOemlQTedOz2ldO6JzHYxzpt1es23YvdkMvnG3f9S1BH7X36P2/Ziqvtfs5FVONsdbYWYjKBf50uPruWvXjjFLw9e5bGdt0Z25y0XhLIcB3RNIRLwuEt1xtBSnTX9YOT36jyyvY67bqvhzcOt7D/TwUDc4MdvX+Ld49d4bEcdjQ2lk/qkMbwOXSSPdO6bmc2N9LH2Z7KJD0BeS0+TXaoaL7B+97XzM3aDn61lMzlnJOaLHeur+OBkO8+/e4nb11ZSOcVCznPplg1Cw6mKQtCnE/DpGBmLeMokMwNZdeGAh1+5Zzn3DJ0xOnaxm86+JN997Tz11WEe31k/6bVXy3boj6bxezTCIQ/6TRroTdd0PvFP9Mk+34rd0z1wO5P7X7NRbRzknJGYPxRF4dcfX8fX/3Yf33r5DE9/8fYZT+qaafM2O24qFNwbS1nES2nET8Cnz8gSWFmRn889tJp/85lNrK1z8/CbO2L8zc9O8+1fnOVaT3zS10plLHoH0sSnUDl3siZb7mc8o+vGwfUbf74lbqZbEmd0XbyUYU75Bj/WWEzToql1cFpZbbNRNkmIqSor8vPlR9dy/mo/r+6f/9mlC2ImdCMFr67g83hntBrDkvIQX/n4ei61DfLq/maudsY4d7Wf81f72bK6gke211JWdPNP6LbjuP15DGvcBnrTMd1P/MM/2euaMqIg6iv78puZTHepavQy3XSy40aPJZHK0Bc10FRl2stzcs5IzCd3b6zh6MVunn/nEhuWl9FQM7Vmn3NhgQYhl+OANizFO52xSKRMTMue1k1/5dIifvtXb+PMR328uv8qXf1Jjl7s5sSlHnZuqOZjty8jHPDc9Do3a6A3VdPdKB9+4++LGZSGR3Z6vdnS04ieSV6NRDKTG8NUlqqG3+ArKyN591vKGr1sNhAzAIeSiP+GvS8JKGIuTKap3WSMbnwH8GsfW83FlgH+z09P8vSXbx9x1GQ+NcFb0EFoOFVRCHh1Al63j08y7SYLTJWiKGxYXsa6+lKOnO9iz6EWBuIGH5xs59C5Tu7dtIT7Ni/F5524ltPoBnrODEyJsp/4LctmMJHBNG00VaGqZPL7KNkb/+ibfvbm/KM3L3KtOwE4I1Klx+qZhKKgK4xo3leIm/zoWZXjOJQV+XOtx0Gy2sTcmmpTu8m667ZqXtt/lf/z/Anu3bwkl0w1n5rgzY9RzDGvruaW6gJ+D4OqgjnFpTpNVdi+vootqyv48FQ7bx1tJZm2eONwK/tOd7iVvBurR5x/GUu2gZ6/L4lp2Xhu8vUTeeLOev7u5TPEU2au5YRl2wwmTY43dc9IAEibNuUlfry6SjSR4X8/fxK/T8OyHLwelaDfnQlml77CQS//JY9yPrNl+KzqmWcP0x8feWZEstrEQlJdFmTLmgqOXuimuiyY29OeTxZlEILrS3XFER9GKjBUjWHqWXUeXeW+LUvZvr6Kd4+18d6JduIpk5fe/4j3hs4YbVldcdMlt4xl0zeYIuh3U8+nskS3eVUFRSEvKcPCdhw8ukpRyIuqKjOy1DR8zymZNokm3IPHRsbGtCzSpoJHvx6IvLpKa3ecZ549fNNsvdmsDj762uvrS3jvZLtktYkFbePKMjp6E+w/00lFsX9S+9ZzadEGodH8Hg2/R8UwndxSnT2FaBTw6Ty2s567NtbwxqEWDp7tpC+a5odvNvHusWs8vrOOtXUlE54xchyIJzOk0yaRkJu4kO/ZopRhUVMeHPE8juPkvdR08EwH3/rpcTr6UmSX3gbjBiUR92T0YNwAFFTFcWdwukbGdJcBs0FoMG6QSls3ZOvByASA2Sx/M9a13zvZzj0bazjb3D+rLTGEKCRVUbhvyxJeeu8j3j7axu5dDYUe0gjT3pqKxWJ84hOfoKWlZSbGU2AKXl2lJOylvNg3rcKpRUEvn7xvJb//uS1sWuk2z2vvTfDtV87xNy+dprnj5pvr5tDZov64gW3nt3k5UZr1ZB1v6ubPnzvMtd4kDg62A9d64sRTJtGEu45tWjaq4lYT14dmXOCQNizaexJc7YjSHzPIWDb90TQpwxq3OOlsFjEd79pnm/t5+kt38My/vpunv3SHBCCxIPm9OvdvXUIsmeG9E+0zsvc8U6YVhI4dO8YXv/hFrly5MkPDmR+uZ9W5VaGLQm5xzqmoKA7wxUfW8ruf2sjqZcUAXLkW5a9eOMU/vnqOjr7EmI8719zH3/7sFM88e5i//NFxPjjdQSJtMtkfndHna4anWU/WK/uaSabdfSVVUdBUBUVRAYdYwu2Iq6kKlu3gAEVBt5WF3+u2szBMi+FbbW5x1xTJtDlmAsBsttmWFt5isasqDbJtbSVXO2O8faSt0MPJmdZy3D/90z/xR3/0Rzz99NMzNZ55J1eNwauTNqe+b7SsMsxv7m7kYssAr+5vprU7zpmP+jjb3Mcdayp5eHstJWF3ietccx8vvncZTVPx+3QGkxmef7sJy7LZuLKCouDkgqLPo9HRmwAUqkv9fGHUAcqb7b90D6SwbGfEQqCqQMYCVIee/iS247axUFXoHUwxEDOwbIeSiI9k2sS0HCzbTYl33zKFwbiBqvpumJXNZvkbKa0jBDQuL6W9N8FP373EhuWl86La9rSC0B//8R9P+bHl5eHpPPWMqqyc/EGu7Kn9eMLEMK1Jz0yydpaF2L5pCYfPdvLiO0109iU5dL6LY009PHhHLU/cvZwPTne6RVqHbpgeXSWdsXj/VCd3banFATx+D5GgB21YFt3BMx08/9ZFmtsHSaRMikJe6msipDMWpulQXBzMvdaDZzp4bs9FdF2hOOwllsrw3J6LFBcH2d5YDcCSyjDRhIFtk9tbyljua9Y1ldqqEP0xg77BlBuoch1WHXxejWgig6aCgkpm6GyWqjhkTDciff6x9SPe+zsaq/nhngvYtptMEQp48GjqiK/LvsaO3gTVZUE+/eDq3Hgn8vnH1vPXzx/Hst1q1+mMNeYYJjLWc1dWRvL6+ZkLMp6JzafxhEM+NH1uW3I/vms5P3mrib/+2Wn+1x88mNu7LRTFmYHFwYceeojvfOc71NbWTvoxPT2xGal8PV1TPfyoKG4r60TarXwwlddi2TYHz3bxxuGW3B6L36eBA8VhL9qw+nKO45BKm/yHYWnOuq4QCbiJC8ebenIb732DaUzLRlHInYNJZyxKQte7nmbTk4fPDEZ/zfGmbv7hF2eJJjIoirtMadkOigKVJQECPp2O3gQZ00bXVWrKgiRSmaEzOO6sSRlaxrNsG9tx/+z3aPyrpzaMmZSQMW2SaYuM5Z5t2n1XPU/duzL3Nc/tuQjKyGy2yZbImU7m3fDEhuHP/Tuf3UpDReFbSmRN5zDvbFhs48k3wL38btOsnhMaT3mxnz/7p2PcvbGGr+7eMGPXnUqAl+y4KcpW8S4Kegn5h1pKpEysPIKRpqrcuaGa29dW8MHJdt4+2kYq7R6gTfclKQp6Cfp1FEUhY9mURkb26jBNN3HB59X44GQ7Pq+OpirDkgXcpa+AT79h/2MyVRU2r6rg337hjlx2nKK4kaWsyJc74Jl9LtN027H3RtMokJshWraD4zgoqkLAo5KxHHRNySUbDD9A6maueSgemiSnMxZnm/t5auhar+xrRteVXHAeXd37ZgFmrNI6kw1M45VCev6ti/xfn908xnd3emYzVV2IlUuL2b1rOS+9f4WtqyvYtq6qYGORIDQDNFUhPHSuJ2nk3/3Vq2s8sHUZO9ZXs+9cJ3sOXMW2HQbiBrFkhqBfR1Phvi03plY6uOnYzR1RqsqCZEwbj0fFNIeCw1BJkNH7H5PdI9neWE1DxV25P48+4Klram4mNJjIoACKqqLhoGoqmYwFKHg0hYzpEA66y4ij068nExS7B1IUh70j2nV4dZW27viUUrvzSQkfb3ydvSMTS2YieEinVjEXnrpnOScu9fDtV86xpq6EoqC3IOOYJ9WDFgYFhaBXp7woQGnEh9ejkc9Z06Bf5zMfW8N/+MJW1tS6mXSW7RY7VVUVVVXGTa0M+HTaeuLYDiyvieD1aO6szHG41h2nszdBLJnJVYmeavbc6McFfDoODgGvhmlma/I5lBb5qSkLUlsVpqzIx/KaIspL3EzDsdKvJ5NSXlHsd/dyRn2NaTlTSu3OJyV8vPFVjVGyaKrVy6cyLiGmStdU/uXuRpJpkx+92VSwccxIEHrjjTfy2g9a6Ea3lPB78wtGxWEf/+LJRn7/c1u4bbl7xqh3MM3f//ws33r5DC2dsRsec9+WpZimTfdAkmTKZElZkJKID2foicuL/Zi2k7spTrX9wOjHVZcGeOru5dSUBXNp3MPrsU22BcT6+hJ6BlJc7YzR3pNgIJa+ISg+cWc9puncEDg1TZlS+nU+advjBe1PP7g69zWTCR7Hm7p55tnDE7aOkHRyMVeWVYZ5bGcde09c4/zV/oKMQZbjZtVQS4mIj4xlk0iZeSUxVJUE+PJja7naGeWVfVe5fG2QS22D/J+fnmTjijIe21FHxVDnxHX1pTwFvHusjb5omtKIj+KQl5ryIKZpkxoq1jq8SvToPZLsDXJ4WZum9hjXumIjlpbG2lt5iuszgeyMLbt5v76+hNcOtNAbTbslhIIegn5PLkAdb+rmvZPthAOeoe64FtGETUnIw3dfO09FcXPuuYuLg/zgtbMjlrvybS+RlU/a9nidX7c3Vuc2um+2pDjZZTZJJxdz6am7V7D/dCfffe083/jNHTNWzX+yJAjNAccBXVVzSQypoSSGyRZNrauK8C8/0ciFoTNG13oSnLzcy+krvWxbV8XD22opCnlZV1/KuvrS3OP+9NnDGBkPxWEfJRGdWCIzbume0TfIjr4k51v6KY34CPlv3MMZy1g36mx9Np9XI50xMU2b3mja3bvS1VwQcZ9XoyjkJZk26RlIEk2a1JQHRzz3w3etGDMbbSqdTfPtiHqznkE3Cx6T7fMknVrFXPJ5NT7z4Er+vxdPc+BMJ3duuPmRh5kkQWiOaapCyO8h6NdJGRbxSSYxKIrC2roSVtcWc7yph9cPXKUvmubA2U6OXuhm18YaHti6dERbgtKIj8FkBjuaxu/VKAp6iaUgNEYJ99E3yGTaREEhkTIJB7yT7rUz+kb9zLOHcwHGo6sMxg3SGYvBeIZwQOeVfc20dcdztejgej06Nx18ZJ+fh+9aMeZzZl9DPgkBU33ceG4WPCbb52mmxyXmr5nqJ5Sv0f2HbltZztKKEM+/c4nGFWUEfZ456zckQahAFNz+Rn6vjjFUwdswb97fSFUUtq6uYOOKMg6c6eT1g1dJGRbvHGtj7/E2bl9TwVP3rsxV9X7xvcsYuOeMokmDkE/nVx9cdcN1R98gs6nXmaHN+EQqw2A8Q2dvgmeePTzpm+Lw62YDZM9AEgcoifjojxskDQstkckFqezSoWfYv4KJ9kTyyUgb62ufnqEWEzcLHvku/0nQWfhmu59QPtbWFfPWkTZ+9OYFPv/w2jnrNyRBqMCySQx+r0Y6Yw9tanPTskC6plJW5MPvdbPmEikT24FD57s5cqGbOzdU8+Su5Tx1z4rcPpF3qPXCP75yjoaaIh7YupQNQ4kPo2+Q2dRrr0fNnf9xbAfHgQst/TS1DrJ71/WDpOMZfd2+aBrLBgWHzr4kRSEvIb8+NPtxGF4tPGPatHbFhmr5jd2UL5905nxTn6eSbj1R8JBlNjGf1VWFKQ55OXOlf04LnEqK9jzhOO6NqaIkQHmxf1IVvN891oaua/g8Kopy/fZtO/DBqQ7+9PtHyJg2X/3EBp66dwWGaWE5oGkql9sH+cEbFzh5uQdFGT/1OujXGYxncGy3iraquodFbcfh5Q+bb5p+PPy6iVQmN7NSVTAth97BFB5dxXGc3CHU4TMga+hMULYp38EzHSOun086cz5fO1Pp1sNNNSNRiLmgKArrGkroGUxxpX3uqlzITGge0lWVSEAl5NdJZSySQ/tGoz+b9EXT+H06A3EDVSGXlWbZ7pxiMG7w7C8vUFsZGkplVvEO1any6hpJw+Jney+TNiwOnOvEtBziyeszEq+ukjJsd5lwaDaiDQVGVXHPME1mjwjcANDUOpALltlAZlkOXf1u7bnisDdXx6qtO07GtN06ecOa8o2uUDDZfRaA1u74UOM993Bttur3WF872SSCrMnOmmSZTcxnq5YWc+R8N+8dv8bGoVWS2SZBaB5TFffwa9CrY2RsEunM0EzF/e/ZxIPsIdFsOVVdUygJ+xiIpclYDi1dcQB8Hvdm7hkKRB5Npa0nwbO/PE846KW+JkzvQJq2nhiRgJeikJ94KkMi5YYl23FwK/cobnDQJnd2JXvjffqb7wMOfTEDy7YZvh+raQq9gykURXFnYY5b3kfTVKqHDoQ6jkNnb2LEDT8xVCrJ7WPkGmuf5XhTN6m0lathZxkWXYZF0KdRX31jvat8gptUOBALhUdXqa8Oc+xiN0bGwuuZ/eKqshx3i/B6VEojbvuD7FLdfVuWkkzf2FbCsh0M06KuKsy/emoD9dVuMbZ0xqarP0VfNIVp2WQsG2uo2oBlOXT3p0hnLKpKgji4GXIDMSNXCM5xuN6aAQj4tDFv9uMdxqwo9qPrGmURX67PkAJ4NGWoLp5CfzSN4zhuoHPcHkVZhmnj92l87/XzdPQliSYMEmmTvmiaj9qjtPfEGYwbY+6zvLKvGZ9XHfG8AIm0xfr6khve73yaAkqFA7GQrFhSRMqwON7UMyfPJ0HoFjK62d6OxmpqSv0jUinVoeWuRNLkvi1LWV5TxG89dRsfu2NZbo8pmbbo7EsSjRsoqjujyV6/ZyDJQDSF36uh6yoeTRuxRwPunlMk4Mmd88m62T5Kdn9I09RcdQVNUygt8hP0eyiNeHEc6I+mUYaW+wZiBvGkkatQoKBgWg7RhDGihhy4iQyxZIZ7NtaMWfstY7qVuYcXWAU4eK7rhvc6n7JGUuFALCQ15UEiQQ8Hz3XOyfNJELpFZZvtWTZsXFXB8powgaHlI01T8Xm13MFVRVF4dHsdX350DZXFfrL5DumMW0mhP5bOVXHQNJVUxj1QGo0blBf7CAe9BH0alSV+99M+UFMWvGFT/WYzguEb82OV+NF1jeqyAD6vRmmRn8qhbLjewTS6Al9+dC2JtDmU0qpgj5oCej0a5cV+zjbfWH4kO7PJdoEdrqUrzu//xbsjZm75JBHMRCt1IeYLVVG4bUUZJy71zskZJtkTusX5vRodfQmKQ17W1ZVgWjb9sTRe7cbPF40NZTQ2lJExbfaf6eDNw60k0ibJtEXKSBAOePB53NRsDYglTRIpk0jIy9KKELruBpXhPYeGm2x7iM2rKsYt8aMr6vWEAI9G0O8hnbEIB71sXlXBniNt9PQn0FQV0yE3q1GGKoaPNwNZX18yZnDKSmesG/ZyJptEIKnXYqHZuLKcD091cOFqP42znKAgM6FbnFvU06Y/ZtA7mCKayBD06XzinuXjpnh7dJV7Ni3h339xKw/dsQxdc/dfookMybRFbUUol0ptOzAYM2jujJFMmxSHvOzedWNLCchvRjDeTCOVsSdc2vr0g6tRFTXXtyk7q1FwzzaN93xnm/sJ+sbeZNU1tzrDVPdyJPVaLDTrG0rRNYXjl2Z/X0hmQre4iU7pW7bbbC+RMscsmur36jyyvY47N1Tz5uFW9p9x07SvdsXdpbKwF1VzG+OZpk1HT4IvPbqGuuoIlu3k0rWzZqIWW0XxxMVItzdWs3tXPS9/2IztuIdnFdyZUMCnT7hvU1ESoK07jmWNXpJT0DX3tUx1L0dSr8VC4vNorKkt4dTlvll/LglCC8B4N8Bss72gTyeZNnPpzOea+0ZU275vy1KeuncF92xewusHrnK8qQfLduiNpvF5VCJBr3tmKG2yurYkVw08FPCMqEM3EzXPJhPInrp3JcuXFPHKvmZah4KKrilUlwbGfb5s5YbSiC/X/fV6YoNDUcitXTdeerfUcROLzYblpfz47Uv0x9KUhH03f8AUSRBaBFTFLZoa8OmcvNTLG4dbSGUs/D6dwWSGF9+7zFO47SC+8PAaegaSdPa72WTpjE16wK1qUD2sbI5tO0TjBsl0hkjAi8+jAsq0ZwSTDWT5Pk82uGmaSmnYy2A8A7izuUjQO1Q26cYMODkDJBar21aU8eO3L3Hmoz523VYza88jQWgRURWF1w804/fplJcESCRNEmmTlGHy7rG2XDbdI9vrePG9y1i2QyptYZg2GdOmpTvBD9+8yCPbaymNuAHJNB36o2l8Xo1I0JMrvTMZY80wYHaqR48ObiuXFk3q+fKtnCDEQlFfFSHk1yUIiZnV0Zck6NcxTQe/T6OiJEAqnaF32D7I8AZ5/XEDj6aQMmwG4gZHLnRzvKmHOzdU8+DtywgHPDhAyrAwMjbBgE7Ir6Mwcd27403d/N3LZ0gZFpbtMBg3+OsXTuLx6AT9+ozOOkYHu3/22MikgYmunU/lBCEWElVVWFdfypkrfTiO21ZlNkgQWmSuV7V2K28nUyaqprBiaXFuScpxyDXIKysL0dsbx7IdDp/vYs+hFgbjBu+fbOfQuS7u3byEezctwefVsB2HWCJDKm0SDnrxDy3RjeVHb14knjJRFPeAre04GIaDYWWGqidMPOsYHlj8HhUUhZRh3TCbme5ymnQ5FbOpUP2Ebibbb2jlsiIOn++iuTOW6+I8Fp9Hn3L/IQlCi8zojf+0aWOlbJ66ezmlER8Z0yGRzpBKWyMOg2qqwo71VWxdXcEHJ9t5+1grybTFnkMtvHfiGiG/m5lWVuTnvi1LWV9fSsqjEQ563VTPUbORa73JoQDkBin3/51c1eys0bOOg2c6+NZPj9PWk0DXVPxejb5oGnAoK/LfEGRutpx2s6QDOQMkZtN86ic0FiPj9vZ67UAza2pvLG+VtaOxesr9hyQIzVOzlZE10ca/47hnZtw25G41hdFHjTy6yv1bl7KjsWqokd41UoZFyrDQVAXTSfHC3ktw70rW1ZeSHkxyrSfOzz/4iKRh5WYjlu2gKuAobouI0fXvkmmTwbhBxrTQNZU//NY+BoYa3jmOg6oq2ENnm1QVFEUlmshQXRYcEWTGW05r647zh9/aR2u3W9wVx606/ncvn+E3dzfm3qfZ7nIqmXdiPisOuUk77T2JCYPQdEgQmodmOyNrMpllmqoS8quUlQYx0hkSo9qQB3w6j++s53LbAJ39qdzeTiyRQVMVXt3XzNq6EkDhpfeuYDlQWRogbVioKRNdc2vA3VBDB7d+XTJtAu4hWiNjc60njjqs/YOmurMzE7Bs8OrkljUsy6apdYCnv/n+mFW2ewdTxJMmg4mRn0BNyyaecvjRmxdv2DOajcAwF032hJgORVGoKQvS3puctX0hCULz0HQzsmbyZqVpKkGvTmCoDXk8ZZIxr1fujibcPZxsckE2GLX3Jfnbl07z+M76XN+j7r4U4aCHkogP07Jo6UrknkfBXYcOeDUSKQsUBY+uYuXWyxW306uuYuP2TNLcrSAcx63soGsqybRJ72AKTXVv7KZlMxBPAxAJeugdTBFLmmO+Vgd3f6qjb26SDvL5PkuquCiU6rIgV9qjRBOZER/mZooEoXloOpHnchoAACAASURBVBlZs3WzUoBzzX28daSVpGER8nvYuro819PIq2uUFfkxMhYDcYOMaXP5WpS/euEUQZ+Oo5gEfR4G4wbJtEo46KWq1CGRypAy3CW3oqGpf0tnjNrKMMm0SVe/+5oVZahMj+N2ZbVsN5nhepsJm0jQT380DSgUh70oikLx0CG7tOGeAYqPE4Cy13ac68812/L5PkuquCiUmjI3IaG9NyFBaLGYTkbWTNyshs+kllSGefj2pQD83c/PkkqbWLZNOOClL5pi29pK3jt5DcO03JYQCoQDOtvXVXHqSh9t3XG38nXabSFRHPRgmBaD8TRFQS8VJQFUBeJJE3uoZYLfqzMYN4gmry+XZWdelm2jKAq66vYcshWHsoiPgE8f2kNyZ07Zpbag30PRUE23imI/F1r6x9yDguvJEUUhH888e3jWl73y+T5LqrgolOyHw86+5NAS+8ySIDQPTScja7o3q9Ezqb7BJN97/TyOA/GkgaKoaKpKPGUSSxooQy0W3jl2jdauGMUBD/duWcq6+lIeuH0ZJy/18PqBFnoGU6QNi07Dojjk4eN3NuDzavzs/csUhXwUh31EEwZ2yuaxHbW8/GEzDCVKZMvruMtvitt91auztCKUCxDZcWeXAy3LbUeRHkqacByHgVgaRVFQAWucKGTbuG0sEhmKw95ZXfbK5/ssqeKiUBRFoao0QGdfclauL0FoHppORtZUb1bZ2U9T6wCKoripz0M3RVVRMIYawmWz5VQFLEfhakeMDcvL2bC8HNtxSBkWiWQG03ZnKptXVXDbijIOnu3ijUMtRJMZBuIZfrr3MvdvWcoTOxv48FQ7rR1RaqvDfOq+FWxcUc4bh1vdMjq2k2uqZ1o2OA6RwPUABPDMs4dz4w74NOIpN6kBx2YwkUFToazIz0DMwLTcmZSmKrkCqAAeDVBUnKG/sB3oi6YpK/LnKmvPdBDK5/ssqeKikKpKAzR3xIinMoT8nps/IA8ShOapqWZkTeVmNXz2Yw9tjAwmrh+gU3IpbA7DD5+6iTLX/5xttBf06SQMk0TCDUaaqnLnhmpuX1PB+yfbeftoGynD4rUDV4kEPDy0rZbt6yvRVBVFgYPnOikKeekeSOb2isDNmtOHGvZdahvkz354PDcOt+usQyzlEPbrQw373HGVFwdyjfN6B9OggK4OzbAUhZKQh8FEBgVy1cEVBWzHrSBeVRq46Uxyqskgk/0+z3aquBATqRo6qNrdnyJUI0FoUcn35jaVm9XwfSSPrpEyrBH/PRuCLNvdtM82knMcqCkbe4blZtRpJNMW8WQGy3bwejQevH0ZOxureOtoGx+eaieazPDC3svsPXGNR7fX4dUVfvb+FTy6213VMCz6oyncFTmFoN9DXzQ9ojXF9f0id3yDiUzuEKyuKrkAFPR7hpblMrmipYNxA49Xx44bKLgzIMVx0BR31meYNu09CRzHnXGN9V7OVeaatIsQhVJa5EdVFbr6kzTURGb02hKE5rGp3tzyvVkN30cqCnlJGdfXfod3LnUcd7aTnS34fRqf/djqMcedDYLVpQGeuKuB5TUR4kN9jYJ+D0/e1cDdG2vYc6iFw+e76BlI/f/tvXmYnHWV9/2511p737InpEM2kgAhkBCWsAZCQCKgosyDy8wzA+rowztu4zWXMzoyjszMw6Xog8/4qozbi8qgoEAIRlAgGAiEhJC9SdJZeu/q2qvuupf3j7uqUt3pvatT3enf57r4g+6uuk9Vuu9T5/y+53t4fOshdM11QfApMikjg4Pkmq2mTHRVIpa0cOeH+lew5b+cLdBsx1Xg+bMtBFVVaJzp4wsfWclDP38LM7vMTlMVTMtBllz5t+PY5PKcYTuU+Qd+/4VyTXCuo8gSNeWevFq1mIjNqhOYwpubJEmj3vw5FIUbUX19rTckVxwgZ89R5s8op6rMw/wZ5b2cBXLkEmdP3MDvVemKpvnx5v0cORWhtsJLwKflq5TKoIc71zXymbtWsHSe6+BtZGwi8Qyd4SSyJOPTVXdrqgT11QE8mowi9zvjWhgymipTGdSRJAjHDJys8q6wNdkZTuW3uLotv9PDeIU7ABUZEmn3sf29/4XPk0Mo1wTnGrUVPkLRVL8LMseCqIQmMEMp3Yo1lNr3HElRJCzLtdXRVBl3XtRmek2AL3xkZb/P0VfYUBHUkTQlXxU8++djLJtfQ5lPI+BRiKXMvD9dQ5Wfv1i/iOa2KI89tz/vyN0ZTrlVkUdBVxXauuLompKXY7sChDOprfTmKx9NlemJpvMS7cL3qFDE4fOorvdcttWnqTKm7aDKuaTktvka+jkfEso1wVSgpsLDvmMO4exyyGIhKqEJTGGFkiN3c+tbceRaRbubOkd8nRWNtdxz40Iqs/M006v9+DwKqiJjWg5OVpAQjhs89PO3zrhGYSy242A77lbWnDFj36pAlmV3RqjC41ZG2Rv9nIYyPnhtI0Gfml8dnjIsQlGDiqDOtRfPQlNlOntSeD0qDdX+Myo3CfIJCFzHh8aZFTx0/1q+8JGVZ5iTWpaddQ53/egqgjplfo1pNX7XncE5/bymafebXPo+T3/L8QSCyU51uft73x0pboU/pkrot7/9LY8++iiZTIaPfexj3HPPPcWKS8DgSrdin0P0PUfKVTat3UlXlulTKQ/0PzfTV9hgWg4SbuXg92oDVgWyLFPmk101XdpdK7F4bjV3rpP409snaQslMUwb03I4eDzMkVNRrr9sNlV+jT+8dZKeaJrygE7Q7zox2JaFz6uTzljDUgYOJOLYvL2ZnrhBeUCnO5LCdtyEqMhSv89XLOWa8IYTTGTKAzqKLGVd64vHqJNQW1sbDz/8ME8++SS6rnP33XezevVqFiw486BaMDoGu7n9dMvBcZugL7wZZiyboE/Ly6T7S3Z9hQ3dkRSO41YOhVXBQDdZRZYo82n4szM+i+dW5be8mpbN6/vaefGtE8RTJptfO4bPo7B0XjXRZIieaApdU6gp96CpCqsW1vLu0dCI1IT9fT+/CrzMk50vcphW4+Ouaxf0+/NjVa4Jb7ipyUTdJzQQf9x5CtNyuHRJQ6+ve7TR1zOjfuS2bdtYs2YNlZWujcNNN93E5s2b+fSnPz3qYARnMtDNbbzOIc5wTIimSaXdM5Jc66vvuVQiZRKKptBUhfKAnj9bcRyoDOj5ymGom6wiy1QEdPwejXgqQ8owURWZtcumccnCOl55p4VX3mkhmbZ480AHsgRlAR2/RwXc4dMTnXH+7u6L8+280bCisZajLRG2vHGClGHi1VVuWTOH9105fwzv7OAIhd3UZKLvE+qLR1c41RknMMrdQf0x6jOh9vZ26urq8v9fX19PW1tbUYISDM14nUP0VeTp2e2okbiR/5m+51J6drNpxrTpCCXpjqQwLZuGal++Ehmu0i+306gy6CYzr64gSe4v//WXzOLr961l7TJ3373tuMq3jh539UMmY3GwuYeuSIpoMoNlj+4T5u6mTl7d00p5UGdWfZDyoM6re1pHdd42XITCTjAZqAjoxJIZYsniJc5Rp7P+5jRGsmuipiY42ksXnbq64g5fjZXhxHN9XRkVFX6efOkw7d0J6qv93HHNAlb1KZNHSnfMoMyn5v8tK4MeOnqSZEwbVZFIZyxw4EPrF/PkS4fx6AoVQddAtDOcxLLBshwaavwkDYvv/noPfq9KImVSU+HNW/CAm2xCMaPX692xr40nXzpMW3eChmo/H7jufBbNrSaWyJDJti3uvfUCWroTtHTGSRkWpuUQiqbRFImGmgCVlX4AbMDjUQn6NTT1dMU4FFuf2I1HV7AsJ//aFVni168c4fo1553x88X4/ZleFyQUSeItqGxThsn0uuCIn38y/j6fTSZSPMGAB2UEv5ulZlptEA50kDAdzivS+zjqJNTQ0MCOHTvy/9/e3k59ff2wH9/VFSu63nw01NWV0dERLXUYeUYSz9xaPw/ctaLX18b6Wqqzpp25tlDAp5FMmxgZm3DMyJ+zzK3109IRw+9V3T0/moIsy6iKmyhs2zUMdRxIpS0koCOUwLZPW+ikMxZVQT0fc2Er0KvJdIQSPPLLndxz40J382vGQvNotHfGuHrFdJ5+9Qhej0IyZZLO2GQshxPtMf75//0z4JBImVSVebh25SwuPL+W5tYoz20/Rlt3ctDzopaOGOAQirkuCjk7n+OtUbb++UivxxTr9+f6i2fwsxcOYlpOL1HF9RfPGNHzT+bf57PBeMcz0gQXi6cnVTtOz+bL/e91Ul925lqH0ST4USehtWvX8sgjj9Dd3Y3P52PLli388z//82ifTjBB6KvISxkmmirzsQ2LAbdd99MtB6mtaMaruTfLXMIys3JyTZWz7TsJcFuGsuS2z7rCSWbWBftVrg11LuLRFKqr/KRSBhfMqwbg5V2nCDlQXe6q8jp6UvmV3V5dgViaJ//UxLHWCPuaQ1SUeWmo9tHaleC7v96DT1d6uXGDe9723qkIEuQHa3NtwvE6oxHecILJQMCrIUvQ0VM8R+0xVUIPPPAA9957L5lMhrvuuosVK1YM/UDBhKbvzbBwn1BfYUEiZeZ9cnRVdiXMtp1XyEHWzw1X3iw5riVOKJpmZp8bPwxvDYUiS3lfulVLGlgyrzpfUTuOw7ef2E1nOIVlu47eKcPCqyu8vKuFsqBOOJJGlsHjUQg6kDbMM0QSN6+ew7ef2O22JKWce4JDRdAz4jOakciuC0Uouce5CV8kJMHEQJYlqsu9EyMJAdx2223cdtttxYpFUAIGuknmbni59sVDP3/rjCoFXIPQoE+jM5yivtJLJGkiy67FTzrjVkZybg8QErpKPgH1vcmORPEnIRHwuMkokTZJpExsG4yMRV2ll5RhEU1k8skIIN2TQlMld3sqDmV+D1XlHiqDXnpi6XyVs6Kxlhm1AdpDSWzHyTp5e5BlicoBNkv29z7C0IrAgZ5LyLUFE5Wqcg9dRRxYFbY9U5iR3OwGqlISKZOv/eXqXs+5eXsziWSGdMbOL3rImDYObqvuWGuEHz6zLysqsOmKpNjf3OM6RGSs/HMPNGza94Z/y5q5LJ1XRSxlEvRptHYnsk4PZ5Ix3a9KQDhukEhL+L3uhtdI7PQQ3l3XNObfm8JYFs+p7LV19UPrFxMOJ/p9H3MKwMLEHU6b/OfTe/F71QErHCHXFkxkKgI6R1uKd64mktAUZiQ3u+FWKYVV1Fd+sJ2Wrji5WTxFdgULSdNxE5TU2yg0FE3h0VS6w67E26urXNhY3atiWrmkgRe2H+t1w//JlgPcc+NCFFlCVWXKg578AruBcHD94HwejXgyQ08sxbQqP0nDxKup/Z7RLJ5Tyat7WvPXbu1O8I3HXs+7ivf1y2vrTjC9NpC/ZiKVcVeWOw61ld4Bk75Y5S2YyJQHPETiXTiOMyJF9ECIJDSFGcnNbjTL8u66ppFH/vsdcp7Xtg1SVqFtO6fX4eXWRVg2pDMmiiwzqz5IJG6wfX87FQEPZX6NnrjBr7YeIuBV8/5whYkT3PMm07KpzbbkInEjf2Yk4V4/Nz7kOBDNLd6TYOXCOsIxg7jqbo9c3mdQuLAlmU8ouMo5SXLXgoPrXefO/Ei9hBuRRAYc0NTTs1L9JX1hiCqYyAS8KoZp51WxY0UkoSnMUDe73U2dbH1iN0dPhbEsB8exkSQZVZHOUJQNhD3A3h8gezbTFyl7U5dIGhYSEsm0SXlAx6MpbiWVtqgoGDPLJc50xiKRNrEsh3jKpMyvU1/lI54drss5OAAksrJu03KIxjPUV/rw6u6fg2k6+WQU9LnXleidtN2E4uQrOctykGV6+eU1VHlJm3Y+cWdMGwknb4FUGHsh473KW3jUCcZCLvGkM1ZRkpBw0Z7CDOa6kDsvOtURJZE2SWcs91O9ruDRlWHduDZvb0ZT3KSlqzKaKuclz3C6AipMU5IEanag1TRtZIlebTVNlfNDqzlyidOyHHBOL+CLxA06Qu5K8Poq13E7lnCrl7uvP59P3bGc82dVANDek+T/Pv0uP958gNbuRPb6Dj3RNF2RJKmMxZyGYP7amYyVXX7nxpCr5DIZK/8+3nXtgl7u5F5NoTzg6eX8PVBLs/BxlQE9Pys1Vorpvi6YmuQ+tKb7bGAeLaISmsIMNpuSaz3FYml3XkaWsB23Kqks8wzrkLwznKI8oBGKuSseJHo7bRQmH1nOJiUHyv25Lagypmn3clkI+DSsuNGvU/YPn9lHOnN6/Ti4rbJQNI2uylSUeXAcFY/qJsKZtQE+fssSmk6FeX57Myc64uxvDnGgOcTFC2s5b3o5Ow92EIqmqSn3snReFYm0ScaykWSJ7M5xVMV9PtNyevnl5d6fQtn1z144OCyX7/Fa5S1ED4KxkvscWSyrAZGEpjgD3exyrSe3heSSq0r6tpAGau/k2n3VZR4iiQyZjIXtuAKFqjIPkbhrxaOrMrqmUBHQicQNFEXGcRx8ukLEtPB5VBzHwTBtNEVm1cJadjV1581F1186Ky+rbgu5PnKpgk9pUjbu7nCK8oBOZbWfl3aeBGDRnCoaZ1Rw/6ZlvHukmy1vHKcznOKtg528dbATr0ehwq/TkzB4+Z0WVi2qoy2UpK7SRyptEUu6DtuKDIoi4feoAy7+mwgDqUL0IBgrVv7DV3EaaaIdJ+iX3EI9TZXzn3hsx/3F63tuNFB7J9fuUxSZhiofquKu5q6p8BHw6UyvDdBQ7ee86eV86zNX8bW/XM0nNi6hMqATiqYxMjZeTSFtWISiaSoDOtddOpvDpyL9movevHqOa35a5qGu0usmBllCkcgPnqqKRDyZQdcV9jeH8u1BSZJYNr+Gz37gQt5/1Xmnl+qlLdp7kqQNC1mWaDoZ4eLz6+gOJ7Fsm9pKH9XlXmRZxrIcLMsZsLU1Ec5iBluUKBAMBzOr7BmLU30hohIS9EvucNzvVemJGVi2e3rj83h6tZAGa+/kKoLcjddxHKrLvfg8KolUJl8dtXUl+OT/fgk5K3oo92tIkkR5UDujbbV156lhX296TQAch1NdCTRVpjyg4fe6kuxIPMPx1ig4cMniembXB3Ec9w/r0iUNvPjWCSyHvKAhmsggS5BImvzp7ZPIkkQ0kSGayBDwuqvBLdtGkaQzZNe7mzp54qUmTnXGs4OvWskGUMdb9CA494knM9kNxsVJHyIJCfold2PcuvMURsZVx6mKREOVr9cn+KHaO4Xtvod+/lbW7ifjypkL1GUpw0bCRpYhkTZxHCe7xqG3lLk7ZuDVBl550F97MXfdnLTavbZbFR1rj9HSneCuaxqZXuPPD7NWl3uJJF2pds663nYgaVgcbYsBp4UV8ZRJPGXi86gsmFWBadu8uPMkKxpr85ViOGYgSe7Oo1DMbVHmVlmczSQ0EVqCgtNMtqV2AE/84TBBv+YqP00bj6aijqGnJpKQYEBWNNZy/ZrzBnUdHslMS+5TeDjrTn3G354EkiRjWu7qhEjcOGOR3vS6IB2hxKCy8r432JxooTucyreiZAkqgl43wWUsnvvzMT7/4ZXE0ybxZIarLpzB068eAaDMr6FpMvFkxnV+GOBENpU26Qqn0BSJdLbKeGnnSVRFxnacfPvCdtzV5w1VvpKcxYyX6EEwcibbUjuAY60RNFXmjX3u/rhLlzSgjmHJnTgTEoyJoWTeD/38Lb7w6DYe+vlbANxz40Icx8mr5HLKMnCVcbKUHSrtI83OJZo7rlkwpKy8J24gSfDeqQjffmI3P9m8H9Pqkzmk00o9XZXp6HGTQcCjUlPu5eKFdWy6aj7lPo1U2qQqoPPh68/nf33gwoF74dkvx9Mm2A6haIqeuEFDtZ+K4OnZINt2SBsWJzriJFKmkEcLJhWhaJrKoKdozycqoUnCRDjU7o+B2jvQv3nnPTcupHFmBT1xg55oGtNykCRX2pyz8VEVKauik/KquFyiWbWkgXtuXDiorNzOyrJBQpYlumMGsuQKIiJxI5uQnF6DpYWVmyJLVAR0Vi+dxgXn1eT97HLMbQjSFkqQSFtnVEWJtNsvv+rCGW5SBVq64lT4dby6Qixh5q17JBw8uiLMSQWThkTKJJm2qCkvnpBFJKFJwER3VR7oHGYgAUGuLefzqETi6dNzPQ44jk1ZwBU/lGeHNfsm3aFk5e2hJCAhZ4dWHQeQ3PZebs2E47jDsAOtRXcct0KqKvOQNEziWUduIN+qkyQpv9k195ieqMH5syqYVhPo9bOW7VZ/DlBf5cM0bXRNRlPddqCY0xFMBjrD7gqHmgpRCU0pijlgOJ4VVeFzh2NpKss8UHB2kzvXKayeLMu1zrEdG9t2h0tjCbeFNbsuwK6mbg5Gemhui7H+0ln85fsvHPC1eHUFw7QxLfv0MjrcCivX3vN5XCVbTzTd72BpXyTAr6t4NYV4yiSZMlk0p4pLOmK8tPNUdtWD6weXNtw5qEMnwvzH4ztZu2waV184k/ddcZ67fC+aJpE0UBWoLvcR9GpYjkMilRFzOoJJwYmOOJoqU1PhK9pziiQ0CSjWgOF4VlR9nzsSN+iOpJAkKS8uKGx79a1mCh+vqzLdkRQnOuJIuO25dMbi6W1H8Qc83HDxzH5fSyKZAUlClqS8qagDlPk04ikz396Ts47X/VnhDJSkZUmizKfh8yjEkhmOtUWpLPfg96j5SiidMcGBdMYmlszwp10tvL6vnXUXzeDyZdP4/Y7jmDZ0Rwwi8Yw7OFvmQVdl5s8oH9P7LxCMN7bjcKI9xszaQNFmhEAIEyYFxRowLKyoctLnnEx4rPR9bvcgXspWHM6Aba+BHp9Ime43soOmiuwuxXvqT+8N+Fr8Po1yn0p9lc9NNpJEVVDH79MIeN2vD+bFNhxfNVWWqQp6yB4rcaozRkc4STKdQVddg9W/u/siblw1G4+mkDIsnn/9OD9/4RDtodMfGkzLoTuSprMnSVt3gmXzq4kkDNcSqHh/3wJB0WjvTpIyLGbXB4f+4REgKqFJQLEGDMfTsqXvc/u9Go7jEI5l+j3XGerxufmhwoN/WYJk2lWTNZ2MuK0wVabcr+XXJyRSJg/dv7ZXRVMZ0Ln7ugXDMlwdTttz1+FOjrdGCfh1air8ROIGPTGDoM+hrsKVfV+7ciaXLa3nj2+f4tXdLb1NWjntu2UYNh+6fgELZlZmD31NdFXB71XRs+7dAsFEYH9zCF2Tmd0gktCUo1gDhl5dobUrUbCyWkeWpaJYtvQ3L6SqCo0zfQN6qQ32eDmrlCusCmzHddH+2QsH3a87YFl2fo+PosgDtvuGw3CT9BMvNWHarsO2J7tEL+jTiMbTXHXhjPzPBbwat6yZyzuHOwknTs+COJxeYeHzKCyaU3X6e45rkZ/OWBxrjbC7qYuWrgR+r8r6S2cL8YKgJMSTGY63x1g6r7ponnE5RBKaJIx1wHB3UyeRuJE/K8mYNl3hJAGfWyWMlf6qtUQygypLfOHRbUMmzsLHW7mWVFbZZlo2kiTh4FCRTZyVZR66IylAQsLd/1MR1IdcBT5YDMMdvG3rTiBLEpIMhmXT0ZPE51GpKveyvLH2DEl3TYXX3XNku1L0wvUVKcPiZGecmQUbWAEONId4+tUjqKpMZcADssTvth3leFuUd4+GJpxUX3Bus/doCBxYOLui6M8tktAUYfP2Zvw+DY+uEElkME0bRZYp96lFuYn1rda8mgyShGk7wxJB5L72xEtNtHenUBUZjwbJtI3tgK5I3LJmLtv2tqOrMpIkudY6ccN1MYAzznmGEmL0TVC59d1Dtz0lwM7vE5IkMDImXWGbqjIPqayk2yyQdD/xUhPJtImc3eyaS0JJw+K7T77D8vk13HjpLGqzqqOXd7keeZriqvKklIlp22x7t43KMg9V5Z6SSvWLqbKcqDNwApdowuBAc4jGWRWU+fWhHzBCRBKaIpzsjGNkXPmyqspUl3uyRqJm0a7R1yfOdBiRrHxFYy2btzdTX+3vVY2kMxaVAZ1508t54c2TdPaYriGpX6Oh2p//ft/n3by9mYxp55Ouqsr4dCUvxOiboF7d08oVy6axv7mn3xti7mbZd6me47irhSoDKhLg01WOtIT5484WmtsiBLwal1/QwDvvddEVTqPIrpHr8vk1vHs0RGt3gnfe6+LdI92sWlzHdZfMIhRN4y2wQnGA7kgay3IXCwZ8GtOqNSLxNM+/fnZnjIqpspzoM3AC2HmwE0mSuGjB+Px7iCQ0Bdjd1EkqbWE7DrJ0+hylzLSZVu0fl2sOdb4y0KffgR53sjPOz144iFdXSKXdpNIdTZPJrpvoT6RxsjNOIm26S/myrzuatLE64wOKEPY39/R7hpW7WQ6WtH1erdfP+r0a02oCxFIZdh7u5NbL5/U6/wG4duUsdh3u5IUdx+mJGby+r52dhzoJeFTSpoVXO/1emJaNqkgYGRsjk0bN7i9yvRccpLMkYyjm3JpYsjexOdUZ52hrlOWNNUVzze6LkGhPATZvbybo17JzM+4cDY7r/jxeFv6DycoHk0IP9DjLclAU18GgpsLnblt1HIyMPeDq69y6b1mSkKTTr9uyHDrDKfQC699k2iQUSXHweA8P/fytM/zcclVVfIAkpCpSfpHeEy8eJhwzONEeY39zD5ZpM60mwI797Wc8TpYlLl5Yx//zoYvYePnc/CLBnrhBKJymJ5bGtm0M00KRpV6rwU3LoTOSIpMx6epJEUtlSGescZd4933vYPQqy2I+l6C4GKbFtj2tlAd0ls+vHrfriCQ0BegMpyjza1SXe7O+bO5aBp+ujNunzcGMTQeaV3ripSZiCYP27gQtnXES2Zuqla0ALMvmZEc8K0hw1y34vQOfabnmqKfXRdhZbyBVkXolu2TapDuSwrQcNFXpdz6oM5wimbbOuAa4Z0KO4+QT7KmsAjFXfR3viNMZSpDOWPi9ar9JQlVkrlg+nc/ffTHXrZyJrrnLBBMpyhsoDwAAIABJREFUk7ZQEhy4+sLpKLKEYVpZTz33vblyxQxM2yGWyNDVk8wvBBwvirkYTyzZm7js2N9BMmVyxfJpRVfEFSLacVOAnOrL51Hzn6Rz5yjjxWCy8p9uOXhGaW9ZNu3dKeqr/VSXu6u/u8IpZtQGWLNkGs9tbyaSyCBJrsGoO+yZXVw3AIXrvt1WlozP48nvRMqp8cKxdNZfDsoDWr8todoKb14K3hfHAVmW8wnWXd2QtQvCnTQPRQ2qyrxUBHS8ukosmTlDRQfg0RVuWDWbNRdM48WdJ3l9bxuW7VZu77wX4qIFtRxtidATM6gq8zB/Rjkv7zrF068coarMwy1XzmdGlY+0YaGqEj6vhldT8jZGxaCYi/Gm+pK9ibBPSJVl+hogvL63jcMnwtywaja3XD5v0Md7tLGlEZGEpgCl+kMfSFbenxQ6HDOyijgFj6YQ8OmkMxY4Dq/uac3/obqSbQdFzmaNgZb7cPp15za5ZkwLy3JYd+H0XkmyvTuBpir5zatwZkvo5tVzaDq1B8d26HtFSYKNl7vvZdPJsKuKc8CRpaxVkLsS+ebVc3oZo/ZV0RUS9GnctnYeVyybxu93nGDX4U46epK8uDPJnIYgd127ACNj8fSrR1AUGa9HJZLM8PiWA2y8fC6L5lSRMR0yMYNYto3n8yhoijzYWzYsirkYb6ov2ZsI+4QuXdJAoKDNe6w1yuNbD7FodiUfvLZxXKsgEEloSjDR/tD7S4qmZVNd3tuZV1dlWjoT1FR6cV2x3QSQc8auLtdJDdJ2WtHoVg3P/LkZy3bQFAWfR+HVPa3Mm16eT5KFm1dz9G0JrWisZdXCWl7be+a5zpol9cybXp4dopVQ3OMq7GzCkiTQFJmfbjlIbUVz/r336SoezfWiS6bNfpNDdbmXD163gKsunM6W149z4Lhr5vr93+7F51Hw6Aq6qmTfLwXLtnl516leAgjbdognMyRSGdfeyKOha2O7sRRzMZ5YsjdxiCYMvvvrdwj6NO7btGzcExCIJDRlmEh/6P0lRVWCWMqktTvRS04NDroqo6oyluXONjmOk7XsUYZsKe5v7qEma6WTo+/qhOFWiqGYQWVQJ2lY+RiDPpVQzMifc1UEdbqjaSTJFR3kluf5PFq/EmRZkvItumjCnXnqj+k1AT66YTHvnYrw/OvNHG+PkUxbJNMWacOizK+jZs1fQ4O0DVOGlW3VuZJor66cNVWdYGKTzlh8+4ndhOMGX/jIxVSMY7u+EJGEBONKfwOhhXM4f7HeVbY9/cp7PL3tKFJ2D5Bp2kRMi+oy9+C63K/RHU1j205+VfZwWorDseIZbqXYGU5RHtCpCJ6+aauKlH8uv1dFyia73GySbTlUBHUqspso+ztvyrXoqsu8JA2TWDKD3U+LDmD+jHLuu/0C9h0L8Ys/HCZj2tlklCTgVfF7VarKBt/14uA6ZoRjBnFZwutV8ekKijyyT71iyPTcwbJtvvebPbzXEuGTm5bTOKP4zggDIZJQCenvj/j6urJSh1U0+g4itoWS7G/uQVXcc5JI3OCHz+zjExuXsL+5h4qAJy8i0FQZn0fFq8mkTduVZwd1ookMlulQX+Xnrmsah7zp9T1/SqbN/C6hh37+Vv7GOZxKsb+zrHTGyrftct/ze92zpXTGoqsnSXmfT5QDSZAlCfwet0UXTw3copMkiaXzqrn7ugX895+asjNgruQ+kTKZURMgbVh4dOXMB/chp6pLJE28HgWvruLRhj43EkOm5w624/Bfmw+wq6mL/7F+IZcsqjur11f+6Z/+6Z/O6hWzJJPGmA9Ii0Eg4CGRMM76dXN/xIZp49UV4mmTXYc7mVlfRqVfO+vxDMRY3p//2rwfw7TzUuyucBLbya7wliUc3LOX421RIokMQZ9G0K9THtAJ+txzi6Rh8RfrF3KiPUYibTFvRgUfvn4Bd1+/kIZhDNqW+TV2He7EdsDIWPmtqpVlOoblsOtwJw1Vvl7Ptbupk//avJ+nXjnCzkMdlGWdGQqfy5VKu4v4Nl11HgtmVZzxPcuyqQh6yFhOr966Ydroqswb+9vPuAa4c01eXUFTFUzLHrAqqqv00VDlpyeWdhfqZc+g2kJJduxvR5ElZtQG3LbgEOSqo5RhYmRsZFlCUeQBG3V9/21zisAT7TGuWD49/3Ol+vsaiPGOJxAY2cbRQ82hAVuwZwPHcdi2p41Xdrdw29p5bFgzd0zPN9LXD6ISKhkDTYo/+dJhHrhrRWmDKxJ9W2G55W/gfpp3Hdgc2kIpGmeWn1FlROIGRsbOHui7rbvr15xHR0d02DEUttqaToZRZPfcJqeC69saG+gT/tGWCPube0gZFpZloiruDf5D6xczt/Z0Autb2QJnGrumTHCcQX318i268myLLtF/i27RnKq8CCGZNnnjYCdb32gmnjJ55rVjbNvTyg2XzOLCBbXDS0YFLt6qIuH3anj1MyXe47kWRHB2cByHNw90sPdoiJsum82mq84rSRwiCZWIgf6I27sTJYpo5Ax1JtC3fZW7hRbez1wDUOcMcUAkbhBJGFQEPL1u1BUVfubW+kd0HpFrtX3h0W3ZYdHTAfS9cfb34SCcNnnmtWZqKr1UlXl6CRdWLWnIJ8XBWnqFxq5pwyRjOaSzZ11+rzagVU1uvbhHdVV0KaP/Fh2Az6OyaV0jFzVW8+JbJ3ljXzuhaJpfvdTEy7tbWH/ZbBbNruz1+gfDtBwicYNY8kyJ93AdxwUTE8dxeOtgJ3uPhlh30Qw+eO2CYf9eFJsxJ6FvfetbyLLM3/7t3xYjninDQH/E9ePk5VZshnMmsHhOZYE8WkaWJWzbyX+qzjkYNFQHzhAHGBmbioAnf55SWClef/GM/LUlCd47FeHbT+xmRo2fu64deHndcG6c/X04SKYtbMfu19/s+jW9Pz0OlBxzrt0/e+EgpmWjSFKvXUg+jzpoFaHIEpVBnbShEEkYvarKA80hXt51ilA0TV11gMuX1nP7ledx5fLpbHnjOO+810Vrd4Ifbz7AvGll3Lx6DnMahn/22J/E+9a1c/nJ8wdJZ6wpOWQ6mXETUAfvHgmxcHYFd17TWLIEBGOw7YlGo3z5y1/mhz/8YTHjmTIMZGtzxzVj3+1zNhhqVfjupk5e3dNK0KehKRKm5Q6eejTZVbbZNrIEAZ/OXdc0Am7y+sJHVvLQ/Wvxe1VURaKtO8HJjhht3Ymsq0Iif23bdghF09iOK4du70mdYbdTyGBWQjn6s5HJZN0WCumv9fT0K+/x3V/v4eCJMNFEhtbuRK94cnFrqpL38JNwlXTDqSIcB3RNoabCS8DnegHm9g5Fkhm8HpVwLMXTrx7hQHOImgovH77hfD71/mUsmOmqnY62RvneU+/yk+cP0DbCqjsn8Q5FUzRUB/jIjQuZVRvAyNgDrkwXTCxyLTg3AVWyemlDSRMQjKES2rp1K/PmzePjH/94MeOZMgwkCy5s70xkhjoTyN1w/V4lX82kMxaqBEG/PmQbzasrtHTFkSQZWTpt0zO7oTx/7fZQErKSbscBy3byiXCwnUWDtfH6mxlSZCl/hpSjb9LY3dTJM681u/JxyZW8RpM2ZT4tH08u7vKATnckhe24SSgzwipCQqLM59oLvX2oAzWb2AA8qoxlO70GVmfWBfnExiUcPhHm+TeaOdkRZ9+xEPubQ1x8fh03rJpFZXD4B8o5EUNdpY8PXrsgL/FWi+DGIBg/HMdhx/4O9h0LsWhOJZctqS95AoIxJKFNmzYB8Mgjj4zq8TU1xd1TPhbqSiSLvr6u7Ix2DpQunoHoL57pdUFCkSTegtZWyjCZXhekrq6M7phBma/3+YuqSMSSJv/22XVDXlNRZSgYo3StSN2VBblru/Y97nfdKkEi4HWHRwd6Dwd6zwu/X1Hh58mXDtPenaC+2s91q2bzhzeOY9luS861E4IPrV+cf3+2PrE7bwybW95t245bOWTjycVdHtBRFJmeaBojY+HzqHzyrotYtaRhyPelL7G0xeyGING4a/YK4NMVwokM1dW9ffUuqw5w6fLpvHWgnaf+2ER7KMlbBzvY3dTFNStncfPaeQR9o1Nm2hKgKgR9Kl6997/7ZPh9LhXBgAdFHVpKP1Ycx+HVXafYdyzE8gW1XHXhjPy/kd/voa6ExwBDJqHnnnuOb3zjG72+Nn/+fB577LExXbirKzag9PRsUldXNqEqj8kST+5cxrScXmcC1188g46OKNVBvd+ZmqqgPqzXF09kqCrTiSbNvDtBhU8jlbZ4/5XutWXJPTyXsnY+QZ9OPGUOeo3hCBrm1vrPUCjWl3vOeFxOFdfREaWlI+Y6fdsgS7nfawfDdPLx9H3PKoI6luWuophb6x/Vv7smS3T0pFyHdFUmmTKJpU0q/Brd3fF+H3NefZC/vXM5O/Z38Ie3ThBNZPj9G828/PZJrr5wBlcsn4auje7GKEmgqQp+ryumqK+fHL/PxXz+kRCLp8fdO66wAloyt4qLGquJxU+7aiQSaTqs/h3iR8poEvyQSWjDhg1s2LBhVAEJzl2Gam2N1TQ1JyKYVn160DOdsair8vdaBX6qM+6uKQ9oKIo86DUKxRQjETTkXm/f7+9u6mTrE7tp6YiRSJmoioxlW9iO2yLMzQzl4hkPD7+bV8/hh8/so60rgc/jtj5l3JXig6HIMquXNnDxwlpe29PKH98+RcqweGHHcV57t5XrVs7k0iX1I3ZRcLLzWEZW4u3169m1FqVv+0xFcmdAuQS0anHdhGjBFSIk2oJRM5gkeaw33IGSWE64Uag4y12jMqAPeo2+ggaQ8oKGHz6zj/KATsqwhhVrLqF5dPdTv2U7hONpfLqKabmGrLIks3FN7+cZFw+/7E0llsxgWg61lT7KAtklhkM0G3RVYd1FM7l0cQN/fPskr73bSiyZ4elXj/LKOy3cuGo2yxtrRpVETMshmszQkz0LG401kGBs7Drcxd6jIRbPqZyQCQhEEhKMI2O54Q5XuDGSawwkaDAtm3jKPb+ZVuMflgVNLqF5dXcTal58kTUTPVteapu3N/fyi9NUmVgyw8u7Wrj/9uVEkmlMc+i2t9+rsmHNXNYum8bWt07y5oF2uiNpfvGHw7y86xTrL5vD+bMqRnUTs/tYA/k9GpoqCREDo9sn1N/+n/7YuuM4u5u6WHNBAx++ceGAHyTGug9orIz56mI+SDBeFLtqyLX43CrF/YN0sv+57TMnLzcfaHg0R3/qwDK/hiJLPHT/2qLFPBQDqRRPdsTRNZkazUssaZJIZYZ1068Ierjj6vlcuWI6L7x+nHePdnOqK8Fjz+1n/oxybr5sDrPqRycqsh2HRMokmTbxqK7HnqYNbA00FRjNPqG++3/649V3WvjNy0e4dHE9f7Vx6bDcMkqFqIQEE5LxcGjOtfhkScKyHbddBe4COsetInIMZUGTS2h6CR0Ddjd1kkiZhKKp7FI+HU3Ve8WRk3N7dYVoov9trv1RX+njnvULOd4eZfP24xxpifDeqQj/5zd7WHZeNTdeOpu6St+o4nYcSGWtgRRVwu/p3xpIMDr2Hwvx2HP7WTK3iv9528ROQDCGYVWBYLzInbf0xI1ebgwDDaEOlxWNtdxz40Lqq3w42cPyqqCeTT5OL7froRJKbvDVtdHpf/B1PMm9R7omgySRMW26wklC0XS/cWiKu821LKCP6KY0u76Mv7p1CR/bsJjpNa4acM+Rbr71q138+k/vEY6P3gzUAUzTtQbqDKeIJAwylo3IRaOnpSvOd3/9DvVVPj71/rOzlG6siEpIMOEYyNy1P5uckdKfoKG+0kskaSLLEo7jDEvJl6vKtu48RUtH7Kzv0zk9DKyhqTKRRCbrgm3xP29d0m8cEhDwqPg0mWjSHNSHrtfjJImFsytZMKuCd5q6eOGN43RH07yxv52dhzpYu2w66y6agW+IFtFg2PbpVp2elXjrmjKlW3UjJWWYPPLf7yDLEv/rAxeeMWA9URFJSDDhOBsOzX3Pm0bT/lvRWDtiV+9iUfge5fYXuRWZPWTcsixnfehUosk0mWEIF8BdMXHhglouOK+aN/a184edJ4knM/xp1yle39fGuotmsHbZ9F5tzZEyXBdvQW8cx+Enzx+kLZTgc3dfPOpWaSkQSUgwocidc3RH02iqnHeZHu/zlom0/nw4jNUA13WYkKnRfMTTJvFBtrn2RVVkLl82jZWL6nj1nRZe3tVCyrB4/vXjvLanlesvmcXKRfUoYzyLGMzFW9CbV95p4bV3W7n9yvNYMreq1OGMCJGEBBOGwtmbdMZ1SuiOpsmY7qbVYp63lGo1dbGuO9Qc1UjItegiyQxpwxr2Td6jKVy3charlzbw0s6T/PndNiKJDL9++Yi7OuLS2VxVNXY7mP5cvHVt4p91nC26Iyl+/vtDLJ5TyW1r55U6nBEjkpBgwlBoeqpldwplTAsjY/OxDYuLliRKtZq6mNcttgGuLMtUBT2kDYtI0hjWbFGOgFdj4+XzWLtsOlvfPM7Og510ht0b46vvtnHDypk0Zl28x0LOxTttWKiq+x56daXAYXBq8rMXDuLYDh+/ZcmEV8L1h0hCgglD4TmH235RcbKzJcVMQP/59F5SGatXu2+wuaBiVS+DCS5Gc91itxDzqyI0L/GUSSJpYo+g91VV5uGuaxZw5YoZbHn9OPubQxxrifCDZyKcP6uCmy6bw4zawNBPNFScuC7e4ZhBXJbwZZPRVHRj2Hmwg52HOvnANY2T6hyoEJGEBBOG8d7WmatE0hlz2Evlilm9jERwUapqDdzZoqBXw6upRBNG3p17uEyr9nPvzYs41hpl61snOHwizKETYQ6deIcVjTXceOlsasqL829q2g7RRIZ41o3Bq6t4tKlxbmTZNr948TAzawPceOnsUoczaqbeRwfBhGU4S+fGwmiWyg21vG8k9Lcw72xcd7SoikRVmYeKoD4qkcHcaWX83T2XcO9Ni2iocj+l727q4uFf7OKpV44QTYx+xqgvOTeGUDRFdyTt/g4V7dknJtveaaU9lOSOdfMnxTzQQEzeyAXnHLlh0sqATiJlFn1bZ2c4ha7K2aFUB9thyKVyuccUMlq5+EiSbDGvO1Z8ukp1uRe/Vx3xIKkkSSyeW8Xf3rmCu65ppDLoumpv39vGvz/+Ni+8cZyUYRYt1pzEOxRN0xVOkkiPrKU4WTAtm6dfPcp508u4aMHkUXX2h2jHCSYU4ymVzrX7fB73puoKH2y8mjpgsitmi3AkzuLj3ZocKYosURHQ8WrKiIUL4K5fX7mwjhWNNWzf28aLb50kkTZ5cedJtu9t45qLZ7J6acOYZoz6cobEWz93bnev72ujK5Lif9y0aEI6Y4+Ec+dfRTBpOVty6UJZs1dXkGVPfqncQNcb616kvgw3yRb7usWgULgwElPUQlRF5orl07lkUR0v727h1d0tJNImz/75GK++08INq2Zx8fl1RVV5FUq8FV3FyFiT2o3BcRy2vHGcGbUBls+vLnU4Y0YkIUFJOZsH8KPZcTQei+jGK9azxWhNUQvx6io3rprNmqUNvLjzJG/sayccN/jvP77Hy7tbuOnS2SyeW1XUT/mOAxnLJhRNoyoSPq+GV1PGPFR7tmk6Gaa5LcZHb578VRCIJCQoMSOVLQ+Xgaqr0bT7SuWmMNFdHHKmqMm0SWwEjguFlPl13nfFeVy5fDov7DjOrsNdtIeS/GTLQeY2lHHT6tnMm1Ze9NhNyyEadyXeXl3B51HR1cmhqnt5dwsBr8qaC6aVOpSiIJKQoKSMh09cKeXNUw0J8HtUvJpropo2RqdKqy738qHrzueqFTPY8kYzB4+HOdYW5T+f3sviOZWsv2wO04ZpSTQSCo1TPQXGqWeLkS61iyUy/PyFg1yxfDqKcvbiHE9EEhKUFK+u0NqVwHYcVMVVrsmyNKYD+CdeaiIcM3o9Z07ePN6OCH2rLzg7LbXctbtjBtXBwdecjwc5U9RUxiYWNzBHURUBzKgN8LENS3jvVJjnXz/O8fYY+5t7ONDcw0Xn13LDqllUlRVfnFG440hVTxunjrcbw0iX2r17pBvTcteOpDMm6hicyycKk/8VCCYtu5s6icSN/IK53E6cgE/n7utG7oGWe85TnXEkSUKRJUzLoTuSoqrMM67y5v6qrx8+sw8kCb9XHbAiK4Yoo/DaZb5SVn4SXk1Br/ASS2ZIpkcvvZ4/o4L7bi9n79EQW95opqMnxc5Dnexu6mL10gauuXgmQV/xVxW4bgxOHzcGdUKcGzmOw6ETYeoqvfl17ucCIgkJSsbm7c34fRoeXSGSyGCaNoosU+5TB715Dnbj3ry9GVWR87Mh7tpuiXDMYP6M4p8tFL6Wvmdb3dmkl7th9D3vKlbbsL/B1mKcq40WWcrKuXUVdQw3b0mSuOC8ahbPrWLnwQ5+/+YJInGDbXta2XGgnatWzODK5dPx6OPTlurrxlDqc6P2UJJI3GDtsnPjLCiHSEKCkpE7D5I0Jb+AK+cVNxA79rUNeuPuDKcoD2iEsu243C3QtJxxlTf3d7Zl2Q70OSEpPO8qliijGOdqxZbJO44bQ3WVn2QiTXyEPnSFKLLEqsX1XLigltfebeWPb58kmbbY+uYJ/vxuK9eunMVlS+rHzTUg58ZQ6oV7h06E0VSZudPKzvKVxxfhmCAoGSOxscnx5EuHB7Wzqa3woqoK1WUeFEXGdtxP5jNq/ONaFfT3WhRZOsNUs/D1FcsVYTTvYyHjtU4d3Pcg4NWorvD2GrwdDZoqc/WFM/jc3Rez7qIZaIpMPGXyu21HefiXu3j7UOe4uiOU0o0hZZgcbYkyf0Z5UQd6JwLn1qsRTCpG4xXX1p1AV2WSaZO27gQnO2J09iQ5dCLMFx7dRixhkEiZKIpMQ5WPuiofFUGdu64d3RnTWF6LV1fwetQBX99Yk8dg1x7JYOvZ8KlT5bH50BXi86jcdNkc/u7ui7hsST2yBKFoml++eJjv/Pc7HGgO4Yxzcsi5MXSGU0STGUzLGbGl0Ug4dCKM7TgsmlM5fhcpEaIdJygZoxnIbKj2c6ItmjW/dP/qTSt3w3EwHcBxUGWJRMos6XBpTlwx0OsrlitC4bVDMYOqEarjzsY69Rw+XUVXFWLJDCnDHNP5SnlAZ9NV87ly+XS27DjOnve6ae1O8F+bD3De9DJuumwOcxrGt3XVa+GeqlBW7sNTZHsg23Y42NzDtGo/lcFzR5CQQyQhQUkZ6UDm8sYa9hzuzJ60nL6DyRJEkybTqnUAgj6Nr/3l6uIGOwoGe33FdEXIXaeurmzES+3Otk+dIkuunNtQiCaMgg8Ro6O20sdHbljIiY4Yz7/eTNPJCEdaonzvqXdZOq+K9ZfOob5qfHft5CTeGcum2GniWGuUeMrksqUNRX7miYFIQoJJw+6mTv7wxnHArYFyty4J98ZmZltbpXCbHkrpVkwHh2JTCp86x3GFGK6ce3Q+dH2ZVRfkLzcu5dCJHp5//TinOuPsPRpi37EQKxfWcf0ls6iuHvtSvbOJ4zi8e7SbioDOrLrJFftwEUlIMGnYvL0ZVZXw6Aqm5SBL5M9UHEDNHtiWwm16MKUbMKEdHErpU5fzofNobotuND50fTl/ViWNMyvY8143L7xxnK5IijcPdLDrcCfXXDKbNYvr8mrMiU5LV4LuSJrLL2g4J3zi+kMkIcGkoTOcoiKoUx7Q6Y6ksB0JRQbLdj9Zl/nUUS3CK4Y8ebBzlfHyxysmpa7IdNX1oUukTeKj9KErRJYkVjTWcMF5VezY38Ef3jxBNJnh968388rbJ7n6whmsXTbtrFr0jBTHcdjd1IXfozJ/5vjNuJUaoY4TTBpqK7ykM1Z+H5CquJ8MPZrM9GofII14EV6x5MmDKd0m0oK6iYwEBDwqNeUevEUaQFVkmdVLG/i7uy9i/aWz8XoUUobFljeO8x+Pv832vW1Y9vC9284mbd1J2kNJls2vPkPqfy4hKiHBpOHm1XN4fOthTMka9j6goShWlTLYucrm7c0TakHdREcpkg9dIbqmcM3FM1m/9jyeevEQr73bSjSZ4alXjvDK7hZuvHQWy+bXIE+glteuw534PArnz6oodSjjikhCgknDisZaKir8/GLL/qKdXRRLnjzUucpgB/9na6nf5OJMH7pijP4EfRob1szl8mXT2PrmCd462EFXJMXjWw8zY1cLN102m/NnlX4Wp7UrQVsoyaWL61HGyQlioiCSkGBSsWpJA3Nri2fpX+z13f0lj8ESlFg7MTh5HzpNJZpMkxnhWvGBqAx6uHNdI1eumM4Lbxxn79EQpzrj/OjZ/TTOLOemy+Ywqy5YlGuNFMdxePtwJz6PysLZ53YVBCIJCaY4Z0uePFCCmgyihVLjrhWXqdF8xFIZ4smxy7lzNFT5+Yv1i2hui/L8680caYnSdDLC//n1HpbNr2b9qtnUVo7fjNHyxlrsPmdS+4+FaA8l+cC1C1izbPqAj/Vo58bt+9x4FQLBKCn1Gu2z6VZwLhD0am5VlDBIF0HOnWNOQxl/detSDh53Z4xauxPsea+bvUe6WbW4nutWzqI8oBftejlkybUhyuE4Ds+/3kxVmYcbLpl1zvnE9YdIQoIpTynlyWfbreBcQFUkKss8JA2TWGLscu4ckiSxaE4V58+uZPfhLl7YcZxQNM3r+9rZebCTtcuncfWFM3oljWKz91iIwyfC3HPjwimRgGAMEu0333yTO++8k9tvv52PfvSjnDx5sphxCQRTgrGaj05VJMCvq9SWe/B6irtWQZYkLjq/lgc+eCG3rp1HwKuSsWz++PYp/v3xnfxp1yky5vjIup/ZdpTKoM7VFw7chjvXGHUS+vznP8+DDz7IU089xW233cbXv/71YsYlEEwJVjTWcs+NC6kM6CRS5ojnnKY6sixTFfRQWeZBVYsrr1YVmbXLpvG5uy/m+ktmoWsyybSc3w32AAAMwklEQVTF5u3N/O9fvM2O/e3ZnVHF4UhLhP3NPay/dA6aOnGHaIvNqOpKwzD47Gc/y+LFiwFYtGgRP/3pT4samEAwVSi1W8FkJ+9Dp3mJp0wSY1ig1x8eXeH6S2axemkDL+08yfa9bYTjBk/+6T1e3n2KGy+dwwXzqsZsq7N5ezM+j8K6i2YUKfLJgeSMcfGGbdvcf//9LF++nE9/+tPFiksgEAhGRdowicQzGGbxhAuFdPYk+d0r77F9T2veRPe8GeVsWreAyy5oIOgbvoChsydJbaWPrnCST3z9BTZd3cjHb7tgXOKeqAyZhJ577jm+8Y1v9Pra/PnzeeyxxzAMgy996UuEw2G+973voWnDNwXs6ooV7UBxLIzG+n48EfEMjohncEQ8OZx+HReqqwN0d8eLcoXW7gRbXm9mf3NP/mv/39c3jCgJnWgJ41FlfrvtKL/+03v869+sob6qeHNwZ5u6upHvbxqyHbdhwwY2bNhwxtfj8Tj3338/lZWVPProoyNKQAKBQDC+jI/jQiHTqv3ce/NijrZG2Ly9mea22Kiex3YcXt51iiVzqyZ1Ahoto9Yafv7zn2fu3Ll87WtfO2ctxgUCweQm77igq9ltvMVn3rRy/uZ9F3C0dXQV33snI3SGU7z/6vlFjmxyMKoktHfvXrZu3cqCBQvYtGkTAPX19Xz/+98vanACgUAwVhzHHQCuKfeiezV6JKmowgVwZ4zOmz66dQtvHmxHkSUunKLilFEloaVLl3LgwIFixyIQCATjSkWZh0TCSzReXMeF0eI4Dm8d7GDpvOoznDOmClNjJFcgEAiyqLJEVZlORVBHkUt7lBCKpenoSbGisaakcZSSqZl6BQLBFEfCp6voqrtWPGUUX7gwHI61umKGRbNLvz6iVIhKSCAQTFkUWaIyqFMVLL7jwnA43hYh4FWZURc469eeKIgkJBAIpjTuqgiFmnIvQb/G2RT7tnQlmdNQNqE2up5tRBISCAQCQEIi6NWoKfeha2fHu60jnGB67dStgkAkIYFAIOiFqkhUlXkoD+rI4yxcyGRs6qb42g6RhAQCgaAP47kqoi81lSIJCQQCgaAfeq2KGKeqqDLgGZfnnSyIJCQQCASDkFsVUV3hxe9Viy5cKA8Wf234ZEIkIYFAIBgGsiRR7tepKvMWbfW2BPjHcV34ZEAkIYFAIBgBOR+6Mr82Zmm1qslT3gBaJCGBQCAYBQGvRnWFF88Y5NyaMnXWeA/E1K4DBQIBALubOtm8vZnOcIraCi83r54jVo4PA9eHzkPSMIknMiN/vDK1qyAQSUggmPLsburkZy8cRFFk/F6VnrjBz144CCAS0TDx6SoeTUFTRtZcKrWB6kRAtOMEginO5u3NKIqMR1OQJAmPpqAoMpu3N5c6tEmFLEl49JF9rhdJSCQhgWDK0xlOofdRe+mqTGc4VaKIpg7j7cgwGRBJSCCY4tRWeDFMu9fXDNOmdorbyZwNZFncgsU7IBBMcW5ePQfLsklnLBzHIZ2xsCybm1fPKXVo5zyiHSeECQJBnqmqEMu9xqn42kuNSEIiCQkEgFCIrWisnRKvc6IhzoREO04gAIRCTFAaxJiQSEICASAUYoLSMK02iEeb2g0pkYQEAoRCTFAaAh6FInmhTlqm+MsXCFyEQkxQCjRVeMdN7TpQIMgiFGKCUqCPwfz0XEEkIYEgi1CICc42Hk00o8Q7IBAIBCVCVEIiCQkEAkHJEJWQSEICgUBQMqa6PBtEEhIIBIKS4dFFO04kIYFAICgRXpGERBISCASCUuERwgSRhAQCgaBU6EKYMPoktGPHDu644w5uu+027rvvPsLhcDHjEggEgnMeWRIOpqNOQn//93/PQw89xG9/+1sWLFjAD37wg2LGJRAIBIIpwKj1gc8++yyappHJZGhra2PRokXFjEsgEAgEU4BRV0KapnHgwAHWrVvH9u3b2bhxYzHjEggEAsEUQHIcxxnsB5577jm+8Y1v9Pra/Pnzeeyxx/L///jjj/Ob3/yGxx9/fFyCFAgEAsG5yZBJqD/S6TQvv/wyN9xwAwCJRIIrrriCnTt3Dvs5urpi2PaIL1106urK6OiIljqMPCKewRHxDI6IZ3DGO566urIR/fxEuQ8Wi5G+fhhlO05VVb761a+yZ88ewK2WVq5cOZqnEggEAsEUZlTCBEVRePjhh/nKV76CZVk0NDTw4IMPFjs2gUAgEJzjjFodt2rVKp588slixiIQCASCKYYY1xUIBAJByRBJSCAQCAQlQyQhgUAgEJQMkYQEAoFAUDJEEhIIBAJByRBJSCAQCAQlQyQhgUAgEJQMkYQEAoFAUDJEEhIIBAJByRBJSCAQCAQlQyQhgUAgEJQMkYQEAoFAUDJEEhIIBAJByRBJSCAQCAQlQyQhgUAgEJQMkYQEAoFAUDJEEhIIBAJByRBJSCAQCAQlQyQhgUAgEJQMkYQEAoFAUDJEEhIIBAJByRBJSCAQCAQlQyQhgUAgEJQMkYQEAoFAUDJEEhIIBAJByRBJSCAQCAQlQyQhgUAgEJQMkYQEAoFAUDJEEhIIBAJByVBLdWFZlkp16TOYSLGAiGcoRDyDI+IZnIkWz1RHchzHKXUQAoFAIJiaiHacQCAQCEqGSEICgUAgKBkiCQkEAoGgZIgkJBAIBIKSIZKQQCAQCEqGSEICgUAgKBkiCQkEAoGgZIgkJBAIBIKSIZKQQCAQCErGlE9CO3bs4I477uC2227jvvvuIxwOlzSeN998kzvvvJPbb7+dj370o5w8ebKk8eT41re+xSOPPFKy6//2t7/llltu4cYbb+RnP/tZyeIoJBaLceutt3LixIlSh8J3vvMdNm7cyMaNG3nooYdKHQ7g/s7ccsstbNy4kR/96EelDgeAb37zm3zpS18qdRiCQpwpzg033OAcOnTIcRzH+bd/+zfnP/7jP0oaz7XXXuvs27fPcRzH+dWvfuXcd999JY0nEok4f//3f++sWLHC+fa3v12SGFpbW51rr73WCYVCTjwed2677bb8v1mpePvtt51bb73VueCCC5zjx4+XNJZXX33V+dCHPuSk02nHMAzn3nvvdbZs2VLSmLZv3+7cfffdTiaTcZLJpHPttdc6TU1NJY1p27ZtzurVq50vfvGLJY1D0JspXwk9++yzLFiwgEwmQ1tbG+Xl5SWLxTAMPvvZz7J48WIAFi1aREtLS8niAdi6dSvz5s3j4x//eMli2LZtG2vWrKGyshK/389NN93E5s2bSxYPwC9/+Uv+8R//kfr6+pLGAVBXV8eXvvQldF1H0zQaGxs5depUSWO67LLL+PGPf4yqqnR1dWFZFn6/v2Tx9PT08PDDD3PfffeVLAZB/0z5JKRpGgcOHGDdunVs376djRs3liwWXde5/fbbAbBtm+985zvccMMNJYsHYNOmTfz1X/81iqKULIb29nbq6ury/19fX09bW1vJ4gF48MEHWbVqVUljyHH++edz0UUXAXD06FGeffZZ1q1bV+Ko3L+tb3/722zcuJHLL7+choaGksXyla98hQceeKCkHzIF/TNlktBzzz3H1Vdf3eu/j33sY4BbcWzbto1PfvKTPPDAAyWPxzAMPve5z2GaJn/zN39T8nhKjdOP0bskCTv+vhw6dIhPfOITfPGLX2TevHmlDgeAz3zmM7z22mu0tLTwy1/+siQx/OpXv2L69OlcfvnlJbm+YHBKtk/obLNhwwY2bNjQ62vpdJrf//73+Wrjfe97H9/85jdLFg9APB7n/vvvp7KykkcffRRN00oaz0SgoaGBHTt25P+/vb19QrTBJhJvvvkmn/nMZ/jyl79c0mo+R1NTE4ZhsGTJEnw+H+vXr+fAgQMlieXZZ5+lo6OD22+/nXA4TCKR4F/+5V/48pe/XJJ4BL2ZMpVQf6iqyle/+lX27NkDuNXAypUrSxrT5z//eebOncu3vvUtdF0vaSwThbVr1/Laa6/R3d1NMplky5YtXH311aUOa8LQ0tLCpz71Kf793/99QiQggBMnTvAP//APGIaBYRhs3bqVSy65pCSx/OhHP+J3v/sdTz31FJ/5zGe47rrrRAKaQEyZSqg/FEXh4Ycf5itf+QqWZdHQ0MCDDz5Ysnj27t3L1q1bWbBgAZs2bQLc84/vf//7JYtpItDQ0MADDzzAvffeSyaT4a677mLFihWlDmvC8IMf/IB0Os2//uu/5r9299138+EPf7hkMa1bt45du3axadMmFEVh/fr1EyZBCiYWYrOqQCAQCErGlG7HCQQCgaC0iCQkEAgEgpIhkpBAIBAISoZIQgKBQCAoGSIJCQQCgaBkiCQkEAgEgpIhkpBAIBAISoZIQgKBQCAoGf8/qtGekOzH+HcAAAAASUVORK5CYII=\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": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task\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"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 429,
   "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": 445,
   "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": 445,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[[\"Runtime Program / s\", \"Unaccounted Time / s\", *cols]].head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 431,
   "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": 438,
   "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": 438,
     "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": 447,
   "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": 505,
   "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": 505,
     "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": 540,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [],
   "source": [
    "df_demo[\"H\"] = [(-1)**n for n in range(5)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 544,
   "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",
Andreas Herten's avatar
Andreas Herten committed
       "        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": 544,
     "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": 546,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAAEPCAYAAACwWiQoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xl0VFWiNfB9a85EJiohgMyCzAmTIENEESWBhFHBARFQ6aZFsdVGGhv0tbQKtkrz6XttI4IiKEMQNPJEfCAhYBiDAQQEQSBAQgiESlLjvd8faXnyAlRVUlWn6tb+reVaJrl1z+ZY7lxO3UFSFEUBERGFNI3oAEREVH8scyIiFWCZExGpAMuciEgFWOZERCrAMiciUgGWORGRCrDMiYhUgGVORKQCLHMiIhVgmRMRqQDLnIhIBVjmREQqoPP3AOXllZBlMTdmTEyMRlmZRcjYNxKMmQDm8kYwZgKYy1vBmCsxMRrl5ZWIj4/y+rV+L3NZVoSV+a/jB5tgzAQwlzeCMRPAXN4Kxlx1zcRlFiIiFWCZExGpgN+XWYiI/EFRFJSXl8JutwLwfmmipEQDWZZ9H8wjEgwGE+LjzZAkySd7ZJkTUUiyWC5DkiQkJzeFJHm/yKDTaeB0iilzRZFx6dIFWCyXERMT55N9cpmFiEJSdbUFMTFxdSpy0SRJg5iYeFRX++5smtCbBSIiALLsglYbuosLWq0Osuzy2f78XuaKEnyn/hCROvhqvVkEX2f3e5m7ThX6ewgiIp/o168HLl26dM33cnPX44UXnhGUyHN+L3P7rrWQrVf8PQwRUVjz/zKLoxq2/GX+HoaIKKz5/dMDfce7UZ23DM7WvaFrnurv4YiI6mXatCeh0Wivfl1RcRlt2twqMJFn/F/mHe6G7eAWWPOWICqlLSRDpL+HJCKqswUL/gtxcf977ndu7nps3rxJYCLP+H2ZRdJoYRowEUrVJdh2fOrv4YiIwlJAzjPXJrWCvvN9cPy4Bc4zBwMxJBFRWHFb5itXrkR2dvbVf7p3745XXnnF64GMPUZAapAM63eLoThsdQpLRETX53bNfMyYMRgzZgwA4OjRo5g6dSr+8Ic/eD2QpDPAlD4R1ev/BtvO1TDd8aD3aYmI/Cgvb1et72VkDENGxjABabzj1TLLnDlzMH36dCQkJNRpMF1KO+g73AVH0Ua4zv9Up30QEVFtHpd5fn4+rFYrhgwZUq8Bjb3GQIqKh3XLB1Bcjnrti4iIakiKhzdPmTZtGgYPHoyhQ4fWe9CqY3txbsVfEdd3FBLu5HILEXnvwIGDaNy4uegY9VJcfBIdO3bwyb48Os/cbrdj586deO2117weoKzMUvuZdg3aQHdrX1zKz4E9uQu0Df3zH8RsjkFpaXDdSiAYMwHM5Y1gzASEXy5Zlut1P3KR9zP/lSzL18yN2RyDsjILEhOjvd6XR8sshw8fRosWLRAZ6bsLfkx9xkEyRdcst8hOn+2XiCgceVTmp06dQqNGjXw6sGSKhrHvI5DLTsJeuMGn+yYiCjceLbNkZGQgIyPD54PrW/WEs2UP2Pesha5lN2jjGvt8DCKicCD8SUPGvg8DOuO/l1vErl8REfnKsWM/4eGH7w/YeMLLXBMZB1OfByGf/wmOg8F/MxsiIne++uoL/PGPT8FqrQ7YmEHxAD3drXdAe2wHbAUroWuWCk0Ds+hIRBRCtv1wFnn7z3r1GkkCPDkxu1+XFPTtnOLxfi0WC/LytmDOnFfx17/O9ipTfQg/MgdqnoVn6j8BkDSwbv2Qzw0lopAVHR2NV1+dh+Rk35404k5QHJkDgCY6Ecbb74ctbykch7+D4bZ00ZGIKET07ezd0TMQHOeZ+1JQHJn/St/+TmhT2sG2YwXkynLRcYiIPPKvf/0nJkx4EBMmPIi8vC1CMgTNkTkASJIGpgGPoXLVS7DlLYVp8DRIkiQ6FhHRTU2ePAWTJ08RmiGojswBQBPbCMYeI+E8uRfOY9+LjkNEFBKCrswBQN95MDTmlrDlL4NcXSE6DhGR11JSGmPVqvUBGy8oy1zSaGFKnwTFXgVb/iei4xARBb2gLHMA0CY0hSFtGJzHdsB5cq/oOEREQS1oyxwADKlDoUloCuvWJVBslaLjEBEFraAuc0mrg2nARCjVl2H7/lPRcYiIglZQlzkAaJNaQd/5Pjh+/A7OMwdFxyEiCkpBX+YAYOwxAlJsMqzfLYbisImOQ0QUdEKizCWdoWa55UopbDtXiY5DRHRdlZUWPPLI/Th7tjjgY4dEmQOALqUd9B3ugqPoG7jOHRUdh4joGgcOFOH3v5+MU6d+ETJ+yJQ5ABh7jYEUnQDrdx9AcdpFxyEiumr9+hw8++yf0LChmFt4B9W9WdyRDBEw9Z+A6q/ehH3POhh7jRYdiYiCgOPINjgOf+fVayRJ8uh22/p2A6Bv29ftdjNmvOTV+L4WUkfmAKC7pTN0bfvCXpgL14WTouMQEQUFj47Mv/32WyxcuBBVVVXo168fZs2a5e9cN2XqPQ6Vp36AdcsiRI74CyRNSP0Fg4h8TN+2r0dHz78VdvczP3XqFGbPno13330X69evx8GDB7Fli5j79f5KMkXD2G885LJfYC/8SmgWIqJg4PaQduPGjcjIyECjRjWPQHrrrbdgNBr9HswdfcsecLbsAfvuz6Fr0R3a+MaiIxERCeP2yPzkyZNwuVyYNGkSsrKy8MknnyA2NjYQ2dwy9n0E0Btrzm6R1fPXJSIKXatWrUdKSuAPLt0embtcLuzatQsfffQRIiMj8fvf/x45OTkYOXKkRwMkJkbXO+SNxeDKvRNRuu4fMJ7citheQ2ttYTbH+HH8ugnGTABzeSMYMwHhlaukRAOdrn7ncNT39fWl0WhqzU1dO9NtmTds2BB9+vRBQkICAODuu+/G/v37PS7zsjILZNn96T91pSR3g/aWLij7n2WwJraHpkHS1Z+ZzTEoLb3it7HrIhgzAczljWDMBIRfLlmW6/UBZjB8ACrL8jVzYzbHoKzMUqdCd/traeDAgcjLy0NFRQVcLhe2bt2Kjh07ej2Qv0iSBFP/RwFJA+vWDz06b5SISG3clnnXrl0xefJkPPjgg8jIyEDjxo0xatSoQGTzmCY6Ecbb74frzEGvLxwgotAVygdvvs7u0Qnao0ePxujRwX21pb79nXAe+x627Sugu6ULNFHxoiMRkR/pdAZUVlYgKqoBJEkSHccriqKgsrICOp3BZ/tUzdU2kqSBacBEVK56CdatSxBx79OiIxGRH8XHm1FeXgqL5VKdXq/RaCALPAtOpzMgPt5393FRTZkDgCY2GcaeI2Db8Smcx74Hku4RHYmI/ESr1aFhw5Q6vz5YPzCuq5C7N4s7+k73QmNuBVv+MrgqL4uOQ0QUEKorc0mjgSl9EhR7FS58vUh0HCKigFBdmQOANqEJDGlZqDy4Dc4Te0XHISLyO1WWOQAYUjNhSGoGa94SKLZK0XGIiPxKtWUuaXUwZ06FUn0Zth2fio5DRORXqi1zADA2bgNDlyFwHP4OztMHRMchIvIbVZc5ABi6D4cUmwzr1sVQHFbRcYiI/EL1ZS7pDDANmAjlygXYdq4WHYeIyC9UX+YAoEtpB32Hu+Eo+gbOc0dFxyEi8rmwKHMAMPYaDSk6AbYti6A47aLjEBH5VNiUuWSIgGnAY5Avn4N9zzrRcYiIfCpsyhwAdE07Qde2H+yFuXBdOCE6DhGRz4RVmQOAqc84SKYYWLd8AEV2io5DROQTYVfmkjEKxn7jIZf9Avu+XNFxiIh8IuzKHAD0LbtD16on7HvWwVV+RnQcIqJ6C8syBwDjHQ8DeuO/l1vEPtSViKi+wrbMNZGxMN3xEOSSY3Ac2Cg6DhFRvYRtmQOArk0faG/pAtvO1ZArSkTHISKqM4/KfPz48cjMzER2djays7NRWFjo71wBIUkSTP0fBSQNrN8tDuknfRNReHP7DFBFUXD8+HFs3rwZOp2qHhkKANBEJ8J4+wOw5S2B48ctMLS/U3QkIiKvuT0yP378OCRJwuOPP46srCx8/PHHgcgVUPr26dCm3Abbjk8hWy6KjkNE5DVJcbO2sHfvXixfvhxz5syB1WrF+PHj8eKLL6Jv376ByhgQjvJzOP3P6Yho0RnJ978ISZJERyIi8pjbMv+/PvzwQxQXF2PmzJkebV9WZoEsi1mLNptjUFp6xePt7fs3wLZjBUx3PQl9mz5BkSlQmMtzwZgJYC5vBWMuszkGZWUWJCZGe/1at8ssu3btwvbt269+rSiKKtfOAUDfaTA0Sa1g27YMcnWF6DhERB5zW+ZXrlzBG2+8AZvNBovFgpycHNxzzz2ByBZwkkYD04BJUBzVsG1T32cDRKRebg+xBw4ciMLCQgwfPhyyLOPBBx9EWlpaILIJoU1oAkO3LNh35cBxojf0LbqJjkRE5JZH6yXPPPMMnnnmGX9nCRqG1Ew4j++CLW8pdCntIBmjREciIrqpsL4C9EYkjQ6m9ElQqitg27FCdBwiIrdY5jegNbeAoct9cBzeCufpItFxiIhuimV+E4buwyHFNqq51N9hFR2HiOiGWOY3IekMMKVPhGK5CFvBKtFxiIhuiGXuhq5RW+g73gXHgU1wnjsqOg4R0XWxzD1g7DUGUnQCbFsWQXHaRcchIqqFZe4BSW+CacBjkC+fg33P56LjEBHVwjL3kK5pJ+ja9oe98Cu4LpwQHYeI6Boscy+Y+oyFZIqBdcsiKLJTdBwioqtY5l6QjFEw9h8PuewU7PtyRcchIrqKZe4lfYvu0LXqBfuedXCVnxEdh4gIAMu8Tox9H4akN/17uUUWHYeIiGVeF5qIBjDe8SDkkuNwFG0UHYeIiGVeV7o2faBt1hW2nashV5SIjkNEYY5lXkeSJMHU71FAo625d4t3T98jIvIplnk9aKITYOz9AFzFh+D4cYvoOEQUxljm9aS/LR3axu1h27ECsuWi6DhEFKZY5vUkSRJMAx4DZBnWvCVcbiEiIVjmPqBpkARjz1Fw/VII50/bRcchojDEMvcRfad7oElqDVv+J5CrK0THIaIw43GZv/7665gxY4Y/s4Q0SaOpeZCFwwrbto9FxyGiMONRmW/fvh05OTn+zhLytPFNYOiWBefxAjhO7BYdh4jCiNsyv3TpEt566y1MmTIlEHlCniE1A5rEW2DbuhSKrVJ0HCIKE5Li5vSLadOmYdy4cTh79iwKCgrw2muvBSpbyLKdPY4zi/+E6M53ImnYVNFxiCgM6G72w5UrVyIlJQV9+vTBmjVr6jRAWZkFsizmdD2zOQalpVcCP7DODEPXIbDs+xKupt2ga9pJfCY3mMtzwZgJYC5vBWMuszkGZWUWJCZGe/3amy6z5ObmYtu2bcjOzsaCBQvw7bffYu7cuXUOGk4M3bKhiW1Uc6m/wyo6DhGp3E2PzBcvXnz139esWYOCggLMnDnT76HUQNIZYEyfhOp1c2ErWAlT30dERyIiFeN55n6ka3Qr9B3vhuPAJjjPHREdh4hUzOMyHzlyJD/8rANjr9GQYhrCuuUDKE676DhEpFI8MvczSW+Cqf8EKJfPwb57reg4RKRSLPMA0DXtBH27/rDv3wDb2WOi4xCRCrHMA8TYeyykiAYo/eL/QZGdouMQkcqwzANEMkbB2G887CUnYd+XKzoOEakMyzyA9C26IapDX9j3rIOr/IzoOESkIizzAGs4eBIkvQnWLYugyLLoOESkEizzANNGxcLY9yHIJcfhKNooOg4RqQTLXABd697QNusK287VkCtKRMchIhVgmQsgSRJM/ScAGm3NvVv43FAiqieWuSCaqHgYez8AV/EhOH7cIjoOEYU4lrlA+tvSoW3cHrYdKyBbLoqOQ0QhjGUukCRJMA14DFBkWPOWcLmFiOqMZS6YpkESjD1HwfVLIZw/bRcdh4hCFMs8COg73gNNchvY8j+BXF0hOg4RhSCWeRCQNBqYBkyE4rDCtu1j0XGIKASxzIOENr4xDN2y4DxeAMeJ3aLjEFGIYZkHEUNqBjSJzWDbuhSKrVJ0HCIKISzzICJpdDClT4JivQLr9hWi4xBRCGGZBxltw+YwdM2A88hWOE8XiY5DRCHCozJ/5513kJGRgczMTCxevNjfmcKeoVsWNHEpNZf6O6yi4xBRCHBb5gUFBdixYwfWrVuH1atX46OPPsLx48cDkS1sSTpDzdktlouwFawUHYeIQoDbMu/VqxeWLl0KnU6HsrIyuFwuREZGBiJbWNM2uhX6ToPgOLAJznNHRMchoiDn0TKLXq/HggULkJmZiT59+iA5OdnfuQiAsecoSDENYd3yARSnXXQcIgpikuLFDUGqq6sxZcoUZGRk4IEHHvBnLvq3qp8Lce6TVxDbZzgS73pEdBwi8rMfT17Ebc0TvH6dzt0Gx44dg91uR/v27REREYHBgwfj8OHDHg9QVmaBLIu5gZTZHIPS0itCxr4RrzNFt4K+3QBc3rEOjkap0JpbBEeuAAnGXMGYCWAubwVjrq1F5/Dltp+xaNZgr1/rdpnl9OnTmDVrFux2O+x2OzZt2oTu3bvXKSjVjbH3A5AiGtQ8N9TlFB2HiPxg465TWPzFQXRp3bBOr3db5unp6UhPT8fw4cMxatQopKWlITMzs06DUd1IxiiY+j0K+eIp2Au/FB2HiHxs894zWP7NUfTu1AjjBrWp0z7cLrMAwLRp0zBt2rQ6DUC+oWuRBl3r22Hfsw66Fj2gTWgiOhIR+UDe/rNY+t+H0aV1Il54pAcqLlfXaT+8AjSEGO94CJIhEtbvFkGRZdFxiKiedhw4h8W5h9ChRTymjugEvU5b532xzEOIJqIBjHc8BLnkOBxFX4uOQ0T1sOvHEvzri0Noe0scnhrVpV5FDrDMQ46u9e3QNkuFbecayJfPi45DRHWw7+gF/Ne6A2jVuAGeHtMFRn39ihxgmYccSZJg6v8ooNHW3LtF4XILUSgpOl6Gd9f+gFuSovHMmK4wGTz66NItlnkI0kTFw9hnLFxnf4Tj0BbRcYjIQ4dOluMfa35A48QoPPtAKiJNvilygGUesvTtBkDbpANs338K2VImOg4RuXHk1CW8s6oQSXEReHZsKqIj9D7dP8s8RNUstzwGKDKsW5fAi7syEFGAHSu+jLdXFiI+xoTnxqaiQaTB52OwzEOYpoEZxp6j4Tq1H86ftouOQ0TXcfLcFfz900LEROrxwrg0xEYb/TIOyzzE6TsOgia5Daz5yyBXXRYdh4h+43SJBfNX7EWkUYvnx6UhPsY/RQ6wzEOepNHANGAi4LDBlv+x6DhE9G/FFyoxb8Ve6HUaPD8uDQ1jI/w6HstcBbTxjWHong3n8Z1w/LxbdByisHf+YhXmrdgLSZLw/Lg0JMX7/4E+LHOVMHQdAk1iM9jylkKxVYqOQxS2Si9V443le+FyKXh+bCpSEqMCMi7LXCUkjQ6m9ElQrFdg3b5cdByisHSxwop5y/fCZnfhubGpaGKODtjYLHMV0TZsDkPXDDiP5MF56gfRcYjCyiWLDfOW70Wl1YE/jk1Fs+SYgI7PMlcZQ7csaOJSYN36IRR73W6lSUTeqai0Y97yvbhksWP6mFS0TGkQ8Awsc5WRdIaa5RbLRdgKVomOQ6R6lmoH5q/Yi7LLVjwzpgvaNI0VkoNlrkLa5DbQdxoEx8FNcJ71/HmtROSdKqsDb67Yh3MXq/HUqC5o1yxeWBaWuUoZe46GFGOG9bsPoDjtouMQqU61zYm/f1aI06UWTB3RCR1bJgjNwzJXKUlvhGnAY1Aun4d991rRcYhUxWZ34Z2VhThx9gqmZHdC1zZ1ewizL7HMVUzXpAP0tw2Aff9XcJX+LDoOkSrYHS4sWL0fR89cxhNZHdC9nVl0JAAelvnChQuRmZmJzMxMvPHGG/7ORD5k7D0WUkQsrFsWQXE5RcchCmkOp4yFOT/gx5PlmJTZHr3aJ4uOdJXbMs/Pz0deXh5ycnKwdu1aHDhwABs3bgxENvIByRAJU/9HIV88Dfu+L0XHIQpZTpeM99YWoej4RTw65Dbc0SlFdKRruC1zs9mMGTNmwGAwQK/Xo3Xr1iguLg5ENvIRXfM06Fr3hn3vOrgunhYdhyjkuGQZ/1x3APt+uoCH7mmLAV0bi45Ui9syv/XWW5GamgoAOHHiBHJzc5Genu73YORbxjsehGSIhHXLB1BkPjeUyFOyrGDRF4ew63ApHrirDe7u3lR0pOuSFA8fUXP06FE8+eSTeOqppzBixAh/5yI/sBzIQ8nat5Bw96OI650lOg5R0JNlBf/4bB++2fkLHhnSHvcPais60g159DTR3bt3Y9q0aZg5cyYyMzO9GqCszAJZFvNIM7M5BqWlV4SMfSMiMynmLtA1T8PFzZ/A1rADNLH/++FNMM4VEJy5gjETwFzecpdLURR89PURbN57Bll9W2Bg1xS//znM5hiUlVmQmOj9DbrcLrOcPXsWU6dOxfz5870ucgoukiTB2G88oNXVXEykcLmF6HoURcHyTUexee8ZDLm9GbL7tRQdyS23Zb5o0SLYbDa89tpryM7ORnZ2NpYv5y1WQ5UmKh7G3mPhOnsYjkObRcchCjqKomDVlmP4ZtdpDOrRFKPvbA1JkkTHcsvtMsusWbMwa9asQGShANG3GwDnsQLYvv8MumZdoYlOFB2JKGh8nvczvtrxC+5Ma4Jxd98aEkUO8ArQsCRJEkz9JwCKDOvWJfDwM3Ai1fty+wms23YCfTs3wsOD24ZMkQMs87ClaWCGsdcYuE7th/Novug4RMJ9XfALVm85jt4dkvHYkPbQhFCRAyzzsKbveDc0yW1g3f4JnFcuio5DJMym3aex4tuf0L2dGZOGtodGE1pFDrDMw5okaWBKnwg4HTizeAZc538SHYko4L4rLMayjUeQ2qYhnszqCK0mNGsxNFOTz2jjGiMyeyYkrRZV6/8Ge9FGrqFT2MgvOoslX/2ITq0S8LvhnaDThm4lhm5y8hltwxZoMnEetE07w5a/DNZv/xOKwyo6FpFfbd13Bou+PIR2zeLwhxGdodeFdh2GdnryGW1ENCLunQZDz9FwHi9AVc4rcJXzhmqkTnuOlGL+st1o0yQWT4/uCoNeKzpSvbHM6SpJ0sCYNhQRmS9AsVlQlfMyHD/tEB2LyKf2H7uA99YW4damcXhmTFcYDaFf5ADLnK5D17g9Ike+DG1iM1i//U9Yt33MB1uQKhw4cREL1xShqTkac57ogwijR7enCgksc7ouTVQ8Iob9CfrO98Jx4BtUrf8bZAtPX6TQdfiXcvxj1X40SojAH8emIjpCLzqST7HM6YYkjQ6mPuNgGjQVcvkZVK2ZDefpItGxiLz20+nLeHvlfiTGmvDc2DTVFTnAMicP6Fv1RNSI2ZAiGqA6903Y9nzOOy5SyPj5bAXeWrkPsdEGPDc2DQ2iDKIj+QXLnDyiiUtB5PC/QNemN+y7clC94W0oVovoWEQ39cv5K/j7p/sQZdLjhXFpiI8xio7kNyxz8pikN8I08AkY+42H68xBVK6ZDVfpz6JjEV3XmVIL5q/YB4Nei+fHpSGhgUl0JL9imZNXJEmCocNdiMyaCQCo+vxV2A/+D68apaBy7mIV5q3YB61Gwgvj0mCOixAdye9Y5lQn2qRWiBr5MrRN2sOWtwTWze9DcdpExyJCSXkV5i3fC0VR8Ny4NCQnRIqOFBAsc6ozyRSNiPumw9B9BJxHt6Mq5z8gXzonOhaFsQuXqzFv+V7YHS48NzYNTRpGiY4UMCxzqhdJ0sDYPRsRGX+EUnUJlTlz4Ph5l+hYFIbKr9gwf/k+VNlqivyWJO8fihzKWObkE7qmnRA56mVo4hvDunEhrNuXQ5F51SgFxmWLDfOW78XlKjuefaArmjeKER0p4Fjm5DOa6EREDpsJfce74fjhv1H9xRuQK8tFxyKVu1Jlx/wV+3DxihXTx3RF68axoiMJ4XGZWywWDB06FKdPn/ZnHgpxklYHU99HYLprClwXTtRcNVp8SHQsUilLtQNvrtiHkkvVeHpUF7S9JU50JGE8KvPCwkKMGzcOJ06c8HMcUgt9m96IHDEbkjEK1V++Adu+L3jVKPlUldWJtz7bh+KySvxhZGe0b5EgOpJQHpX5Z599htmzZyMpKcnfeUhFtPFNaq4abdkT9oJVsH79Dyi2StGxSAWsdifeXlmIX85b8LvhndC5VaLoSMJJihdXe9x1111YunQpmjZt6s9MpDKKoqBiVy7KvlkCXYOGSB71PIyNWoqORSHK6ZLxl//ajgM/l+GFh3ugb9fGoiMFBb/fzLeszAJZFnN1oNkcg9LSK0LGvpFgzAQEIFeLAYgcmoLqTe/izIcvwtT3EehvGyA+Vx0EYyYgfHJdsthw6nwFJme2R9vGdd93MM6X2RyDsjILEhO9P62SZ7NQwGgb3Vrz0ItGt8L63QewblkExWkXHYtCTFy0EW9O7YveHRuJjhJUWOYUUJqIBogY8hwMacPgOLwVVZ//FXJFiehYFGIkSRIdIeiwzCngJI0Gxp6jEHHfM5AtZahcMxuOE3tExyIKaV6V+bfffssPP8lndM1SETVyDjQNkmH9egFs338GRXaJjkUUknhkTkJpYsyIzJoJffs7YS/MRfWX8yBXXRYdiyjksMxJOElngKn/BJjufByukuM1V42eOyI6FlFIYZlT0NC37YvI4S8BOiOq178G+/4NfOgFkYdY5hRUtIm3IGrkbOiap8G2YwVK1syHYq8WHYso6LHMKehIhkiY7vkDjL0fQOXhAlTmzIHr4inRsYiCGsucgpIkSTB0GYKUh+cAdiuqcv4DjiPbRMciCloscwpqEc06InLUy9AmtYR18/uwbv2QV40SXQfLnIKeJjIOEZkvwNA1A45Dm1G1bi5ky0XRsYiCCsucQoKk0cJ4+/0wDZ4GueI8HEe55EL0W36/ayKRL+lbdIPu4XcAicchRL/FMqeQI+kMoiMQBR0e3hARqQDLnIhIBVjmREQqwDInIlIBljkRkQqwzImIVMDvpyZqNGKf1Sd6/OsJxkwAc3kjGDMBzOWtYMxV10ySwhtGExGFPC6zEBGpAMuciEgFWOZERCrAMideCc73AAAGzUlEQVQiUgGWORGRCrDMiYhUgGVORKQCLHMiIhVgmRMRqYBqnjS0a9cuzJ07Fw6HA02aNMHrr7+O2NjYa7YpLi5GZmYmmjVrBgBo2LAhFi1aJDyX3W7Hn//8ZxQVFcFkMmH+/Plo3bq1X3Pt3r0bc+fOhdPpRFxcHObOnYsmTZpcs02g58uTTCLm6lfvvPMONBoNnnrqqVo/E/He8iSXiPkqLi7G888/j7KyMrRs2RLz589HVFRUrW0CMV/r16/He++9B4fDgQkTJuChhx665ueHDh3CrFmzYLFY0KNHD7z88svQ6fxfi+5yLVy4EKtXr0aDBg0AAPfff3+tbWpRVGLQoEHK0aNHFUVRlHnz5ilvvvlmrW02bNigvPTSS0GX61//+tfVXAUFBcro0aP9nmvgwIHKoUOHFEVRlJUrVypTpkyptU2g58uTTCLmqqKiQnnxxReVLl26KAsWLLjuNiLeW57kEjFfTzzxhPLFF18oiqIoCxcuVN54441a2wRivs6dO6cMHDhQKS8vVyorK5Vhw4Zd/X/xV5mZmcrevXsVRVGUF198UVm2bJlfM3ma68knn1T27Nnj1X5Vs8ySm5uLNm3awOFw4Pz581d/o/3WDz/8gCNHjmDkyJEYP348Dh8+HBS5Nm/ejKysLABAz549UV5ejuLiYr9lstvtePrpp3HbbbcBANq1a4ezZ8/W2i6Q8+VppkDPFQBs2rQJLVq0wGOPPXbDbUS8tzzJFej5cjgc2LlzJ+69914AwMiRI7Fhw4Za2wVivvLz89G7d2/ExcUhMjIS99577zVZzpw5A6vVitTU1JtmDXQuACgqKsL777+PYcOG4ZVXXoHNZnO7X9WUuV6vx+HDh5Geno7vv/8emZmZtbYxGo0YPnw41qxZg0mTJmHq1Kmw2+3Cc5WUlMBsNl/92mw249y5c37LZDAYkJ2dDQCQZRkLFy7EoEGDam0XyPnyNFOg5woAhg8fjieeeAJarfaG24h4b3mSK9DzVV5ejujo6KtLFWazGefPn6+1XSDm6//+2ZOSkq7Jcr25uV5WX3OXq7KyEu3bt8ef/vQn5OTkoKKiAu+++67b/YbcmvlXX32Fv/3tb9d8r1WrVvjwww/Rrl075OfnY8WKFZg+fTpWrFhxzXa/XVNMT0/Hm2++iePHj189GhSV63o0Gt/8nr1ZLrvdjhkzZsDpdOLJJ5+s9Vp/zVd9Ml1PIObKHVHvrbrw53y1aNGi1naSVPuWrv6cr18p17kh7G+zuPu5v7gbNyoqCu+///7VrydOnIiZM2di+vTpN91vyJX5kCFDMGTIkGu+Z7PZ8M0331w9ksvKysLrr79e67UfffQRhg4divj4eAA1k+qrDzvqkyspKQmlpaVo3rw5AKC0tBRJSUl+ywXU/Pb/3e9+h7i4OLz33nvQ6/W1tvHXfNUnk4i58kSg31ueCvR8ORwO3H777XC5XNBqtTccz5/z9avk5GTs2rXr6tclJSXXZElOTsaFCxeufu3LualPruLiYuTn52P06NEAPJ8bVSyz6HQ6vPzyyygqKgJQc8TQrVu3Wtvt3LkTq1atAgAUFBRAlmW0atVKeK709HR8/vnnAGrOfjEajWjcuLHfcgHA888/j+bNm+Odd96BwWC47jaBni9PMomYK08Eeq48Fej50uv16NGjB3JzcwEAa9euxYABA2ptF4j5uuOOO7B9+3ZcvHgR1dXV+Prrr6/J0qRJExiNRuzevfumWX3NXS6TyYR58+bh1KlTUBQFy5Ytwz333ON+xz74cDYo7Ny5UxkxYoSSlZWlPP7448rZs2cVRVGUTz75RHn77bcVRan5FHnChAlKZmamMnLkyKtnTojOZbValRdeeEHJyMhQhg8frhQVFfk104EDB5S2bdsqGRkZSlZWlpKVlaVMnjy5Vq5AzpenmQI9V7+1YMGCa84aEf3e8iSXiPk6ffq08vDDDytDhgxRJk6cqFy6dKlWrkDN17p165TMzExl8ODByj//+U9FURRl8uTJyv79+xVFUZRDhw4po0aNUu677z7l2WefVWw2m19yeJtrw4YNV38+Y8YMj3LxSUNERCqgimUWIqJwxzInIlIBljkRkQqwzImIVIBlTkSkAiF30RBRfbRr1w5t27a95irITp064dVXXxWYiqj+WOYUdpYsWYKEhATRMYh8isssREQqwIuGKKxcb5nlgw8+QGJiosBURPXHZRYKO1xmITXiMgsRkQqwzImIVIBlTkSkAvwAlIhIBXhkTkSkAixzIiIVYJkTEakAy5yISAVY5kREKsAyJyJSAZY5EZEKsMyJiFTg/wMW5QNDIsf0iQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_pivot.plot();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Task\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"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 555,
   "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": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "* 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"
   ]
Andreas Herten's avatar
Andreas Herten committed
  }
 ],
 "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
}