{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "(00:pandas_tutorial)=\n", "# Pandas" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%config InlineBackend.figure_format = 'retina'\n", "import numpy as np\n", "import pandas as pd\n", "from matplotlib import pyplot as plt\n", "from matplotlib import rcParams\n", "\n", "# We need to do it in a separate cell. See:\n", "# https://github.com/jupyter/notebook/issues/3385\n", "plt.style.use('default')\n", "rcParams.update({'font.size':12})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Basic Usage" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Iris data is one of the typical statistical sample used by statisticians. See [this wikipedia](https://en.wikipedia.org/wiki/Iris_flower_data_set)\n", "![](https://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/Mature_flower_diagram.svg/1920px-Mature_flower_diagram.svg.png)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "type(iris) = \n" ] } ], "source": [ "iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')\n", "print(f\"{type(iris) = }\")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
05.13.51.40.2setosa
14.93.01.40.2setosa
24.73.21.30.2setosa
34.63.11.50.2setosa
45.03.61.40.2setosa
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species\n", "0 5.1 3.5 1.4 0.2 setosa\n", "1 4.9 3.0 1.4 0.2 setosa\n", "2 4.7 3.2 1.3 0.2 setosa\n", "3 4.6 3.1 1.5 0.2 setosa\n", "4 5.0 3.6 1.4 0.2 setosa" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris.head()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
1446.73.35.72.5virginica
1456.73.05.22.3virginica
1466.32.55.01.9virginica
1476.53.05.22.0virginica
1486.23.45.42.3virginica
1495.93.05.11.8virginica
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species\n", "144 6.7 3.3 5.7 2.5 virginica\n", "145 6.7 3.0 5.2 2.3 virginica\n", "146 6.3 2.5 5.0 1.9 virginica\n", "147 6.5 3.0 5.2 2.0 virginica\n", "148 6.2 3.4 5.4 2.3 virginica\n", "149 5.9 3.0 5.1 1.8 virginica" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris.tail(6)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_width
count150.000000150.000000150.000000150.000000
mean5.8433333.0573333.7580001.199333
std0.8280660.4358661.7652980.762238
min4.3000002.0000001.0000000.100000
25%5.1000002.8000001.6000000.300000
50%5.8000003.0000004.3500001.300000
75%6.4000003.3000005.1000001.800000
max7.9000004.4000006.9000002.500000
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width\n", "count 150.000000 150.000000 150.000000 150.000000\n", "mean 5.843333 3.057333 3.758000 1.199333\n", "std 0.828066 0.435866 1.765298 0.762238\n", "min 4.300000 2.000000 1.000000 0.100000\n", "25% 5.100000 2.800000 1.600000 0.300000\n", "50% 5.800000 3.000000 4.350000 1.300000\n", "75% 6.400000 3.300000 5.100000 1.800000\n", "max 7.900000 4.400000 6.900000 2.500000" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can save by ``.to_csv()``, print to html by ``to_html()``, convert to numpy by ``.to_numpy()``, etc:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# iris.to_csv(\"iris_data.csv\")\n", "# iris.to_html()\n", "# iris.to_numpy()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Selection of Columns and Rows" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you select a column or a row, it now becomes ``pandas.Series``, not ``DataFrame``:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] }, { "data": { "text/plain": [ "0 5.1\n", "1 4.9\n", "2 4.7\n", "3 4.6\n", "4 5.0\n", "Name: sepal_length, dtype: float64" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sep_len = iris[\"sepal_length\"]\n", "\n", "print(type(sep_len))\n", "sep_len.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Convert to numpy:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([5.1, 4.9, 4.7, 4.6, 5. , 5.4, 4.6, 5. , 4.4, 4.9, 5.4, 4.8, 4.8,\n", " 4.3, 5.8, 5.7, 5.4, 5.1, 5.7, 5.1, 5.4, 5.1, 4.6, 5.1, 4.8, 5. ,\n", " 5. , 5.2, 5.2, 4.7, 4.8, 5.4, 5.2, 5.5, 4.9, 5. , 5.5, 4.9, 4.4,\n", " 5.1, 5. , 4.5, 4.4, 5. , 5.1, 4.8, 5.1, 4.6, 5.3, 5. , 7. , 6.4,\n", " 6.9, 5.5, 6.5, 5.7, 6.3, 4.9, 6.6, 5.2, 5. , 5.9, 6. , 6.1, 5.6,\n", " 6.7, 5.6, 5.8, 6.2, 5.6, 5.9, 6.1, 6.3, 6.1, 6.4, 6.6, 6.8, 6.7,\n", " 6. , 5.7, 5.5, 5.5, 5.8, 6. , 5.4, 6. , 6.7, 6.3, 5.6, 5.5, 5.5,\n", " 6.1, 5.8, 5. , 5.6, 5.7, 5.7, 6.2, 5.1, 5.7, 6.3, 5.8, 7.1, 6.3,\n", " 6.5, 7.6, 4.9, 7.3, 6.7, 7.2, 6.5, 6.4, 6.8, 5.7, 5.8, 6.4, 6.5,\n", " 7.7, 7.7, 6. , 6.9, 5.6, 7.7, 6.3, 6.7, 7.2, 6.2, 6.1, 6.4, 7.2,\n", " 7.4, 7.9, 6.4, 6.3, 6.1, 7.7, 6.3, 6.4, 6. , 6.9, 6.7, 6.9, 5.8,\n", " 6.8, 6.7, 6.7, 6.3, 6.5, 6.2, 5.9])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sep_len.to_numpy() \n", "# Identical to sep_len.values" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Selecting Elements (``.loc`` and ``.iloc``)\n", "Two major ways to select elements:\n", "\n", "* ``loc`` is used when you want to use column name and row index\n", " * ``.loc[column, i]``, such as ``iris.loc[\"sepal_length\", 0]``\n", "* ``iloc`` is used when you want to use integer indexing\n", " * ``.iloc[i, j]``, such as ``iris.iloc[0, 1]`` or ``iris.iloc[-1]``" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "iris.iloc[0, 1] = 3.5\n", "iris.loc[0, 'sepal_width'] = 3.5\n" ] } ], "source": [ "# To select only one:\n", "print(f\"{iris.iloc[0, 1] = }\")\n", "print(f\"{iris.loc[0, 'sepal_width'] = }\")" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "sepal_length 5.1\n", "sepal_width 3.5\n", "petal_length 1.4\n", "petal_width 0.2\n", "species setosa\n", "Name: 0, dtype: object" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Select a row by iloc\n", "iris.iloc[0, :]" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "sepal_length 5.1\n", "sepal_width 3.5\n", "petal_length 1.4\n", "petal_width 0.2\n", "species setosa\n", "Name: 0, dtype: object" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Select a row by loc:\n", "iris.loc[0]" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] }, { "data": { "text/plain": [ "sepal_length 5.1\n", "sepal_width 3.5\n", "petal_length 1.4\n", "petal_width 0.2\n", "species setosa\n", "Name: 0, dtype: object" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "row_0 = iris.iloc[0]\n", "\n", "print(type(row_0))\n", "row_0" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "And when converting the `Series` obejct to `numpy.ndarray`:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 1.5, 1.5, 1.6, 1.4,\n", " 1.1, 1.2, 1.5, 1.3, 1.4, 1.7, 1.5, 1.7, 1.5, 1. , 1.7, 1.9, 1.6,\n", " 1.6, 1.5, 1.4, 1.6, 1.6, 1.5, 1.5, 1.4, 1.5, 1.2, 1.3, 1.4, 1.3,\n", " 1.5, 1.3, 1.3, 1.3, 1.6, 1.9, 1.4, 1.6, 1.4, 1.5, 1.4, 4.7, 4.5,\n", " 4.9, 4. , 4.6, 4.5, 4.7, 3.3, 4.6, 3.9, 3.5, 4.2, 4. , 4.7, 3.6,\n", " 4.4, 4.5, 4.1, 4.5, 3.9, 4.8, 4. , 4.9, 4.7, 4.3, 4.4, 4.8, 5. ,\n", " 4.5, 3.5, 3.8, 3.7, 3.9, 5.1, 4.5, 4.5, 4.7, 4.4, 4.1, 4. , 4.4,\n", " 4.6, 4. , 3.3, 4.2, 4.2, 4.2, 4.3, 3. , 4.1, 6. , 5.1, 5.9, 5.6,\n", " 5.8, 6.6, 4.5, 6.3, 5.8, 6.1, 5.1, 5.3, 5.5, 5. , 5.1, 5.3, 5.5,\n", " 6.7, 6.9, 5. , 5.7, 4.9, 6.7, 4.9, 5.7, 6. , 4.8, 4.9, 5.6, 5.8,\n", " 6.1, 6.4, 5.6, 5.1, 5.6, 6.1, 5.6, 5.5, 4.8, 5.4, 5.6, 5.1, 5.1,\n", " 5.9, 5.7, 5.2, 5. , 5.2, 5.4, 5.1])" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris[\"petal_length\"].values" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Selecting by Conditions\n", "When making a new DataFrame using a subset of the columns of an existing DataFrame:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
507.03.24.71.4versicolor
516.43.24.51.5versicolor
526.93.14.91.5versicolor
535.52.34.01.3versicolor
546.52.84.61.5versicolor
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species\n", "50 7.0 3.2 4.7 1.4 versicolor\n", "51 6.4 3.2 4.5 1.5 versicolor\n", "52 6.9 3.1 4.9 1.5 versicolor\n", "53 5.5 2.3 4.0 1.3 versicolor\n", "54 6.5 2.8 4.6 1.5 versicolor" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris2 = iris.loc[iris[\"species\"] == \"versicolor\"].copy()\n", "# I always recommend you to use .copy() at the end, if you don't know what it means.\n", "iris2.head()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
836.02.75.11.6versicolor
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species\n", "83 6.0 2.7 5.1 1.6 versicolor" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris2 = iris.loc[(iris[\"petal_length\"] > 5) & (iris[\"species\"] == \"versicolor\")].copy()\n", "# I always recommend you to use .copy() at the end, if you don't know what it means.\n", "iris2.head()" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Note that you have to use parentheses like ``.loc[(condition1) & (condition2)]``." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Iterate through the DataFrame\n", "\n", "In the example below, I tried to add a column named \"test\" while iterating through the rows:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "sepal_length 5.1\n", "sepal_width 3.5\n", "petal_length 1.4\n", "petal_width 0.2\n", "species setosa\n", "Name: 0, dtype: object\n", "\n", "sepal_length 5.1\n", "sepal_width 3.5\n", "petal_length 1.4\n", "petal_width 0.2\n", "species setosa\n", "test 999\n", "Name: 0, dtype: object\n" ] } ], "source": [ "for i, row in iris.iterrows():\n", " if i == 0:\n", " print(i)\n", " print(row)\n", " row[\"test\"] = 999\n", " print()\n", " print(row)\n" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "sepal_length 5.1\n", "sepal_width 3.5\n", "petal_length 1.4\n", "petal_width 0.2\n", "species setosa\n", "Name: 0, dtype: object\n" ] } ], "source": [ "print(iris.iloc[0])\n", "# Note that it is not changed!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How do we modify them actually?\n", "\n", "A **not working** example:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "# Initialize\n", "iris[\"test\"] = None\n", "for i, row in iris.iterrows():\n", " row.loc[\"test\"] = row[\"sepal_length\"] + row[\"petal_length\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, ``row`` is just a copy of the original DataFrame. So nothing is changed in ``iris``:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspeciestest
05.13.51.40.2setosaNone
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species test\n", "0 5.1 3.5 1.4 0.2 setosa None" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris.head(1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A **working** example:\n", "\n", "You need to directly access to the original DataFrame:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "# Initialize\n", "iris[\"test\"] = None\n", "for i, row in iris.iterrows():\n", " iris.at[i, \"test\"] = row[\"sepal_length\"] + row[\"petal_length\"]" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspeciestest
05.13.51.40.2setosa6.5
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species test\n", "0 5.1 3.5 1.4 0.2 setosa 6.5" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris.head(1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Things go well in this case with ``loc``, but I used ``at``.\n", "* ``loc`` is slower, but you can access to multiple locations\n", "* ``at`` is quicker, but you can access to only one single location\n", "\n", "See [here](https://stackoverflow.com/questions/37216485/pandas-at-versus-loc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A **working and good** example for this specific case:\n", "\n", "But in this kind of simple summation case, you can just do" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspeciestest
05.13.51.40.2setosa6.5
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species test\n", "0 5.1 3.5 1.4 0.2 setosa 6.5" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris[\"test\"] = iris[\"sepal_length\"] + iris[\"petal_length\"]\n", "iris.head(1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**You don't even need that initialization.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The iteration is useful when you do some complicated jobs:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "# Initialize\n", "iris[\"test\"] = None\n", "for i, row in iris.iterrows():\n", " length_sum = row[\"sepal_length\"] + row[\"petal_length\"]\n", " if length_sum > 0.1:\n", " length_sum = 0.1\n", " iris.at[i, \"test\"] = length_sum" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Drop" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "pandas usually generate annoying index (``0, 1, ..., N``) columns etc. You can drop them by" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "ename": "KeyError", "evalue": "\"['test'] not found in axis\"", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[41], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m iris \u001b[39m=\u001b[39m iris\u001b[39m.\u001b[39;49mdrop(columns\u001b[39m=\u001b[39;49m[\u001b[39m\"\u001b[39;49m\u001b[39mtest\u001b[39;49m\u001b[39m\"\u001b[39;49m])\n\u001b[1;32m 3\u001b[0m iris\u001b[39m.\u001b[39mhead(\u001b[39m1\u001b[39m)\n", "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/pandas/util/_decorators.py:331\u001b[0m, in \u001b[0;36mdeprecate_nonkeyword_arguments..decorate..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 325\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mlen\u001b[39m(args) \u001b[39m>\u001b[39m num_allow_args:\n\u001b[1;32m 326\u001b[0m warnings\u001b[39m.\u001b[39mwarn(\n\u001b[1;32m 327\u001b[0m msg\u001b[39m.\u001b[39mformat(arguments\u001b[39m=\u001b[39m_format_argument_list(allow_args)),\n\u001b[1;32m 328\u001b[0m \u001b[39mFutureWarning\u001b[39;00m,\n\u001b[1;32m 329\u001b[0m stacklevel\u001b[39m=\u001b[39mfind_stack_level(),\n\u001b[1;32m 330\u001b[0m )\n\u001b[0;32m--> 331\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n", "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/pandas/core/frame.py:5399\u001b[0m, in \u001b[0;36mDataFrame.drop\u001b[0;34m(self, labels, axis, index, columns, level, inplace, errors)\u001b[0m\n\u001b[1;32m 5251\u001b[0m \u001b[39m@deprecate_nonkeyword_arguments\u001b[39m(version\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, allowed_args\u001b[39m=\u001b[39m[\u001b[39m\"\u001b[39m\u001b[39mself\u001b[39m\u001b[39m\"\u001b[39m, \u001b[39m\"\u001b[39m\u001b[39mlabels\u001b[39m\u001b[39m\"\u001b[39m])\n\u001b[1;32m 5252\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mdrop\u001b[39m( \u001b[39m# type: ignore[override]\u001b[39;00m\n\u001b[1;32m 5253\u001b[0m \u001b[39mself\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 5260\u001b[0m errors: IgnoreRaise \u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mraise\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 5261\u001b[0m ) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m DataFrame \u001b[39m|\u001b[39m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m 5262\u001b[0m \u001b[39m \u001b[39m\u001b[39m\"\"\"\u001b[39;00m\n\u001b[1;32m 5263\u001b[0m \u001b[39m Drop specified labels from rows or columns.\u001b[39;00m\n\u001b[1;32m 5264\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 5397\u001b[0m \u001b[39m weight 1.0 0.8\u001b[39;00m\n\u001b[1;32m 5398\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[0;32m-> 5399\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39msuper\u001b[39;49m()\u001b[39m.\u001b[39;49mdrop(\n\u001b[1;32m 5400\u001b[0m labels\u001b[39m=\u001b[39;49mlabels,\n\u001b[1;32m 5401\u001b[0m axis\u001b[39m=\u001b[39;49maxis,\n\u001b[1;32m 5402\u001b[0m index\u001b[39m=\u001b[39;49mindex,\n\u001b[1;32m 5403\u001b[0m columns\u001b[39m=\u001b[39;49mcolumns,\n\u001b[1;32m 5404\u001b[0m level\u001b[39m=\u001b[39;49mlevel,\n\u001b[1;32m 5405\u001b[0m inplace\u001b[39m=\u001b[39;49minplace,\n\u001b[1;32m 5406\u001b[0m errors\u001b[39m=\u001b[39;49merrors,\n\u001b[1;32m 5407\u001b[0m )\n", "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/pandas/util/_decorators.py:331\u001b[0m, in \u001b[0;36mdeprecate_nonkeyword_arguments..decorate..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 325\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mlen\u001b[39m(args) \u001b[39m>\u001b[39m num_allow_args:\n\u001b[1;32m 326\u001b[0m warnings\u001b[39m.\u001b[39mwarn(\n\u001b[1;32m 327\u001b[0m msg\u001b[39m.\u001b[39mformat(arguments\u001b[39m=\u001b[39m_format_argument_list(allow_args)),\n\u001b[1;32m 328\u001b[0m \u001b[39mFutureWarning\u001b[39;00m,\n\u001b[1;32m 329\u001b[0m stacklevel\u001b[39m=\u001b[39mfind_stack_level(),\n\u001b[1;32m 330\u001b[0m )\n\u001b[0;32m--> 331\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n", "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/pandas/core/generic.py:4505\u001b[0m, in \u001b[0;36mNDFrame.drop\u001b[0;34m(self, labels, axis, index, columns, level, inplace, errors)\u001b[0m\n\u001b[1;32m 4503\u001b[0m \u001b[39mfor\u001b[39;00m axis, labels \u001b[39min\u001b[39;00m axes\u001b[39m.\u001b[39mitems():\n\u001b[1;32m 4504\u001b[0m \u001b[39mif\u001b[39;00m labels \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m-> 4505\u001b[0m obj \u001b[39m=\u001b[39m obj\u001b[39m.\u001b[39;49m_drop_axis(labels, axis, level\u001b[39m=\u001b[39;49mlevel, errors\u001b[39m=\u001b[39;49merrors)\n\u001b[1;32m 4507\u001b[0m \u001b[39mif\u001b[39;00m inplace:\n\u001b[1;32m 4508\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_update_inplace(obj)\n", "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/pandas/core/generic.py:4546\u001b[0m, in \u001b[0;36mNDFrame._drop_axis\u001b[0;34m(self, labels, axis, level, errors, only_slice)\u001b[0m\n\u001b[1;32m 4544\u001b[0m new_axis \u001b[39m=\u001b[39m axis\u001b[39m.\u001b[39mdrop(labels, level\u001b[39m=\u001b[39mlevel, errors\u001b[39m=\u001b[39merrors)\n\u001b[1;32m 4545\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m-> 4546\u001b[0m new_axis \u001b[39m=\u001b[39m axis\u001b[39m.\u001b[39;49mdrop(labels, errors\u001b[39m=\u001b[39;49merrors)\n\u001b[1;32m 4547\u001b[0m indexer \u001b[39m=\u001b[39m axis\u001b[39m.\u001b[39mget_indexer(new_axis)\n\u001b[1;32m 4549\u001b[0m \u001b[39m# Case for non-unique axis\u001b[39;00m\n\u001b[1;32m 4550\u001b[0m \u001b[39melse\u001b[39;00m:\n", "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/pandas/core/indexes/base.py:6934\u001b[0m, in \u001b[0;36mIndex.drop\u001b[0;34m(self, labels, errors)\u001b[0m\n\u001b[1;32m 6932\u001b[0m \u001b[39mif\u001b[39;00m mask\u001b[39m.\u001b[39many():\n\u001b[1;32m 6933\u001b[0m \u001b[39mif\u001b[39;00m errors \u001b[39m!=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mignore\u001b[39m\u001b[39m\"\u001b[39m:\n\u001b[0;32m-> 6934\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mKeyError\u001b[39;00m(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mlist\u001b[39m(labels[mask])\u001b[39m}\u001b[39;00m\u001b[39m not found in axis\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[1;32m 6935\u001b[0m indexer \u001b[39m=\u001b[39m indexer[\u001b[39m~\u001b[39mmask]\n\u001b[1;32m 6936\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mdelete(indexer)\n", "\u001b[0;31mKeyError\u001b[0m: \"['test'] not found in axis\"" ] } ], "source": [ "iris = iris.drop(columns=[\"test\"])\n", "\n", "iris.head(1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "NaN's can be removed by ``.dropna()``:" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
0NaNNaNNaNNaNNone
1NaNNaNNaNNaNNone
24.73.21.30.2setosa
34.63.11.50.2setosa
45.03.61.40.2setosa
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species\n", "0 NaN NaN NaN NaN None\n", "1 NaN NaN NaN NaN None\n", "2 4.7 3.2 1.3 0.2 setosa\n", "3 4.6 3.1 1.5 0.2 setosa\n", "4 5.0 3.6 1.4 0.2 setosa" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_nan = iris.copy()\n", "iris_nan.iloc[:2] = None\n", "iris_nan.head()" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
34.63.11.50.2setosa
45.03.61.40.2setosa
55.43.91.70.4setosa
64.63.41.40.3setosa
75.03.41.50.2setosa
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species\n", "3 4.6 3.1 1.5 0.2 setosa\n", "4 5.0 3.6 1.4 0.2 setosa\n", "5 5.4 3.9 1.7 0.4 setosa\n", "6 4.6 3.4 1.4 0.3 setosa\n", "7 5.0 3.4 1.5 0.2 setosa" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_nan = iris_nan.dropna()\n", "iris_nan.head() # try .reset_index() by yourself" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
indexsepal_lengthsepal_widthpetal_lengthpetal_widthspecies
034.63.11.50.2setosa
145.03.61.40.2setosa
255.43.91.70.4setosa
364.63.41.40.3setosa
475.03.41.50.2setosa
\n", "
" ], "text/plain": [ " index sepal_length sepal_width petal_length petal_width species\n", "0 3 4.6 3.1 1.5 0.2 setosa\n", "1 4 5.0 3.6 1.4 0.2 setosa\n", "2 5 5.4 3.9 1.7 0.4 setosa\n", "3 6 4.6 3.4 1.4 0.3 setosa\n", "4 7 5.0 3.4 1.5 0.2 setosa" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_nan.reset_index().head()" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
04.63.11.50.2setosa
15.03.61.40.2setosa
25.43.91.70.4setosa
34.63.41.40.3setosa
45.03.41.50.2setosa
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species\n", "0 4.6 3.1 1.5 0.2 setosa\n", "1 5.0 3.6 1.4 0.2 setosa\n", "2 5.4 3.9 1.7 0.4 setosa\n", "3 4.6 3.4 1.4 0.3 setosa\n", "4 5.0 3.4 1.5 0.2 setosa" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_nan.reset_index(drop=True).head()" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "# iris_nan.to_csv(\"test.csv\", index=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sorting" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
605.02.03.51.0versicolor
626.02.24.01.0versicolor
686.22.24.51.5versicolor
1196.02.25.01.5virginica
414.52.31.30.3setosa
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species\n", "60 5.0 2.0 3.5 1.0 versicolor\n", "62 6.0 2.2 4.0 1.0 versicolor\n", "68 6.2 2.2 4.5 1.5 versicolor\n", "119 6.0 2.2 5.0 1.5 virginica\n", "41 4.5 2.3 1.3 0.3 setosa" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris.sort_values(by=[\"sepal_width\", \"petal_length\"]).head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As can be seen, the index numbers are kept but \"ordered\" based on the column.\n", "\n", "Reset it:" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
05.02.03.51.0versicolor
16.02.24.01.0versicolor
26.02.25.01.5virginica
36.22.24.51.5versicolor
44.52.31.30.3setosa
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species\n", "0 5.0 2.0 3.5 1.0 versicolor\n", "1 6.0 2.2 4.0 1.0 versicolor\n", "2 6.0 2.2 5.0 1.5 virginica\n", "3 6.2 2.2 4.5 1.5 versicolor\n", "4 4.5 2.3 1.3 0.3 setosa" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris_sort = (iris.sort_values(by=\"sepal_width\")\n", " .reset_index(drop=True)\n", ")\n", "iris_sort.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "See what happens if ``drop = False``." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Grouping" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Grouping is one of the most useful functionality of pandas. " ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "grouped = iris.groupby(\"species\")" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "print(type(grouped))" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
05.13.51.40.2setosa
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species\n", "0 5.1 3.5 1.4 0.2 setosa" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grouped.get_group(\"setosa\").head(1)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "setosa\n", " sepal_length sepal_width petal_length petal_width\n", "count 50.00000 50.000000 50.000000 50.000000\n", "mean 5.00600 3.428000 1.462000 0.246000\n", "std 0.35249 0.379064 0.173664 0.105386\n", "min 4.30000 2.300000 1.000000 0.100000\n", "25% 4.80000 3.200000 1.400000 0.200000\n", "50% 5.00000 3.400000 1.500000 0.200000\n", "75% 5.20000 3.675000 1.575000 0.300000\n", "max 5.80000 4.400000 1.900000 0.600000\n", "\n", "versicolor\n", " sepal_length sepal_width petal_length petal_width\n", "count 50.000000 50.000000 50.000000 50.000000\n", "mean 5.936000 2.770000 4.260000 1.326000\n", "std 0.516171 0.313798 0.469911 0.197753\n", "min 4.900000 2.000000 3.000000 1.000000\n", "25% 5.600000 2.525000 4.000000 1.200000\n", "50% 5.900000 2.800000 4.350000 1.300000\n", "75% 6.300000 3.000000 4.600000 1.500000\n", "max 7.000000 3.400000 5.100000 1.800000\n", "\n", "virginica\n", " sepal_length sepal_width petal_length petal_width\n", "count 50.00000 50.000000 50.000000 50.00000\n", "mean 6.58800 2.974000 5.552000 2.02600\n", "std 0.63588 0.322497 0.551895 0.27465\n", "min 4.90000 2.200000 4.500000 1.40000\n", "25% 6.22500 2.800000 5.100000 1.80000\n", "50% 6.50000 3.000000 5.550000 2.00000\n", "75% 6.90000 3.175000 5.875000 2.30000\n", "max 7.90000 3.800000 6.900000 2.50000\n", "\n" ] } ], "source": [ "for name, group in grouped:\n", " print(name)\n", " print(group.describe())\n", " print()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Masking and Special Operations" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
14.93.01.40.2setosa
24.73.21.30.2setosa
34.63.11.50.2setosa
84.42.91.40.2setosa
94.93.11.50.1setosa
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species\n", "1 4.9 3.0 1.4 0.2 setosa\n", "2 4.7 3.2 1.3 0.2 setosa\n", "3 4.6 3.1 1.5 0.2 setosa\n", "8 4.4 2.9 1.4 0.2 setosa\n", "9 4.9 3.1 1.5 0.1 setosa" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mask = iris[\"sepal_width\"] < 3.3\n", "iris.loc[mask].head() # Try .reset_index() by yourself" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are many of the things you can do for ``str``, e.g., ``.split`` or ``.replace``, etc.\n", "\n", "You can do that on all the ``str``s in a column without for loop in pandas:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
05.13.51.40.2setosa
14.93.01.40.2setosa
24.73.21.30.2setosa
34.63.11.50.2setosa
45.03.61.40.2setosa
\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width species\n", "0 5.1 3.5 1.4 0.2 setosa\n", "1 4.9 3.0 1.4 0.2 setosa\n", "2 4.7 3.2 1.3 0.2 setosa\n", "3 4.6 3.1 1.5 0.2 setosa\n", "4 5.0 3.6 1.4 0.2 setosa" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "setosa_mask = iris[\"species\"].str.startswith(\"seto\")\n", "iris.loc[setosa_mask].head()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 testingtestingsa\n", "1 testingtestingsa\n", "2 testingtestingsa\n", "3 testingtestingsa\n", "4 testingtestingsa\n", "Name: species, dtype: object" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iris[\"species\"].str.replace(\"seto\", \"testingtesting\").head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A Simple Plotting" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "image/png": "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7969+p//+R+jfs0118jb29uoh4WFGctVOZ1OxcfHV1sCqvL4K6+8ot/97ncym83VZoCg5ah7oS0AAAAAAAAAuEhlZWXpySef1JNPPqnIyEgNGjRI7dq1k8ViUVZWlpKTk5WZmWm0HzlypG655ZZqfbRv316rV6/W+PHjlZeXp8zMTMXHxysiIkLDhw9XZGSknE6njh8/rj179ujQoUP17n0wefJkYzbDgw8+qC+//FKXXHJJtYf8jzzyiEJDQ43622+/rdjYWKWmpqqwsFA33XSTevTooeHDh8vLy0t79+7Vtm3bjLH9/f2VmJiokJCQGuOXl5frvffe03vvvSdfX19deuml6tatm4KCgpSfn6/U1FQlJycb7X19ffXCCy/U6Gf+/PkaN26cnE6nUlJS1L9/f8XGxqpbt24qLCzUN998Y/x8//a3v+n111+vtmE2WgaSEAAAAAAAAABwGl9fX1ksFtntdkkVez3UtYzRlClT9NZbb1Xb66DS0KFDtWPHDt12221av369JCknJ0effvrpGfuLjIxUjx49aj03a9YsLV++XBs2bJDL5dKGDRu0YcOGam3mzp1bLQkRGRmpLVu2aNq0afr6668lSQcPHtTBgwdr9N+9e3ctX75cQ4cOrXX8wMBAo2yz2fTdd9/pu+++q7Vt165dtXTpUl166aU1zl1zzTV65ZVXdPfdd8tut6u8vFwbN27Uxo0bjTYeHh569NFH9dBDD+n111+vdQxc2EhCAAAAAAAAAMBphg8frpycHK1bt06bN29WSkqKUlNTdfz4cTkcDgUFBSkmJkaXX365ZsyYoWHDhtXZX3R0tNatW6etW7dq5cqV2rRpk9LT05Wfny+LxaK2bduqR48eGjJkiMaNG6err77a2NT6dBaLRWvWrNFbb72lDz/8ULt379aJEyfq3cMiMjJS69ev15o1a/Tee+9p8+bNysrKUnl5uSIiIjRo0CBNmjRJM2bMkKen5xn7+f7777Vt2zZt2LBB27dv1/79+3Xs2DEVFxfLz89P7dq108CBA3XDDTfopptuqjZD43Rz5sxRbGysFi5cqA0bNujYsWPy9fVVx44dNWbMGM2ePVuDBg2q83XhwkYSAgAAAAAAAABqERoaqvj4eMXHx5+zPkeMGKERI0acdT+enp664447qm063VBxcXGKi4tr8thms1mxsbGKjY1t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8uXL9eijj170ZisAAAAAAAAAzs/Y2y09/vjjevrpp0/7XD7ce++9mjt3rqSRkOSmm27S9u3bT2n3ve99Tw888MApmy1PRv/0T/+kxsZGSSMBwnXXXacnn3zytFczDA8P64knntC999570udN09T73ve+zOMPf/jDev311095/VNPPaX3ve99sm37pI3AcW6efBcwmbz++utau3Zt1vvZsmWL7rrrrlM2VDly5IiOHDmil156SV//+tf1k5/8RH/xF3+R9XoAAAAAAAAASHfccYc+85nPKJ1O69e//nXm80uXLtXll1+ex8qkoqIirVu3TjfffLMSiYRaWlq0ZMkSXXvttWpublY8HtfmzZt18OBBSdIjjzyiBx54QNLJtySaTMLhsJ5++mnddNNN6u7uVm9vr+644w596lOf0rJly1RdXa14PK79+/dr69atisViWrx48Slf4AFvMgAAIABJREFU54tf/KKeeeYZxWIxHTx4UNdcc42uvfZaNTU1KZlMasuWLZm12r//+7/X3r17z3rFBE5GCDFOqVRK9913nxzHyWo/O3bs0KpVqxSJRCRJXq9Xy5cv1+zZs3Xo0CG9+OKLSqfTOnDggG6++Wa9+uqrWrRoUVZrAgAAAAAAADCycfHKlSv13HPPnfT5fF8FMeqGG27QL37xC919993q6+uT67ravHmzNm/enGnj8/m0du1aLV++PBNChEKhfJV80d7xjnfo9ddf1+rVq/XKK69Ikrq6uvTzn//8tO1LSkpO+dyCBQv0xBNP6M4779Tw8PBpx02SPvrRj2rt2rVatWrVxP9DprDJGXHlwde+9jW9+eabkqQ777wzK32kUin99V//dSaAWLx4sVpaWvTcc8/p8ccf18aNG9XS0pJJ6wYHB3X77bcrnU5npR4AAAAAAAAAJxu7QbUkWZalO+64I0/VnOq9732vdu3apS9+8Yt6xzveoVAopJKSEjU3N+uTn/yktm3bpo997GM6duxY5jVlZWV5rPjiNTQ06De/+Y1+/etf62Mf+5gWLFig8vJyWZalcDisK664QmvWrNFPf/pTvfjii6f9Grfddpt27typT37yk2pqalIgEFBJSYmampr04Q9/WL/5zW/02GOPTYnbWOUaV0KMw+7du/XlL39Z0sgGMytXrjznDvMX4nvf+572798vSSovL9eGDRtUV1d3Ups5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/fnrsyf987lP9loeEREREfG+GS1CuK6LYRi4rjuTbysi8icZhkHQrz+AT8Q0TYrCOkl6MqYJYRNPnEj2Wj/2Wh4v0edKZBYYBq7hn3eDUJ8uwzAI+AL5jpHltTwiIiIi4l0z/tfz6RQgDOP0f1F5JvOKiIiIiIiIiIiIiIh3zGgRwnGcP/nvX//1XwkEAriuyxVXXMF9991Ha2srIyMjZDIZRkZGaG1t5b777uPyyy/HdV2CwSDf/va3cRwH27ZnMrKIiIiIiIiIiIiIiMySnA5M/ZWvfIWvf/3rFBQU8OCDD/Kxj33sbfOUlJSwevVqVq9ezac+9Sn++7//m7vvvpu/+qu/YnBwkK997Wu5jCwiIiIiIiIiIiIiImcpZzczfu211/j6178OwI9+9KMTFiBO5OMf/zg//OEPcV2Xb3zjG/zud7+bzZgiIiIiIiIiIiIiIjJDclaE+N73vofrujQ0NJx2AWLaLbfcwooVK3Bdl+9///uzlFBERERERERERERERGZSzooQL774IoZhcMkll5zV8pdccgmu6/LSSy/NcDIREREREREREREREZkNOStCHDp0CACfz3dWy08v19PTM2OZRERERERERERERERk9uSsCBEOhwHYtm3bWS3/5ptvAhAKhWYsk4iIiIiIiIiIiIiIzJ6cFSEaGhpwXZft27ezefPmM1r2ueee480338QwDBoaGmYpoYiIiIiIiIiIiIiIzKScFSH+/M//HADXdbnlllt4+eWXT2u5l156iVtvvTX7/EwHtRYRERERERERERERkfzIWRHic5/7HMuWLcMwDIaGhrjyyiu54447ePrppxkeHj5m3uHhYZ566iluv/12PvjBD2anL126lL/4i7/IVWQRERERERERERERETkH/lytKBwO89hjj3H11VfT39+P4zg88sgjPPLIIwBEIhEikQiTk5NMTk5ml3NdF4DKykoee+yx7NgSIiIiIiIiIiIiIiLibTm7EgKgqamJl19+mbVr1wJTBYbpfxMTEwwODjIxMXHM6wAf/OAHeeWVV2hqasplXBEREREREREREREROQc5LUIALFmyhOeff56nn36aj370o1RWVp5wvsrKSj760Y/y9NNPs2XLFpYuXZrjpCIiIiIiIiIiIiIici5ydjum411zzTVcc801APT09DA4OMj4+DhFRUVUVlZSW1ub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gJA/qaGigYaKBhzHIWklCfvDGgNCRERkHslZEWL//v3s37+frVu3smXLFrZu3crBgwePmaetrY22tjZ+8IMfAFNFiXXr1mWLElVVVbmKKyIi84RhTN2OyQsn/Q3DIOjPfw4REZE/xTBNAqHCfMeQOcY0TSLB/PzoQ0RERPInZ0UIgMWLF3PXXXdx1113AbBv375sUeKFF16gu7v7mPmnixLf//73AVixYgXr1q3jO9/5Ti5ji4iIiIiIiIiIiIjIWchpEeJ4S5cuZenSpdx9990A7N2795iiRE9PzzHz7969mz179qgIISIiIiIiIiIiIiIyB3jqJowXXHABn/70p9m0aRPd3d387Gc/o6mpCfDGbTJEREREREREREREROT05fVKiOPt3r2bLVu2ZK+EiMViwFQBwnXdPKcTEREREREREREREZEzkdciRHt7e7bosHXrVgYGBrLTji46lJWVceWVV7J27VrWrVuXj6giIiIiIiIiIiIiInKGclqE2Ldv3zFFh97e3uy0o4sOpaWlXHHFFdmiw0UXXaTbMYmIiIiIiIiIiIiIzDE5K0LU19fT3d2dfX500aGkpITLL788W3S4+OKLMU1PDVchIiIiIiIiIiIiIiJnKGdFiIMHD2YfFxcXZ4sOa9eu5d3vfreKDiIiIiIiIiIiIiIi7zA5PfNvGAaGYWBZFul0mnQ6TSaTwXGcXMYQEREREREREREREZEcyNmVELW1tfT09ACQSCR4/vnnef755wGIRCJcdtllrFu3jnXr1vHe975XV0aIiIiIiIiIiIiIiMxxOStCdHd3s3fvXrZu3crWrVt54YUXOHToEAATExP85je/4Te/+Q0ARUVFfOADH8gWJd797ndrYGoRERERERERERERkTkmZ0UIgAsuuIALLriAT3/60wC0t7cfU5SYvlIiHo/zzDPP8MwzzwBTY0hcccUVrFu3jrVr17JmzZpcxhYRERERERERERERkbOQ0yLE8ZYvX87y5cu55557gKmixJYtW7JFid7eXgDGxsb49a9/za9//evsmBIiIiIiIiIiIiIiIuJtnhp4Yfny5XzmM5/h4Ycf5tChQ/zsZz+jqakpO911XVzXzWNCERERERERERERERE5XXm9EuJ4u3fvZsuWLWzZsoUXXniBWCwGoPEgRERERERERERERETmoLwWIaZvvzR9C6aB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TEv7L+mI7cCyLfw+P8uiTTQv/3DOChDZPOUNVIQreO3Qa/Qe6MV2beqL62msbKS5slknJj1kuq1aBlvoGOnAciz8pp9lZcvy0laeynPk+8HZ9xITXf0YrkVVxTKovVDfD3isrURE5hgVIUTmgKriMBtXL+SaVdXZE9u6z+QUr22bVTWlrKopxXEcJtMOkaCpMSA8qqo4zFWNldgHXGzX5bor6olEIvmOJSKSG9O/eG28HuzM1CCjOraQOSZauZINlStZ7zhYmQT+QMGsjwFxyjwFUdaet5bUjhQ2NtetvE7HFh41/av29eevz55IzuffEJ7KU1yN03AdbZ0mhmtT//7rCKgfZ3mqrURE5hAVIUTmEMMwCPp1gHMiXts2pmlSFFbxYS4wDPAb6I8HEZmfDAP8wXynEDknhmkSCBXmO0aWYRj40YnJucAwDAK+QL5jZHkqj2HgGn4VqE/CU20lIjIH6AyZiIiIiIiIiIiIiIjMChUhRERERERERERERERkVqgIISIiIiIiIiIiIiIis2JGx4S4++67Z/LtTsgwDH74wx/O+npEREREREREREREROTczGgR4v7778/J4FsqQoiIiIiIiIiIiIiIeN+MFiEAXNed6bc8Ri6KHCIiIiIiIiIiIiIicu5mtAjx4x//eCbfTkRERERERERERERE5rAZLUJ88pOfnMm3ExERERERERERERGROczMdwAREREREREREREREXlnUhFCRERERERERERERERmhYoQIiIiIiIiIiIiIiIyK1SEEBERERERERERERGRWTGjA1OfCdd12blzJ2+++SaxWIx4PI7jOKe17Je//OVZTiciIiIiIiIiIiIiIucq50WITCbDt771Lf7zP/+T3t7es3oPFSFERERERERERERERLwvp0WIw4cPc/XVV/Pmm2/iuu6fnN8wjLfNZxjGbMUTEREREREREREREZEZlNMixMc+9jG2bdsGwMKFC7npppt4/fXXee211zAMgy9/+cvE43EOHDjASy+9RF9fH4ZhUFhYyL333ks4HM5lXBEREREREREREREROQc5K0I8++yzPP/88xiGwXve8x6ee+45SkpK+PznP89rr70GwN///d9n53cch8cee4wvfOELdHd388wzz/Dkk09SU1OTq8giIiIiIiIiIiIiInIOzFyt6Kc//Wn28Q9/+ENKSkpO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iETm35h2IiLyzueJIsSBAwcYHBwkHo9TXFxMNBpl8eLF+Y4lIiIiIiIiIiIiIiLnIG9FiKeffpr77ruPrVu3MjIy8rbpZWVlrF27lnvuuYdrr702DwlFRERERERERERERORc5Px+GPv372fDhg1cf/31PP744wwPD+O67tv+DQ8P8/jjj3P99dezfv16Ojs7cx1VRERERERERERERETOQU6LELt27eKyyy5j69at2WIDTN3Ds6ysjPPOO4+ysrLsYGLT82zdupUPfOAD7Nq1K5dxRURERERERERERETkHOSsCJFKpbjpppvo6+vDdV0Mw+D222/n2WefZWRkhMOHD3Pw4EEOHz7MyMgIzz77LLfeeiuGYWAYBn19fdx0002k0+lcRRYRERERERERERERkXOQsyLED37wA9ra2jAMg4qKCl544QV+8pOfcNVVV1FcXHzMvMXFxVx11VVs2rSJrVu3UlZWBkB7ezvf//73cxVZRERERERERERERETOQc6KEI8++mj28aZNm7j88stPa7krrriCTZs2nfB9RERERERERERERETEu3JWhNi9ezeGYdDU1MTGjRvPaNlrr72WCy+8ENd12b179ywlFBERERERERERERGRmZSzIsTExAQAa9asOavlp5ebnJycsUwiIiIiIiIiIiIiIjJ7claEqK2tBcB13XN6n5qampmIIyIiIiIiIiIiIiIisyxnRYhLL70U13XZtm3bWS2/bds2DMPgkksumeFkIiIiIiIiIiIiIiIyG3JWhLjnnnsA2LFjB88999wZLfvss8+yfft2AD71qU/NeDYREREREREREREREZl5OStCrF27ls9+9rO4rsvtt9/Oq6++elrL/e53RuoEEAAAIABJREFUv+P2228H4NOf/jQbNmyYzZgcPnyYZ599ln/4h3/gpptuYs2aNdTV1VFQUEAkEuG8885j48aNfPOb3+TQoUOzlmN8fJzvfve7rFu3jkWLFhEKhVi0aBHr16/ne9/7HuPj47O2bhERERERERERERGRmeDP5cr+/d//nUgkwr/8y79w+eWX84lPfIJPfOITXHrppUQikex8ExMTvPrqq/zkJz/hoYcewnEcvvCFL/CP//iPs57xzjvv5Mknnzzp9EQiQU9PD88++yxf+cpX+NKXvsSXv/xlTHPm6jmvvPIKt99+O52dnce8fujQIQ4dOsSWLVv41re+xcMPP8yll146Y+sVEREREREREREREZlJOStCLF26NPs4EAiQyWR44IEHeOCBBzAMg/LyciKRCJOTkwwPD2cHsHZdl2AwyC9+8Qt+8YtfnHIdhmHQ0dExY5mrq6tpbGykrq6OwsJCJicnaW9v57XXXsOyLNLpNF/96lfZv38/999//4ysc/v27WzcuJF4PA5Mbav169ezaNEiDh48yPPPP49lWezbt49rrrmGl156iaamphlZt4iIiIiIiIiIiIjITMpZEWL//v0YhpF9Pv3YdV1c12VoaIjDhw9niw/T8xiGQSaT4cCBA6d8f9d1j3n/s7V27VpuvPFGrrrqKpYsWXLCefr6+vjLv/xLHn30UQAeeOABPvShD3HzzTef07ozmQwf+chHsgWI5uZmnnjiCerr67Pz7N+/nz/7sz+jpaWFsbExbr75Zt566y38/pxe1CIiIiIiIiIiIiIi8iflbEwI+GPB4eh/x0//U/Of7N9M+eIXv8g999xz0gIEwMKFC/npT3/K2rVrs699//vfP+d133fffdkrOcrLy3nqqaeOKUAALF68mKeeeory8nIA2tra+NGPfnTO6xYRERERERERERERmWk5+/n88eMbzHWGYXD33XezdetWAN54441zfs/vfOc72cdf/OIXqampOeF8NTU1/PVf/zV/93d/l13uM5/5zDmvX0RERERERERERERkJuWsCHH8L/rfCaqqqrKPp2+hdLb27t3Lzp07s8/vuuuuU85/1113ZYsQ27dvp6Ojg2XLlp1TBnk713XJ2C4BnzEjt/t6p+WRucFxHCbTDpGgiWnm9AK4E/JaP3ZdsN23X40nckquC3YGfAHwQD/2HMeBzCQEIpDv/Y7a6pRcx8HKJPAHCjDy3Fau62Jje2Z/7KVtI3OLbdskSWLbdr6jTPHQftBrnyvXdbEcC7/p98RxqZyc19rKa3lkbvBav/FaHnln00AC52DXrl3Zx+daZHn++eezjxsaGqitrT3l/Oeddx7Lly+nvb0dgC1btqgIMYMG4kneODDC3oF49mTpBVXFrKkvo6o4PO/zyNyws3eUJ7b18FbPaLbfrK4t5caLa1lVU5rzPF7rxwPxJL9rH+S5Qwa2a9D1vwdYeV65PldyavF+6P49DO4G2wKfHyobYdElUFyd73T517cDWh+F3pY/nvCq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yB1jcL/qJ0bkmJUyD2f97eXOnQjlMsccIBgdbf9L3UO7tbJyiXoLRzU8flApI65JryjH87SycomSVlIdq28KO1RECMdkAAAgsSbEaTl69KhuuOEG9fT0SJKam5v105/+VM3NzaHF1NnZWbp98OBBTU0x7yqAaEon0+ps6VRDqkEb0hvUmGpU3IyrMdWoDekNakg1qLOlU+lkOuxQy6+mSVqzVapplpZf4f+MVZx8f81Wfz9gphm54y67XPl4nVwzLq86pNyJUC5zzAGCkW5Yo871d6ghmdaG6hY1WtWKGzE1WtXaUN2ihmRanevvULphTdihIkI4JgMAAIkrId7W8ePH9f73v18vv/yyJGnJkiV68skntXLlylDjenMB5OjRo6EWRQBgLm11bapP1KtrqEs9Iz2yXVuWaal1cas6GjoW9hfPpnVSKi31Py8N7ZMcW4pZUsMa/6xxChCYzYnccQ8+q4m+jAzPVmN9q7RsQzi5E6Fc5pgDBKPtks2qr71YXQceUU92j2zHlhWz1Jper47VN1GAwClxTAYAABQh5jAxMaEPfOAD2rlzpyRp0aJFeuKJJ7Ru3bqQI/Njm6mKeVcBRNz0mXDXXXRd6csniw+eMH0WefsWySlKsTiLUOP01DTJbdus7l5ThudoxdWbw10/JEK5zDEHCEa6YY06G9boOteVXczJiicX7CLUOH0ckwEAWNgoQswin8/rpptu0rPPPitJSqVSevzxx3XFFVeEHJlv165dpdtVVVVatGhRiNEAwOkzDEPxWDzsMKLJMCSrIuwoMB8ZhjzDik7xKkK5zDEHCIZhmopXciIUzgzHZAAAFiZOWTmFYrGoW265RT/72c8kSZWVlfrRj36kd7/73SFH9ob/+I//KN3etGlTeIEAAAAAAAAAADALihBv4jiObr/9dj3++OOSJMuy9MADD+j6668P9HXHx8dPe99/+qd/0tNPP126f8cddwQREgAAAAAAAAAA54QixAye5+kTn/iEHnzwQUmSaZr63ve+p5tuuumsf+drr70mwzBK/5566qlT7vcP//APet/73qf//u//Vj6fP+U+Q0ND+tznPqfPf/7zpcfe9a536SMf+chZxwcAAAAAAAAAQFBYE2KGf/3Xfz1pmqPW1lY988wzeuaZZ972uUuWLNFXvvKVs35tz/P05JNP6sknn1QikdD69evV2tqq2tpaFQoF9fT0aMeOHZqamio9Z8WKFfrhD38ok4XgAAAAAAAAAAARRBFihsHBwZPuHzhwQAcOHDit565YseKcihAz5fN57dy5Uzt37jzldsMwdMstt+juu+/WkiVLzstrAgAAAAAAAABwvlGEiIgvfvGL2rRpk5577jn96le/0uuvv65sNqtjx47JNE3V1dXp0ksv1W//9m/rjjvuUHt7e9ghAwAAAAAAAAAwJ4oQM2zbtk3btm07r7/z4osvlud5b7tfVVWVrrvuOl133XXn9fUBAAAAAAAAAAgLiwkAAAAAAAAAAIBAUIQAAAAAAAAAAACBoAgBAAAAAAAAAAACQRECAAAAAAAAAAAEgiIEAAAAAAAAAAAIBEUIAAAAAAAAAAAQCIoQAAAAAAAAAAAgEBQhAAAAAAAAAABAIChCAAAAAAAAAACAQFCEAAAAAAAAAAAAgaAIAQAAAAAAAAAAAkERAgBQXp4n2VP+TwDnh+vKtPOS64YdCQAAAAAAJ7HCDgAAsECMZaT+HdLQK5JjSzFLamiXlm+UaprCjg6Yn47skbXrB7q65ymZnq2KB+6Tll8ubfiQtHR92NEBAAAAAEARAgBQBpmXpX2PSsUJvxhh5yUrIRXGpMxeac1WqWld2FEC88veR6Qd98gsjCtVGJTp2TJGcpI9If3mBWnjXdLam8KOEgAAAACwwFGEAAAEayzjFyDGBqTsAcmMSRVVUm5YGu2X0qv97ak0V0QAp+vIHmnHPdJ4RubxI6pwbDmGJeVHpfyIVLPU316/iisiAAAAAAChoggBAAhW/w7/CojsAam6Uapv9QsRriMd6/EfTyyS+p/3r4gA8PZ2PyAVJ6WxI/Iqq3XcqpIMUxWLF0ljh6WxI1JljbT7QYoQAAAAAIBQsTA1ACA4nuevATGW8QsP0wUI6eT7YxlpaB+LVQOnw3WlgS5pIisZprxF75CMEx/pTEuqvci/P5GVBnaxWDUAAAAAIFQUIQAAwXGK/iLUdt6fgmm6ADFtemomO+/v5xTDiROYT4qTJ/62ilKswi88zGTG/Men9ylOhhMnAAAAAACiCAEACFIsLsUsfxHqqQl/CqaZXMd/3Er4+8Xi4cQJzCfx1Im/rbjkTEmuffJ21/Efn94nngonTgAAAAAARBECABAkw5Aa2v0Fp6fXgJguRMy8X9MkNazx9wcwN9OUmjukqrTkuTKO/0byTky55NrS6CH/flVaar7c3x8AAAAAgJCwMDUAIFjLN0qZvVJ6tb8I9eRRfwqm6Ssj0quleJW0/MqwIwXmjw0fkn7zglSzVMbxI1pkj8gxLBnZI5I8qabZvwJiw61hRwoAAAAAWOA4NQ4AEKyaJmnNVn9QdPkV/s9Yxcn312z19wNwepaulzbeJVU3yV3SqqlYlTwjJiVq/cJedaO/fen6sCMFAAAAACxwXAkBAAhe0zoplZb6n5eG9vmLUMcsfwqm5VdSgADOxtqbpPpVcnf9pybHfibTs1W5uMkv7m24lQIEAAAAACASKEIAAMpj+oqI9i2SU/QXzGUNCODcLF0v+73/n57LXyHTndL179+qZFVV2FEBAAAAAFBCEQIAUF6GIVkVYUcBXFhMU66ZYBFqAAAAAEDk8E0VAAAAAAAAAAAEgiIEAAAAAAAAAAAIBEUIAAAAAAAAAAAQCIoQAAAAAAAAAAAgEBQhAAAAAAAAAABAIChCAAAAAAAAAACAQFCEAAAAAAAAAAAAgaAIAQAAAAAAAAAAAkERAgAAAAAAAAAABIIiBAAAAAAAAAAACARFCAAAAAAAAAAAEAiKEAAAAAAAAAAAIBAUIQAAAAAAAAAAQCAoQgAAAAAAAAAAgEBQhAAAAAAAAAAAAIGgCAEAAAAAAAAAAAJBEQIAAAAAAAAAAASCIgSAs+J5ku1KnueFHQpwbjxPhmv7SQ3MV+QxgHLzPMme4rgDAACAt2WFHQCA+WVwLK9fHRjSk78x5HiG+p5+XWveUad3rlisxppE2OEBp28sI/PgM2rLPC7Ds2U91y0tWy8t3yjVNIUdHXB6yGMA5TaWkfp3SEOvSI4txSypoZ3jDgAAAGZFEQLAaXvlyHE9sSej45N5ZXKGbFeqODqhgiPtPzKmG9c3qX3porDD/P/Zu/PwqOp7j+OfmSQkIQRCFkIgECAQiOwIKC7ITlG0ohRUqKC1rUprH+2ifayCy2316m2tXotKbVBkEUGEWhHUQBEIAoKy7wQIhJCELQlZZibn/pHm3Alkz5yZZHi/noeHc+Z8z+/3y/B9fhnOd875ATXL2i3t/VT2wgsKK8pUQGmJbGeDpNJCKWuPlDxeiu3p61EC1SOPAXjbf+YdOQrKihHOIikwRCrOY94BAABAlShCAKiVM3lFWrUrS1kXC3UwK08XS6RmAdKZvGKdyXOoS0yYVu3KUmRYM+6IQOOWl1V2ASUvU/Yz+xXiOC+XPVi2/EwpP1OK7lZ2vHk03+hE40UeA/A2t3lHOQcle4DULEwqPCddyGDeAQAAQJVYEwJArWw7dl6FJU4dyS5QdIsgdQqX4sOkfvGtFB0erCPZBSoscWr78fO+HipQvYzNZd/gzDkoIyxaZ8O66kLzBJW2Gyi1aFN2YcVRIGVs8fVIgaqRxwC8zW3eUYs2ZY9fatun7G/mHQAAAFSDIgSAGhmGoUNn8nQmr1h2u00Jkc1lt5UdC7Db1CkqTHa7TWfyinUwK4/FqtF4GUbZM6zzsiR7gIzWXSTbf34V2gOkyMSyv/OypOy9LLaJxok8BuBtl8075jwjMe8AAACgRhQhANTI4TLkcBkqcroU1ixQAeUViP8IsNvUvFmAip0uMxZolFyOskU0nUVlj5Aov4BSrvzREs6isjiXwzfjBKpDHgPwNuYdAAAANABFCAA1CgqwKSjAppDAABWUOOUqrVhkcJUaulTiUnBggBkLNEoBQVJAYNkimiUFUqmr4vFSV9nrgSFlcQFBvhknUB3yGIC3Me8AAACgAShCAKiRzWZT1zbhahMerNJSQ8fOXlJ5HcJVaig9t0ClpYbahAerW2y4bDaKEGikbDYppkfZgpmlLtnOHZGM0rJjpS7p7OGyv8NjpZjksnigsSGPAXjbZfOOOc9IzDsAAACoUaCvBwCgaRiQEKH9p/PUJSZMB7PydCFPahYgnc+4IMmuLjEtFNosUP07Rvh6qED14gdLWXuk6G6yndmvyILzctmDZT+VU3Y8upsUFCbFD/LtOIHqkMcAvM1t3lHOQelSbtkjmMrvjGDeAQAAQBUoQgColTbhIRrbK1ardmUpNNCm7wvOylkqtQkPVruIMIU2C9TYXrFqEx7i66EC1QuPlZLHS3s/VWlgcxXlf6cAwyGjRZwU0a7sAkry+LI4oLEijwF4m9u8o5CWZYtQO4uk8JZlx5h3AAAAUAWKEABqrUfblooMa6ZvDp3R6ROGXIZNnaPCdE18a/XvGEEBAk1HbE+pebRKj2xQwfEs2Qyn2kQmSu16l32DkwsoaArIYwDe9p95RxlbpOy9ZYtQBwSWPYKJeQcAAABVoAgBoE7ahIdoVI8YuY4ZchmGxt2coObNm/t6WEDdhceqNGmcDhy1y2a4lDBknILIZTQ15DEAbyu/I6LHbZLLUbYINWtAAAAAoBoUIQDUi80mBdrEItRo+mw2GbZALqCgaSOPAXibzSYFNvP1KAAAANAE2H09AAAAAAAAAAAA4J8oQgAAAAAAAAAAAEtQhAAAAAAAAAAAAJagCAEAAAAAAAAAACxBEQIAAAAAAAAAAFiCIgQAAAAAAAAAALAERQgAAAAAAAAAAGAJihAAAAAAAAAAAMASFCEAAAAAAAAAAIAlKEIAAAAAAAAAAABLUIQAAAAAAAAAAACWoAgBAAAAAAAAAAAsQRECAAAAAAAAAABYgiIEAAAAAAAAAACwBEUIAAAAAAAAAABgCYoQAAAAAAAAAADAEhQhAAAAAAAAAACAJShCAAAAAAAAAAAAS1CEAAAAAOBzRmmpXK4iGaWlvh5K42QYkrOk7G8AAACgCQn09QAAAAAAXL1ysvdq656l2p27QS45lbV6hZLa9FbfpB8qOibZ18PzvbwsKWOzlL1PcjmlgEAppocUP1gKj/X16AAAAIAaUYQAAAAA4BMHDq3UV7s+UEFJgc4YZ+UwXLpU4FBhZqEOZO/UyF5TldR1nK+H6TtZu6W9n0qOgrJihLNICgyRivOkrD1S8ngptqevRwkAAABUiyIEAAAAAK/Lyd6rr3Z9oOzCHB0typFLToUoQNnOfGXl56tzcJS+2vWBIlt1ujrviMjLKitA5GVKOQcle4DULEwqPCddyJCiu5Udbx7NHREAAABo1FgTAgAAAIDXfX9guQqdhTpanKvIwFB1sUUr3h6lPmGdFB3QXEeLc1XoLNT3B1f4eqi+kbG57A6InINSizZlj19q26fs7xZtyl53FEgZW3w9UgAAAKBaFCEAAAAAeJVRWqrDubuVU3xOATabOoa0lf0//zWx2wPUsXmcAmw25RSf0+GcXVffYtWGUbYGRF5W2R0QkYllf0sV9/OypOy9LFYNAACARo0iBAAAAACvcjoK5XQ5VVzqVHNbkOzlF9j/I8BuV3NbkIpLnXK6nHI6Cn00Uh9xOcoWoXYWlT2C6bL3x3w0k7OoLM7l8M04AQAAgFqgCAEAAADAqwKDQhUYEKhge6AuGQ6VlroqHHeVluqS4VCwPVCBAYEKDAr10Uh9JCBICggsW4S6pEC67P1Rqavs9cCQsriAIN+MEwAAAKgFihAAAAAAvMpmtysxqqeig1vLZRg6XnRapSp75FJpqUvHL2XKZRiKDm6txOhestmvsv+22GxSTI+yBadLXdLZw/9fiHDfD4+VYpLL4gEAAIBGKtDXAwAAAABw9emb9EMdyN6pzsFROlqUo2wjTyFGgI4VnFOppM7BUQoNDFXfbnf4eqi+ET9YytojRXcrW4T6Um7ZI5jK74yI7iYFhUnxg3w9UgAAAKBaV9lXigAAAAA0BtExyRrZa6piQqPVM6yDWitEgTa7YgJbqHeLjooJjdbIXlMVHZPs66H6RnislDxeCo+T4q8t+zugWcX95PFlcQAAAEAjxp0QAAAAAHwiqes4RbbqpG/3fKzii+vlklMxYW2UFNtHfbvdcfUWIMrF9pSaR0sZW6TsvWWLUAcElj2CKX4QBQgAAAA0CRQhAAAAAPhMdEyyhg5+QoVnr1GpUaIfjBmv5mFhvh5W41F+R0SP2ySXo2wRataAAAAAQBNCEQIAAACAz9nsdgUo5OpbhLq2bDYpsJmvRwEAAADUGZ/wAQAAAAAAAACAJShCAAAAAAAAAAAAS1CEAAAAAAAAAAAAlqAIAQAAAAAAAAAALEERAgAAAAAAAAAAWIIiBAAAAAAAAAAAsARFCAAAAAAAAAAAYAmKEAAAAAAAAAAAwBIUIQAAAAAAAAAAgCUoQgAAAAAAAAAAAEtQhAAAAAAAAAAAAJagCAEAAAAAAAAAACxBEQIAAAAAAAAAAFiCIgQAAAAAAAAAALAERQgAAAAAAAAAAGAJihAAAAAAAAAAAMASFCEAAAAAAAAAAIAlKEIAAAAAAAAAAABLUIQAAAAAAAAAAACWoAgBAAAAAAAAAAAsQRECAAAAAAAAAABYgiIEAAAAAAAAAACwBEUIAAAAAAAAAABgCYoQAAAAAAAAAADAEhQhAAAAAAAAAACAJShCAAAAAAAAAAAAS1CEAAAAAAAAAAAAlqAIAQAAAAAAAAAALEERAgAAAAAAAAAAWIIiBAAAAAAAAAAAsARFCAAAAAAAAAAAYAmKEAAAAAAAAAAAwBIUIQAAAAAAAAAAgCUoQgAAAAAAAAAAAEtQhAAAAAAAAAAAAJagCAEAAAAAAAAAACxBEQIAAAAAAAAAAFiCIgQAAAAAAAAAALAERQgAAAAAAAAAAGAJihAAAAAAAAAAAMASFCEAAAAAAAAAAIAlKEIAAAAAAAAAAABLUIQAAAAAAAAAAACWoAhRifT0dM2ZM0dTp05V37591bp1awUFBSkyMlJ9+vTRz3/+c/373/+2dAz5+fmaPXu2hg8frvj4eAUHBys+Pl4jRozQW2+9pfz8fEv7BwAAAAAAAACgoQJ9PYDGZPv27Xr44Ye1efPmSo+fO3dO586d086dO/XOO+9o2LBheu+999SxY0ePjiMtLU1TpkzR0aNHK7x+8uRJnTx5UmvWrNErr7yiBQsW6LrrrvNo3wAAAAAAAAAAeApFCDf79++/ogCRlJSkXr16KTo6WufPn9fGjRuVkZEhSVq7dq2GDBmir7/+Wl26dPHIGHbs2KGxY8cqLy9PkhQUFKQRI0YoPj5eJ06cUGpqqpxOp44cOaIxY8Zow4YN6tWrl0f6BgAAAAAAAADAkyhCVKJr16566KGHNHXqVLVv377CsdLSUqWkpOixxx7TpUuXdOrUKU2ZMkUbN26UzWZrUL8Oh0N33XWXWYDo27evli9froSEBDMmPT1dd955p77//ntdvHhRd999t3bv3q3AQP4pAQAAAAAAAACNC2tCuImLi1NKSor27dunJ5988ooChCTZ7Xb95Cc/0QcffGC+tmnTJq1evbrB/c+ZM0eHDx+WJLVu3VorV66sUICQpE6dOmnlypVq3bq1JOnAgQP6xz/+0eC+AQAAAAAAAADwNIoQbm655RZNnz5dAQEBNcZOmDBBgwcPNvf/9a9/Nbj/N99809z+zW9+o7i4uErj4uLi9Otf/7rS8wAAAAAAAAAAaCwoQjTAjTfeaG6np6c3qK1Dhw5pz5495v706dOrjXc/vmPHDvMOCgBAHRmGbKVOyTB8PRIAAAAAAAC/QxGiAdzXgHC5XA1qKzU11dxOSkpSu3btqo1v3769unXrZu6vWbOmQf0DwFUnL0v2A58pKeufSspaocC0v0p7/ynlZfl6ZAAAAAAAAH6D1YwbYOfOneZ2hw4dGtTW3r17ze0BAwbU6pwBAwbo4MGDV5wPAKhB1m5p76eyF15QWFGmAkpLZDsbJJUWSll7pOTxUmxPX48SAAAAAACgyaMIUU8nTpyocPfCqFGjGtTe/v37ze3LF6OuSseOHc3tffv2Nah/ALhq5GVJez+V8jJlP7NfIY7zctmDZcvPlPIzpehuZcebR0vhsb4eLQAAAAAAQJNGEaKeHn/8cfMRTB07dtTtt9/eoPZyc3PN7djY2l30atu2rbl99uzZOveZkZFR7fHMzExzu7CwUIWFhXXuA/6pqKio0m2gKbAfWS974QXZz+yXMyRSZ8OiJZtdEW3iFZR3XLYz+1Ua2FylRzaoNGmcr4cL1Ig5Gf6APIa/IJfhD8hj+AtyGf7AF3lsxTVgihD18N5772np0qXm/p/+9CcFBwc3qM38/HxzOzQ0tFbnuMe5n19bdXmE1Lp16xQdHV3nPuD/1q1b5+shALVnGErK+kxhRZkKcZw3CxCSdOxEhmRIkQXnVZT/nQqOZ+nAUbvktv4P0NgxJ8MfkMfwF+Qy/AF5DH9BLsMfeCuPc3JyPN4mC1PX0datW/Xwww+b+5MnT9Z9993X4HbdK1nNmjWr1TnuhQ/uUgCAmtkMl2yGUwGlJXLZg80CxP8H2OWyByvAcMhmOGUzXL4ZKAAAAAAAgJ/gTog6OHr0qG6//XazYNC7d2+9/fbbHmk7JCTE3C4pKanVOcXFxeZ2be+ecHfixIlqj2dmZmrw4MGSpKFDhyo+Pr7OfcA/FRUVmdXXoUOHVshfoFEzDAWmHZDtbJBs+ZmKaBNfdgeEytbjCbTbZD+VI6NFnNpEJiphyDjuhECjx5wMf0Aew1+Qy/AH5DH8BbkMf+CLPK7pEf71QRGiljIzMzV69GidPn1aktSlSxetWrVKrVq18kj7LVq0MLdre1eDe5z7+bVVl6JCaGhovQod8H8hISHkBpqWdr2k0kIpP1NBecclQ5LNrkC7TUEXj5fFRLST2vVWUPPmPh0qUFfMyfAH5DH8BbkMf0Aew1+Qy/AH3spjK/qgCFELubm5Gj16tA4fPixJiouL05dffqm4uDiP9REVFWVuZ2Vl1eqc8oKIJEVGRnpsLADg1+IHS1l7pOhusp3Zr8iC83LZg2U/9Z9nHkZ3k4LCpPhBvh0nAAAAAACAH2BNiBpcvHhRP/jBD7R7925JZcWCL774Qp07d/ZoP927dze3jx07Vqtzjh8/bm736NHDo+MBAL8VHislj5fC41Tarr+Kglqr1B4ko0WcFH+tFB73n+Oxvh4pAAAAAABAk8edENUoKCjQrbfeqq1bt0qSWrZsqVWrVqlnz54e7ys5Odnc3r59e63O2bZtW6XnAwBqENtTah6t0iMbVHA8SzbDqTaRiVK73mV3QFCAAAAAAAAA8AiKEFUoKirSHXfcoQ0bNkiSmjdvrs8++0zXXnutJf0NHz7c3N6/f78yMzOrfdzTqVOndPDgwUrPBwDUQnisSpPG6cBRu2yGSwlDxrEGBAAAAAAAvQVXxwAAIABJREFUgIfxOKZKOBwO3X333UpNTZUkBQcHa/ny5brxxhst67Nbt2665pprzP333nuv2nj3471791ZiYqJlYwMAv2azybAHSjabr0cCAAAAAADgdyhCXMblcum+++7TZ599JkkKDAzU4sWLNWrUKMv7fvTRR83tV199tcoFqk+fPq1XX33V3J8xY4blYwMAAAAAAAAAoK4oQrgxDEMPPfSQlixZIkmy2+2aN2+e7rjjjnq3mZ6eLpvNZv5Zu3ZtlbE/+9nPzDsacnNzNW7cuAqLT0tli1aPGzdOZ8+elSQlJSXpJz/5Sb3HBwAAAAAAAACAVVgTws3s2bM1d+5ccz8xMVHr16/X+vXrazw3KipKzz33XIP6DwoK0tKlS3XTTTcpPz9f27dvV9euXTVy5EjFx8frxIkTSk1NlcPhkCSFh4dr6dKlCgzknxEAAAAAAAAA0Phw9drNmTNnKuwfPHiwwuLP1UlISGhwEUKS+vbtq9WrV2vKlCk6evSoHA6HPv/88yviunTpovnz56tXr14N7hMAAAAAAAAAACtQhGiEhgwZoh07duj999/X4sWLdeDAAeXm5ioqKkpJSUmaNGmS7r//frVo0cLXQwUAAAAAAAAAoEoUIdzMmjVLs2bN8mibnTp1kmEYdT6vRYsWevTRRyssVg0AAAAAAAAAQFPCwtQAAAAAAAAAAMASFCEAAAAAAAAAAIAlKEIAAAAAAAAAAABLUIQAAAAAAAAAAACWoAgBAAAAAAAAAAAsQRECAAAAAAAAAABYgiIEAAAAAAAAAACwBEUIAAAAAAAAAABgCYoQAAAAAAAAAADAEhQhAAAAAAAAAACAJShCAAAAAAAAAAAAS1CEAAAAAAAAAAAAlqAIAQAAAAAAAAAALEERAgAAAAAAAAAAWIIiBAAAAAAAAAAAsARFCAAAAAAAAAAAYAmKEAAAAAAAAAAAwBIUIQAAAAAAAAAAgCUoQgAAAAAAAAAAAEtQhAAAAAAAAAAAAJagCAEAAAAAAAAAACwR6OsBoPFyOp3mdmZmpg9HgsamsLBQOTk5kqSMjAyFhob6eERA/ZDL8AfkMfwBeQx/QS7DH5DH8BfkMvyBL/LY/Tqw+/XhhqAIgSplZ2eb24MHD/bhSAAAAAAAAAAA3pSdna1OnTo1uB0exwQAAAAAAAAAACxhMwzD8PUg0DgVFRVp586dkqSYmBgFBnLjDMpkZmaad8ds3rxZcXFxPh4RUD/kMvwBeQx/QB7DX5DL8AfkMfwFuQx/4Is8djqd5hNyevfurZCQkAa3yVVlVCkkJESDBg3y9TDQyMXFxSk+Pt7XwwAajFyGPyCP4Q/IY/gLchn+gDyGvyCX4Q+8mceeeASTOx7HBAAAAAAAAAAALEERAgAAAAAAAAAAWIIiBAAAAAAAAAAAsARFCAAAAAAAAAAAYAmKEAAAAAAAAAAAwBIUIQAAAAAAAAAAgCUoQgAAAAAAAAAAAEvYDMMwfD0IAAAAAAAAAADgf7gTAgAAAAAAAAAAWIIiBAAAAAAAAAAAsARFCAAAAAAAAAAAYAmKEAAAAAAAAAAAwBIUIQAAAAAAAAAAgCUoQgAAAAAAAAAAAEtQhAAAAAAAAAAAAJagCAEAAAAAAAAAACxBEQIAAAAAAAAAAFiCIgQAAAAAAAAAALAERQjgKvf444/LZrOZfzp16uSxtmfNmlWh7dr8+eCDDzzWP/zL3Llz65xPL774osfHkZOTo1dffVU33HCD4uLiFBISooSEBN16662aN2+eHA6Hx/uE//BlHk+fPr3Ofa9fv94jfcP/bdu2TU899ZQGDhyouLg4BQcHq127dhowYIAefPBBzZs3T6dPn/Zon/n5+Zo9e7aGDx+u+Ph4BQcHKz4+XiNGjNBbb72l/Px8j/aHq4O3cpnPyfCUtWvX1jmX3P/MnTvXY2NhXkZ9+TqPmZNhhU2bNmnGjBkaMGCAIiMjFRQUpJYtW6pbt26aNGmSFixYoOLiYkv6bozXLQK93iOARmPz5s16/fXXfT0MoMn49NNP9eCDDyo7O7vC68ePH9fx48e1cuVKvfbaa1q4cKGSkpJ8NEoA8J4zZ87oiSee0Pz58684lpmZqczMTG3fvl0pKSmaMWOG/vd//9cj/aalpWnKlCk6evRohddPnjypkydPas2aNXrllVe0YMECXXfddR7pE/7NV7kM+Frbtm090g7zMnzJU3kMeMK5c+f00EMP6eOPP77iWF5envLy8nTo0CF99NFHevbZZ/X+++/rhhtu8Fj/jfW6BUUI4CrlcDj00EMPqbS01Cv9DRo0SIMHD64xrnv37l4YDZq6Hj16aOTIkTXGDRo0yGN9rl69WhMmTJDT6ZQkNW/eXCNHjlRMTIwOHTqkr7/+WoZhaNu2bRo5cqS++eYbtWvXzmP9w//4Io/LjRw5Uj169KgxjhxGdY4fP65hw4ZVuODUuXNnDRgwQFFRUSosLNTBgwf13XffqaioyGP97tixQ2PHjlVeXp4kKSgoSCNGjFB8fLxOnDih1NRUOZ1OHTlyRGPGjNGGDRvUq1cvj/UP/+OrXC7H52Q0RPv27TVjxoxax69evVoHDx6UJMXGxmrUqFENHgPzMhqqMeRxOeZkNERhYaFGjx6tb7/91nwtJiZG/fv3V3x8vLKzs7V7924dOXJEknT48GGNHj1aqampHinQNurrFgaAq9ILL7xgSDIkGffdd5+5nZCQ4LE+Zs6cabY7c+ZMj7WLq1NKSoqZT9OmTfNq37m5uUZERITZ/8iRI42cnJwKMdu3bzc6duxoxgwfPtyrY0TT4Ms8njZtmtl3SkqKV/uG/zl//rzRpUsXM6cGDBhgbNiwodLYvLw8Y9GiRcbChQsb3G9JSYmRmJho9tu3b18jPT29QszRo0eNvn37mjFJSUmGw+FocN/wT77KZT4nwxecTqfRtm1bM/eeeOKJBrfJvAxvsyKPmZPhKc8995yZS3a73XjxxReNS5cuVYgpLS01Fi5caLRq1cqM7dOnT4P7buzXLVgTArgK7du3z3zG+JQpUzR69Ggfjwho3F566SWdP39ekpSYmKgVK1YoKiqqQky/fv30z3/+U0FBQZKkNWvWaPXq1V4fKwB4w29+8xvzG1xDhw7V119/XeVt5C1atNDkyZN1zz33NLjfOXPm6PDhw5Kk1q1ba+XKlUpISKgQ06lTJ61cuVKtW7eWJB04cED/+Mc/Gtw3/JOvchnwhVWrVlVY02TatGkNbpN5Gd5mRR4DnpKSkmJuP/bYY3r66acVGhpaIcZms+mee+7Ru+++a762Y8cO7dy5s0F9N/brFhQhgKuMYRh66KGHVFxcrNatW+vPf/6zr4cENGoOh0Nz5swx959//nk1b9680tg+ffpU+BD85ptvWj4+APC27777Tn//+98lSeHh4Zo/f36V86Knuc+rv/nNbxQXF1dpXFxcnH79619Xeh5Qzpe5DPjCe++9Z273799fffr0aXCbzMvwNivyGPCEixcvKj093dy/9957q42/8847K3zuOHDgQL37bgrXLShCAFeZ2bNna8OGDZKkV155RW3atPHxiIDGbe3atea3CcLDw3X33XdXG//AAw+Y26tXr1ZBQYGl4wMAb3vrrbfM7QcffFDx8fFe6ffQoUPas2ePuT99+vRq492P79ixw/ymLlDOV7kM+MKFCxe0YsUKc98T3x5nXoa3WZHHgKfk5+dX2I+IiKg2PiAgQC1btjT3G7Jma1O4bkERAriKZGRk6KmnnpIk3XzzzXrwwQd9PCKg8VuzZo25PWTIEAUHB1cbP3jwYPMbB0VFRUpLS7N0fADgTS6XSwsXLjT3p0yZ4rW+U1NTze2kpKQaF9Fr3769unXrZu67z+eAL3MZ8IUPP/zQXFg9KChI9913X4PbZF6Gt1mRx4CnxMTEKCQkxNzfvXt3tfFnzpzRmTNnzP2+ffvWu++mcN0i0PIeADQajzzyiPLy8tSsWTO9/fbbstlsXus7KytL8+bN04EDB1RQUKDWrVurY8eOuvnmm9WlSxevjQP+4fz581q8eLH27NmjCxcuqFWrVmrfvr1uuukmJScne7SvvXv3mtsDBgyoMT4wMFC9e/fWN998Y54/atQoj44J/sGbeXy5Y8eO6e9//7uOHj2qoqIiRUZGKjExUUOHDq3xAgKubrt27dLFixclSWFhYerfv7+Ki4s1d+5cLViwQHv37tXFixcVHR2tfv366Yc//KGmTZumZs2aNbjvus7H5XEHDx684nzAl7l8OT4nwxvcH2Fz6623KiYmpsFtMi/D26zI48sxJ6O+goKCNG7cOC1btkyS9MILL2js2LFVPhbpqaeeMu9+GDlypJKSkurdd1O4bkERArhKLFq0SJ9++qkk6cknn7T8Atfl3nrrrQq3vLu78cYbNWvWLC7UotaWL1+u5cuXV3qsd+/e+sMf/qBJkyZ5pK/9+/eb25cvsleVjh07mr/M9+3b55FxwP94M48vN2vWrCqPjRs3Ti+88IKuvfZaS/pG07ZlyxZzu3v37jp8+LAmTpyoXbt2VYg7efKkTp48qX/961/605/+pCVLltT6AlVV6jsfl2M+hjtf5vLl+JwMqx06dEgbN2409z31CBvmZXiTVXl8OeZkNMQf//hHffHFF8rPz9f27dvVp08fPfPMM7rxxhsVHx+v7Oxs7dixQy+99JLWr18vSUpOTq6woHV9NIXrFjyOCbgK5Obm6le/+pUkqVu3bnr66ad9PKKKNmzYoDFjxugPf/iDr4cCP7Bz505NnjxZDzzwgJxOZ4Pby83NNbdjY2NrdU7btm3N7bNnzzZ4DLj6eDqP62LlypUaMmSIZs+e7dV+0TScOHHC3Lbb7RozZox50bZHjx768Y9/rOnTp1e4SHv06FENHTpU27dvb1DfzMfwJF/mcl3wORme4P7t8aioKN12220eaZd5Gd5kVR7XBXMyatKjRw+tX79eHTp0kCQdPnxY06dPV7du3RQaGqqOHTtq/PjxWr9+vSIiIjRjxgxt2rTJjK+vpjAfU4QArgKPP/64+Zy5t99+u8Znw3lSr1699Nxzz2ndunXKyspSSUmJLl68qG3btun5559XdHS0JMkwDP3Xf/2XXn75Za+NDU1P586d9dRTT+nLL7/UqVOnVFxcrPz8fO3evVt//vOfK3yzau7cufrlL3/Z4D7dF5cKDQ2t1TnucZcvTgX4Io8lyWaz6brrrtMrr7yitLQ05ebmyuFw6Ny5c9q4caN++9vfqkWLFpIkh8OhGTNmaNGiRR7pG/6jfME7Sdq6dauOHz+u0NBQffjhh9q7d6/ef/99paSk6Ntvv1Vqaqr5e76goECTJ0+Ww+God9/Mx/AkX+ZyOT4nwxsMw9AHH3xg7t93330ee6wY8zK8xco8LsecDE/p27evDhw4oDfeeENhYWFVxo0dO1ZTpkypsDh1fTWJ+dgA4NdWrVplSDIkGdOmTas0JiUlxYxJSEjwWN+5ubk1xpw+fdoYPHiw2X9QUJBx6NAhj40B/uPcuXOGy+WqNubixYvG+PHjzXySZKxbt65B/drtdrOtr776qlbnPPPMM+Y5I0eObFD/8C++ymPDqN2cfPDgQaNr165mv5GRkcb58+cb3Df8x09+8pMKuSnJWLx4cZXxGzdurDCPpqSk1LvvLl26mO28++67tTrn3XffNc9JTEysd9/wP77MZcPgczK8Z82aNRXyfOvWrR5rm3kZ3mJlHhsGczI868yZM8b06dONoKAgQ5LRtm1b4+677zZ+9rOfGZMnTzY6depUIZ9/9rOfGU6ns0F9NoXrFtwJAfixgoIC/fznP5dUdrviq6++6tX+IyMja4yJjY3Vp59+asY6HA795S9/sXpoaIIiIiJkt1f/ays8PFyLFy+usKBTQ7+hEhISYm6XlJTU6pzi4mJzu7bfQsDVwVd5LNVuTu7atav++c9/KigoSFLZbblz5sxpcN/wH+5zoiQNGjRIP/rRj6qMHzJkiO666y5zvyF31zAfw5N8mcsSn5PhPe6PsOnZs6dH13xiXoa3WJnHEnMyPOfgwYPq37+/5s6dK7vdrtmzZysjI0NLlizR22+/rUWLFunIkSP68MMP1apVK0nSO++80+C735vCfEwRAvBjTz/9tNLT0yVJ//M//2PePtjYxMTEaMaMGeb+ypUrfTgaNHWhoaF68sknzf01a9ZU+OVaV+WPp5GkwsLCWp3jHud+PlBbns7juujRo4fuuecec585Ge4un9MmTJhQ4znuMe4LSjakb+ZjNJQvc7ku+JyMhrh06ZKWLl1q7k+fPt2j7TMvwxuszuO6YE5GdZxOp+666y6dPHlSUllx4eGHH1ZAQECFOJvNpkmTJunjjz82X5s9e7Y2b95c776bwnxMEQLwU9u2bdMbb7whSRo+fLimTZvm4xFVb+TIkeb2kSNHal25BSrjnk+XLl3SsWPH6t1WVFSUuZ2VlVWrc06fPm1u1+ZbNUBlPJnHDel77969XusXjZ/7nChJ11xzTY3nuMfk5eUpLy+vwX0zH6OhfJnLdcXnZNTXxx9/bOZpQECApkyZ4tH2mZfhDVbncV0xJ6MqS5cu1a5duySVfbHr/vvvrzZ+xIgRGj16tLmfkpJS776bwnwcaHkPAHxix44dKi0tlSQdP35c119/fZWx2dnZ5nZmZmaF2GeeeUa33XabdQP9j7i4uAr7ubm5V7wG1FZl+VRf3bt3Ny/C1vYi8PHjx83tHj161LtvXN08mccN6dub/aLxu3xOq823pi6PycvLU3h4eJ377t69u/mNQ+ZjNJQvc7mu+JyM+nJ/hM2YMWM8njfMy/AGq/O4rpiTUZXPP//c3B42bFitzhkxYoS++OILSdLWrVvr3XdTuG5BEQK4Chw+fFiHDx+uVWxJSYm++eYbc9+9QGGlgoKCCvthYWFe6Rf+yZP5lJycrE8++USStH379hrjnU6n+e2H8vOB+vDlvOjeN/Mx3PXq1avCfm2+CX55TPnzb+vKfT6tzXwsld0ZWtn5gC9zua74nIz6yMjIUGpqqrlvxSNsmJdhNW/kcV0xJ6Mq5Y9hkq6847Iq7nEXLlyod99N4boFj2MC0Ci4T5JhYWFq2bKlD0eDpu7yX7oN+WbK8OHDze20tLQab7fdsmWL+cE0JCREQ4YMqXffuLp5Mo8b0jff7IK7zp07q0uXLub+nj17ajzHPSYyMrLe/1l3n4/379+vzMzMauNPnTqlgwcPVno+4Mtcris+J6M+PvjgA/PO+IiICN1xxx0e74N5GVbzRh7XFXMyquK+uPPZs2drdY77XecRERH17rspXLegCAH4qenTp8swjFr9cX/uXEJCQoVj3vqmwdy5c83toUOHeqVP+C/3nE5OTlZMTEy92xo2bJj5TceLFy9WWDyqMu65PHr0aL4Zg3rzZB7XhcPh0Pz58839W265xSv9oulwX5x32bJlNca7xzTkd3y3bt0qPJPf/fEMlXE/3rt3byUmJta7b/gnX+VyXfE5GfXx/vvvm9uTJ09WSEiIx/tgXobVvJHHdcWcjKp07NjR3F6zZk2tznG/06dr16717rspXLegCAHAEvn5+bWO/etf/6qvv/7a3J86daoVQ0ITVpd8WrZsWYULqA3Np6CgIP30pz8195999lkVFhZWGrtr164Kv8xnzJjRoL7hX3yZx3Xp+3e/+52OHDli7vt68T80Po888oiCgoIklT279qOPPqoyNi0trcKF24Z+ueHRRx81t1999dUqF947ffq0Xn31VXOf+RiV8VUu8zkZVtu8ebP5bHDJ2kfYMC/DKt7KY+ZkeMqoUaPM7X379mnevHnVxqempprrQUjS2LFj6913k7huYQC46qWkpBiSDElGQkJCtbFHjx41YyUZa9asqTRu1qxZxujRo42PP/7YKCwsrDTmzJkzxmOPPVahvYEDBxoul6uBPxH8TUpKijF48GBj3rx5xoULFyqNuXjxovH8888bgYGBZj516NDByM/PrzR+zZo1FXLv6NGjVfafk5NjREREmLFjxowxcnJyKsR89913RqdOncyY4cOH1/vnhX/yZR4/+OCDxsSJE43PP//ccDgclcakp6cb99xzT4X27rrrrnr9rPB/v/rVr8w8ad68ubF48eIrYlJTU43o6Ggz7vrrrzdKS0uviKvtZwvDMIySkhIjMTHRjO3fv79x7NixCjHp6elGv379zJikpKQq8x7wRS7zORlWe/TRRyvMgXXFvIzGwFt5zJwMT3E4HEb37t3NHAkJCTFmz55tOJ3OCnGlpaXGhx9+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6eOPP9Y111xTqzE6HA499thjeuuttyq8XlRUpA0bNmjDhg168803tWzZsmrbfP311/XEE0/I5XJdcezChQu6cOGC9u/fr7lz52rEiBFavHixoqKiajVGbzt37px++tOfaunSpVccy8rKUlZWltatW6eXXnpJc+bM0cSJE2vd9ieffKLp06frwoULFV7fv3+/9u/fr3fffVcfffSRbrvttmrbKS4u1v3336/0Wm0yAAAReUlEQVTFixdXeP3UqVM6deqUUlNT9c4772jJkiW1HltD7d27V3fffbf27t1b4fWMjAwtWrRIixYt0rPPPluh4AEAAICmhyIEAAAA0Ah88sknevjhh839li1basiQIYqPj1dgYKAuXLigAwcOaNeuXSopKam2rXXr1un222/XxYsXJUmBgYEaOHCgunfvrqCgIKWnp2v9+vUqKirS/v37dcMNNygtLU3Jyck1jvPJJ580CxC9evVS//79ZbPZtG3bNu3atUuSdODAAY0YMUIbN25Uly5dKm3n1KlTZgGiS5cuSk5OVkxMjEJCQnT+/Hnt3LlTu3fvliSlpqZq1KhR2rRpk4KDg2scozedPn1aI0aMqHAhPTk5Wf369VN4eLjOnDmj9evXKycnR+fPn9ekSZM0b948TZkypca2v/rqK/385z+Xy+VSx44dNWTIELVs2VJHjx7V2rVr5XQ6VVhYqEmTJmnXrl3q3Llzpe0YhqFJkyZpxYoV5msxMTEaNmyYWrVqpfT0dP373/9WWlqa7rrrLnXt2rXKMU2YMEG9evXS5s2btWXLFknSoEGDNHjw4Ctir7/++irbOXXqlEaNGqVTp04pIiJCN998s9q2baucnBylpqaaRZfnn39e11xzjSZPnlzj+wUAAIBGygAAAADgc3379jUkGZKMX/ziF0ZBQUGlcXl5ecbixYuNJ598stLjmZmZRmxsrNnWvffea2RkZFwRd/r0aWPChAlmXO/evQ2n03lF3NGjR82YoKAgQ5IRFRVlrFy58orYzz77zGjdurUZP2zYMKO0tLTScb777rvGG2+8UenYyn3//ffGwIEDzfZeeOGFKmNTUlLMuGnTplUZV1szZ84025s5c2alMS6Xyxg+fLgZN2DAAGPLli1XxBUWFhqzZs0ybDabIckICwszjhw5UmmbCQkJZnvBwcFGWFiYMW/evCvex127dhnt27c3Yx944IEqf5a3337bjJNkPP3000ZJSUmFmOPHjxs33nij2W95bEpKSr3fn8tNmzatws8myfjd7353Ra7n5uYaI0aMMGO7dOlSZR4BAACg8WNNCAAAAMDH8vPz9f3330uSOnTooNdff13NmzevNLZFixb60Y9+pJdeeqnS408//bSysrIkSQ899JAWLFig9u3bXxEXGxurjz76SMOHD5ck7dy5s8ZH8TgcDtntdq1YsUI/+MEPrjg+btw4LV++XDabTZK0du1arVy5stK2HnzwQf3iF7+odGzl+vTpoy+//FJt27aVJP3tb3+r9PFNvjJ//nytWbNGktSvXz/9+9//1sCBA6+ICwkJ0cyZM/XMM89IKlsH4b//+79rbL+kpERLlizR1KlTzfe0XM+ePfX222+b+x999FGl63s4nU7NmjXL3P/lL3+pF198UUFBQRXiOnTooJUrVyoxMVHFxcU1jq2hiouL9fvf/14vv/zyFbkeGRmpBQsWKCwsTJJ05MgRbd682fIxAQAAwBoUIQAAAAAfK39skiRFRUVdccG5trKzszV//nxJUqtWrfSXv/yl2viAgAD98Y9/NPfLz63O1KlTdcMNN1R5/Oabb9Z9991n7s+ZM6fGNqvTqlUrTZgwQZKUmZmpPXv2NKg9T/rzn/9sbr/xxhtq0aJFtfG///3vFRERIUlauHChSktLq40fP358pcWecrfeeqtZoMnPz9e+ffuuiPn888+VmZkpqayA9eKLL1bZXnh4uJ5//vlqx+QpMTExevbZZ6s8HhsbW2Gdi/JHPwEAAKDpYU0IAAAAwMdiYmIUGhqqwsJC7dy5U+vWrdPQoUPr3M6XX35pfot9/PjxNV4Ul6TrrrtOzZs316VLl6pd6Lrc/fffX2PMtGnTzILG2rVrZRhGtYWVM2fOaNOmTdq7d6/OnTungoICGYZhHt+6dau5/d1336l37941jsFqmZmZ5qLf7du310033VTjOSEhIRoyZIhWrlypCxcuaNeuXerTp0+V8T/60Y+qbc9ms6lv3746ffq0JCk9PV29evWqELN27Vpze/z48WrZsmW1bU6YMMHMRSvdfvvtCgkJqTamf//+5kLa6enplo4HAAAA1qEIAQAAAPhYUFCQJkyYoAULFsjlcmnUqFGaOHGiJk6cqFtuuUVRUVG1aictLc3cPnDggH7xi1/U6rzyAkF5AaD8MTiVxV133XU1tnfdddfJZrPJMAydP39e6enplS6avGfPHj355JNauXJlrR+zlJOTU6s4q7m/14Zh1Pq9Pnz4sLl94sSJaosQtSm2uOdG+WLO7soLJZIqXTz6cqGhoerVq5fldx544mcDAABA00ARAgAAAGgE/vKXv2jbtm3at2+fHA6HFi5cqIULF8pms6lHjx66+eabNWbMGN12221VfoP81KlT5vaWLVvqdSH53LlzVRYhWrduXau7K1q2bKlWrVrp/PnzksoeE3V5EWLVqlX64Q9/WOf1B/Ly8uoUbxX39/rUqVN6880369zGuXPnqj3eqlWrGttwX9vB4XBccdy9aBMfH1+rcbVv397yIoQnfjYAAAA0DawJAQAAADQCbdq00ZYtWzRr1iy1a9fOfN0wDO3du1fvvPOOJk6cqHbt2umll16q9M4BT3xbvLLFjctVtVh2ZdwLGZcXDrKzszV58mSzANG5c2e9/PLL2rBhg06dOqVLly6ptLRUhmHIMAzNnDnTPLemdRS8xer3WlK91wZxl5+fb27X9t+vqiKUJ3niZwMAAEDTwJ0QAAAAQCPRokULzZw5U88884y2bdumdevW6euvv9b69evNb7SfO3dOv//977Vp0yYtW7aswsVc94vHr732mn71q195dHyXLl2qdWxBQYG5HR4eXuHYnDlzzIv4/fv317p166q9w6Kx3P3gzv29vvPOO7Vs2TIfjqZq7uOs7b+f+78dAAAA0FDcCQEAAAA0Mna7XQMHDtQTTzyhZcuWKSsrS+vXr9edd95pxixfvlxLly6tcF5sbKy5ffDgQY+P69y5c7UqCFy8eLHCnQLR0dEVjn/11Vfm9h/+8IcaH/F07NixOo7Uela/157i/t5nZGTU6pyTJ09aNRwAAABchShCAAAAAI2c3W7XjTfeqI8//lhjx441X1+xYkWFOPdFo1etWuXxcRiGoW+++abGuG+++UaGYUiSIiIirlgPwn09hZ49e1bblsvl0oYNG+oxWmtdf/315vbu3btrfYHf2/r162dub968ucb4wsJC7dq1q8Y4HqcEAACA2qIIAQAAADQRNptNt912m7mflZVV4fjYsWMVGFj2xNVDhw7p008/9fgY5s2bV2PM3Llzze1hw4ZdccHabv///4bU9IigTz75RKdPn67bIL2gc+fOSk5ONvdfe+01H46masOGDTO3P/30U128eLHa+GXLlqmwsLDGdt0XR2fRaAAAAFSHIgQAAADgY3l5eSopKalV7PHjx83tmJiYCsfat2+vqVOnmvsPP/xwrR+tU1paquzs7BrjPvjgA23cuLHK419//bUWLlxo7j/00ENXxHTp0sXcXr58eZVtZWdn6/HHH69xTL7y5JNPmtt//etf9eWXX9b6XG8VVsaNG6e2bdtKKluk+plnnqkyNi8vT88++2yt2o2KijK3eXwTAAAAqkMRAgAAAPCxb7/9VgkJCZo5c6Z2795daYzL5dL8+fP1xhtvmK/deuv/tXcvIVH1YRzHf9aYF2gMDS8VdjHLCBukTCMqMTObosAauikGtZCgjRG1iBZGki3KpBA0XYQU5lSECAYmFEokToKJkqCYUiPq5CIJ1Gl8F8KQqNl7ORq+38/qzJxn/jwzsxnOb87/sU6py8vLU0REhKSJi8Px8fGy2+3yeDzTrvv582fdvXtXMTExqqio+GWfvr6+8ng8Onz48LTbPdXU1OjIkSPerZh27949bY+HDh3yHt+8eVPl5eVTat6/f689e/aot7d30nDlP0lGRoaSk5MlSW63WwcPHlR+fv6Mg52Hh4f1+PFjJScn68KFC3PSo8lkmhQsFBYW6urVq1PuXujt7ZXValVnZ6f8/PxmXTc2NtZ7/PLly0kzQAAAAICfmea7AQAAAAAT/4zPzc1Vbm6uwsLCFBcXp/DwcJlMJvX19cnhcMjpdHrrd+3apRMnTkxZJyIiQi9evJDVatXg4KCcTqdsNptCQ0OVkJCgsLAweTweuVwutba2qquryxsazGbFihVKT0/XnTt3lJaWpi1btiguLk7SRGjw4cMHb21oaKjKysqmnR1w5swZ3b59Wx0dHRoZGVFmZqby8vJksVjk7++v1tZWNTU1SZIsFov279+vW7du/a3Pcy4sXrxYT5480b59+9Tc3KzR0VFduXJFubm5SkxMVGRkpJYsWaKhoSF1dHSora3Ne/H/6NGjc9Zndna2qqurVV1dLUm6ceOGiouLlZSUpKCgIHV3d+v169caGxtTQkKCoqKi9OjRI0mTt876WXx8vCIjI9XT06O+vj7FxMQoNTVVy5cv937n8fHxOn78+Ny8SQAAAPyxCCEAAACAeRYQECCTySS32y1pYtZDTU3NjPXHjh1TWVnZLy8QNzU16ezZs3r16pUkqb+/X1VVVTOuGRYWpujo6Fl7zc/P1/DwsEpKStTS0qKWlpYpNevXr9fz588VFRU17Rp+fn6qqqrSgQMH1NXVJUlqb29Xe3v7pLqdO3eqoqJCJSUls/Y1X0JCQtTQ0KCcnBw9ePBAbrdb379/V11d3YyvCQgI0NatW+esRx8fH9ntdmVkZOjp06eSJra6qqysnFS3Y8cO2e12Xbp0yfvc0qVLp11z0aJFKioqUnp6ukZGRtTX16eHDx9OqsnKyiKEAAAAACEEAAAAMN8SEhLU39+v2tpa1dfXq7m5WZ2dnXK5XPrx44fMZrOioqKUmJiojIwMbd++fdY1V69erdraWr19+1aVlZV68+aNent7NTQ0JJPJpJCQEEVHR2vbtm1KTU1VUlKSd6j1r/j6+qq4uFg2m02lpaVqbGyU0+lUYGCgYmJiZLPZlJ2dPWlw8XQ2bNig5uZm3b9/X8+ePdPHjx81Ojqq8PBwxcbG6tSpU7LZbL/V03wLCAhQUVGRLl++rPLyctXV1amjo0Mul0sej0dBQUFat26dLBaL9u7dq7S0NJnN5jnt0d/fX3a7XdXV1SotLdW7d+80ODiokJAQbdq0SadPn1ZmZqZ8fX319etX7+uWLVs245pWq1UOh0P37t1TfX29Pn36pOHh4d++swYAAAD/Dz7j/EIEAAAAMIPu7m6tXbtW0kSw0d3dPb8NwXArV67Uly9fJElOp9M72BoAAAD4JxhMDQAAAACQJDU0NHgDiFWrVhFAAAAA4F8jhAAAAAAAaGxsTDk5Od7HJ0+enMduAAAAsFAQQgAAAADAAnft2jUVFhbK5XJNe769vV0pKSlqbGyUJAUGBur8+fNz2SIAAAAWqD9/yhsAAAAA4F/p6enR9evXdfHiRVksFm3cuFFms1nfvn1Ta2urWlpaJg2ULigo0Jo1a+avYQAAACwYhBAAAAAA8D/hdrvlcDjkcDimPW82m1VYWKisrKw57gwAAAALFSEEAAAAACxwBQUFSkpKUl1dndra2jQwMKCBgQGNj48rODhYmzdvVkpKis6dO6fg4OD5bhcAAAALiM/4z/fcAgAAAAAAAAAA/EcYTA0AAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAxBCAEAAAAAAAAAAAzxF7nj9TEc+857AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 487, "width": 784 } }, "output_type": "display_data" } ], "source": [ "fig, axs = plt.subplots(1, 1, figsize=(8, 5), sharex=False, sharey=False, gridspec_kw=None)\n", "\n", "for name, g in grouped:\n", " axs.plot(g[\"sepal_length\"], g[\"sepal_width\"], '.', alpha=0.5, label=name)\n", " \n", "axs.legend(loc=1)\n", "axs.grid()\n", "axs.set(xlabel=\"sepal length\", ylabel=\"sepal width\")\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.10" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }