diff --git a/f22/meena_lec_notes/lec-35/lec_35_pandas3_data_transformation.ipynb b/f22/meena_lec_notes/lec-35/lec_35_pandas3_data_transformation.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..e45724e9b33b1a169b74b0a439fccca96ec51184 --- /dev/null +++ b/f22/meena_lec_notes/lec-35/lec_35_pandas3_data_transformation.ipynb @@ -0,0 +1,4554 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "CeWtFirwteFY" + }, + "outputs": [], + "source": [ + "# known import statements\n", + "import pandas as pd\n", + "import sqlite3 as sql # note that we are renaming to sql\n", + "import os\n", + "\n", + "# new import statement\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RHvDCo4fhXBx" + }, + "source": [ + "# Lecture 35 Pandas 3: Data Transformation\n", + "* Data transformation is the process of changing the format, structure, or values of data. \n", + "* Often needed during data cleaning and sometimes during data analysis\n", + "\n", + "Possible data transformation: \n", + "* Parsing/Extraction\n", + " * Parse CSV to Pandas DataFrame\n", + "* Missing Value Manipulations\n", + " * Dropping\n", + " * Imputation: replace missing value with substitute values\n", + "* Typecasting, Formating, Renaming\n", + " * Typecasting: covert one column from int to float \n", + " * Formating: format the time column to datatime object \n", + " * Renaming: rename column and index names \n", + "* Applying/Mapping \n", + "* Filtering, Aggregation, Grouping, and Summarization\n", + " * Covered in Pandas 1 & 2 lectures" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yoLGptrqhbBo" + }, + "source": [ + "# Today's Learning Objectives: \n", + "\n", + "* Missing Value Manipulations\n", + " * check, drop, and fill NaN using Pandas .isna, .dropna, and .fillna\n", + "* Applying/Mapping\n", + " * Use .apply on Pandas Series and DataFrame rows/columns \n", + " * Use .replace to replace all target values \n", + "* Filtering, Aggregation, Grouping, and Summarization\n", + " * More .groupby examples \n", + " * Convert .groupby examples to SQL " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FgnTeNRIswsm" + }, + "source": [ + "# The dataset: Spotify songs\n", + "Adapted from https://www.kaggle.com/datasets/mrmorj/dataset-of-songs-in-spotify.\n", + "\n", + "If you are interested in digging deeper in this dataset, here's a [blog post](https://medium.com/@boplantinga/what-do-spotifys-audio-features-tell-us-about-this-year-s-eurovision-song-contest-66ad188e112a) that explain each column in details. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### WARMUP 1: Establish a connection to the spotify.db database" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 232 + }, + "id": "8y9scvgCnTHl", + "outputId": "c72388f8-576c-4cf2-ef51-352cd11b6c92" + }, + "outputs": [], + "source": [ + "# open up the spotify database\n", + "db_pathname = \"spotify.db\"\n", + "assert os.path.exists(db_pathname)\n", + "conn = sql.connect(db_pathname)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def qry(sql):\n", + " return pd.read_sql(sql, conn)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### WARMUP 2: Identify the table name(s) inside the database" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 112 + }, + "id": "ybTqbDSOnR2f", + "outputId": "8dcc943b-9382-4abb-ef78-6c6d56ad89eb" + }, + "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>type</th>\n", + " <th>name</th>\n", + " <th>tbl_name</th>\n", + " <th>rootpage</th>\n", + " <th>sql</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>table</td>\n", + " <td>spotify</td>\n", + " <td>spotify</td>\n", + " <td>1527</td>\n", + " <td>CREATE TABLE spotify(\\nid TEXT PRIMARY KEY,\\nt...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>index</td>\n", + " <td>sqlite_autoindex_spotify_1</td>\n", + " <td>spotify</td>\n", + " <td>1528</td>\n", + " <td>None</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " type name tbl_name rootpage \\\n", + "0 table spotify spotify 1527 \n", + "1 index sqlite_autoindex_spotify_1 spotify 1528 \n", + "\n", + " sql \n", + "0 CREATE TABLE spotify(\\nid TEXT PRIMARY KEY,\\nt... \n", + "1 None " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = qry(\"SELECT * from sqlite_master\")\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### WARMUP 3: Use pandas lookup expression to identify the column names and the types: use .iloc" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CREATE TABLE spotify(\n", + "id TEXT PRIMARY KEY,\n", + "title BLOB,\n", + "song_name BLOB, \n", + "genre TEXT,\n", + "duration_ms INTEGER, \n", + "key INTEGER, \n", + "mode INTEGER, \n", + "time_signature INTEGER, \n", + "tempo REAL,\n", + "acousticness REAL, \n", + "danceability REAL, \n", + "energy REAL, \n", + "instrumentalness REAL, \n", + "liveness REAL, \n", + "loudness REAL, \n", + "speechiness REAL, \n", + "valence REAL)\n" + ] + } + ], + "source": [ + "print(df[\"sql\"].iloc[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### WARMUP 4: Store the data inside `spotify` table inside a variable called `df`" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 632 + }, + "id": "txAH9OIjnoQv", + "outputId": "ac9152ba-32df-4fb2-d4e0-a97f50fe58fb" + }, + "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>title</th>\n", + " <th>song_name</th>\n", + " <th>genre</th>\n", + " <th>duration_ms</th>\n", + " <th>key</th>\n", + " <th>mode</th>\n", + " <th>time_signature</th>\n", + " <th>tempo</th>\n", + " <th>acousticness</th>\n", + " <th>danceability</th>\n", + " <th>energy</th>\n", + " <th>instrumentalness</th>\n", + " <th>liveness</th>\n", + " <th>loudness</th>\n", + " <th>speechiness</th>\n", + " <th>valence</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>7pgJBLVz5VmnL7uGHmRj6p</td>\n", + " <td></td>\n", + " <td>Pathology</td>\n", + " <td>Dark Trap</td>\n", + " <td>224427</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>115.080</td>\n", + " <td>0.401000</td>\n", + " <td>0.719</td>\n", + " <td>0.493</td>\n", + " <td>0.000000</td>\n", + " <td>0.1180</td>\n", + " <td>-7.230</td>\n", + " <td>0.0794</td>\n", + " <td>0.1240</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>0vSWgAlfpye0WCGeNmuNhy</td>\n", + " <td></td>\n", + " <td>Symbiote</td>\n", + " <td>Dark Trap</td>\n", + " <td>98821</td>\n", + " <td>5</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>218.050</td>\n", + " <td>0.013800</td>\n", + " <td>0.850</td>\n", + " <td>0.893</td>\n", + " <td>0.000004</td>\n", + " <td>0.3720</td>\n", + " <td>-4.783</td>\n", + " <td>0.0623</td>\n", + " <td>0.0391</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>7EL7ifncK2PWFYThJjzR25</td>\n", + " <td></td>\n", + " <td>BRAINFOOD</td>\n", + " <td>Dark Trap</td>\n", + " <td>101172</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>189.938</td>\n", + " <td>0.187000</td>\n", + " <td>0.864</td>\n", + " <td>0.365</td>\n", + " <td>0.000000</td>\n", + " <td>0.1160</td>\n", + " <td>-10.219</td>\n", + " <td>0.0655</td>\n", + " <td>0.0478</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>1umsRbM7L4ju7rn9aU8Ju6</td>\n", + " <td></td>\n", + " <td>Sacrifice</td>\n", + " <td>Dark Trap</td>\n", + " <td>96062</td>\n", + " <td>10</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>139.990</td>\n", + " <td>0.145000</td>\n", + " <td>0.767</td>\n", + " <td>0.576</td>\n", + " <td>0.000003</td>\n", + " <td>0.0968</td>\n", + " <td>-9.683</td>\n", + " <td>0.2560</td>\n", + " <td>0.1870</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>4SKqOHKYU5pgHr5UiVKiQN</td>\n", + " <td></td>\n", + " <td>Backpack</td>\n", + " <td>Dark Trap</td>\n", + " <td>135079</td>\n", + " <td>5</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>128.014</td>\n", + " <td>0.007700</td>\n", + " <td>0.765</td>\n", + " <td>0.726</td>\n", + " <td>0.000000</td>\n", + " <td>0.6190</td>\n", + " <td>-5.580</td>\n", + " <td>0.1910</td>\n", + " <td>0.2700</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35872</th>\n", + " <td>46bXU7Sgj7104ZoXxzz9tM</td>\n", + " <td>Euphoric Hardstyle</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>269208</td>\n", + " <td>4</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>150.013</td>\n", + " <td>0.031500</td>\n", + " <td>0.528</td>\n", + " <td>0.693</td>\n", + " <td>0.000345</td>\n", + " <td>0.1210</td>\n", + " <td>-5.148</td>\n", + " <td>0.0304</td>\n", + " <td>0.3940</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35873</th>\n", + " <td>0he2ViGMUO3ajKTxLOfWVT</td>\n", + " <td>Greatest Hardstyle Playlist</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>210112</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>149.928</td>\n", + " <td>0.022500</td>\n", + " <td>0.517</td>\n", + " <td>0.768</td>\n", + " <td>0.000018</td>\n", + " <td>0.2050</td>\n", + " <td>-7.922</td>\n", + " <td>0.0479</td>\n", + " <td>0.3830</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35874</th>\n", + " <td>72DAt9Lbpy9EUS29OzQLob</td>\n", + " <td>Best of Hardstyle 2020</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>234823</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>154.935</td>\n", + " <td>0.026000</td>\n", + " <td>0.361</td>\n", + " <td>0.821</td>\n", + " <td>0.000242</td>\n", + " <td>0.3850</td>\n", + " <td>-3.102</td>\n", + " <td>0.0505</td>\n", + " <td>0.1240</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35875</th>\n", + " <td>6HXgExFVuE1c3cq9QjFCcU</td>\n", + " <td>Euphoric Hardstyle</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>323200</td>\n", + " <td>6</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>150.042</td>\n", + " <td>0.000551</td>\n", + " <td>0.477</td>\n", + " <td>0.921</td>\n", + " <td>0.029600</td>\n", + " <td>0.0575</td>\n", + " <td>-4.777</td>\n", + " <td>0.0392</td>\n", + " <td>0.4880</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35876</th>\n", + " <td>6MAAMZImxcvYhRnxDLTufD</td>\n", + " <td>Best of Hardstyle 2020</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>162161</td>\n", + " <td>9</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>155.047</td>\n", + " <td>0.001890</td>\n", + " <td>0.529</td>\n", + " <td>0.945</td>\n", + " <td>0.000055</td>\n", + " <td>0.4140</td>\n", + " <td>-5.862</td>\n", + " <td>0.0615</td>\n", + " <td>0.1340</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>35877 rows × 17 columns</p>\n", + "</div>" + ], + "text/plain": [ + " id title song_name \\\n", + "0 7pgJBLVz5VmnL7uGHmRj6p Pathology \n", + "1 0vSWgAlfpye0WCGeNmuNhy Symbiote \n", + "2 7EL7ifncK2PWFYThJjzR25 BRAINFOOD \n", + "3 1umsRbM7L4ju7rn9aU8Ju6 Sacrifice \n", + "4 4SKqOHKYU5pgHr5UiVKiQN Backpack \n", + "... ... ... ... \n", + "35872 46bXU7Sgj7104ZoXxzz9tM Euphoric Hardstyle \n", + "35873 0he2ViGMUO3ajKTxLOfWVT Greatest Hardstyle Playlist \n", + "35874 72DAt9Lbpy9EUS29OzQLob Best of Hardstyle 2020 \n", + "35875 6HXgExFVuE1c3cq9QjFCcU Euphoric Hardstyle \n", + "35876 6MAAMZImxcvYhRnxDLTufD Best of Hardstyle 2020 \n", + "\n", + " genre duration_ms key mode time_signature tempo \\\n", + "0 Dark Trap 224427 8 1 4 115.080 \n", + "1 Dark Trap 98821 5 1 4 218.050 \n", + "2 Dark Trap 101172 8 1 4 189.938 \n", + "3 Dark Trap 96062 10 0 4 139.990 \n", + "4 Dark Trap 135079 5 1 4 128.014 \n", + "... ... ... ... ... ... ... \n", + "35872 hardstyle 269208 4 1 4 150.013 \n", + "35873 hardstyle 210112 0 0 4 149.928 \n", + "35874 hardstyle 234823 8 1 4 154.935 \n", + "35875 hardstyle 323200 6 0 4 150.042 \n", + "35876 hardstyle 162161 9 1 4 155.047 \n", + "\n", + " acousticness danceability energy instrumentalness liveness \\\n", + "0 0.401000 0.719 0.493 0.000000 0.1180 \n", + "1 0.013800 0.850 0.893 0.000004 0.3720 \n", + "2 0.187000 0.864 0.365 0.000000 0.1160 \n", + "3 0.145000 0.767 0.576 0.000003 0.0968 \n", + "4 0.007700 0.765 0.726 0.000000 0.6190 \n", + "... ... ... ... ... ... \n", + "35872 0.031500 0.528 0.693 0.000345 0.1210 \n", + "35873 0.022500 0.517 0.768 0.000018 0.2050 \n", + "35874 0.026000 0.361 0.821 0.000242 0.3850 \n", + "35875 0.000551 0.477 0.921 0.029600 0.0575 \n", + "35876 0.001890 0.529 0.945 0.000055 0.4140 \n", + "\n", + " loudness speechiness valence \n", + "0 -7.230 0.0794 0.1240 \n", + "1 -4.783 0.0623 0.0391 \n", + "2 -10.219 0.0655 0.0478 \n", + "3 -9.683 0.2560 0.1870 \n", + "4 -5.580 0.1910 0.2700 \n", + "... ... ... ... \n", + "35872 -5.148 0.0304 0.3940 \n", + "35873 -7.922 0.0479 0.3830 \n", + "35874 -3.102 0.0505 0.1240 \n", + "35875 -4.777 0.0392 0.4880 \n", + "35876 -5.862 0.0615 0.1340 \n", + "\n", + "[35877 rows x 17 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = qry(\"SELECT * FROM spotify\")\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Setting a column as row indices for the `DataFrame`\n", + "\n", + "- Syntax: `df.set_index(\"<COLUMN>\")`\n", + "- Returns a new DataFrame object instance reference.\n", + "- WARNING: executing this twice will result in `KeyError` being thrown. Once you set a column as row index, it will no longer be a column within the `DataFrame`. If you tried this, go back and execute the above cell and update `df` once more and then execute the below cell exactly once." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>title</th>\n", + " <th>song_name</th>\n", + " <th>genre</th>\n", + " <th>duration_ms</th>\n", + " <th>key</th>\n", + " <th>mode</th>\n", + " <th>time_signature</th>\n", + " <th>tempo</th>\n", + " <th>acousticness</th>\n", + " <th>danceability</th>\n", + " <th>energy</th>\n", + " <th>instrumentalness</th>\n", + " <th>liveness</th>\n", + " <th>loudness</th>\n", + " <th>speechiness</th>\n", + " <th>valence</th>\n", + " </tr>\n", + " <tr>\n", + " <th>id</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>7pgJBLVz5VmnL7uGHmRj6p</th>\n", + " <td></td>\n", + " <td>Pathology</td>\n", + " <td>Dark Trap</td>\n", + " <td>224427</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>115.080</td>\n", + " <td>0.401000</td>\n", + " <td>0.719</td>\n", + " <td>0.493</td>\n", + " <td>0.000000</td>\n", + " <td>0.1180</td>\n", + " <td>-7.230</td>\n", + " <td>0.0794</td>\n", + " <td>0.1240</td>\n", + " </tr>\n", + " <tr>\n", + " <th>0vSWgAlfpye0WCGeNmuNhy</th>\n", + " <td></td>\n", + " <td>Symbiote</td>\n", + " <td>Dark Trap</td>\n", + " <td>98821</td>\n", + " <td>5</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>218.050</td>\n", + " <td>0.013800</td>\n", + " <td>0.850</td>\n", + " <td>0.893</td>\n", + " <td>0.000004</td>\n", + " <td>0.3720</td>\n", + " <td>-4.783</td>\n", + " <td>0.0623</td>\n", + " <td>0.0391</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7EL7ifncK2PWFYThJjzR25</th>\n", + " <td></td>\n", + " <td>BRAINFOOD</td>\n", + " <td>Dark Trap</td>\n", + " <td>101172</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>189.938</td>\n", + " <td>0.187000</td>\n", + " <td>0.864</td>\n", + " <td>0.365</td>\n", + " <td>0.000000</td>\n", + " <td>0.1160</td>\n", + " <td>-10.219</td>\n", + " <td>0.0655</td>\n", + " <td>0.0478</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1umsRbM7L4ju7rn9aU8Ju6</th>\n", + " <td></td>\n", + " <td>Sacrifice</td>\n", + " <td>Dark Trap</td>\n", + " <td>96062</td>\n", + " <td>10</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>139.990</td>\n", + " <td>0.145000</td>\n", + " <td>0.767</td>\n", + " <td>0.576</td>\n", + " <td>0.000003</td>\n", + " <td>0.0968</td>\n", + " <td>-9.683</td>\n", + " <td>0.2560</td>\n", + " <td>0.1870</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4SKqOHKYU5pgHr5UiVKiQN</th>\n", + " <td></td>\n", + " <td>Backpack</td>\n", + " <td>Dark Trap</td>\n", + " <td>135079</td>\n", + " <td>5</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>128.014</td>\n", + " <td>0.007700</td>\n", + " <td>0.765</td>\n", + " <td>0.726</td>\n", + " <td>0.000000</td>\n", + " <td>0.6190</td>\n", + " <td>-5.580</td>\n", + " <td>0.1910</td>\n", + " <td>0.2700</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>46bXU7Sgj7104ZoXxzz9tM</th>\n", + " <td>Euphoric Hardstyle</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>269208</td>\n", + " <td>4</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>150.013</td>\n", + " <td>0.031500</td>\n", + " <td>0.528</td>\n", + " <td>0.693</td>\n", + " <td>0.000345</td>\n", + " <td>0.1210</td>\n", + " <td>-5.148</td>\n", + " <td>0.0304</td>\n", + " <td>0.3940</td>\n", + " </tr>\n", + " <tr>\n", + " <th>0he2ViGMUO3ajKTxLOfWVT</th>\n", + " <td>Greatest Hardstyle Playlist</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>210112</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>149.928</td>\n", + " <td>0.022500</td>\n", + " <td>0.517</td>\n", + " <td>0.768</td>\n", + " <td>0.000018</td>\n", + " <td>0.2050</td>\n", + " <td>-7.922</td>\n", + " <td>0.0479</td>\n", + " <td>0.3830</td>\n", + " </tr>\n", + " <tr>\n", + " <th>72DAt9Lbpy9EUS29OzQLob</th>\n", + " <td>Best of Hardstyle 2020</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>234823</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>154.935</td>\n", + " <td>0.026000</td>\n", + " <td>0.361</td>\n", + " <td>0.821</td>\n", + " <td>0.000242</td>\n", + " <td>0.3850</td>\n", + " <td>-3.102</td>\n", + " <td>0.0505</td>\n", + " <td>0.1240</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6HXgExFVuE1c3cq9QjFCcU</th>\n", + " <td>Euphoric Hardstyle</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>323200</td>\n", + " <td>6</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>150.042</td>\n", + " <td>0.000551</td>\n", + " <td>0.477</td>\n", + " <td>0.921</td>\n", + " <td>0.029600</td>\n", + " <td>0.0575</td>\n", + " <td>-4.777</td>\n", + " <td>0.0392</td>\n", + " <td>0.4880</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6MAAMZImxcvYhRnxDLTufD</th>\n", + " <td>Best of Hardstyle 2020</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>162161</td>\n", + " <td>9</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>155.047</td>\n", + " <td>0.001890</td>\n", + " <td>0.529</td>\n", + " <td>0.945</td>\n", + " <td>0.000055</td>\n", + " <td>0.4140</td>\n", + " <td>-5.862</td>\n", + " <td>0.0615</td>\n", + " <td>0.1340</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>35877 rows × 16 columns</p>\n", + "</div>" + ], + "text/plain": [ + " title song_name genre \\\n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p Pathology Dark Trap \n", + "0vSWgAlfpye0WCGeNmuNhy Symbiote Dark Trap \n", + "7EL7ifncK2PWFYThJjzR25 BRAINFOOD Dark Trap \n", + "1umsRbM7L4ju7rn9aU8Ju6 Sacrifice Dark Trap \n", + "4SKqOHKYU5pgHr5UiVKiQN Backpack Dark Trap \n", + "... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM Euphoric Hardstyle hardstyle \n", + "0he2ViGMUO3ajKTxLOfWVT Greatest Hardstyle Playlist hardstyle \n", + "72DAt9Lbpy9EUS29OzQLob Best of Hardstyle 2020 hardstyle \n", + "6HXgExFVuE1c3cq9QjFCcU Euphoric Hardstyle hardstyle \n", + "6MAAMZImxcvYhRnxDLTufD Best of Hardstyle 2020 hardstyle \n", + "\n", + " duration_ms key mode time_signature tempo \\\n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p 224427 8 1 4 115.080 \n", + "0vSWgAlfpye0WCGeNmuNhy 98821 5 1 4 218.050 \n", + "7EL7ifncK2PWFYThJjzR25 101172 8 1 4 189.938 \n", + "1umsRbM7L4ju7rn9aU8Ju6 96062 10 0 4 139.990 \n", + "4SKqOHKYU5pgHr5UiVKiQN 135079 5 1 4 128.014 \n", + "... ... ... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM 269208 4 1 4 150.013 \n", + "0he2ViGMUO3ajKTxLOfWVT 210112 0 0 4 149.928 \n", + "72DAt9Lbpy9EUS29OzQLob 234823 8 1 4 154.935 \n", + "6HXgExFVuE1c3cq9QjFCcU 323200 6 0 4 150.042 \n", + "6MAAMZImxcvYhRnxDLTufD 162161 9 1 4 155.047 \n", + "\n", + " acousticness danceability energy instrumentalness \\\n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p 0.401000 0.719 0.493 0.000000 \n", + "0vSWgAlfpye0WCGeNmuNhy 0.013800 0.850 0.893 0.000004 \n", + "7EL7ifncK2PWFYThJjzR25 0.187000 0.864 0.365 0.000000 \n", + "1umsRbM7L4ju7rn9aU8Ju6 0.145000 0.767 0.576 0.000003 \n", + "4SKqOHKYU5pgHr5UiVKiQN 0.007700 0.765 0.726 0.000000 \n", + "... ... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM 0.031500 0.528 0.693 0.000345 \n", + "0he2ViGMUO3ajKTxLOfWVT 0.022500 0.517 0.768 0.000018 \n", + "72DAt9Lbpy9EUS29OzQLob 0.026000 0.361 0.821 0.000242 \n", + "6HXgExFVuE1c3cq9QjFCcU 0.000551 0.477 0.921 0.029600 \n", + "6MAAMZImxcvYhRnxDLTufD 0.001890 0.529 0.945 0.000055 \n", + "\n", + " liveness loudness speechiness valence \n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p 0.1180 -7.230 0.0794 0.1240 \n", + "0vSWgAlfpye0WCGeNmuNhy 0.3720 -4.783 0.0623 0.0391 \n", + "7EL7ifncK2PWFYThJjzR25 0.1160 -10.219 0.0655 0.0478 \n", + "1umsRbM7L4ju7rn9aU8Ju6 0.0968 -9.683 0.2560 0.1870 \n", + "4SKqOHKYU5pgHr5UiVKiQN 0.6190 -5.580 0.1910 0.2700 \n", + "... ... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM 0.1210 -5.148 0.0304 0.3940 \n", + "0he2ViGMUO3ajKTxLOfWVT 0.2050 -7.922 0.0479 0.3830 \n", + "72DAt9Lbpy9EUS29OzQLob 0.3850 -3.102 0.0505 0.1240 \n", + "6HXgExFVuE1c3cq9QjFCcU 0.0575 -4.777 0.0392 0.4880 \n", + "6MAAMZImxcvYhRnxDLTufD 0.4140 -5.862 0.0615 0.1340 \n", + "\n", + "[35877 rows x 16 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Set the id column as row indices\n", + "df = df.set_index(\"id\")\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Not a Number\n", + "\n", + "- `np.NaN` is the floating point representation of Not a Number\n", + "- You do not need to know / learn the details about the `numpy` package \n", + "\n", + "### Replacing / modifying values within the `DataFrame`\n", + "\n", + "Syntax: `df.replace(<TARGET>, <REPLACE>)`\n", + "- Your target can be `str`, `int`, `float`, `None` (there are other possiblities, but those are too advanced for this course)\n", + "- Returns a new DataFrame object instance reference.\n", + "\n", + "Let's now replace the missing values (empty strings) with `np.NAN`" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "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>title</th>\n", + " <th>song_name</th>\n", + " <th>genre</th>\n", + " <th>duration_ms</th>\n", + " <th>key</th>\n", + " <th>mode</th>\n", + " <th>time_signature</th>\n", + " <th>tempo</th>\n", + " <th>acousticness</th>\n", + " <th>danceability</th>\n", + " <th>energy</th>\n", + " <th>instrumentalness</th>\n", + " <th>liveness</th>\n", + " <th>loudness</th>\n", + " <th>speechiness</th>\n", + " <th>valence</th>\n", + " </tr>\n", + " <tr>\n", + " <th>id</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>7pgJBLVz5VmnL7uGHmRj6p</th>\n", + " <td>NaN</td>\n", + " <td>Pathology</td>\n", + " <td>Dark Trap</td>\n", + " <td>224427</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>115.080</td>\n", + " <td>0.4010</td>\n", + " <td>0.719</td>\n", + " <td>0.493</td>\n", + " <td>0.000000</td>\n", + " <td>0.1180</td>\n", + " <td>-7.230</td>\n", + " <td>0.0794</td>\n", + " <td>0.1240</td>\n", + " </tr>\n", + " <tr>\n", + " <th>0vSWgAlfpye0WCGeNmuNhy</th>\n", + " <td>NaN</td>\n", + " <td>Symbiote</td>\n", + " <td>Dark Trap</td>\n", + " <td>98821</td>\n", + " <td>5</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>218.050</td>\n", + " <td>0.0138</td>\n", + " <td>0.850</td>\n", + " <td>0.893</td>\n", + " <td>0.000004</td>\n", + " <td>0.3720</td>\n", + " <td>-4.783</td>\n", + " <td>0.0623</td>\n", + " <td>0.0391</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7EL7ifncK2PWFYThJjzR25</th>\n", + " <td>NaN</td>\n", + " <td>BRAINFOOD</td>\n", + " <td>Dark Trap</td>\n", + " <td>101172</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>189.938</td>\n", + " <td>0.1870</td>\n", + " <td>0.864</td>\n", + " <td>0.365</td>\n", + " <td>0.000000</td>\n", + " <td>0.1160</td>\n", + " <td>-10.219</td>\n", + " <td>0.0655</td>\n", + " <td>0.0478</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1umsRbM7L4ju7rn9aU8Ju6</th>\n", + " <td>NaN</td>\n", + " <td>Sacrifice</td>\n", + " <td>Dark Trap</td>\n", + " <td>96062</td>\n", + " <td>10</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>139.990</td>\n", + " <td>0.1450</td>\n", + " <td>0.767</td>\n", + " <td>0.576</td>\n", + " <td>0.000003</td>\n", + " <td>0.0968</td>\n", + " <td>-9.683</td>\n", + " <td>0.2560</td>\n", + " <td>0.1870</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4SKqOHKYU5pgHr5UiVKiQN</th>\n", + " <td>NaN</td>\n", + " <td>Backpack</td>\n", + " <td>Dark Trap</td>\n", + " <td>135079</td>\n", + " <td>5</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>128.014</td>\n", + " <td>0.0077</td>\n", + " <td>0.765</td>\n", + " <td>0.726</td>\n", + " <td>0.000000</td>\n", + " <td>0.6190</td>\n", + " <td>-5.580</td>\n", + " <td>0.1910</td>\n", + " <td>0.2700</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3uE1swbcRp5BrO64UNy6Ex</th>\n", + " <td>NaN</td>\n", + " <td>TakingOutTheTrash</td>\n", + " <td>Dark Trap</td>\n", + " <td>192833</td>\n", + " <td>11</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>120.004</td>\n", + " <td>0.1720</td>\n", + " <td>0.814</td>\n", + " <td>0.575</td>\n", + " <td>0.000291</td>\n", + " <td>0.1090</td>\n", + " <td>-9.635</td>\n", + " <td>0.0635</td>\n", + " <td>0.2880</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3KJrwOuqiEwHq6QTreZT61</th>\n", + " <td>NaN</td>\n", + " <td>Io sono qui</td>\n", + " <td>Dark Trap</td>\n", + " <td>180880</td>\n", + " <td>10</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>128.066</td>\n", + " <td>0.0987</td>\n", + " <td>0.812</td>\n", + " <td>0.813</td>\n", + " <td>0.000150</td>\n", + " <td>0.0758</td>\n", + " <td>-5.583</td>\n", + " <td>0.0984</td>\n", + " <td>0.3480</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4QhUXx4ON40TIBrZIlnIke</th>\n", + " <td>NaN</td>\n", + " <td>Murder</td>\n", + " <td>Dark Trap</td>\n", + " <td>186261</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>114.956</td>\n", + " <td>0.0343</td>\n", + " <td>0.602</td>\n", + " <td>0.578</td>\n", + " <td>0.000000</td>\n", + " <td>0.1640</td>\n", + " <td>-5.610</td>\n", + " <td>0.0283</td>\n", + " <td>0.1560</td>\n", + " </tr>\n", + " <tr>\n", + " <th>09320vyX4qHd4GjHIpy5w0</th>\n", + " <td>NaN</td>\n", + " <td>High 'N Mighty</td>\n", + " <td>Dark Trap</td>\n", + " <td>124676</td>\n", + " <td>7</td>\n", + " <td>1</td>\n", + " <td>5</td>\n", + " <td>111.958</td>\n", + " <td>0.1120</td>\n", + " <td>0.876</td>\n", + " <td>0.768</td>\n", + " <td>0.000012</td>\n", + " <td>0.2830</td>\n", + " <td>-6.606</td>\n", + " <td>0.2010</td>\n", + " <td>0.7200</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6xEnbXM1us9fDJy2LC0lru</th>\n", + " <td>NaN</td>\n", + " <td>Bang Ya Fucking Head</td>\n", + " <td>Dark Trap</td>\n", + " <td>154929</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>125.013</td>\n", + " <td>0.0525</td>\n", + " <td>0.690</td>\n", + " <td>0.760</td>\n", + " <td>0.000000</td>\n", + " <td>0.1340</td>\n", + " <td>-5.431</td>\n", + " <td>0.0895</td>\n", + " <td>0.0797</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " title song_name genre duration_ms \\\n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p NaN Pathology Dark Trap 224427 \n", + "0vSWgAlfpye0WCGeNmuNhy NaN Symbiote Dark Trap 98821 \n", + "7EL7ifncK2PWFYThJjzR25 NaN BRAINFOOD Dark Trap 101172 \n", + "1umsRbM7L4ju7rn9aU8Ju6 NaN Sacrifice Dark Trap 96062 \n", + "4SKqOHKYU5pgHr5UiVKiQN NaN Backpack Dark Trap 135079 \n", + "3uE1swbcRp5BrO64UNy6Ex NaN TakingOutTheTrash Dark Trap 192833 \n", + "3KJrwOuqiEwHq6QTreZT61 NaN Io sono qui Dark Trap 180880 \n", + "4QhUXx4ON40TIBrZIlnIke NaN Murder Dark Trap 186261 \n", + "09320vyX4qHd4GjHIpy5w0 NaN High 'N Mighty Dark Trap 124676 \n", + "6xEnbXM1us9fDJy2LC0lru NaN Bang Ya Fucking Head Dark Trap 154929 \n", + "\n", + " key mode time_signature tempo acousticness \\\n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p 8 1 4 115.080 0.4010 \n", + "0vSWgAlfpye0WCGeNmuNhy 5 1 4 218.050 0.0138 \n", + "7EL7ifncK2PWFYThJjzR25 8 1 4 189.938 0.1870 \n", + "1umsRbM7L4ju7rn9aU8Ju6 10 0 4 139.990 0.1450 \n", + "4SKqOHKYU5pgHr5UiVKiQN 5 1 4 128.014 0.0077 \n", + "3uE1swbcRp5BrO64UNy6Ex 11 1 4 120.004 0.1720 \n", + "3KJrwOuqiEwHq6QTreZT61 10 0 4 128.066 0.0987 \n", + "4QhUXx4ON40TIBrZIlnIke 0 1 4 114.956 0.0343 \n", + "09320vyX4qHd4GjHIpy5w0 7 1 5 111.958 0.1120 \n", + "6xEnbXM1us9fDJy2LC0lru 1 1 4 125.013 0.0525 \n", + "\n", + " danceability energy instrumentalness liveness \\\n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p 0.719 0.493 0.000000 0.1180 \n", + "0vSWgAlfpye0WCGeNmuNhy 0.850 0.893 0.000004 0.3720 \n", + "7EL7ifncK2PWFYThJjzR25 0.864 0.365 0.000000 0.1160 \n", + "1umsRbM7L4ju7rn9aU8Ju6 0.767 0.576 0.000003 0.0968 \n", + "4SKqOHKYU5pgHr5UiVKiQN 0.765 0.726 0.000000 0.6190 \n", + "3uE1swbcRp5BrO64UNy6Ex 0.814 0.575 0.000291 0.1090 \n", + "3KJrwOuqiEwHq6QTreZT61 0.812 0.813 0.000150 0.0758 \n", + "4QhUXx4ON40TIBrZIlnIke 0.602 0.578 0.000000 0.1640 \n", + "09320vyX4qHd4GjHIpy5w0 0.876 0.768 0.000012 0.2830 \n", + "6xEnbXM1us9fDJy2LC0lru 0.690 0.760 0.000000 0.1340 \n", + "\n", + " loudness speechiness valence \n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p -7.230 0.0794 0.1240 \n", + "0vSWgAlfpye0WCGeNmuNhy -4.783 0.0623 0.0391 \n", + "7EL7ifncK2PWFYThJjzR25 -10.219 0.0655 0.0478 \n", + "1umsRbM7L4ju7rn9aU8Ju6 -9.683 0.2560 0.1870 \n", + "4SKqOHKYU5pgHr5UiVKiQN -5.580 0.1910 0.2700 \n", + "3uE1swbcRp5BrO64UNy6Ex -9.635 0.0635 0.2880 \n", + "3KJrwOuqiEwHq6QTreZT61 -5.583 0.0984 0.3480 \n", + "4QhUXx4ON40TIBrZIlnIke -5.610 0.0283 0.1560 \n", + "09320vyX4qHd4GjHIpy5w0 -6.606 0.2010 0.7200 \n", + "6xEnbXM1us9fDJy2LC0lru -5.431 0.0895 0.0797 " + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = df.replace(\"\", np.NaN)\n", + "df.head(10) # title is the album name" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Checking for missing values\n", + "\n", + "Syntax: `Series.isna()`\n", + "- Returns a boolean Series\n", + "\n", + "Let's check if any of the \"song_name\"(s) are missing" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "JqzSwG5PEZRq", + "outputId": "05529a3d-4a5c-4654-fe05-d04b2c10ae6c" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "id\n", + "7pgJBLVz5VmnL7uGHmRj6p False\n", + "0vSWgAlfpye0WCGeNmuNhy False\n", + "7EL7ifncK2PWFYThJjzR25 False\n", + "1umsRbM7L4ju7rn9aU8Ju6 False\n", + "4SKqOHKYU5pgHr5UiVKiQN False\n", + " ... \n", + "46bXU7Sgj7104ZoXxzz9tM True\n", + "0he2ViGMUO3ajKTxLOfWVT True\n", + "72DAt9Lbpy9EUS29OzQLob True\n", + "6HXgExFVuE1c3cq9QjFCcU True\n", + "6MAAMZImxcvYhRnxDLTufD True\n", + "Name: song_name, Length: 35877, dtype: bool" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"song_name\"].isna()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Review: `Pandas.Series.value_counts()`\n", + "- Returns a new `Series` with unique values from the original `Series` as keys and the count of those unique values as values. \n", + "- Return value `Series` is ordered using descending order of counts" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "uCLDr8EIGMeJ", + "outputId": "241d6181-d525-4019-a8f2-689939b2ab33" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "False 18342\n", + "True 17535\n", + "Name: song_name, dtype: int64" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# count the number of missing values for song name\n", + "df[\"song_name\"].isna().value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Missing value manipulation\n", + "Syntax: `df.fillna(<REPLACE>)`\n", + "- Returns a new DataFrame object instance reference." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "pJ2CIqq9HWvN", + "outputId": "2895e862-18e5-4742-9750-31b130aae668" + }, + "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>title</th>\n", + " <th>song_name</th>\n", + " <th>genre</th>\n", + " <th>duration_ms</th>\n", + " <th>key</th>\n", + " <th>mode</th>\n", + " <th>time_signature</th>\n", + " <th>tempo</th>\n", + " <th>acousticness</th>\n", + " <th>danceability</th>\n", + " <th>energy</th>\n", + " <th>instrumentalness</th>\n", + " <th>liveness</th>\n", + " <th>loudness</th>\n", + " <th>speechiness</th>\n", + " <th>valence</th>\n", + " </tr>\n", + " <tr>\n", + " <th>id</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>7pgJBLVz5VmnL7uGHmRj6p</th>\n", + " <td>NaN</td>\n", + " <td>Pathology</td>\n", + " <td>Dark Trap</td>\n", + " <td>224427</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>115.080</td>\n", + " <td>0.401000</td>\n", + " <td>0.719</td>\n", + " <td>0.493</td>\n", + " <td>0.000000</td>\n", + " <td>0.1180</td>\n", + " <td>-7.230</td>\n", + " <td>0.0794</td>\n", + " <td>0.1240</td>\n", + " </tr>\n", + " <tr>\n", + " <th>0vSWgAlfpye0WCGeNmuNhy</th>\n", + " <td>NaN</td>\n", + " <td>Symbiote</td>\n", + " <td>Dark Trap</td>\n", + " <td>98821</td>\n", + " <td>5</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>218.050</td>\n", + " <td>0.013800</td>\n", + " <td>0.850</td>\n", + " <td>0.893</td>\n", + " <td>0.000004</td>\n", + " <td>0.3720</td>\n", + " <td>-4.783</td>\n", + " <td>0.0623</td>\n", + " <td>0.0391</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7EL7ifncK2PWFYThJjzR25</th>\n", + " <td>NaN</td>\n", + " <td>BRAINFOOD</td>\n", + " <td>Dark Trap</td>\n", + " <td>101172</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>189.938</td>\n", + " <td>0.187000</td>\n", + " <td>0.864</td>\n", + " <td>0.365</td>\n", + " <td>0.000000</td>\n", + " <td>0.1160</td>\n", + " <td>-10.219</td>\n", + " <td>0.0655</td>\n", + " <td>0.0478</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1umsRbM7L4ju7rn9aU8Ju6</th>\n", + " <td>NaN</td>\n", + " <td>Sacrifice</td>\n", + " <td>Dark Trap</td>\n", + " <td>96062</td>\n", + " <td>10</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>139.990</td>\n", + " <td>0.145000</td>\n", + " <td>0.767</td>\n", + " <td>0.576</td>\n", + " <td>0.000003</td>\n", + " <td>0.0968</td>\n", + " <td>-9.683</td>\n", + " <td>0.2560</td>\n", + " <td>0.1870</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4SKqOHKYU5pgHr5UiVKiQN</th>\n", + " <td>NaN</td>\n", + " <td>Backpack</td>\n", + " <td>Dark Trap</td>\n", + " <td>135079</td>\n", + " <td>5</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>128.014</td>\n", + " <td>0.007700</td>\n", + " <td>0.765</td>\n", + " <td>0.726</td>\n", + " <td>0.000000</td>\n", + " <td>0.6190</td>\n", + " <td>-5.580</td>\n", + " <td>0.1910</td>\n", + " <td>0.2700</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>46bXU7Sgj7104ZoXxzz9tM</th>\n", + " <td>Euphoric Hardstyle</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>269208</td>\n", + " <td>4</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>150.013</td>\n", + " <td>0.031500</td>\n", + " <td>0.528</td>\n", + " <td>0.693</td>\n", + " <td>0.000345</td>\n", + " <td>0.1210</td>\n", + " <td>-5.148</td>\n", + " <td>0.0304</td>\n", + " <td>0.3940</td>\n", + " </tr>\n", + " <tr>\n", + " <th>0he2ViGMUO3ajKTxLOfWVT</th>\n", + " <td>Greatest Hardstyle Playlist</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>210112</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>149.928</td>\n", + " <td>0.022500</td>\n", + " <td>0.517</td>\n", + " <td>0.768</td>\n", + " <td>0.000018</td>\n", + " <td>0.2050</td>\n", + " <td>-7.922</td>\n", + " <td>0.0479</td>\n", + " <td>0.3830</td>\n", + " </tr>\n", + " <tr>\n", + " <th>72DAt9Lbpy9EUS29OzQLob</th>\n", + " <td>Best of Hardstyle 2020</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>234823</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>154.935</td>\n", + " <td>0.026000</td>\n", + " <td>0.361</td>\n", + " <td>0.821</td>\n", + " <td>0.000242</td>\n", + " <td>0.3850</td>\n", + " <td>-3.102</td>\n", + " <td>0.0505</td>\n", + " <td>0.1240</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6HXgExFVuE1c3cq9QjFCcU</th>\n", + " <td>Euphoric Hardstyle</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>323200</td>\n", + " <td>6</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>150.042</td>\n", + " <td>0.000551</td>\n", + " <td>0.477</td>\n", + " <td>0.921</td>\n", + " <td>0.029600</td>\n", + " <td>0.0575</td>\n", + " <td>-4.777</td>\n", + " <td>0.0392</td>\n", + " <td>0.4880</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6MAAMZImxcvYhRnxDLTufD</th>\n", + " <td>Best of Hardstyle 2020</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>162161</td>\n", + " <td>9</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>155.047</td>\n", + " <td>0.001890</td>\n", + " <td>0.529</td>\n", + " <td>0.945</td>\n", + " <td>0.000055</td>\n", + " <td>0.4140</td>\n", + " <td>-5.862</td>\n", + " <td>0.0615</td>\n", + " <td>0.1340</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>35877 rows × 16 columns</p>\n", + "</div>" + ], + "text/plain": [ + " title song_name genre \\\n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p NaN Pathology Dark Trap \n", + "0vSWgAlfpye0WCGeNmuNhy NaN Symbiote Dark Trap \n", + "7EL7ifncK2PWFYThJjzR25 NaN BRAINFOOD Dark Trap \n", + "1umsRbM7L4ju7rn9aU8Ju6 NaN Sacrifice Dark Trap \n", + "4SKqOHKYU5pgHr5UiVKiQN NaN Backpack Dark Trap \n", + "... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM Euphoric Hardstyle No Song Name hardstyle \n", + "0he2ViGMUO3ajKTxLOfWVT Greatest Hardstyle Playlist No Song Name hardstyle \n", + "72DAt9Lbpy9EUS29OzQLob Best of Hardstyle 2020 No Song Name hardstyle \n", + "6HXgExFVuE1c3cq9QjFCcU Euphoric Hardstyle No Song Name hardstyle \n", + "6MAAMZImxcvYhRnxDLTufD Best of Hardstyle 2020 No Song Name hardstyle \n", + "\n", + " duration_ms key mode time_signature tempo \\\n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p 224427 8 1 4 115.080 \n", + "0vSWgAlfpye0WCGeNmuNhy 98821 5 1 4 218.050 \n", + "7EL7ifncK2PWFYThJjzR25 101172 8 1 4 189.938 \n", + "1umsRbM7L4ju7rn9aU8Ju6 96062 10 0 4 139.990 \n", + "4SKqOHKYU5pgHr5UiVKiQN 135079 5 1 4 128.014 \n", + "... ... ... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM 269208 4 1 4 150.013 \n", + "0he2ViGMUO3ajKTxLOfWVT 210112 0 0 4 149.928 \n", + "72DAt9Lbpy9EUS29OzQLob 234823 8 1 4 154.935 \n", + "6HXgExFVuE1c3cq9QjFCcU 323200 6 0 4 150.042 \n", + "6MAAMZImxcvYhRnxDLTufD 162161 9 1 4 155.047 \n", + "\n", + " acousticness danceability energy instrumentalness \\\n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p 0.401000 0.719 0.493 0.000000 \n", + "0vSWgAlfpye0WCGeNmuNhy 0.013800 0.850 0.893 0.000004 \n", + "7EL7ifncK2PWFYThJjzR25 0.187000 0.864 0.365 0.000000 \n", + "1umsRbM7L4ju7rn9aU8Ju6 0.145000 0.767 0.576 0.000003 \n", + "4SKqOHKYU5pgHr5UiVKiQN 0.007700 0.765 0.726 0.000000 \n", + "... ... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM 0.031500 0.528 0.693 0.000345 \n", + "0he2ViGMUO3ajKTxLOfWVT 0.022500 0.517 0.768 0.000018 \n", + "72DAt9Lbpy9EUS29OzQLob 0.026000 0.361 0.821 0.000242 \n", + "6HXgExFVuE1c3cq9QjFCcU 0.000551 0.477 0.921 0.029600 \n", + "6MAAMZImxcvYhRnxDLTufD 0.001890 0.529 0.945 0.000055 \n", + "\n", + " liveness loudness speechiness valence \n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p 0.1180 -7.230 0.0794 0.1240 \n", + "0vSWgAlfpye0WCGeNmuNhy 0.3720 -4.783 0.0623 0.0391 \n", + "7EL7ifncK2PWFYThJjzR25 0.1160 -10.219 0.0655 0.0478 \n", + "1umsRbM7L4ju7rn9aU8Ju6 0.0968 -9.683 0.2560 0.1870 \n", + "4SKqOHKYU5pgHr5UiVKiQN 0.6190 -5.580 0.1910 0.2700 \n", + "... ... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM 0.1210 -5.148 0.0304 0.3940 \n", + "0he2ViGMUO3ajKTxLOfWVT 0.2050 -7.922 0.0479 0.3830 \n", + "72DAt9Lbpy9EUS29OzQLob 0.3850 -3.102 0.0505 0.1240 \n", + "6HXgExFVuE1c3cq9QjFCcU 0.0575 -4.777 0.0392 0.4880 \n", + "6MAAMZImxcvYhRnxDLTufD 0.4140 -5.862 0.0615 0.1340 \n", + "\n", + "[35877 rows x 16 columns]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# use .fillna to replace missing values\n", + "df[\"song_name\"].fillna(\"No Song Name\")\n", + "\n", + "# to replace the original DataFrame's column, you need to explicitly update that object instance\n", + "df[\"song_name\"] = df[\"song_name\"].fillna(\"No Song Name\")\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Dropping missing values\n", + "Syntax: `df.dropna()`\n", + "- Returns a new DataFrame object instance reference." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 145 + }, + "id": "O_1ZeHG8N-rB", + "outputId": "3b112da2-2b3c-4fb8-c7ae-dc2f2127856d" + }, + "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>title</th>\n", + " <th>song_name</th>\n", + " <th>genre</th>\n", + " <th>duration_ms</th>\n", + " <th>key</th>\n", + " <th>mode</th>\n", + " <th>time_signature</th>\n", + " <th>tempo</th>\n", + " <th>acousticness</th>\n", + " <th>danceability</th>\n", + " <th>energy</th>\n", + " <th>instrumentalness</th>\n", + " <th>liveness</th>\n", + " <th>loudness</th>\n", + " <th>speechiness</th>\n", + " <th>valence</th>\n", + " </tr>\n", + " <tr>\n", + " <th>id</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>5LzAV6KfjN8VhWCedeygfY</th>\n", + " <td>Dirtybird Players</td>\n", + " <td>No Song Name</td>\n", + " <td>techhouse</td>\n", + " <td>197499</td>\n", + " <td>7</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>127.997</td>\n", + " <td>0.000957</td>\n", + " <td>0.806</td>\n", + " <td>0.950</td>\n", + " <td>0.920000</td>\n", + " <td>0.1130</td>\n", + " <td>-6.782</td>\n", + " <td>0.0811</td>\n", + " <td>0.580</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3TsCb6ueD678XBJDiRrvhr</th>\n", + " <td>tech house</td>\n", + " <td>No Song Name</td>\n", + " <td>techhouse</td>\n", + " <td>206000</td>\n", + " <td>10</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>124.994</td>\n", + " <td>0.062300</td>\n", + " <td>0.729</td>\n", + " <td>0.978</td>\n", + " <td>0.908000</td>\n", + " <td>0.0353</td>\n", + " <td>-6.645</td>\n", + " <td>0.0420</td>\n", + " <td>0.778</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6Y0Fy2buEis7bEOlG0QET1</th>\n", + " <td>Tech House Bangerz</td>\n", + " <td>No Song Name</td>\n", + " <td>techhouse</td>\n", + " <td>199839</td>\n", + " <td>4</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>124.006</td>\n", + " <td>0.019100</td>\n", + " <td>0.724</td>\n", + " <td>0.792</td>\n", + " <td>0.812000</td>\n", + " <td>0.1080</td>\n", + " <td>-8.555</td>\n", + " <td>0.0405</td>\n", + " <td>0.346</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4EJI2XGViSQp6WscLKgYDD</th>\n", + " <td>tech house</td>\n", + " <td>No Song Name</td>\n", + " <td>techhouse</td>\n", + " <td>173861</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>125.031</td>\n", + " <td>0.053000</td>\n", + " <td>0.700</td>\n", + " <td>0.898</td>\n", + " <td>0.418000</td>\n", + " <td>0.5740</td>\n", + " <td>-6.099</td>\n", + " <td>0.2570</td>\n", + " <td>0.791</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4x6VzOQTLIrkkCWcDPh5Y0</th>\n", + " <td>blanc | Tech House</td>\n", + " <td>No Song Name</td>\n", + " <td>techhouse</td>\n", + " <td>394960</td>\n", + " <td>8</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>127.029</td>\n", + " <td>0.000301</td>\n", + " <td>0.803</td>\n", + " <td>0.919</td>\n", + " <td>0.926000</td>\n", + " <td>0.1020</td>\n", + " <td>-8.667</td>\n", + " <td>0.0702</td>\n", + " <td>0.754</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>46bXU7Sgj7104ZoXxzz9tM</th>\n", + " <td>Euphoric Hardstyle</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>269208</td>\n", + " <td>4</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>150.013</td>\n", + " <td>0.031500</td>\n", + " <td>0.528</td>\n", + " <td>0.693</td>\n", + " <td>0.000345</td>\n", + " <td>0.1210</td>\n", + " <td>-5.148</td>\n", + " <td>0.0304</td>\n", + " <td>0.394</td>\n", + " </tr>\n", + " <tr>\n", + " <th>0he2ViGMUO3ajKTxLOfWVT</th>\n", + " <td>Greatest Hardstyle Playlist</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>210112</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>149.928</td>\n", + " <td>0.022500</td>\n", + " <td>0.517</td>\n", + " <td>0.768</td>\n", + " <td>0.000018</td>\n", + " <td>0.2050</td>\n", + " <td>-7.922</td>\n", + " <td>0.0479</td>\n", + " <td>0.383</td>\n", + " </tr>\n", + " <tr>\n", + " <th>72DAt9Lbpy9EUS29OzQLob</th>\n", + " <td>Best of Hardstyle 2020</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>234823</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>154.935</td>\n", + " <td>0.026000</td>\n", + " <td>0.361</td>\n", + " <td>0.821</td>\n", + " <td>0.000242</td>\n", + " <td>0.3850</td>\n", + " <td>-3.102</td>\n", + " <td>0.0505</td>\n", + " <td>0.124</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6HXgExFVuE1c3cq9QjFCcU</th>\n", + " <td>Euphoric Hardstyle</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>323200</td>\n", + " <td>6</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>150.042</td>\n", + " <td>0.000551</td>\n", + " <td>0.477</td>\n", + " <td>0.921</td>\n", + " <td>0.029600</td>\n", + " <td>0.0575</td>\n", + " <td>-4.777</td>\n", + " <td>0.0392</td>\n", + " <td>0.488</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6MAAMZImxcvYhRnxDLTufD</th>\n", + " <td>Best of Hardstyle 2020</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>162161</td>\n", + " <td>9</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>155.047</td>\n", + " <td>0.001890</td>\n", + " <td>0.529</td>\n", + " <td>0.945</td>\n", + " <td>0.000055</td>\n", + " <td>0.4140</td>\n", + " <td>-5.862</td>\n", + " <td>0.0615</td>\n", + " <td>0.134</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>17529 rows × 16 columns</p>\n", + "</div>" + ], + "text/plain": [ + " title song_name genre \\\n", + "id \n", + "5LzAV6KfjN8VhWCedeygfY Dirtybird Players No Song Name techhouse \n", + "3TsCb6ueD678XBJDiRrvhr tech house No Song Name techhouse \n", + "6Y0Fy2buEis7bEOlG0QET1 Tech House Bangerz No Song Name techhouse \n", + "4EJI2XGViSQp6WscLKgYDD tech house No Song Name techhouse \n", + "4x6VzOQTLIrkkCWcDPh5Y0 blanc | Tech House No Song Name techhouse \n", + "... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM Euphoric Hardstyle No Song Name hardstyle \n", + "0he2ViGMUO3ajKTxLOfWVT Greatest Hardstyle Playlist No Song Name hardstyle \n", + "72DAt9Lbpy9EUS29OzQLob Best of Hardstyle 2020 No Song Name hardstyle \n", + "6HXgExFVuE1c3cq9QjFCcU Euphoric Hardstyle No Song Name hardstyle \n", + "6MAAMZImxcvYhRnxDLTufD Best of Hardstyle 2020 No Song Name hardstyle \n", + "\n", + " duration_ms key mode time_signature tempo \\\n", + "id \n", + "5LzAV6KfjN8VhWCedeygfY 197499 7 1 4 127.997 \n", + "3TsCb6ueD678XBJDiRrvhr 206000 10 1 4 124.994 \n", + "6Y0Fy2buEis7bEOlG0QET1 199839 4 0 4 124.006 \n", + "4EJI2XGViSQp6WscLKgYDD 173861 8 1 4 125.031 \n", + "4x6VzOQTLIrkkCWcDPh5Y0 394960 8 0 4 127.029 \n", + "... ... ... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM 269208 4 1 4 150.013 \n", + "0he2ViGMUO3ajKTxLOfWVT 210112 0 0 4 149.928 \n", + "72DAt9Lbpy9EUS29OzQLob 234823 8 1 4 154.935 \n", + "6HXgExFVuE1c3cq9QjFCcU 323200 6 0 4 150.042 \n", + "6MAAMZImxcvYhRnxDLTufD 162161 9 1 4 155.047 \n", + "\n", + " acousticness danceability energy instrumentalness \\\n", + "id \n", + "5LzAV6KfjN8VhWCedeygfY 0.000957 0.806 0.950 0.920000 \n", + "3TsCb6ueD678XBJDiRrvhr 0.062300 0.729 0.978 0.908000 \n", + "6Y0Fy2buEis7bEOlG0QET1 0.019100 0.724 0.792 0.812000 \n", + "4EJI2XGViSQp6WscLKgYDD 0.053000 0.700 0.898 0.418000 \n", + "4x6VzOQTLIrkkCWcDPh5Y0 0.000301 0.803 0.919 0.926000 \n", + "... ... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM 0.031500 0.528 0.693 0.000345 \n", + "0he2ViGMUO3ajKTxLOfWVT 0.022500 0.517 0.768 0.000018 \n", + "72DAt9Lbpy9EUS29OzQLob 0.026000 0.361 0.821 0.000242 \n", + "6HXgExFVuE1c3cq9QjFCcU 0.000551 0.477 0.921 0.029600 \n", + "6MAAMZImxcvYhRnxDLTufD 0.001890 0.529 0.945 0.000055 \n", + "\n", + " liveness loudness speechiness valence \n", + "id \n", + "5LzAV6KfjN8VhWCedeygfY 0.1130 -6.782 0.0811 0.580 \n", + "3TsCb6ueD678XBJDiRrvhr 0.0353 -6.645 0.0420 0.778 \n", + "6Y0Fy2buEis7bEOlG0QET1 0.1080 -8.555 0.0405 0.346 \n", + "4EJI2XGViSQp6WscLKgYDD 0.5740 -6.099 0.2570 0.791 \n", + "4x6VzOQTLIrkkCWcDPh5Y0 0.1020 -8.667 0.0702 0.754 \n", + "... ... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM 0.1210 -5.148 0.0304 0.394 \n", + "0he2ViGMUO3ajKTxLOfWVT 0.2050 -7.922 0.0479 0.383 \n", + "72DAt9Lbpy9EUS29OzQLob 0.3850 -3.102 0.0505 0.124 \n", + "6HXgExFVuE1c3cq9QjFCcU 0.0575 -4.777 0.0392 0.488 \n", + "6MAAMZImxcvYhRnxDLTufD 0.4140 -5.862 0.0615 0.134 \n", + "\n", + "[17529 rows x 16 columns]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# .dropna will drop all rows that contain NaN in them\n", + "df.dropna()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ggttXEqUbI_E" + }, + "source": [ + "### Review: `Pandas.Series.apply(...)`\n", + "Syntax: `Series.apply(<FUNCTION OBJECT REFERENCE>)`\n", + "- applies input function to every element of the Series.\n", + "- Returns a new `Series` object instance reference.\n", + "\n", + "Let's apply transformation function to `mode` column `Series`:\n", + "- mode = 1 means major modality (sounds happy)\n", + "- mode = 0 means minor modality (sounds sad)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "def replace_mode(m): \n", + " if m == 1: \n", + " return \"major\"\n", + " else: \n", + " return \"minor\"" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "id\n", + "7pgJBLVz5VmnL7uGHmRj6p major\n", + "0vSWgAlfpye0WCGeNmuNhy major\n", + "7EL7ifncK2PWFYThJjzR25 major\n", + "1umsRbM7L4ju7rn9aU8Ju6 minor\n", + "4SKqOHKYU5pgHr5UiVKiQN major\n", + " ... \n", + "46bXU7Sgj7104ZoXxzz9tM major\n", + "0he2ViGMUO3ajKTxLOfWVT minor\n", + "72DAt9Lbpy9EUS29OzQLob major\n", + "6HXgExFVuE1c3cq9QjFCcU minor\n", + "6MAAMZImxcvYhRnxDLTufD major\n", + "Name: mode, Length: 35877, dtype: object" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"mode\"].apply(replace_mode)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `lambda` recap\n", + "\n", + "Let's write a `lambda` function instead of the `replace_mode` function" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "9AJ3p-_TarnN", + "outputId": "a087df5d-2002-417c-e99c-5e6fc8ea9809" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "id\n", + "7pgJBLVz5VmnL7uGHmRj6p major\n", + "0vSWgAlfpye0WCGeNmuNhy major\n", + "7EL7ifncK2PWFYThJjzR25 major\n", + "1umsRbM7L4ju7rn9aU8Ju6 minor\n", + "4SKqOHKYU5pgHr5UiVKiQN major\n", + " ... \n", + "46bXU7Sgj7104ZoXxzz9tM major\n", + "0he2ViGMUO3ajKTxLOfWVT minor\n", + "72DAt9Lbpy9EUS29OzQLob major\n", + "6HXgExFVuE1c3cq9QjFCcU minor\n", + "6MAAMZImxcvYhRnxDLTufD major\n", + "Name: mode, Length: 35877, dtype: object" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"mode\"].apply(lambda m: \"major\" if m == 1 else \"minor\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Typically transformed columns are added as new columns within the DataFrame.\n", + "Let's add a new `modified_mode` column." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "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>title</th>\n", + " <th>song_name</th>\n", + " <th>genre</th>\n", + " <th>duration_ms</th>\n", + " <th>key</th>\n", + " <th>mode</th>\n", + " <th>time_signature</th>\n", + " <th>tempo</th>\n", + " <th>acousticness</th>\n", + " <th>danceability</th>\n", + " <th>energy</th>\n", + " <th>instrumentalness</th>\n", + " <th>liveness</th>\n", + " <th>loudness</th>\n", + " <th>speechiness</th>\n", + " <th>valence</th>\n", + " <th>modified_mode</th>\n", + " </tr>\n", + " <tr>\n", + " <th>id</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>7pgJBLVz5VmnL7uGHmRj6p</th>\n", + " <td>NaN</td>\n", + " <td>Pathology</td>\n", + " <td>Dark Trap</td>\n", + " <td>224427</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>115.080</td>\n", + " <td>0.401000</td>\n", + " <td>0.719</td>\n", + " <td>0.493</td>\n", + " <td>0.000000</td>\n", + " <td>0.1180</td>\n", + " <td>-7.230</td>\n", + " <td>0.0794</td>\n", + " <td>0.1240</td>\n", + " <td>major</td>\n", + " </tr>\n", + " <tr>\n", + " <th>0vSWgAlfpye0WCGeNmuNhy</th>\n", + " <td>NaN</td>\n", + " <td>Symbiote</td>\n", + " <td>Dark Trap</td>\n", + " <td>98821</td>\n", + " <td>5</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>218.050</td>\n", + " <td>0.013800</td>\n", + " <td>0.850</td>\n", + " <td>0.893</td>\n", + " <td>0.000004</td>\n", + " <td>0.3720</td>\n", + " <td>-4.783</td>\n", + " <td>0.0623</td>\n", + " <td>0.0391</td>\n", + " <td>major</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7EL7ifncK2PWFYThJjzR25</th>\n", + " <td>NaN</td>\n", + " <td>BRAINFOOD</td>\n", + " <td>Dark Trap</td>\n", + " <td>101172</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>189.938</td>\n", + " <td>0.187000</td>\n", + " <td>0.864</td>\n", + " <td>0.365</td>\n", + " <td>0.000000</td>\n", + " <td>0.1160</td>\n", + " <td>-10.219</td>\n", + " <td>0.0655</td>\n", + " <td>0.0478</td>\n", + " <td>major</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1umsRbM7L4ju7rn9aU8Ju6</th>\n", + " <td>NaN</td>\n", + " <td>Sacrifice</td>\n", + " <td>Dark Trap</td>\n", + " <td>96062</td>\n", + " <td>10</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>139.990</td>\n", + " <td>0.145000</td>\n", + " <td>0.767</td>\n", + " <td>0.576</td>\n", + " <td>0.000003</td>\n", + " <td>0.0968</td>\n", + " <td>-9.683</td>\n", + " <td>0.2560</td>\n", + " <td>0.1870</td>\n", + " <td>minor</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4SKqOHKYU5pgHr5UiVKiQN</th>\n", + " <td>NaN</td>\n", + " <td>Backpack</td>\n", + " <td>Dark Trap</td>\n", + " <td>135079</td>\n", + " <td>5</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>128.014</td>\n", + " <td>0.007700</td>\n", + " <td>0.765</td>\n", + " <td>0.726</td>\n", + " <td>0.000000</td>\n", + " <td>0.6190</td>\n", + " <td>-5.580</td>\n", + " <td>0.1910</td>\n", + " <td>0.2700</td>\n", + " <td>major</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>46bXU7Sgj7104ZoXxzz9tM</th>\n", + " <td>Euphoric Hardstyle</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>269208</td>\n", + " <td>4</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>150.013</td>\n", + " <td>0.031500</td>\n", + " <td>0.528</td>\n", + " <td>0.693</td>\n", + " <td>0.000345</td>\n", + " <td>0.1210</td>\n", + " <td>-5.148</td>\n", + " <td>0.0304</td>\n", + " <td>0.3940</td>\n", + " <td>major</td>\n", + " </tr>\n", + " <tr>\n", + " <th>0he2ViGMUO3ajKTxLOfWVT</th>\n", + " <td>Greatest Hardstyle Playlist</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>210112</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>149.928</td>\n", + " <td>0.022500</td>\n", + " <td>0.517</td>\n", + " <td>0.768</td>\n", + " <td>0.000018</td>\n", + " <td>0.2050</td>\n", + " <td>-7.922</td>\n", + " <td>0.0479</td>\n", + " <td>0.3830</td>\n", + " <td>minor</td>\n", + " </tr>\n", + " <tr>\n", + " <th>72DAt9Lbpy9EUS29OzQLob</th>\n", + " <td>Best of Hardstyle 2020</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>234823</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>154.935</td>\n", + " <td>0.026000</td>\n", + " <td>0.361</td>\n", + " <td>0.821</td>\n", + " <td>0.000242</td>\n", + " <td>0.3850</td>\n", + " <td>-3.102</td>\n", + " <td>0.0505</td>\n", + " <td>0.1240</td>\n", + " <td>major</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6HXgExFVuE1c3cq9QjFCcU</th>\n", + " <td>Euphoric Hardstyle</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>323200</td>\n", + " <td>6</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>150.042</td>\n", + " <td>0.000551</td>\n", + " <td>0.477</td>\n", + " <td>0.921</td>\n", + " <td>0.029600</td>\n", + " <td>0.0575</td>\n", + " <td>-4.777</td>\n", + " <td>0.0392</td>\n", + " <td>0.4880</td>\n", + " <td>minor</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6MAAMZImxcvYhRnxDLTufD</th>\n", + " <td>Best of Hardstyle 2020</td>\n", + " <td>No Song Name</td>\n", + " <td>hardstyle</td>\n", + " <td>162161</td>\n", + " <td>9</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>155.047</td>\n", + " <td>0.001890</td>\n", + " <td>0.529</td>\n", + " <td>0.945</td>\n", + " <td>0.000055</td>\n", + " <td>0.4140</td>\n", + " <td>-5.862</td>\n", + " <td>0.0615</td>\n", + " <td>0.1340</td>\n", + " <td>major</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>35877 rows × 17 columns</p>\n", + "</div>" + ], + "text/plain": [ + " title song_name genre \\\n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p NaN Pathology Dark Trap \n", + "0vSWgAlfpye0WCGeNmuNhy NaN Symbiote Dark Trap \n", + "7EL7ifncK2PWFYThJjzR25 NaN BRAINFOOD Dark Trap \n", + "1umsRbM7L4ju7rn9aU8Ju6 NaN Sacrifice Dark Trap \n", + "4SKqOHKYU5pgHr5UiVKiQN NaN Backpack Dark Trap \n", + "... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM Euphoric Hardstyle No Song Name hardstyle \n", + "0he2ViGMUO3ajKTxLOfWVT Greatest Hardstyle Playlist No Song Name hardstyle \n", + "72DAt9Lbpy9EUS29OzQLob Best of Hardstyle 2020 No Song Name hardstyle \n", + "6HXgExFVuE1c3cq9QjFCcU Euphoric Hardstyle No Song Name hardstyle \n", + "6MAAMZImxcvYhRnxDLTufD Best of Hardstyle 2020 No Song Name hardstyle \n", + "\n", + " duration_ms key mode time_signature tempo \\\n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p 224427 8 1 4 115.080 \n", + "0vSWgAlfpye0WCGeNmuNhy 98821 5 1 4 218.050 \n", + "7EL7ifncK2PWFYThJjzR25 101172 8 1 4 189.938 \n", + "1umsRbM7L4ju7rn9aU8Ju6 96062 10 0 4 139.990 \n", + "4SKqOHKYU5pgHr5UiVKiQN 135079 5 1 4 128.014 \n", + "... ... ... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM 269208 4 1 4 150.013 \n", + "0he2ViGMUO3ajKTxLOfWVT 210112 0 0 4 149.928 \n", + "72DAt9Lbpy9EUS29OzQLob 234823 8 1 4 154.935 \n", + "6HXgExFVuE1c3cq9QjFCcU 323200 6 0 4 150.042 \n", + "6MAAMZImxcvYhRnxDLTufD 162161 9 1 4 155.047 \n", + "\n", + " acousticness danceability energy instrumentalness \\\n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p 0.401000 0.719 0.493 0.000000 \n", + "0vSWgAlfpye0WCGeNmuNhy 0.013800 0.850 0.893 0.000004 \n", + "7EL7ifncK2PWFYThJjzR25 0.187000 0.864 0.365 0.000000 \n", + "1umsRbM7L4ju7rn9aU8Ju6 0.145000 0.767 0.576 0.000003 \n", + "4SKqOHKYU5pgHr5UiVKiQN 0.007700 0.765 0.726 0.000000 \n", + "... ... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM 0.031500 0.528 0.693 0.000345 \n", + "0he2ViGMUO3ajKTxLOfWVT 0.022500 0.517 0.768 0.000018 \n", + "72DAt9Lbpy9EUS29OzQLob 0.026000 0.361 0.821 0.000242 \n", + "6HXgExFVuE1c3cq9QjFCcU 0.000551 0.477 0.921 0.029600 \n", + "6MAAMZImxcvYhRnxDLTufD 0.001890 0.529 0.945 0.000055 \n", + "\n", + " liveness loudness speechiness valence modified_mode \n", + "id \n", + "7pgJBLVz5VmnL7uGHmRj6p 0.1180 -7.230 0.0794 0.1240 major \n", + "0vSWgAlfpye0WCGeNmuNhy 0.3720 -4.783 0.0623 0.0391 major \n", + "7EL7ifncK2PWFYThJjzR25 0.1160 -10.219 0.0655 0.0478 major \n", + "1umsRbM7L4ju7rn9aU8Ju6 0.0968 -9.683 0.2560 0.1870 minor \n", + "4SKqOHKYU5pgHr5UiVKiQN 0.6190 -5.580 0.1910 0.2700 major \n", + "... ... ... ... ... ... \n", + "46bXU7Sgj7104ZoXxzz9tM 0.1210 -5.148 0.0304 0.3940 major \n", + "0he2ViGMUO3ajKTxLOfWVT 0.2050 -7.922 0.0479 0.3830 minor \n", + "72DAt9Lbpy9EUS29OzQLob 0.3850 -3.102 0.0505 0.1240 major \n", + "6HXgExFVuE1c3cq9QjFCcU 0.0575 -4.777 0.0392 0.4880 minor \n", + "6MAAMZImxcvYhRnxDLTufD 0.4140 -5.862 0.0615 0.1340 major \n", + "\n", + "[35877 rows x 17 columns]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"modified_mode\"] = df[\"mode\"].apply(lambda m: \"major\" if m == 1 else \"minor\")\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Let's go back to the original table from the SQL database" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "id": "ZoiyUleiyhMg" + }, + "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>title</th>\n", + " <th>song_name</th>\n", + " <th>genre</th>\n", + " <th>duration_ms</th>\n", + " <th>key</th>\n", + " <th>mode</th>\n", + " <th>time_signature</th>\n", + " <th>tempo</th>\n", + " <th>acousticness</th>\n", + " <th>danceability</th>\n", + " <th>energy</th>\n", + " <th>instrumentalness</th>\n", + " <th>liveness</th>\n", + " <th>loudness</th>\n", + " <th>speechiness</th>\n", + " <th>valence</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>7pgJBLVz5VmnL7uGHmRj6p</td>\n", + " <td></td>\n", + " <td>Pathology</td>\n", + " <td>Dark Trap</td>\n", + " <td>224427</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>115.080</td>\n", + " <td>0.401000</td>\n", + " <td>0.719</td>\n", + " <td>0.493</td>\n", + " <td>0.000000</td>\n", + " <td>0.1180</td>\n", + " <td>-7.230</td>\n", + " <td>0.0794</td>\n", + " <td>0.1240</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>0vSWgAlfpye0WCGeNmuNhy</td>\n", + " <td></td>\n", + " <td>Symbiote</td>\n", + " <td>Dark Trap</td>\n", + " <td>98821</td>\n", + " <td>5</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>218.050</td>\n", + " <td>0.013800</td>\n", + " <td>0.850</td>\n", + " <td>0.893</td>\n", + " <td>0.000004</td>\n", + " <td>0.3720</td>\n", + " <td>-4.783</td>\n", + " <td>0.0623</td>\n", + " <td>0.0391</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>7EL7ifncK2PWFYThJjzR25</td>\n", + " <td></td>\n", + " <td>BRAINFOOD</td>\n", + " <td>Dark Trap</td>\n", + " <td>101172</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>189.938</td>\n", + " <td>0.187000</td>\n", + " <td>0.864</td>\n", + " <td>0.365</td>\n", + " <td>0.000000</td>\n", + " <td>0.1160</td>\n", + " <td>-10.219</td>\n", + " <td>0.0655</td>\n", + " <td>0.0478</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>1umsRbM7L4ju7rn9aU8Ju6</td>\n", + " <td></td>\n", + " <td>Sacrifice</td>\n", + " <td>Dark Trap</td>\n", + " <td>96062</td>\n", + " <td>10</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>139.990</td>\n", + " <td>0.145000</td>\n", + " <td>0.767</td>\n", + " <td>0.576</td>\n", + " <td>0.000003</td>\n", + " <td>0.0968</td>\n", + " <td>-9.683</td>\n", + " <td>0.2560</td>\n", + " <td>0.1870</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>4SKqOHKYU5pgHr5UiVKiQN</td>\n", + " <td></td>\n", + " <td>Backpack</td>\n", + " <td>Dark Trap</td>\n", + " <td>135079</td>\n", + " <td>5</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>128.014</td>\n", + " <td>0.007700</td>\n", + " <td>0.765</td>\n", + " <td>0.726</td>\n", + " <td>0.000000</td>\n", + " <td>0.6190</td>\n", + " <td>-5.580</td>\n", + " <td>0.1910</td>\n", + " <td>0.2700</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35872</th>\n", + " <td>46bXU7Sgj7104ZoXxzz9tM</td>\n", + " <td>Euphoric Hardstyle</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>269208</td>\n", + " <td>4</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>150.013</td>\n", + " <td>0.031500</td>\n", + " <td>0.528</td>\n", + " <td>0.693</td>\n", + " <td>0.000345</td>\n", + " <td>0.1210</td>\n", + " <td>-5.148</td>\n", + " <td>0.0304</td>\n", + " <td>0.3940</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35873</th>\n", + " <td>0he2ViGMUO3ajKTxLOfWVT</td>\n", + " <td>Greatest Hardstyle Playlist</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>210112</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>149.928</td>\n", + " <td>0.022500</td>\n", + " <td>0.517</td>\n", + " <td>0.768</td>\n", + " <td>0.000018</td>\n", + " <td>0.2050</td>\n", + " <td>-7.922</td>\n", + " <td>0.0479</td>\n", + " <td>0.3830</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35874</th>\n", + " <td>72DAt9Lbpy9EUS29OzQLob</td>\n", + " <td>Best of Hardstyle 2020</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>234823</td>\n", + " <td>8</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>154.935</td>\n", + " <td>0.026000</td>\n", + " <td>0.361</td>\n", + " <td>0.821</td>\n", + " <td>0.000242</td>\n", + " <td>0.3850</td>\n", + " <td>-3.102</td>\n", + " <td>0.0505</td>\n", + " <td>0.1240</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35875</th>\n", + " <td>6HXgExFVuE1c3cq9QjFCcU</td>\n", + " <td>Euphoric Hardstyle</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>323200</td>\n", + " <td>6</td>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>150.042</td>\n", + " <td>0.000551</td>\n", + " <td>0.477</td>\n", + " <td>0.921</td>\n", + " <td>0.029600</td>\n", + " <td>0.0575</td>\n", + " <td>-4.777</td>\n", + " <td>0.0392</td>\n", + " <td>0.4880</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35876</th>\n", + " <td>6MAAMZImxcvYhRnxDLTufD</td>\n", + " <td>Best of Hardstyle 2020</td>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " <td>162161</td>\n", + " <td>9</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>155.047</td>\n", + " <td>0.001890</td>\n", + " <td>0.529</td>\n", + " <td>0.945</td>\n", + " <td>0.000055</td>\n", + " <td>0.4140</td>\n", + " <td>-5.862</td>\n", + " <td>0.0615</td>\n", + " <td>0.1340</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>35877 rows × 17 columns</p>\n", + "</div>" + ], + "text/plain": [ + " id title song_name \\\n", + "0 7pgJBLVz5VmnL7uGHmRj6p Pathology \n", + "1 0vSWgAlfpye0WCGeNmuNhy Symbiote \n", + "2 7EL7ifncK2PWFYThJjzR25 BRAINFOOD \n", + "3 1umsRbM7L4ju7rn9aU8Ju6 Sacrifice \n", + "4 4SKqOHKYU5pgHr5UiVKiQN Backpack \n", + "... ... ... ... \n", + "35872 46bXU7Sgj7104ZoXxzz9tM Euphoric Hardstyle \n", + "35873 0he2ViGMUO3ajKTxLOfWVT Greatest Hardstyle Playlist \n", + "35874 72DAt9Lbpy9EUS29OzQLob Best of Hardstyle 2020 \n", + "35875 6HXgExFVuE1c3cq9QjFCcU Euphoric Hardstyle \n", + "35876 6MAAMZImxcvYhRnxDLTufD Best of Hardstyle 2020 \n", + "\n", + " genre duration_ms key mode time_signature tempo \\\n", + "0 Dark Trap 224427 8 1 4 115.080 \n", + "1 Dark Trap 98821 5 1 4 218.050 \n", + "2 Dark Trap 101172 8 1 4 189.938 \n", + "3 Dark Trap 96062 10 0 4 139.990 \n", + "4 Dark Trap 135079 5 1 4 128.014 \n", + "... ... ... ... ... ... ... \n", + "35872 hardstyle 269208 4 1 4 150.013 \n", + "35873 hardstyle 210112 0 0 4 149.928 \n", + "35874 hardstyle 234823 8 1 4 154.935 \n", + "35875 hardstyle 323200 6 0 4 150.042 \n", + "35876 hardstyle 162161 9 1 4 155.047 \n", + "\n", + " acousticness danceability energy instrumentalness liveness \\\n", + "0 0.401000 0.719 0.493 0.000000 0.1180 \n", + "1 0.013800 0.850 0.893 0.000004 0.3720 \n", + "2 0.187000 0.864 0.365 0.000000 0.1160 \n", + "3 0.145000 0.767 0.576 0.000003 0.0968 \n", + "4 0.007700 0.765 0.726 0.000000 0.6190 \n", + "... ... ... ... ... ... \n", + "35872 0.031500 0.528 0.693 0.000345 0.1210 \n", + "35873 0.022500 0.517 0.768 0.000018 0.2050 \n", + "35874 0.026000 0.361 0.821 0.000242 0.3850 \n", + "35875 0.000551 0.477 0.921 0.029600 0.0575 \n", + "35876 0.001890 0.529 0.945 0.000055 0.4140 \n", + "\n", + " loudness speechiness valence \n", + "0 -7.230 0.0794 0.1240 \n", + "1 -4.783 0.0623 0.0391 \n", + "2 -10.219 0.0655 0.0478 \n", + "3 -9.683 0.2560 0.1870 \n", + "4 -5.580 0.1910 0.2700 \n", + "... ... ... ... \n", + "35872 -5.148 0.0304 0.3940 \n", + "35873 -7.922 0.0479 0.3830 \n", + "35874 -3.102 0.0505 0.1240 \n", + "35875 -4.777 0.0392 0.4880 \n", + "35876 -5.862 0.0615 0.1340 \n", + "\n", + "[35877 rows x 17 columns]" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = qry(\"SELECT * FROM spotify\")\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Extract just the \"genre\" and \"duration_ms\" columns from `df`." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>genre</th>\n", + " <th>duration_ms</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>Dark Trap</td>\n", + " <td>224427</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>Dark Trap</td>\n", + " <td>98821</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>Dark Trap</td>\n", + " <td>101172</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>Dark Trap</td>\n", + " <td>96062</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>Dark Trap</td>\n", + " <td>135079</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35872</th>\n", + " <td>hardstyle</td>\n", + " <td>269208</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35873</th>\n", + " <td>hardstyle</td>\n", + " <td>210112</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35874</th>\n", + " <td>hardstyle</td>\n", + " <td>234823</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35875</th>\n", + " <td>hardstyle</td>\n", + " <td>323200</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35876</th>\n", + " <td>hardstyle</td>\n", + " <td>162161</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>35877 rows × 2 columns</p>\n", + "</div>" + ], + "text/plain": [ + " genre duration_ms\n", + "0 Dark Trap 224427\n", + "1 Dark Trap 98821\n", + "2 Dark Trap 101172\n", + "3 Dark Trap 96062\n", + "4 Dark Trap 135079\n", + "... ... ...\n", + "35872 hardstyle 269208\n", + "35873 hardstyle 210112\n", + "35874 hardstyle 234823\n", + "35875 hardstyle 323200\n", + "35876 hardstyle 162161\n", + "\n", + "[35877 rows x 2 columns]" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[[\"genre\", \"duration_ms\"]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `Pandas.DataFrame.groupby(...)`\n", + "\n", + "Syntax: `DataFrame.groupby(<COLUMN>)`\n", + "- Returns a `groupby` object instance reference\n", + "- Need to apply aggregation methods to use the return value of `groupby`" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 551 + }, + "id": "trRMgGMysdkb", + "outputId": "d02098c3-7722-4505-c599-5897bb8ace19" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "<pandas.core.groupby.generic.DataFrameGroupBy object at 0x7fe4e6a87670>" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[[\"genre\", \"duration_ms\"]].groupby(\"genre\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What is the average duration for each genre ordered based on decreasing order of averages?\n", + "#### v1: using `df` (`pandas`) to answer the question" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>duration_ms</th>\n", + " </tr>\n", + " <tr>\n", + " <th>genre</th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>Dark Trap</th>\n", + " <td>196059.938997</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Emo</th>\n", + " <td>218370.989519</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Hiphop</th>\n", + " <td>227885.028411</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Pop</th>\n", + " <td>211558.052980</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Rap</th>\n", + " <td>200816.798836</td>\n", + " </tr>\n", + " <tr>\n", + " <th>RnB</th>\n", + " <td>225628.556955</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Trap Metal</th>\n", + " <td>145940.519467</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Underground Rap</th>\n", + " <td>175506.191224</td>\n", + " </tr>\n", + " <tr>\n", + " <th>dnb</th>\n", + " <td>288860.138811</td>\n", + " </tr>\n", + " <tr>\n", + " <th>hardstyle</th>\n", + " <td>232828.626542</td>\n", + " </tr>\n", + " <tr>\n", + " <th>psytrance</th>\n", + " <td>445770.492075</td>\n", + " </tr>\n", + " <tr>\n", + " <th>techhouse</th>\n", + " <td>298395.587596</td>\n", + " </tr>\n", + " <tr>\n", + " <th>techno</th>\n", + " <td>399123.187453</td>\n", + " </tr>\n", + " <tr>\n", + " <th>trance</th>\n", + " <td>288729.366262</td>\n", + " </tr>\n", + " <tr>\n", + " <th>trap</th>\n", + " <td>225149.277731</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " duration_ms\n", + "genre \n", + "Dark Trap 196059.938997\n", + "Emo 218370.989519\n", + "Hiphop 227885.028411\n", + "Pop 211558.052980\n", + "Rap 200816.798836\n", + "RnB 225628.556955\n", + "Trap Metal 145940.519467\n", + "Underground Rap 175506.191224\n", + "dnb 288860.138811\n", + "hardstyle 232828.626542\n", + "psytrance 445770.492075\n", + "techhouse 298395.587596\n", + "techno 399123.187453\n", + "trance 288729.366262\n", + "trap 225149.277731" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[[\"genre\", \"duration_ms\"]].groupby(\"genre\").mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>duration_ms</th>\n", + " </tr>\n", + " <tr>\n", + " <th>genre</th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>psytrance</th>\n", + " <td>445770.492075</td>\n", + " </tr>\n", + " <tr>\n", + " <th>techno</th>\n", + " <td>399123.187453</td>\n", + " </tr>\n", + " <tr>\n", + " <th>techhouse</th>\n", + " <td>298395.587596</td>\n", + " </tr>\n", + " <tr>\n", + " <th>dnb</th>\n", + " <td>288860.138811</td>\n", + " </tr>\n", + " <tr>\n", + " <th>trance</th>\n", + " <td>288729.366262</td>\n", + " </tr>\n", + " <tr>\n", + " <th>hardstyle</th>\n", + " <td>232828.626542</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Hiphop</th>\n", + " <td>227885.028411</td>\n", + " </tr>\n", + " <tr>\n", + " <th>RnB</th>\n", + " <td>225628.556955</td>\n", + " </tr>\n", + " <tr>\n", + " <th>trap</th>\n", + " <td>225149.277731</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Emo</th>\n", + " <td>218370.989519</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Pop</th>\n", + " <td>211558.052980</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Rap</th>\n", + " <td>200816.798836</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Dark Trap</th>\n", + " <td>196059.938997</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Underground Rap</th>\n", + " <td>175506.191224</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Trap Metal</th>\n", + " <td>145940.519467</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " duration_ms\n", + "genre \n", + "psytrance 445770.492075\n", + "techno 399123.187453\n", + "techhouse 298395.587596\n", + "dnb 288860.138811\n", + "trance 288729.366262\n", + "hardstyle 232828.626542\n", + "Hiphop 227885.028411\n", + "RnB 225628.556955\n", + "trap 225149.277731\n", + "Emo 218370.989519\n", + "Pop 211558.052980\n", + "Rap 200816.798836\n", + "Dark Trap 196059.938997\n", + "Underground Rap 175506.191224\n", + "Trap Metal 145940.519467" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[[\"genre\", \"duration_ms\"]].groupby(\"genre\").mean().sort_values(by = \"duration_ms\", ascending = False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One way to check whether `groupby` works would be to use `value_counts` on the same column `Series`." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Underground Rap 4330\n", + "Dark Trap 3590\n", + "Hiphop 3027\n", + "trance 2804\n", + "psytrance 2650\n", + "techno 2646\n", + "dnb 2507\n", + "trap 2362\n", + "hardstyle 2351\n", + "techhouse 2209\n", + "RnB 1905\n", + "Trap Metal 1875\n", + "Emo 1622\n", + "Rap 1546\n", + "Pop 453\n", + "Name: genre, dtype: int64" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"genre\"].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What is the average duration for each genre ordered based on decreasing order of averages?\n", + "#### v2: using SQL query to answer the question" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 551 + }, + "id": "89hMTXCKxWG8", + "outputId": "5737da11-aa8a-4ed0-9b05-cd379b28904b" + }, + "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>avg_duration</th>\n", + " </tr>\n", + " <tr>\n", + " <th>genre</th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>psytrance</th>\n", + " <td>445770.492075</td>\n", + " </tr>\n", + " <tr>\n", + " <th>techno</th>\n", + " <td>399123.187453</td>\n", + " </tr>\n", + " <tr>\n", + " <th>techhouse</th>\n", + " <td>298395.587596</td>\n", + " </tr>\n", + " <tr>\n", + " <th>dnb</th>\n", + " <td>288860.138811</td>\n", + " </tr>\n", + " <tr>\n", + " <th>trance</th>\n", + " <td>288729.366262</td>\n", + " </tr>\n", + " <tr>\n", + " <th>hardstyle</th>\n", + " <td>232828.626542</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Hiphop</th>\n", + " <td>227885.028411</td>\n", + " </tr>\n", + " <tr>\n", + " <th>RnB</th>\n", + " <td>225628.556955</td>\n", + " </tr>\n", + " <tr>\n", + " <th>trap</th>\n", + " <td>225149.277731</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Emo</th>\n", + " <td>218370.989519</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Pop</th>\n", + " <td>211558.052980</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Rap</th>\n", + " <td>200816.798836</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Dark Trap</th>\n", + " <td>196059.938997</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Underground Rap</th>\n", + " <td>175506.191224</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Trap Metal</th>\n", + " <td>145940.519467</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " avg_duration\n", + "genre \n", + "psytrance 445770.492075\n", + "techno 399123.187453\n", + "techhouse 298395.587596\n", + "dnb 288860.138811\n", + "trance 288729.366262\n", + "hardstyle 232828.626542\n", + "Hiphop 227885.028411\n", + "RnB 225628.556955\n", + "trap 225149.277731\n", + "Emo 218370.989519\n", + "Pop 211558.052980\n", + "Rap 200816.798836\n", + "Dark Trap 196059.938997\n", + "Underground Rap 175506.191224\n", + "Trap Metal 145940.519467" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# SQL equivalent query of the above Pandas query\n", + "avg_duration_per_genre = qry(\"\"\"\n", + "SELECT genre, AVG(duration_ms) as avg_duration\n", + "FROM spotify \n", + "GROUP BY genre\n", + "ORDER BY avg_duration DESC\n", + "\"\"\")\n", + "\n", + "# How can we get make the SQL query output to be exactly same as df.groupby?\n", + "avg_duration_per_genre = avg_duration_per_genre.set_index(\"genre\")\n", + "avg_duration_per_genre" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "12ZdqYoIy_8U" + }, + "source": [ + "### What is the average speechiness for each mode, time signature pair?\n", + "#### v1: pandas" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 332 + }, + "id": "fVejD2KPyveX", + "outputId": "fe5c8fda-29a2-4f1a-8ff4-de9ad2a3cde0" + }, + "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>speechiness</th>\n", + " </tr>\n", + " <tr>\n", + " <th>mode</th>\n", + " <th>time_signature</th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th rowspan=\"4\" valign=\"top\">0</th>\n", + " <th>1</th>\n", + " <td>0.181224</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>0.121837</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>0.126688</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>0.204890</td>\n", + " </tr>\n", + " <tr>\n", + " <th rowspan=\"4\" valign=\"top\">1</th>\n", + " <th>1</th>\n", + " <td>0.173138</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>0.129512</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>0.139170</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>0.220177</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " speechiness\n", + "mode time_signature \n", + "0 1 0.181224\n", + " 3 0.121837\n", + " 4 0.126688\n", + " 5 0.204890\n", + "1 1 0.173138\n", + " 3 0.129512\n", + " 4 0.139170\n", + " 5 0.220177" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# use a list to indicate all the columns you want to groupby \n", + "df[[\"mode\", \"time_signature\", \"speechiness\"]].groupby([\"mode\", \"time_signature\"]).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 300 + }, + "id": "ImYEuOMox-ps", + "outputId": "2674dabd-3ff7-4099-fdc3-54e5ba0e2628" + }, + "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>mode</th>\n", + " <th>time_signature</th>\n", + " <th>avg_speechiness</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " <td>0.181224</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>0</td>\n", + " <td>3</td>\n", + " <td>0.121837</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>0</td>\n", + " <td>4</td>\n", + " <td>0.126688</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>0</td>\n", + " <td>5</td>\n", + " <td>0.204890</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0.173138</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>1</td>\n", + " <td>3</td>\n", + " <td>0.129512</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>0.139170</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>1</td>\n", + " <td>5</td>\n", + " <td>0.220177</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " mode time_signature avg_speechiness\n", + "0 0 1 0.181224\n", + "1 0 3 0.121837\n", + "2 0 4 0.126688\n", + "3 0 5 0.204890\n", + "4 1 1 0.173138\n", + "5 1 3 0.129512\n", + "6 1 4 0.139170\n", + "7 1 5 0.220177" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# SQL equivalent query of the above Pandas query\n", + "qry(\"\"\"\n", + "SELECT mode, time_signature, AVG(speechiness) as avg_speechiness\n", + "FROM spotify \n", + "GROUP BY mode, time_signature\n", + "\"\"\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sEDc5zGu0bc9" + }, + "source": [ + "### Self-practice" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Which songs have a tempo greater than 150 and what are their genre?" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "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>song_name</th>\n", + " <th>genre</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>Symbiote</td>\n", + " <td>Dark Trap</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>BRAINFOOD</td>\n", + " <td>Dark Trap</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>FunnyToSeeYouHere</td>\n", + " <td>Dark Trap</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>Killer</td>\n", + " <td>Dark Trap</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>608</td>\n", + " <td>Dark Trap</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35871</th>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35872</th>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35874</th>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35875</th>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " </tr>\n", + " <tr>\n", + " <th>35876</th>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>13753 rows × 2 columns</p>\n", + "</div>" + ], + "text/plain": [ + " song_name genre\n", + "1 Symbiote Dark Trap\n", + "2 BRAINFOOD Dark Trap\n", + "18 FunnyToSeeYouHere Dark Trap\n", + "19 Killer Dark Trap\n", + "20 608 Dark Trap\n", + "... ... ...\n", + "35871 hardstyle\n", + "35872 hardstyle\n", + "35874 hardstyle\n", + "35875 hardstyle\n", + "35876 hardstyle\n", + "\n", + "[13753 rows x 2 columns]" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# v1: pandas\n", + "fast_songs = df[df[\"tempo\"] > 150]\n", + "fast_songs[[\"song_name\", \"genre\"]]" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "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>song_name</th>\n", + " <th>genre</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>Symbiote</td>\n", + " <td>Dark Trap</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>BRAINFOOD</td>\n", + " <td>Dark Trap</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>FunnyToSeeYouHere</td>\n", + " <td>Dark Trap</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>Killer</td>\n", + " <td>Dark Trap</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>608</td>\n", + " <td>Dark Trap</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13748</th>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13749</th>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13750</th>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13751</th>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13752</th>\n", + " <td></td>\n", + " <td>hardstyle</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>13753 rows × 2 columns</p>\n", + "</div>" + ], + "text/plain": [ + " song_name genre\n", + "0 Symbiote Dark Trap\n", + "1 BRAINFOOD Dark Trap\n", + "2 FunnyToSeeYouHere Dark Trap\n", + "3 Killer Dark Trap\n", + "4 608 Dark Trap\n", + "... ... ...\n", + "13748 hardstyle\n", + "13749 hardstyle\n", + "13750 hardstyle\n", + "13751 hardstyle\n", + "13752 hardstyle\n", + "\n", + "[13753 rows x 2 columns]" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# v2: SQL\n", + "\n", + "qry(\"\"\"\n", + "SELECT song_name, genre\n", + "FROM spotify\n", + "WHERE tempo > 150\n", + "\"\"\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What is the sum of danceability and liveness for \"Hiphop\" genre songs?" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "15321 0.8416\n", + "15322 0.9201\n", + "15323 0.8580\n", + "15324 0.8240\n", + "15325 0.9348\n", + " ... \n", + "18343 0.6690\n", + "18344 0.5370\n", + "18345 0.8850\n", + "18346 0.8770\n", + "18347 0.8703\n", + "Length: 3027, dtype: float64" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# v1: pandas\n", + "hiphop_songs = df[df[\"genre\"] == \"Hiphop\"]\n", + "hiphop_songs[\"danceability\"] + hiphop_songs[\"liveness\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0.8416\n", + "1 0.9201\n", + "2 0.8580\n", + "3 0.8240\n", + "4 0.9348\n", + " ... \n", + "3022 0.6690\n", + "3023 0.5370\n", + "3024 0.8850\n", + "3025 0.8770\n", + "3026 0.8703\n", + "Name: song_score, Length: 3027, dtype: float64" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# v2: SQL\n", + "hiphop_songs = qry(\"\"\"\n", + "SELECT danceability + liveness as song_score\n", + "FROM spotify\n", + "WHERE genre = \"Hiphop\"\n", + "\"\"\")\n", + "hiphop_songs[\"song_score\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Find all song_name ordered by ascending order of duration_ms. Eliminate songs which don't have a song_name" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "# v1: pandas\n", + "songs_by_duration = list(df.sort_values(by = \"duration_ms\")[\"song_name\"])\n", + "# [song for song in songs_by_duration if song != \"\"] # uncomment to see the output" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "# v2\n", + "songs_by_duration = qry(\"\"\"\n", + "SELECT song_name\n", + "FROM spotify\n", + "ORDER BY duration_ms\n", + "\"\"\")\n", + "songs_by_duration = list(songs_by_duration[\"song_name\"])\n", + "# [song for song in songs_by_duration if song != \"\"] # uncomment to see the output" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### How many distinct \"genre\"s are there in the dataset?" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Pop',\n", + " 'Trap Metal',\n", + " 'hardstyle',\n", + " 'trap',\n", + " 'Rap',\n", + " 'Emo',\n", + " 'dnb',\n", + " 'Hiphop',\n", + " 'RnB',\n", + " 'trance',\n", + " 'Dark Trap',\n", + " 'Underground Rap',\n", + " 'psytrance',\n", + " 'techhouse',\n", + " 'techno']" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# v1: pandas\n", + "list(set(list(df[\"genre\"])))" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Dark Trap',\n", + " 'Underground Rap',\n", + " 'Trap Metal',\n", + " 'Emo',\n", + " 'Rap',\n", + " 'RnB',\n", + " 'Pop',\n", + " 'Hiphop',\n", + " 'techhouse',\n", + " 'techno',\n", + " 'trance',\n", + " 'psytrance',\n", + " 'trap',\n", + " 'dnb',\n", + " 'hardstyle']" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# v2: SQL\n", + "genres = qry(\"\"\"\n", + "SELECT DISTINCT genre\n", + "FROM spotify\n", + "\"\"\")\n", + "list(genres[\"genre\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Considering only songs with energy greater than 0.5, what is the maximum energy for each \"genre\" with song count greater than 2000?" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "genre\n", + "Dark Trap 0.998\n", + "Emo 0.995\n", + "Hiphop 0.978\n", + "Pop 0.977\n", + "Rap 0.980\n", + "RnB 0.974\n", + "Trap Metal 0.999\n", + "Underground Rap 0.997\n", + "dnb 0.999\n", + "hardstyle 0.999\n", + "psytrance 0.999\n", + "techhouse 0.999\n", + "techno 1.000\n", + "trance 1.000\n", + "trap 1.000\n", + "Name: energy, dtype: float64" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# v1: pandas\n", + "high_energy_songs = df[df[\"energy\"] > 0.5]\n", + "genre_groups = high_energy_songs[[\"genre\", \"energy\"]].groupby(\"genre\")\n", + "max_energy = genre_groups.max()\n", + "max_energy[\"energy\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>energy</th>\n", + " <th>energy_max</th>\n", + " </tr>\n", + " <tr>\n", + " <th>genre</th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>Dark Trap</th>\n", + " <td>2757</td>\n", + " <td>0.998</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Hiphop</th>\n", + " <td>2497</td>\n", + " <td>0.978</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Underground Rap</th>\n", + " <td>3420</td>\n", + " <td>0.997</td>\n", + " </tr>\n", + " <tr>\n", + " <th>dnb</th>\n", + " <td>2496</td>\n", + " <td>0.999</td>\n", + " </tr>\n", + " <tr>\n", + " <th>hardstyle</th>\n", + " <td>2345</td>\n", + " <td>0.999</td>\n", + " </tr>\n", + " <tr>\n", + " <th>psytrance</th>\n", + " <td>2642</td>\n", + " <td>0.999</td>\n", + " </tr>\n", + " <tr>\n", + " <th>techhouse</th>\n", + " <td>2164</td>\n", + " <td>0.999</td>\n", + " </tr>\n", + " <tr>\n", + " <th>techno</th>\n", + " <td>2534</td>\n", + " <td>1.000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>trance</th>\n", + " <td>2786</td>\n", + " <td>1.000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>trap</th>\n", + " <td>2346</td>\n", + " <td>1.000</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " energy energy_max\n", + "genre \n", + "Dark Trap 2757 0.998\n", + "Hiphop 2497 0.978\n", + "Underground Rap 3420 0.997\n", + "dnb 2496 0.999\n", + "hardstyle 2345 0.999\n", + "psytrance 2642 0.999\n", + "techhouse 2164 0.999\n", + "techno 2534 1.000\n", + "trance 2786 1.000\n", + "trap 2346 1.000" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "genre_counts = genre_groups.count()\n", + "genre_counts[\"energy_max\"] = max_energy[\"energy\"]\n", + "filtered_genre_counts = genre_counts[genre_counts[\"energy\"] > 2000]\n", + "filtered_genre_counts" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>genre</th>\n", + " <th>song_count</th>\n", + " <th>energy_max</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>Dark Trap</td>\n", + " <td>2757</td>\n", + " <td>0.998</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>Hiphop</td>\n", + " <td>2497</td>\n", + " <td>0.978</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>Underground Rap</td>\n", + " <td>3420</td>\n", + " <td>0.997</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>dnb</td>\n", + " <td>2496</td>\n", + " <td>0.999</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>hardstyle</td>\n", + " <td>2345</td>\n", + " <td>0.999</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>psytrance</td>\n", + " <td>2642</td>\n", + " <td>0.999</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>techhouse</td>\n", + " <td>2164</td>\n", + " <td>0.999</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>techno</td>\n", + " <td>2534</td>\n", + " <td>1.000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>trance</td>\n", + " <td>2786</td>\n", + " <td>1.000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>trap</td>\n", + " <td>2346</td>\n", + " <td>1.000</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " genre song_count energy_max\n", + "0 Dark Trap 2757 0.998\n", + "1 Hiphop 2497 0.978\n", + "2 Underground Rap 3420 0.997\n", + "3 dnb 2496 0.999\n", + "4 hardstyle 2345 0.999\n", + "5 psytrance 2642 0.999\n", + "6 techhouse 2164 0.999\n", + "7 techno 2534 1.000\n", + "8 trance 2786 1.000\n", + "9 trap 2346 1.000" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# v2: SQL\n", + "qry(\"\"\"\n", + "SELECT genre, COUNT(*) as song_count, MAX(\"energy\") as energy_max\n", + "FROM spotify\n", + "WHERE energy > 0.5\n", + "GROUP BY genre\n", + "HAVING song_count > 2000\n", + "\"\"\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/f22/meena_lec_notes/lec-35/lec_35_pandas3_data_transformation_template.ipynb b/f22/meena_lec_notes/lec-35/lec_35_pandas3_data_transformation_template.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..ebd46ae0cf3c5711b469ead673842a244dd42ce8 --- /dev/null +++ b/f22/meena_lec_notes/lec-35/lec_35_pandas3_data_transformation_template.ipynb @@ -0,0 +1,798 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "CeWtFirwteFY" + }, + "outputs": [], + "source": [ + "# known import statements\n", + "import pandas as pd\n", + "import sqlite3 as sql # note that we are renaming to sql\n", + "import os\n", + "\n", + "# new import statement\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RHvDCo4fhXBx" + }, + "source": [ + "# Lecture 35 Pandas 3: Data Transformation\n", + "* Data transformation is the process of changing the format, structure, or values of data. \n", + "* Often needed during data cleaning and sometimes during data analysis\n", + "\n", + "Possible data transformation: \n", + "* Parsing/Extraction\n", + " * Parse CSV to Pandas DataFrame\n", + "* Missing Value Manipulations\n", + " * Dropping\n", + " * Imputation: replace missing value with substitute values\n", + "* Typecasting, Formating, Renaming\n", + " * Typecasting: covert one column from int to float \n", + " * Formating: format the time column to datatime object \n", + " * Renaming: rename column and index names \n", + "* Applying/Mapping \n", + "* Filtering, Aggregation, Grouping, and Summarization\n", + " * Covered in Pandas 1 & 2 lectures" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yoLGptrqhbBo" + }, + "source": [ + "# Today's Learning Objectives: \n", + "\n", + "* Missing Value Manipulations\n", + " * check, drop, and fill NaN using Pandas .isna, .dropna, and .fillna\n", + "* Applying/Mapping\n", + " * Use .apply on Pandas Series and DataFrame rows/columns \n", + " * Use .replace to replace all target values \n", + "* Filtering, Aggregation, Grouping, and Summarization\n", + " * More .groupby examples \n", + " * Convert .groupby examples to SQL " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FgnTeNRIswsm" + }, + "source": [ + "# The dataset: Spotify songs\n", + "Adapted from https://www.kaggle.com/datasets/mrmorj/dataset-of-songs-in-spotify.\n", + "\n", + "If you are interested in digging deeper in this dataset, here's a [blog post](https://medium.com/@boplantinga/what-do-spotifys-audio-features-tell-us-about-this-year-s-eurovision-song-contest-66ad188e112a) that explain each column in details. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### WARMUP 1: Establish a connection to the spotify.db database" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 232 + }, + "id": "8y9scvgCnTHl", + "outputId": "c72388f8-576c-4cf2-ef51-352cd11b6c92" + }, + "outputs": [], + "source": [ + "# open up the spotify database\n", + "db_pathname = \"spotify.db\"\n", + "assert ???\n", + "conn = sql.connect(db_pathname)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def qry(sql):\n", + " return pd.read_sql(sql, conn)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### WARMUP 2: Identify the table name(s) inside the database" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 112 + }, + "id": "ybTqbDSOnR2f", + "outputId": "8dcc943b-9382-4abb-ef78-6c6d56ad89eb" + }, + "outputs": [], + "source": [ + "df = qry(\"\")\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### WARMUP 3: Use pandas lookup expression to identify the column names and the types: use .iloc" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### WARMUP 4: Store the data inside `spotify` table inside a variable called `df`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 632 + }, + "id": "txAH9OIjnoQv", + "outputId": "ac9152ba-32df-4fb2-d4e0-a97f50fe58fb" + }, + "outputs": [], + "source": [ + "df = qry(\"\")\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Setting a column as row indices for the `DataFrame`\n", + "\n", + "- Syntax: `df.set_index(\"<COLUMN>\")`\n", + "- Returns a new DataFrame object instance reference.\n", + "- WARNING: executing this twice will result in `KeyError` being thrown. Once you set a column as row index, it will no longer be a column within the `DataFrame`. If you tried this, go back and execute the above cell and update `df` once more and then execute the below cell exactly once." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Set the id column as row indices\n", + "df = \n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Not a Number\n", + "\n", + "- `np.NaN` is the floating point representation of Not a Number\n", + "- You do not need to know / learn the details about the `numpy` package \n", + "\n", + "### Replacing / modifying values within the `DataFrame`\n", + "\n", + "Syntax: `df.replace(<TARGET>, <REPLACE>)`\n", + "- Your target can be `str`, `int`, `float`, `None` (there are other possiblities, but those are too advanced for this course)\n", + "- Returns a new DataFrame object instance reference.\n", + "\n", + "Let's now replace the missing values (empty strings) with `np.NAN`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = \n", + "df.head(10) # title is the album name" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Checking for missing values\n", + "\n", + "Syntax: `Series.isna()`\n", + "- Returns a boolean Series\n", + "\n", + "Let's check if any of the \"song_name\"(s) are missing" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "JqzSwG5PEZRq", + "outputId": "05529a3d-4a5c-4654-fe05-d04b2c10ae6c" + }, + "outputs": [], + "source": [ + "df[\"song_name\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Review: `Pandas.Series.value_counts()`\n", + "- Returns a new `Series` with unique values from the original `Series` as keys and the count of those unique values as values. \n", + "- Return value `Series` is ordered using descending order of counts" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "uCLDr8EIGMeJ", + "outputId": "241d6181-d525-4019-a8f2-689939b2ab33" + }, + "outputs": [], + "source": [ + "# count the number of missing values for song name\n", + "df[\"song_name\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Missing value manipulation\n", + "Syntax: `df.fillna(<REPLACE>)`\n", + "- Returns a new DataFrame object instance reference." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "pJ2CIqq9HWvN", + "outputId": "2895e862-18e5-4742-9750-31b130aae668" + }, + "outputs": [], + "source": [ + "# use .fillna to replace missing values\n", + "df[\"song_name\"]\n", + "\n", + "# to replace the original DataFrame's column, you need to explicitly update that object instance\n", + "# TODO: uncomment the below lines and update the code\n", + "#df[\"song_name\"] = ???\n", + "#df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Dropping missing values\n", + "Syntax: `df.dropna()`\n", + "- Returns a new DataFrame object instance reference." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 145 + }, + "id": "O_1ZeHG8N-rB", + "outputId": "3b112da2-2b3c-4fb8-c7ae-dc2f2127856d" + }, + "outputs": [], + "source": [ + "# .dropna will drop all rows that contain NaN in them\n", + "df.dropna()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ggttXEqUbI_E" + }, + "source": [ + "### Review: `Pandas.Series.apply(...)`\n", + "Syntax: `Series.apply(<FUNCTION OBJECT REFERENCE>)`\n", + "- applies input function to every element of the Series.\n", + "- Returns a new `Series` object instance reference.\n", + "\n", + "Let's apply transformation function to `mode` column `Series`:\n", + "- mode = 1 means major modality (sounds happy)\n", + "- mode = 0 means minor modality (sounds sad)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def replace_mode(m): \n", + " if m == 1: \n", + " return \"major\"\n", + " else: \n", + " return \"minor\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df[\"mode\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `lambda` recap\n", + "\n", + "Let's write a `lambda` function instead of the `replace_mode` function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "9AJ3p-_TarnN", + "outputId": "a087df5d-2002-417c-e99c-5e6fc8ea9809" + }, + "outputs": [], + "source": [ + "df[\"mode\"].apply(???)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Typically transformed columns are added as new columns within the DataFrame.\n", + "Let's add a new `modified_mode` column." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df[\"modified_mode\"] = df[\"mode\"].apply(lambda m: \"major\" if m == 1 else \"minor\")\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Let's go back to the original table from the SQL database" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ZoiyUleiyhMg" + }, + "outputs": [], + "source": [ + "df = qry(\"SELECT * FROM spotify\")\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Extract just the \"genre\" and \"duration_ms\" columns from `df`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df[???]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `Pandas.DataFrame.groupby(...)`\n", + "\n", + "Syntax: `DataFrame.groupby(<COLUMN>)`\n", + "- Returns a `groupby` object instance reference\n", + "- Need to apply aggregation methods to use the return value of `groupby`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 551 + }, + "id": "trRMgGMysdkb", + "outputId": "d02098c3-7722-4505-c599-5897bb8ace19" + }, + "outputs": [], + "source": [ + "df[[\"genre\", \"duration_ms\"]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What is the average duration for each genre ordered based on decreasing order of averages?\n", + "#### v1: using `df` (`pandas`) to answer the question" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df[[\"genre\", \"duration_ms\"]]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df[[\"genre\", \"duration_ms\"]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One way to check whether `groupby` works would be to use `value_counts` on the same column `Series`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df[\"genre\"].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What is the average duration for each genre ordered based on decreasing order of averages?\n", + "#### v2: using SQL query to answer the question" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 551 + }, + "id": "89hMTXCKxWG8", + "outputId": "5737da11-aa8a-4ed0-9b05-cd379b28904b" + }, + "outputs": [], + "source": [ + "# SQL equivalent query of the above Pandas query\n", + "avg_duration_per_genre = qry(\"\"\"\n", + "\n", + "\"\"\")\n", + "\n", + "# How can we get make the SQL query output to be exactly same as df.groupby?\n", + "avg_duration_per_genre = avg_duration_per_genre.set_index(\"genre\")\n", + "avg_duration_per_genre" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "12ZdqYoIy_8U" + }, + "source": [ + "### What is the average speechiness for each mode, time signature pair?\n", + "#### v1: pandas" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 332 + }, + "id": "fVejD2KPyveX", + "outputId": "fe5c8fda-29a2-4f1a-8ff4-de9ad2a3cde0" + }, + "outputs": [], + "source": [ + "# use a list to indicate all the columns you want to groupby \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 300 + }, + "id": "ImYEuOMox-ps", + "outputId": "2674dabd-3ff7-4099-fdc3-54e5ba0e2628" + }, + "outputs": [], + "source": [ + "# SQL equivalent query of the above Pandas query\n", + "qry(\"\"\"\n", + "\n", + "\"\"\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sEDc5zGu0bc9" + }, + "source": [ + "### Self-practice" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Which songs have a tempo greater than 150 and what are their genre?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# v1: pandas\n", + "fast_songs = " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# v2: SQL\n", + "\n", + "qry(\"\"\"\n", + "\n", + "\"\"\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What is the sum of danceability and liveness for \"Hiphop\" genre songs?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# v1: pandas\n", + "hiphop_songs = " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# v2: SQL\n", + "hiphop_songs = qry(\"\"\"\n", + "\n", + "\"\"\")\n", + "hiphop_songs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Find all song_name ordered by ascending order of duration_ms. Eliminate songs which don't have a song_name" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# v1: pandas\n", + "songs_by_duration = " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# v2\n", + "songs_by_duration = qry(\"\"\"\n", + "\n", + "\"\"\")\n", + "songs_by_duration" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### How many distinct \"genre\"s are there in the dataset?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# v1: pandas\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# v2: SQL\n", + "genres = qry(\"\"\"\n", + "\n", + "\"\"\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Considering only songs with energy greater than 0.5, what is the maximum energy for each \"genre\" with song count greater than 2000?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "genre_groups = " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# v1: pandas\n", + "high_energy_songs = ???\n", + "genre_groups = ???\n", + "max_energy = ???\n", + "max_energy[\"energy\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "genre_counts = ???\n", + "genre_counts[\"energy_max\"] = max_energy[\"energy\"]\n", + "filtered_genre_counts = ???\n", + "filtered_genre_counts" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# v2: SQL\n", + "qry(\"\"\"\n", + "\n", + "\"\"\")" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/f22/meena_lec_notes/lec-35/spotify.db b/f22/meena_lec_notes/lec-35/spotify.db new file mode 100644 index 0000000000000000000000000000000000000000..a0e53761991a54fc8804d2b98bcc34ac4d99b70f Binary files /dev/null and b/f22/meena_lec_notes/lec-35/spotify.db differ diff --git a/f22/meena_lec_notes/lec-35/.ipynb_checkpoints/lec_35_plotting1_bar_plots-checkpoint.ipynb b/f22/meena_lec_notes/lec-36/.ipynb_checkpoints/lec_35_plotting1_bar_plots-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-35/.ipynb_checkpoints/lec_35_plotting1_bar_plots-checkpoint.ipynb rename to f22/meena_lec_notes/lec-36/.ipynb_checkpoints/lec_35_plotting1_bar_plots-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-35/.ipynb_checkpoints/lec_35_plotting1_bar_plots_template-checkpoint.ipynb b/f22/meena_lec_notes/lec-36/.ipynb_checkpoints/lec_35_plotting1_bar_plots_template-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-35/.ipynb_checkpoints/lec_35_plotting1_bar_plots_template-checkpoint.ipynb rename to f22/meena_lec_notes/lec-36/.ipynb_checkpoints/lec_35_plotting1_bar_plots_template-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-35/lec_35_plotting1_bar_plots.ipynb b/f22/meena_lec_notes/lec-36/lec_35_plotting1_bar_plots.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-35/lec_35_plotting1_bar_plots.ipynb rename to f22/meena_lec_notes/lec-36/lec_35_plotting1_bar_plots.ipynb diff --git a/f22/meena_lec_notes/lec-35/lec_35_plotting1_bar_plots_template.ipynb b/f22/meena_lec_notes/lec-36/lec_35_plotting1_bar_plots_template.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-35/lec_35_plotting1_bar_plots_template.ipynb rename to f22/meena_lec_notes/lec-36/lec_35_plotting1_bar_plots_template.ipynb diff --git a/f22/meena_lec_notes/lec-36/.ipynb_checkpoints/lec_36_plotting2_scatter_plots-checkpoint.ipynb b/f22/meena_lec_notes/lec-37/.ipynb_checkpoints/lec_36_plotting2_scatter_plots-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-36/.ipynb_checkpoints/lec_36_plotting2_scatter_plots-checkpoint.ipynb rename to f22/meena_lec_notes/lec-37/.ipynb_checkpoints/lec_36_plotting2_scatter_plots-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-36/.ipynb_checkpoints/lec_36_plotting2_scatter_plots_template-checkpoint.ipynb b/f22/meena_lec_notes/lec-37/.ipynb_checkpoints/lec_36_plotting2_scatter_plots_template-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-36/.ipynb_checkpoints/lec_36_plotting2_scatter_plots_template-checkpoint.ipynb rename to f22/meena_lec_notes/lec-37/.ipynb_checkpoints/lec_36_plotting2_scatter_plots_template-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-35/bus.db b/f22/meena_lec_notes/lec-37/bus.db similarity index 100% rename from f22/meena_lec_notes/lec-35/bus.db rename to f22/meena_lec_notes/lec-37/bus.db diff --git a/f22/meena_lec_notes/lec-36/iris.csv b/f22/meena_lec_notes/lec-37/iris.csv similarity index 100% rename from f22/meena_lec_notes/lec-36/iris.csv rename to f22/meena_lec_notes/lec-37/iris.csv diff --git a/f22/meena_lec_notes/lec-36/lec_36_plotting2_scatter_plots.ipynb b/f22/meena_lec_notes/lec-37/lec_36_plotting2_scatter_plots.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-36/lec_36_plotting2_scatter_plots.ipynb rename to f22/meena_lec_notes/lec-37/lec_36_plotting2_scatter_plots.ipynb diff --git a/f22/meena_lec_notes/lec-36/lec_36_plotting2_scatter_plots_template.ipynb b/f22/meena_lec_notes/lec-37/lec_36_plotting2_scatter_plots_template.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-36/lec_36_plotting2_scatter_plots_template.ipynb rename to f22/meena_lec_notes/lec-37/lec_36_plotting2_scatter_plots_template.ipynb diff --git a/f22/meena_lec_notes/lec-37/.ipynb_checkpoints/lec_37_plotting3_line_plots-checkpoint.ipynb b/f22/meena_lec_notes/lec-38/.ipynb_checkpoints/lec_37_plotting3_line_plots-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-37/.ipynb_checkpoints/lec_37_plotting3_line_plots-checkpoint.ipynb rename to f22/meena_lec_notes/lec-38/.ipynb_checkpoints/lec_37_plotting3_line_plots-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-37/.ipynb_checkpoints/lec_37_plotting3_line_plots_template-checkpoint.ipynb b/f22/meena_lec_notes/lec-38/.ipynb_checkpoints/lec_37_plotting3_line_plots_template-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-37/.ipynb_checkpoints/lec_37_plotting3_line_plots_template-checkpoint.ipynb rename to f22/meena_lec_notes/lec-38/.ipynb_checkpoints/lec_37_plotting3_line_plots_template-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-37/.ipynb_checkpoints/plotting1-checkpoint.ipynb b/f22/meena_lec_notes/lec-38/.ipynb_checkpoints/plotting1-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-37/.ipynb_checkpoints/plotting1-checkpoint.ipynb rename to f22/meena_lec_notes/lec-38/.ipynb_checkpoints/plotting1-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-37/.ipynb_checkpoints/plotting1_template-checkpoint.ipynb b/f22/meena_lec_notes/lec-38/.ipynb_checkpoints/plotting1_template-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-37/.ipynb_checkpoints/plotting1_template-checkpoint.ipynb rename to f22/meena_lec_notes/lec-38/.ipynb_checkpoints/plotting1_template-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-37/fire_hydrants.csv b/f22/meena_lec_notes/lec-38/fire_hydrants.csv similarity index 100% rename from f22/meena_lec_notes/lec-37/fire_hydrants.csv rename to f22/meena_lec_notes/lec-38/fire_hydrants.csv diff --git a/f22/meena_lec_notes/lec-37/lec_37_plotting3_line_plots.ipynb b/f22/meena_lec_notes/lec-38/lec_37_plotting3_line_plots.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-37/lec_37_plotting3_line_plots.ipynb rename to f22/meena_lec_notes/lec-38/lec_37_plotting3_line_plots.ipynb diff --git a/f22/meena_lec_notes/lec-37/lec_37_plotting3_line_plots_template.ipynb b/f22/meena_lec_notes/lec-38/lec_37_plotting3_line_plots_template.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-37/lec_37_plotting3_line_plots_template.ipynb rename to f22/meena_lec_notes/lec-38/lec_37_plotting3_line_plots_template.ipynb diff --git a/f22/meena_lec_notes/lec-38/.ipynb_checkpoints/demo_lec_38-checkpoint.ipynb b/f22/meena_lec_notes/lec-39/.ipynb_checkpoints/demo_lec_38-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-38/.ipynb_checkpoints/demo_lec_38-checkpoint.ipynb rename to f22/meena_lec_notes/lec-39/.ipynb_checkpoints/demo_lec_38-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-38/.ipynb_checkpoints/lec_38_plotting4-checkpoint.ipynb b/f22/meena_lec_notes/lec-39/.ipynb_checkpoints/lec_38_plotting4-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-38/.ipynb_checkpoints/lec_38_plotting4-checkpoint.ipynb rename to f22/meena_lec_notes/lec-39/.ipynb_checkpoints/lec_38_plotting4-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-38/.ipynb_checkpoints/lec_38_plotting4_template-checkpoint.ipynb b/f22/meena_lec_notes/lec-39/.ipynb_checkpoints/lec_38_plotting4_template-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-38/.ipynb_checkpoints/lec_38_plotting4_template-checkpoint.ipynb rename to f22/meena_lec_notes/lec-39/.ipynb_checkpoints/lec_38_plotting4_template-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-38/Fire_Hydrants.csv b/f22/meena_lec_notes/lec-39/Fire_Hydrants.csv similarity index 100% rename from f22/meena_lec_notes/lec-38/Fire_Hydrants.csv rename to f22/meena_lec_notes/lec-39/Fire_Hydrants.csv diff --git a/f22/meena_lec_notes/lec-38/cs220_survey_data.csv b/f22/meena_lec_notes/lec-39/cs220_survey_data.csv similarity index 100% rename from f22/meena_lec_notes/lec-38/cs220_survey_data.csv rename to f22/meena_lec_notes/lec-39/cs220_survey_data.csv diff --git a/f22/meena_lec_notes/lec-38/cs220_survey_data.db b/f22/meena_lec_notes/lec-39/cs220_survey_data.db similarity index 100% rename from f22/meena_lec_notes/lec-38/cs220_survey_data.db rename to f22/meena_lec_notes/lec-39/cs220_survey_data.db diff --git a/f22/meena_lec_notes/lec-36/iris-flowers.db b/f22/meena_lec_notes/lec-39/iris-flowers.db similarity index 100% rename from f22/meena_lec_notes/lec-36/iris-flowers.db rename to f22/meena_lec_notes/lec-39/iris-flowers.db diff --git a/f22/meena_lec_notes/lec-38/iris.csv b/f22/meena_lec_notes/lec-39/iris.csv similarity index 100% rename from f22/meena_lec_notes/lec-38/iris.csv rename to f22/meena_lec_notes/lec-39/iris.csv diff --git a/f22/meena_lec_notes/lec-38/lec_38_plotting4.ipynb b/f22/meena_lec_notes/lec-39/lec_38_plotting4.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-38/lec_38_plotting4.ipynb rename to f22/meena_lec_notes/lec-39/lec_38_plotting4.ipynb diff --git a/f22/meena_lec_notes/lec-38/lec_38_plotting4_template.ipynb b/f22/meena_lec_notes/lec-39/lec_38_plotting4_template.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-38/lec_38_plotting4_template.ipynb rename to f22/meena_lec_notes/lec-39/lec_38_plotting4_template.ipynb diff --git a/f22/meena_lec_notes/lec-40/.ipynb_checkpoints/demo_lec_40-checkpoint.ipynb b/f22/meena_lec_notes/lec-40/.ipynb_checkpoints/demo_lec_40-checkpoint.ipynb deleted file mode 100644 index 3e5b99b0743e8977ab8df60591fc7f3a82fd6d07..0000000000000000000000000000000000000000 --- a/f22/meena_lec_notes/lec-40/.ipynb_checkpoints/demo_lec_40-checkpoint.ipynb +++ /dev/null @@ -1,1779 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<style>em { color: red; }</style> <style>.container { width:100% !important; }</style>" - ], - "text/plain": [ - "<IPython.core.display.HTML object>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# ignore this cell (it's just to make certain text red later, but you don't need to understand it).\n", - "from IPython.core.display import display, HTML\n", - "display(HTML('<style>em { color: red; }</style> <style>.container { width:100% !important; }</style>'))" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "from pandas import DataFrame, Series\n", - "import matplotlib\n", - "from matplotlib import pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "matplotlib.rcParams[\"font.size\"] = 16" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "import math\n", - "import requests" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Bar Plot Example w/ Fire Hydrants continuation" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "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>X</th>\n", - " <th>Y</th>\n", - " <th>OBJECTID</th>\n", - " <th>CreatedBy</th>\n", - " <th>CreatedDate</th>\n", - " <th>LastEditor</th>\n", - " <th>LastUpdate</th>\n", - " <th>FacilityID</th>\n", - " <th>DataSource</th>\n", - " <th>ProjectNumber</th>\n", - " <th>...</th>\n", - " <th>Elevation</th>\n", - " <th>Manufacturer</th>\n", - " <th>Style</th>\n", - " <th>year_manufactured</th>\n", - " <th>BarrelDiameter</th>\n", - " <th>SeatDiameter</th>\n", - " <th>Comments</th>\n", - " <th>nozzle_color</th>\n", - " <th>MaintainedBy</th>\n", - " <th>InstallType</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>-89.519573</td>\n", - " <td>43.049308</td>\n", - " <td>2536</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>WUJAG</td>\n", - " <td>2018-06-07T19:45:53.000Z</td>\n", - " <td>HYDR-2360-2</td>\n", - " <td>FASB</td>\n", - " <td>NaN</td>\n", - " <td>...</td>\n", - " <td>1138.0</td>\n", - " <td>NaN</td>\n", - " <td>Pacer</td>\n", - " <td>1996.0</td>\n", - " <td>5.0</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>blue</td>\n", - " <td>MADISON WATER UTILITY</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>-89.521988</td>\n", - " <td>43.049193</td>\n", - " <td>2537</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>WUJAG</td>\n", - " <td>2018-06-07T19:45:53.000Z</td>\n", - " <td>HYDR-2360-4</td>\n", - " <td>FASB</td>\n", - " <td>NaN</td>\n", - " <td>...</td>\n", - " <td>1170.0</td>\n", - " <td>NaN</td>\n", - " <td>Pacer</td>\n", - " <td>1995.0</td>\n", - " <td>5.0</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>blue</td>\n", - " <td>MADISON WATER UTILITY</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>-89.522093</td>\n", - " <td>43.048233</td>\n", - " <td>2538</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>WUJAG</td>\n", - " <td>2018-06-07T19:45:53.000Z</td>\n", - " <td>HYDR-2361-19</td>\n", - " <td>FASB</td>\n", - " <td>NaN</td>\n", - " <td>...</td>\n", - " <td>1179.0</td>\n", - " <td>NaN</td>\n", - " <td>Pacer</td>\n", - " <td>1996.0</td>\n", - " <td>5.0</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>blue</td>\n", - " <td>MADISON WATER UTILITY</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>-89.521013</td>\n", - " <td>43.049033</td>\n", - " <td>2539</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>WUJAG</td>\n", - " <td>2018-06-07T19:45:53.000Z</td>\n", - " <td>HYDR-2360-3</td>\n", - " <td>FASB</td>\n", - " <td>NaN</td>\n", - " <td>...</td>\n", - " <td>1163.0</td>\n", - " <td>NaN</td>\n", - " <td>Pacer</td>\n", - " <td>1995.0</td>\n", - " <td>5.0</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>blue</td>\n", - " <td>MADISON WATER UTILITY</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>-89.524782</td>\n", - " <td>43.056263</td>\n", - " <td>2540</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>WUPTB</td>\n", - " <td>2017-08-31T16:19:46.000Z</td>\n", - " <td>HYDR-2257-5</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>...</td>\n", - " <td>1065.0</td>\n", - " <td>NaN</td>\n", - " <td>Pacer</td>\n", - " <td>1996.0</td>\n", - " <td>5.0</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>blue</td>\n", - " <td>MADISON WATER UTILITY</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>5 rows × 25 columns</p>\n", - "</div>" - ], - "text/plain": [ - " X Y OBJECTID CreatedBy CreatedDate LastEditor \\\n", - "0 -89.519573 43.049308 2536 NaN NaN WUJAG \n", - "1 -89.521988 43.049193 2537 NaN NaN WUJAG \n", - "2 -89.522093 43.048233 2538 NaN NaN WUJAG \n", - "3 -89.521013 43.049033 2539 NaN NaN WUJAG \n", - "4 -89.524782 43.056263 2540 NaN NaN WUPTB \n", - "\n", - " LastUpdate FacilityID DataSource ProjectNumber ... \\\n", - "0 2018-06-07T19:45:53.000Z HYDR-2360-2 FASB NaN ... \n", - "1 2018-06-07T19:45:53.000Z HYDR-2360-4 FASB NaN ... \n", - "2 2018-06-07T19:45:53.000Z HYDR-2361-19 FASB NaN ... \n", - "3 2018-06-07T19:45:53.000Z HYDR-2360-3 FASB NaN ... \n", - "4 2017-08-31T16:19:46.000Z HYDR-2257-5 NaN NaN ... \n", - "\n", - " Elevation Manufacturer Style year_manufactured BarrelDiameter \\\n", - "0 1138.0 NaN Pacer 1996.0 5.0 \n", - "1 1170.0 NaN Pacer 1995.0 5.0 \n", - "2 1179.0 NaN Pacer 1996.0 5.0 \n", - "3 1163.0 NaN Pacer 1995.0 5.0 \n", - "4 1065.0 NaN Pacer 1996.0 5.0 \n", - "\n", - " SeatDiameter Comments nozzle_color MaintainedBy InstallType \n", - "0 NaN NaN blue MADISON WATER UTILITY NaN \n", - "1 NaN NaN blue MADISON WATER UTILITY NaN \n", - "2 NaN NaN blue MADISON WATER UTILITY NaN \n", - "3 NaN NaN blue MADISON WATER UTILITY NaN \n", - "4 NaN NaN blue MADISON WATER UTILITY NaN \n", - "\n", - "[5 rows x 25 columns]" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = pd.read_csv(\"Fire_Hydrants.csv\")\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 0, 'Hydrant count')" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "style_counts = df[\"Style\"].str.upper().value_counts()\n", - "top12 = style_counts.iloc[:12]\n", - "top12[\"other\"] = style_counts.iloc[12:].sum()\n", - "ax = top12.plot.barh(color=\"k\")\n", - "ax.set_xlabel(\"Hydrant count\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### In what *decade* were *pacers manufactured*?\n", - "### Take a peek at the *Style* column data" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0 Pacer\n", - "1 Pacer\n", - "2 Pacer\n", - "3 Pacer\n", - "4 Pacer\n", - "Name: Style, dtype: object\n", - "10104 NaN\n", - "10105 NaN\n", - "10106 NaN\n", - "10107 NaN\n", - "10108 NaN\n", - "Name: Style, dtype: object\n" - ] - } - ], - "source": [ - "print(df[\"Style\"].head())\n", - "print(df[\"Style\"].tail())" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Which *column* gives *year* information?" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['X', 'Y', 'OBJECTID', 'CreatedBy', 'CreatedDate', 'LastEditor',\n", - " 'LastUpdate', 'FacilityID', 'DataSource', 'ProjectNumber',\n", - " 'InstallDate', 'LifecycleStatus', 'Location', 'SymbolRotation',\n", - " 'HydrantType', 'Elevation', 'Manufacturer', 'Style',\n", - " 'year_manufactured', 'BarrelDiameter', 'SeatDiameter', 'Comments',\n", - " 'nozzle_color', 'MaintainedBy', 'InstallType'],\n", - " dtype='object')" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.columns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### How to get the *decade* for *pacers* and *others*?" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Style year_manufactured\n", - "0 Pacer 1996.0\n", - "1 Pacer 1995.0\n", - "2 Pacer 1996.0\n", - "3 Pacer 1995.0\n", - "4 Pacer 1996.0\n", - " Style year_manufactured\n", - "10104 NaN 2018.0\n", - "10105 NaN 2017.0\n", - "10106 NaN 2000.0\n", - "10107 NaN 2017.0\n", - "10108 NaN NaN\n" - ] - } - ], - "source": [ - "print(df[[\"Style\", \"year_manufactured\"]].head())\n", - "print(df[[\"Style\", \"year_manufactured\"]].tail())" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0 1996.0\n", - "1 1995.0\n", - "2 1996.0\n", - "3 1995.0\n", - "4 1996.0\n", - "Name: year_manufactured, dtype: float64\n", - "18 1987.0\n", - "22 1996.0\n", - "23 1996.0\n", - "71 1987.0\n", - "72 1987.0\n", - "Name: year_manufactured, dtype: float64\n" - ] - } - ], - "source": [ - "pacer_years = df[df[\"Style\"] == \"Pacer\"][\"year_manufactured\"]\n", - "other_years = df[\"year_manufactured\"][df[\"Style\"] != \"Pacer\"]\n", - "print(pacer_years.head())\n", - "print(other_years.head())" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 1990.0\n", - "1 1990.0\n", - "2 1990.0\n", - "3 1990.0\n", - "4 1990.0\n", - "Name: year_manufactured, dtype: float64" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pacer_decades = (pacer_years // 10 * 10)\n", - "pacer_decades.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### How to *count the decades* for pacers and others?" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2000.0 1730\n", - "1990.0 846\n", - "2010.0 503\n", - "1980.0 21\n", - "1960.0 1\n", - "Name: year_manufactured, dtype: int64" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pacer_decades = (pacer_years // 10 * 10).value_counts()\n", - "pacer_decades" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "other_decades = (other_years // 10 * 10).value_counts()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### How to convert the *decades* back to *int*?" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "#Doesn't work because of NaN values\n", - "#pacer_decades = (pacer_years // 10 * 10).astype(int).value_counts()\n", - "#pacer_decades.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2000 1730\n", - "1990 846\n", - "2010 503\n", - "1980 21\n", - "1960 1\n", - "Name: year_manufactured, dtype: int64" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#Getting rid of NaN values\n", - "pacer_decades = (pacer_years // 10 * 10).dropna()\n", - "pacer_decades = pacer_decades.astype(int).value_counts()\n", - "pacer_decades" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2010 1196\n", - "1980 937\n", - "1970 578\n", - "1990 431\n", - "1950 371\n", - "1960 349\n", - "2000 215\n", - "1940 68\n", - "1930 9\n", - "1900 1\n", - "Name: year_manufactured, dtype: int64" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "other_decades = (other_years // 10 * 10).dropna()\n", - "other_decades = other_decades.astype(int).value_counts()\n", - "other_decades" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### How to put both the pacers and other decade counts Series together?" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "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>pacer</th>\n", - " <th>other</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>1900</th>\n", - " <td>NaN</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1930</th>\n", - " <td>NaN</td>\n", - " <td>9</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1940</th>\n", - " <td>NaN</td>\n", - " <td>68</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1950</th>\n", - " <td>NaN</td>\n", - " <td>371</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1960</th>\n", - " <td>1.0</td>\n", - " <td>349</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1970</th>\n", - " <td>NaN</td>\n", - " <td>578</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1980</th>\n", - " <td>21.0</td>\n", - " <td>937</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1990</th>\n", - " <td>846.0</td>\n", - " <td>431</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2000</th>\n", - " <td>1730.0</td>\n", - " <td>215</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2010</th>\n", - " <td>503.0</td>\n", - " <td>1196</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "</div>" - ], - "text/plain": [ - " pacer other\n", - "1900 NaN 1\n", - "1930 NaN 9\n", - "1940 NaN 68\n", - "1950 NaN 371\n", - "1960 1.0 349\n", - "1970 NaN 578\n", - "1980 21.0 937\n", - "1990 846.0 431\n", - "2000 1730.0 215\n", - "2010 503.0 1196" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "style_df = DataFrame({\n", - " \"pacer\": pacer_decades,\n", - " \"other\": other_decades,\n", - "})\n", - "style_df" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Create a *bar plot* for visualization" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'Hydrant Count')" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = style_df.plot.bar()\n", - "ax.set_xlabel(\"Decade\")\n", - "ax.set_ylabel(\"Hydrant Count\")" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'Hydrant Count')" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ8AAAEqCAYAAADK5V1SAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAqrklEQVR4nO3de7hUdd3+8fdNwAY8AMpRFAEx1DStMCU10XqEBEWzsLLyUFr2u8zQDmKoG9HHQ1qaT1amZaXhKVORAkoJfMLMc4p5DNAHUQRUQDbI4fP7Y61Ns4fZmwFn1szsfb+ua12zZ63PzNx7A/vDWuu7vksRgZmZWZbaVTqAmZm1PW4+ZmaWOTcfMzPLnJuPmZllzs3HzMwy5+ZjZmaZa1/pALWiR48eMWDAgErHMDOrKY8++uiSiOiZv97Np0gDBgzgkUceqXQMM7OaImlBofU+7GZmZplz8zEzs8y5+ZiZWebcfMzMLHNuPmZmljk3HzMzy5yHWpfQ8uXLWbx4MWvXrq10FAM6dOhAr1692H777SsdxczyuPmUyPLly3n99dfp168fnTt3RlKlI7VpEUFDQwMLFy4EcAMyqzJuPiWyePFi+vXrR5cuXSodxQBJdOnShX79+vHqq6+6+VjRBpwzdYvq5186qkxJWjef8ymRtWvX0rlz50rHsDydO3f2YVCzKuTmU0I+1FZ9/GdiVp3cfMzMLHNuPmZmljkPOCizLT15WWo+GWpm1ch7PmZmljk3H6t5a9asqXQEM9tCbj5WUH19PZJ46qmnOOyww+jSpQt9+/bl/PPPZ8OGDQCsXr2acePGsffee7PtttvSp08fjjrqKJ599tlN3m/evHl86Utfok+fPtTV1TFo0CDOPPPMJjWzZs3iE5/4BNtttx3bbLMNI0aM4Omnn25SM3z4cA4++GCmTJnChz70Ierq6rj22mvL94Mws7LwOR9r0THHHMMpp5zC+PHjmT59OpMmTaJdu3bU19ezZs0aVqxYwYQJE+jbty/Lli3j2muv5cADD+TZZ5+lT58+QNJ4PvrRj9KlSxcmTpzI7rvvziuvvMKMGTM2fs7UqVMZM2YMo0aN4qabbgLgsssu45BDDuGf//wnu+yyy8ba559/nm9+85ucd955DBo0iB122CHbH4qZvWduPtaiU089lXPOOQeAI444guXLl3PllVfyrW99i27dunH99ddvrF2/fj0jRoygd+/eTJ48mXHjxgFwwQUX0NDQwJNPPslOO+20sf7EE0/c+PWZZ57JoYceyt13371x3WGHHcagQYO48sorueqqqzauX7JkCTNmzGC//fYr03dtZuXmw27WorFjxzZ5/rnPfY6VK1duPBx22223ccABB9CtWzfat2/PNttsw8qVK3nuuec2vmbGjBmMHj26SePJ9cILL/DSSy9xwgknsG7duo1Lly5dGDZsGLNnz25SP2DAADcesxrn5mMt6t27d8HnCxcuZMqUKRx//PHsueee/O53v+Ohhx7i4YcfpmfPnqxevXrja5YuXcrOO+/c7GcsXrwYgK985St06NChyXLvvfeydOnSJvV9+/Yt1bdnZhXiw27Wotdff51BgwY1eQ7Qr18/fvrTnzJ48GBuvPHGjdvXrl3LsmXLmrxHjx49Ns4uXciOO+4IwCWXXMInP/nJTbZ37NixyXNPmWNW+9x8rEW33XbbxnM+ALfccgvbbrste++9N6tWraJ9+6Z/hX7729+yfv36JuuOOOII7rzzThYtWlRwr2XIkCEMGDCAuXPnNvksM2u93HysRb/4xS/YsGED+++/P9OnT+f666+nvr6ebt26MXLkSO666y7GjRvH6NGjefTRR/nxj39Mt27dmrzHxIkTmTp1Kh/72Mc499xzGTx4MAsXLmTatGncdNNNSOInP/kJY8aM4d1332Xs2LH06NGD119/nTlz5tC/f3/OOuusyvwAzKws3HzKrNant7n77rs544wzmDRpEl27dmXChAmcd955QDIS7pVXXuGXv/wlP//5z9l///2ZMmUKxx57bJP3GDBgAA899BATJkxg/PjxrFixgn79+jFmzJiNNUceeSSzZ8/m4osv5qtf/SoNDQ306dOHAw88kOOPPz7T79nMys/Nx1q0xx57MHPmzILb2rVrx0UXXcRFF13UZP38+fM3qd1tt92YPHlyi581bNgw7r333hZr/vrXv7a43cxqg0e7mZlZ5tx8zMwsc24+VlB9fT0RscloNjOzUnDzMTOzzGXefCTtLOkaSQ9KWiUpJA3IqxmQri+0dMur7STpB5IWSWpI3/fjBT63naTxkuZLWi3pSUnHlfe7NTOzQiqx5zMYGAu8CTywmdpLgGF5y4q8mhuAU4HzgdHAImC6pP3y6iYB9cD/AJ8C/g7cLunI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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = style_df[style_df.index >= 1950].plot.bar()\n", - "ax.set_xlabel(\"Decade\")\n", - "ax.set_ylabel(\"Hydrant Count\")" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ8AAAErCAYAAAABuY73AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAtcUlEQVR4nO3de5xVdb3/8dfbgAG8AMpNUQTEVNTUwpTUvJWgoGgmVlZeSk+eHmaolXgdRI+XtDR/2cljauXdMgUtoJQDnlATbykqXuJieEFAuciAXD6/P9Ya3LPZM2xg9tp7z7yfj8d+7Nlrffba7xlgPnzX+q61FBGYmZllabNyBzAzs9bHzcfMzDLn5mNmZplz8zEzs8y5+ZiZWebcfMzMLHOZNh9JX5X0R0mzJdVJmiHpSklb5tV1kXSLpPmSPpL0N0l7Fthee0k/lfROur0nJH2xQN1mkkZJmiVpuaQXJB1fyu/VzMwapyzP85H0JDAHeAj4N7APUAu8CnwhItZIEjAF6Av8CPgAGAXsDuwdEf/O2d6dwNC07l/A94EjgUER8XxO3RXAecCFwDPA14DTgWER8edisnft2jX69Omzkd+5mVnr9Mwzz8yPiG75y7NuPt0i4v28Zd8GfgscHhGPSRoOPAgcFhGT0ppOwEzgjoj4QbpsL+B54LSIuC1d1gaYDsyIiGPSZd2Bt4CrIuLSnM99FOgWEZ8pJvvAgQNj2rRpG/29m5m1RpKeiYiB+csz3e2W33hST6fPvdLnY4C36xtP+r5FwDhgeM77jgFWAvfm1K0C7gEGS6pJFw8G2gF35H3uHcCekvpu3HdjZmYbqxImHBycPr+SPu8OvFSgbjrQW9IWOXUzI2JZgbp2QP+cuhXAGwXqAAZsZG4zM9tIZW0+knoBlwF/i4j6fVpbkxznybcwfe5SZN3WOc8fxrr7F/PrCuU7Q9I0SdPef7/QoM3MzDZG2ZpPOoJ5CFgFnJq7Cih0IEoFXjdn3Toi4uaIGBgRA7t1W+d4mZmZbaSyNB9J7YGxQD9gcO4MNpIRSaHRSP2I54Mi6xbmPHdJZ9E1VWdmZhnJvPlIagv8Efg8cFREvJhXMp3kOE2+AcCciFiaU9dXUscCdR/zyTGe6UANsFOBOoCXN/ibMDOzTdImyw+TtBlwJ3A4MDQinixQNhY4VdLBETE5fd9WwNHAXXl1o4ETSKZq10+1PhGYGBEr0rrxJM3opLS+3jeBlyJiZjN9eyxevJh58+axcuXK5tqkbYK2bdvSvXt3ttpqq3JHMbM8mTYf4JckzeIK4CNJ++es+3e6+20s8ARwh6Tck0wFXFNfHBHPS7oXuD4dTc0EziQ5OfWknLp5kn4OjJK0BHiWpEEdRsOp25tk8eLFvPfee/Tq1YsOHTqw7l4+y1JEUFdXx9y5cwHcgMwqTNbN58j0+cL0kWs0UJte5WAYcC1wE9CepBkdGhFv5b3nVJJGdjnQGXgBGBIRz+bVXQgsBc4GegIzgBERMa45vimAefPm0atXLzp2zN8LaOUgiY4dO9KrVy/efvttNx8rXm2nEm9/UWm3XyUybT4R0afIuoXAaemjqbo64Jz00VTdapIGdXlRQTfCypUr6dChQ6k2bxupQ4cO3g1qVoEq4STTFsO72iqP/0zMKpObj5mZZc7Nx8zMMpf1hINWp8/5j5T182ddNbSsn29mVohHPmZmljk3H6t6K1asWH+RmVUUNx8rqLa2Fkm8+OKLHHrooXTs2JFtt92WSy65hDVr1gCwfPlyRo4cyR577MEWW2xBz549Ofroo3n11VfX2d7MmTP51re+Rc+ePampqaFfv36cffbZDWomT57M4YcfzpZbbsnmm2/O4MGDeemlhnfXOOSQQzjwwAMZN24c++yzDzU1Ndx0002l+0GYWUn4mI816dhjj+W0005j1KhRTJgwgTFjxrDZZptRW1vLihUrWLJkCRdddBHbbrstCxcu5KabbmL//ffn1VdfpWfPnkDSeD7/+c/TsWNHRo8ezc4778xbb73FxIkT137OI488wvDhwxk6dCh33JHc9+/qq6/moIMO4p///Cc77LDD2trXXnuNH/zgB1x88cX069ePrbdu9K4YZlah3HysSaeffjrnn38+AEcccQSLFy/muuuu44c//CGdO3fmlltuWVu7evVqBg8eTI8ePbj77rsZOXIkAJdeeil1dXW88MILbLfddmvrTz755LVfn3322Rx88ME89NBDa5cdeuih9OvXj+uuu47rr79+7fL58+czceJE9t577xJ912ZWat7tZk0aMWJEg9df+9rXWLp06drdYffddx/77bcfnTt3pk2bNmy++eYsXbqUGTNmrH3PxIkTGTZsWIPGk+v111/nzTff5KSTTmLVqlVrHx07dmTQoEFMmTKlQX2fPn3ceMyqnJuPNalHjx4FX8+dO5dx48Zx4oknsttuu3HXXXfx1FNP8fTTT9OtWzeWL1++9j0LFixg++23b/Qz5s2bB8B3vvMd2rZt2+Dx8MMPs2DBggb12267bXN9e2ZWJt7tZk1677336NevX4PXAL169eJXv/oV/fv35/bbb1+7fuXKlSxc2PD+fF27dl17delCttlmGwCuvPJKvvSlL62zvl27dg1e+5I5ZtXPzceadN9996095gNwzz33sMUWW7DHHnuwbNky2rRp+Ffo97//PatXr26w7IgjjuCBBx7gnXfeKThq2WWXXejTpw/Tp09v8Flm1nK5+ViT/ud//oc1a9aw7777MmHCBG655RZqa2vp3LkzQ4YM4cEHH2TkyJEMGzaMZ555hl/84hd07ty5wTZGjx7NI488whe+8AUuuOAC+vfvz9y5cxk/fjx33HEHkvjlL3/J8OHD+fjjjxkxYgRdu3blvffeY+rUqfTu3ZtzzmnywuVmVmXcfEqs2i9v89BDD3HWWWcxZswYOnXqxEUXXcTFF18MJDPh3nrrLW699VZ+/etfs++++zJu3DiOO+64Btvo06cPTz31FBdddBGjRo1iyZIl9OrVi+HDP7mX31FHHcWUKVO44oor+O53v0tdXR09e/Zk//3358QTT8z0ezaz0lNElDtDVRg4cGBMmzat0fWvvPIKu+22W4aJSqu2tpbRo0ezcuXKdXatVZuW9mdjJeabyTUrSc9ExMD85Z7tZmZmmXPzMTOzzLn5WEG1tbVERNXvcjOzyuTmY2ZmmXPzMTOzzHmfiplZjj7L7yrp9meVdOvVwyMfMzPLnJuPmZllzrvdzMxakio5SdYjHzMzy5xHPqVW6v+FrPfzS3spj+uvv57evXvzla98peHHtqDL85hZ8/PIxzbJ9ddfzwMPPFDuGGZWZdx8rGqtWLGi3BHMbCO5+ViTxo8fz6BBg+jQoQOdOnXi2GOPZcaMGUByq4TZs2dz5513IglJnHLKKQ3eP3PmTIYOHcoWW2zBjjvuyGWXXcaaNWsa1MyfP58zzzyTXr16UVNTw6677srNN9/coOb2229HElOmTOGEE06gc+fO7LfffiX93s2sdLwz3ho1fvx4hg4dymGHHca9997L0qVLueSSSzjwwAN5/vnn+dOf/sRRRx3FXnvtRW1tLQDdunVrsI3jjjuOU089lZEjRzJu3DguvfRSdthhB0499VQAFi9ezAEHHEBdXR21tbX07duXCRMmcOaZZ7JixQrOOuusBts76aST+PrXv84f/vAHVq1alcnPwcyan5uPNeqiiy6iX79+/OUvf1k7aWDQoEF8+tOf5rrrruNnP/sZNTU1dO3alf3337/gNs4999y1jeZLX/oSjz32GHfffffaZTfccAOzZ8/mxRdfZOedd15b9+GHHzJ69GjOPPPMBhMWvvrVr3LNNdeU8ts2swx4t5sV9NFHH/Hss89y4oknNvjl37dvXw444AAmT55c1HaGDm14J9c99tiDOXPmrH09fvx49ttvP/r27cuqVavWPgYPHsyCBQt4+eWXG7w//y6pZladPPKxgj744AMigm233XaddT179mT27NlFbWfrrbdu8Lqmpobly5evfT1v3jzeeOMN2rZtW/D9CxYsaPC6UB4zqz5uPlZQly5dkMS77767zrp3332XbbbZplk+Z5tttqF79+7ccMMNBdfvsssuDV5LapbPNbPycvOxgjbffHM+97nPcf/991NbW8unPvUpAGbPns3UqVPXTgSoqamhrq5uoz9nyJAh3HjjjfTu3Zvu3bs3S3Yzq3w+5mONGjNmDK+//jrDhg1j3Lhx3H333Xz5y1+mU6dOnHvuuQAMGDCAxx9/nIcffphp06Yxa9asDfqMkSNH0r17dw466CD++7//m0mTJvHwww9z7bXXMnz48BJ8V2ZWCTzyKbUSX96mlIYMGcIjjzzC6NGjGTFiBO3ateOQQw7hmmuuYbvttgPgyiuv5PTTT2fEiBHU1dVx8sknc/vttxf9GZ06dWLq1KlcdtllXH311cydO5fOnTuzyy67cPzxx5foOzOzclNElDtDVRg4cGBMmzat0fWvvPIKu+22W4aJrFj+s7EN0ef8R0q6/VlXDV1/0aaosKtaS3omIgbmLy9qt5ukb0sqeIRZ0taSvr1BaczMrFUr9pjPbcBOjazrm64viqTtJd0o6QlJyySFpD55NX3S5YUenfNq20v6qaR3JNWl2/1igc/dTNIoSbMkLZf0giTv1zEzK4Nim09T81s3BzbkOif9gRHAB8Dj66m9EhiU91iSV/Mb4HTgEmAY8A4wQdLeeXVjgFrg/wFHAk8C90s6agOym5lZM2h0wkH6y/uzOYuOlrRHXlkH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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = style_df[style_df.index >= 1950].plot.bar(stacked = True)\n", - "ax.set_xlabel(\"Decade\")\n", - "ax.set_ylabel(\"Hydrant Count\")\n", - "None" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Rest of today's lecture\n", - "- setting axes limits\n", - "- logarithms\n", - "- multiple plots within same figure" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## IRIS dataset: http://archive.ics.uci.edu/ml/datasets/iris" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<div>\n", - "<style scoped>\n", - " .dataframe tbody tr th:only-of-type {\n", - " vertical-align: middle;\n", - " }\n", - "\n", - " .dataframe tbody tr th {\n", - " vertical-align: top;\n", - " }\n", - "\n", - " .dataframe thead th {\n", - " text-align: right;\n", - " }\n", - "</style>\n", - "<table border=\"1\" class=\"dataframe\">\n", - " <thead>\n", - " <tr style=\"text-align: right;\">\n", - " <th></th>\n", - " <th>sep-len</th>\n", - " <th>sep-wid</th>\n", - " <th>pet-len</th>\n", - " <th>pet-wid</th>\n", - " <th>class</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>5.1</td>\n", - " <td>3.5</td>\n", - " <td>1.4</td>\n", - " <td>0.2</td>\n", - " <td>Iris-setosa</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>4.9</td>\n", - " <td>3.0</td>\n", - " <td>1.4</td>\n", - " <td>0.2</td>\n", - " <td>Iris-setosa</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>4.7</td>\n", - " <td>3.2</td>\n", - " <td>1.3</td>\n", - " <td>0.2</td>\n", - " <td>Iris-setosa</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>4.6</td>\n", - " <td>3.1</td>\n", - " <td>1.5</td>\n", - " <td>0.2</td>\n", - " <td>Iris-setosa</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>5.0</td>\n", - " <td>3.6</td>\n", - " <td>1.4</td>\n", - " <td>0.2</td>\n", - " <td>Iris-setosa</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "</div>" - ], - "text/plain": [ - " sep-len sep-wid pet-len pet-wid class\n", - "0 5.1 3.5 1.4 0.2 Iris-setosa\n", - "1 4.9 3.0 1.4 0.2 Iris-setosa\n", - "2 4.7 3.2 1.3 0.2 Iris-setosa\n", - "3 4.6 3.1 1.5 0.2 Iris-setosa\n", - "4 5.0 3.6 1.4 0.2 Iris-setosa" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "resp = requests.get(\"https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data\")\n", - "resp.raise_for_status()\n", - "\n", - "iris_fh = open(\"iris.data\", \"w\")\n", - "iris_fh.write(resp.text)\n", - "iris_fh.close()\n", - "\n", - "df = pd.read_csv(\"iris.data\",\n", - " names = [\"sep-len\", \"sep-wid\", \"pet-len\", \"pet-wid\", \"class\"])\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'Iris-setosa', 'Iris-versicolor', 'Iris-virginica'}" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "classes = set(df[\"class\"])\n", - "classes" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### How do we control the *axes range* of values?\n", - "### Let us consider plotting just the data for class \"Iris-virginica\"\n", - "### How to extract data just for \"Iris-virginica\"?" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "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>sep-len</th>\n", - " <th>sep-wid</th>\n", - " <th>pet-len</th>\n", - " <th>pet-wid</th>\n", - " <th>class</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>100</th>\n", - " <td>6.3</td>\n", - " <td>3.3</td>\n", - " <td>6.0</td>\n", - " <td>2.5</td>\n", - " <td>Iris-virginica</td>\n", - " </tr>\n", - " <tr>\n", - " <th>101</th>\n", - " <td>5.8</td>\n", - " <td>2.7</td>\n", - " <td>5.1</td>\n", - " <td>1.9</td>\n", - " <td>Iris-virginica</td>\n", - " </tr>\n", - " <tr>\n", - " <th>102</th>\n", - " <td>7.1</td>\n", - " <td>3.0</td>\n", - " <td>5.9</td>\n", - " <td>2.1</td>\n", - " <td>Iris-virginica</td>\n", - " </tr>\n", - " <tr>\n", - " <th>103</th>\n", - " <td>6.3</td>\n", - " <td>2.9</td>\n", - " <td>5.6</td>\n", - " <td>1.8</td>\n", - " <td>Iris-virginica</td>\n", - " </tr>\n", - " <tr>\n", - " <th>104</th>\n", - " <td>6.5</td>\n", - " <td>3.0</td>\n", - " <td>5.8</td>\n", - " <td>2.2</td>\n", - " <td>Iris-virginica</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "</div>" - ], - "text/plain": [ - " sep-len sep-wid pet-len pet-wid class\n", - "100 6.3 3.3 6.0 2.5 Iris-virginica\n", - "101 5.8 2.7 5.1 1.9 Iris-virginica\n", - "102 7.1 3.0 5.9 2.1 Iris-virginica\n", - "103 6.3 2.9 5.6 1.8 Iris-virginica\n", - "104 6.5 3.0 5.8 2.2 Iris-virginica" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_sub = df[df[\"class\"] == \"Iris-virginica\"]\n", - "assert(len(df_sub) == 50)\n", - "df_sub.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "<AxesSubplot:xlabel='pet-wid', ylabel='pet-len'>" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "df_sub.plot.scatter(x = \"pet-wid\", y = \"pet-len\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Let's learn about *xlim* and *ylim*\n", - "- Allows us to set x-axis and y-axis limits\n", - "- Takes either a single value (LOWER-BOUND) or a tuple containing two values (LOWER-BOUND, UPPER-BOUND)\n", - "- You need to be careful about setting the UPPER-BOUND" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "<AxesSubplot:xlabel='pet-wid', ylabel='pet-len'>" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "df_sub.plot.scatter(x = \"pet-wid\", y = \"pet-len\", xlim = 0, ylim = 0)" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 216x216 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df_sub.plot.scatter(x = \"pet-wid\", y = \"pet-len\",\n", - " xlim = (0, 6), ylim = (0, 6),\n", - " figsize = (3, 3))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "What's wrong with the above plot?" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "6.9" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_sub[\"pet-len\"].max()" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(0.0, 6.0)" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ax.get_ylim()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's include assert statements to make sure we don't crop the plot!" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "ename": "AssertionError", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m<ipython-input-29-ed0f1e633492>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mxlim\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m6\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mylim\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m6\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m figsize = (3, 3))\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0;32massert\u001b[0m \u001b[0mdf_sub\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"pet-len\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m<=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_ylim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mAssertionError\u001b[0m: " - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 216x216 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df_sub.plot.scatter(x = \"pet-wid\", y = \"pet-len\",\n", - " xlim = (0, 6), ylim = (0, 6),\n", - " figsize = (3, 3))\n", - "assert df_sub[\"pet-len\"].max() <= ax.get_ylim()[1]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Now let's try all 4 assert statements\n", - "\n", - "- assert df_sub[ax.get_xlabel()].min() >= ax.get_xlim()[0]\n", - "- assert df_sub[ax.get_xlabel()].max() <= ax.get_xlim()[1]\n", - "- assert df_sub[ax.get_ylabel()].min() >= ax.get_ylim()[0]\n", - "- assert df_sub[ax.get_ylabel()].max() <= ax.get_ylim()[1]" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 216x216 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df_sub.plot.scatter(x = \"pet-wid\", y = \"pet-len\",\n", - " xlim = (0, 7), ylim = (0, 7),\n", - " figsize = (3, 3))\n", - "assert df_sub[ax.get_xlabel()].min() >= ax.get_xlim()[0]\n", - "assert df_sub[ax.get_xlabel()].max() <= ax.get_xlim()[1]\n", - "assert df_sub[ax.get_ylabel()].min() >= ax.get_ylim()[0]\n", - "assert df_sub[ax.get_ylabel()].max() <= ax.get_ylim()[1]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Logarithmic scale\n", - "- math.log(y, base)\n", - "- find an x, such that 10**x == y\n", - " - math.log10(y)" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "3.0" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "math.log10(1000)" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [], - "source": [ - "def log_approx(y):\n", - " assert type(y) == int\n", - " assert y >= 1\n", - " return len(str(y))" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "9" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "log_approx(123456789)" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "8.09151497716927" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "math.log10(123456789)" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "6" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "log_approx(989898)" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "5.995590446800246" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "math.log10(989898)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's look at the error margin" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1.0" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "errors = []\n", - "for y in range(1, 1000001):\n", - " err = abs(log_approx(y) - math.log10(y))\n", - " errors.append(err)\n", - "max(errors)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Why does this matter?\n", - "- Comparing two numbers:\n", - " - 134234255623423423423432423432432432\n", - " - 2342343252523\n", - "\n", - "- Eventually I don't care what the number is, but only counting the number of digits in the number to know how big the number is!\n", - "- log base 2: counting how many bits we need\n", - "- log base 10: 10 digits 0 through 9!" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "<AxesSubplot:>" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "s = Series([1, 10, 100, 1000, 10000, 100000, 1000000])\n", - "s.plot.line()" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "<AxesSubplot:>" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "s.plot.line(logy = True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Multiple *axessubplots* in the same plot" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(<Figure size 432x288 with 1 Axes>, <AxesSubplot:>)" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.subplots()" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(<Figure size 432x288 with 2 Axes>,\n", - " array([<AxesSubplot:>, <AxesSubplot:>], dtype=object))" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 2 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.subplots(ncols = 2)" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(<Figure size 432x288 with 2 Axes>,\n", - " array([<AxesSubplot:>, <AxesSubplot:>], dtype=object))" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEDCAYAAAArwUMAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAXS0lEQVR4nO3df6wl9V3/8ecLlh9la2XRVqMFdjcYYImFtKuS0iIgFlqaJaa/DKYSWtgWY8Qv/ogNLZoVtUptTTEKiwgGasBiFWpjwEKhtCk0S1NqtwoF+VEbmi6y5dfSBeTz/WPmem/Pnv3cuXfOj3vZ5yM5OffOOZ85n3nfc+d1ZuYzc1JKQZKk3dlr2h2QJC1tBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqo6BUWSVye5JMmXkuxIUpKs7th2/yQXJ3k0ybPtPI7v1WtJ0sR03aI4DHgnsB24Y4GvcQVwDnAh8FbgUeCmJMcscD6SpClIlxPukuxVSnmx/fls4HJgTSnloXnaHQ18FXhPKeXKdtoKYCtwbyllQ6/eS5LGrtMWxUxILMIG4HngujnzegG4FjglyX6LnK8kaULGfTD7KODBUsqOgelbgX1pdmlJkpawFWOe/0E0xzUGPT7n8V0k2QhsBFi5cuXrjjjiiPH0TpJegu6+++7HSimvHNX8xh0UAYYdBEmtUSllM7AZYP369WXLli1j6JokvTQleXiU8xv3rqfHGb7VsGrO45KkJWzcQbEVWJPkgIHp64DngPvH/PqSpJ7GHRQ3AvsA75iZ0A6PfRdwcyll55hfX5LUU+djFEne3v74uvb+zUm2AdtKKbcnORR4ANhUStkEUEr5apLrgL9Isg/wIHAusAb4lVEthCRpfBZyMPuTA7//VXt/O3ACzQHqvdl1K+Us4I+Ai4ADgXuAU0spX1lgXyVJU9A5KEop841Ueogho5lKKc8C57c3SdIy49VjJUlVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVNUpKJIcnOT6JE8keTLJp5Ic0rFt2c3tmF49lyRNxIr5npDkAOBWYCdwJlCAi4DPJXlNKeWZDq9zFXDZwLT7FtZVSdI0zBsUwDnAWuDwUsr9AEm+BnwTeB/w0Q7z+HYp5c5F91KSNDVddj1tAO6cCQmAUsqDwBeB08fVMUnS0tAlKI4Cvj5k+lZgXcfXOTfJziQ7ktya5I2deyhJmqouQXEQsH3I9MeBVR3aXwP8GnAysBH4EeDWJCfsrkGSjUm2JNmybdu2Di8hSRqXLscooDmAPSidGpby7jm/3pHkBpotlIuAN+ymzWZgM8D69euHvbYkaUK6bFFsp9mqGLSK4VsaVaWUp4DPAD+z0LaSpMnrEhRbaY5TDFoHfGORrxuGb6VIkpaYLkFxI3BskrUzE5KsBo5rH1uQJK8ATgPuWmhbSdLkdQmKy4GHgBuSnJ5kA3AD8C3mnESX5NAkLyS5cM60305yeZIzkpyQ5EyaYbU/DnxwlAsiSRqPeQ9ml1KeSXIS8DHgaprdRrcAv1lKeXrOUwPszQ+Gz73AL7W3HwaepAmK95ZSvjySJZAkjVWnUU+llEeAt83znIcYGAlVSvk08OnFdk6SNH1ePVaSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJquoUFEkOTnJ9kieSPJnkU0kO6dh2/yQXJ3k0ybNJvpTk+H7dliRNyrxBkeQA4FbgCOBM4N3ATwGfS7Kyw2tcAZwDXAi8FXgUuCnJMYvssyRpglZ0eM45wFrg8FLK/QBJvgZ8E3gf8NHdNUxyNHAG8J5SypXttNuBrcAmYEOv3kuSxq7LrqcNwJ0zIQFQSnkQ+CJweoe2zwPXzWn7AnAtcEqS/RbcY0nSRHUJiqOArw+ZvhVY16Htg6WUHUPa7gsc1uH1JUlT1GXX00HA9iHTHwdW9Wg78/gukmwENra/7kwyLKj2RD8KPDbtTiwB1mGWtZhlLWYdPsqZdQkKgDJkWjq0y2LallI2A5sBkmwppazv8FovedaiYR1mWYtZ1mJWki2jnF+XXU/bGf7JfxXDtxbmerzSduZxSdIS1iUottIcaxi0DvhGh7Zr2iG2g22fA+7ftYkkaSnpEhQ3AscmWTszIclq4Lj2sfna7gO8Y07bFcC7gJtLKTs7vP7mDs/ZU1iLhnWYZS1mWYtZI61FShl2CGHOE5qT6u4BngU+SHPM4Q+BHwJeU0p5un3eocADwKZSyqY57a8FTgF+B3gQOJfmxLvXl1K+MsqFkSSN3rxbFKWUZ4CTgPuAq4FP0KzwT5oJiVaAvYfM8yzgSuAi4DPAwcCphoQkLQ/zblFIkvZsU7l6rBcZnLXYWiRZn2Rzkv9MsiPJI0k+kWTNJPo9Dn3eFwPz+UCSkuQL4+jnJPStRZIjk3wyyWPt/8m9Sc4bZ5/Hpef64pAkf9f+f+xIcl+Sizpep25JSfLqJJe067wd7Xt8dce2vdabEw8KLzI4q2ctfplmNNrHgTcDvwe8FtiS5OCxdXpMRvC+mJnPWuAC4Lvj6Ock9K1FkvXAXcB+wNnAW4A/p9k1vKz0qUX7+GeB44EPAacBfwP8FvC3Y+z2uBwGvJPmtIQ7Fti233qzlDLRG3Ae8L/AYXOmrQFeAM6fp+3RNAfTz5ozbQVwL3DjpJdlyrV45ZBphwIv0gwomPryTaoWA/O5CbgMuA34wrSXawrvi71ohqX/07SXYwnU4k3t+uJNA9M/3LY/YNrLt8Ba7DXn57PbZVvdoV3v9eY0dj15kcFZi65FKWXbkGkPA9uAnxxxPyehz/sCgCRn0GxVfWAsPZycPrU4geY8pd1e1XmZ6VOLfdv7Jwemf48mULtcXWLJKKW8uMimvdeb0wgKLzI4q08tdpHkSOBVwH/07Nc09KpFklXAx4DfLaUs9zP++9TiDe39/knuTPJ8ku8m+XiSl420l5PRpxafpfk6hD9Nsi7Jy5OcRLOVcmlpRnTuCXqvN6cRFBO/yOAS1qcWP6A9kfFSmi2KK/p3beL61uJimiHcV42wT9PSpxY/0d5fB9wM/CLwZzS7Kv5+VB2coEXXopTyfZrgnNkd9xRwC/AvwK+PtptLWu/1ZteLAo7aRC8yuMSNann+Eng9cFopZb5rcC1Vi6pFkjcCvwq8trQ7YF8CFvu+mPnwd00p5cL259uS7A18OMm6Usp8l95Zahb7vtifJjBfRXMQ/BHgZ2kO6L5Ac/LvnqD3erPrd2aPbFhWO3nYJuOeeJHBPhdc/D9J/oTmsuzvKaXcPKK+TVqfWlxGsxX130kOTHIgzYegvdvfl9uxqz61+J/2/t8Gps+8L45ZfLemok8t3ktzzOYtpZRrSimfL6V8hGbU0/vTfAPnnqD3erPrrqdRDsv6HvDWIcOy9sSLDPa54CIASS6gGRp7Xinl6hH2bdL61OJI4P0078+Z23HAse3Py+2TY98LccKunyBnPj0u9oDotPSpxU8D20spDwxM/3J7f2TPvi0XvdebXYPi86WUHyulvAX4ZNfeZfY7s/9fKeXyUsotNEPT9gI+Mud5q5ncRQaXkj4XXCTJb9BcGuWCUsol4+rkhPSpxYlDbvfQHAQ9Ebh+DP0dpz61+FdgJ3DqwPRT2vuRfk/BBPSpxXeAVUkGD9b+XHv/7VF1conrv95cxFjehYzf/RBNYh0wZ9pKmk2dF4G30Qzdugf4L+Dlc553KM1+xAsH5nktzafEs4FfoFkJfJ9m//TUxzovsJYradL832mG+nWuBc0Jdy/SrBiOHbitm/ayTbIWu5nfbSzf8yh61QL4/Xb6HwMn02xxPgtcNe1lm2QtgNU0Q2PvozlZ70Sai5M+SROYe016eUZQj7e3t79u18Pntr///DzviV7rzcV0dCFBcS1w75Dp57bzeJpmJMI/D86v/SMX4A8Gpr+MZoz4d9oFvQs4Ydp/wB5/+EOAf2zfvJ1rQTO6p+zmdtu0l2uStdjNvG5jmQZF31rQ7GY6v13BPgc8DGwC9pn2ck2hFuuAfwC+RROW99HszVg17eVaZC2q//PjWm8u+KKASc4GLgfWlFIemue5NwOvKKUcOzD9ZJqDbceXUnY55pE535m9cuXK1x1xxBEL6qMk7cnuvvvux0oprxzV/MY9PLb3d2avX7++bNmy3HarStL0JHl4lPMb9wl3L7XhrJK0xxl3ULzUhrNK0h5n3EHxUhvOKkl7nM7HKJK8vf3xde39m5NsA7aVUm7PkO/MLqV8Ncl1wF8k2YfZ78xeA/zKqBZCkjQ+CzmYPXii3V+197fTnCZf+87sP6I5MexAmjHQfme2JC0TnYOilDLfSKWHGDKaqZTyLM2Y7vMX2jlJ0vRN5TuzJUnLh0EhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSpqlNQJDk4yfVJnkjyZJJPJTmkY9uym9sxvXouSZqIFfM9IckBwK3ATuBMoAAXAZ9L8ppSyjMdXucq4LKBafctrKuSpGmYNyiAc4C1wOGllPsBknwN+CbwPuCjHebx7VLKnYvupSRparrsetoA3DkTEgCllAeBLwKnj6tjkqSloUtQHAV8fcj0rcC6jq9zbpKdSXYkuTXJGzv3UJI0VV2C4iBg+5DpjwOrOrS/Bvg14GRgI/AjwK1JTthdgyQbk2xJsmXbtm0dXkKSNC5djlFAcwB7UDo1LOXdc369I8kNNFsoFwFv2E2bzcBmgPXr1w97bUnShHTZothOs1UxaBXDtzSqSilPAZ8BfmahbSVJk9clKLbSHKcYtA74xiJfNwzfSpEkLTFdguJG4Ngka2cmJFkNHNc+tiBJXgGcBty10LaSpMnrEhSXAw8BNyQ5PckG4AbgW8w5iS7JoUleSHLhnGm/neTyJGckOSHJmTTDan8c+OAoF0SSNB7zHswupTyT5CTgY8DVNLuNbgF+s5Ty9JynBtibHwyfe4Ffam8/DDxJExTvLaV8eSRLIEkaq06jnkopjwBvm+c5DzEwEqqU8mng04vtnCRp+rx6rCSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqo6BUWSg5Ncn+SJJE8m+VSSQzq23T/JxUkeTfJski8lOb5ftyVJkzJvUCQ5ALgVOAI4E3g38FPA55Ks7PAaVwDnABcCbwUeBW5Kcswi+yxJmqAVHZ5zDrAWOLyUcj9Akq8B3wTeB3x0dw2THA2cAbynlHJlO+12YCuwCdjQq/eSpLHrsutpA3DnTEgAlFIeBL4InN6h7fPAdXPavgBcC5ySZL8F91iSNFFdguIo4OtDpm8F1nVo+2ApZceQtvsCh3V4fUnSFHXZ9XQQsH3I9MeBVT3azjy+iyQbgY3trzuTDAuqPdGPAo9NuxNLgHWYZS1mWYtZh49yZl2CAqAMmZYO7bKYtqWUzcBmgCRbSinrO7zWS561aFiHWdZilrWYlWTLKOfXZdfTdoZ/8l/F8K2FuR6vtJ15XJK0hHUJiq00xxoGrQO+0aHtmnaI7WDb54D7d20iSVpKugTFjcCxSdbOTEiyGjiufWy+tvsA75jTdgXwLuDmUsrODq+/ucNz9hTWomEdZlmLWdZi1khrkVKGHUKY84TmpLp7gGeBD9Icc/hD4IeA15RSnm6fdyjwALCplLJpTvtrgVOA3wEeBM6lOfHu9aWUr4xyYSRJozfvFkUp5RngJOA+4GrgEzQr/JNmQqIVYO8h8zwLuBK4CPgMcDBwqiEhScvDvFsUkqQ921SuHutFBmctthZJ1ifZnOQ/k+xI8kiSTyRZM4l+j0Of98XAfD6QpCT5wjj6OQl9a5HkyCSfTPJY+39yb5Lzxtnncem5vjgkyd+1/x87ktyX5KKO16lbUpK8Oskl7TpvR/seX92xba/15sSDwosMzupZi1+mGY32ceDNwO8BrwW2JDl4bJ0ekxG8L2bmsxa4APjuOPo5CX1rkWQ9cBewH3A28Bbgz2l2DS8rfWrRPv5Z4HjgQ8BpwN8AvwX87Ri7PS6HAe+kOS3hjgW27bfeLKVM9AacB/wvcNicaWuAF4Dz52l7NM3B9LPmTFsB3AvcOOllmXItXjlk2qHAizQDCqa+fJOqxcB8bgIuA24DvjDt5ZrC+2IvmmHp/zTt5VgCtXhTu75408D0D7ftD5j28i2wFnvN+fnsdtlWd2jXe705jV1PXmRw1qJrUUrZNmTaw8A24CdH3M9J6PO+ACDJGTRbVR8YSw8np08tTqA5T2m3V3VeZvrUYt/2/smB6d+jCdQuV5dYMkopLy6yae/15jSCwosMzupTi10kORJ4FfAfPfs1Db1qkWQV8DHgd0spy/2M/z61eEN7v3+SO5M8n+S7ST6e5GUj7eVk9KnFZ2m+DuFPk6xL8vIkJ9FspVxamhGde4Le681pBMXELzK4hPWpxQ9oT2S8lGaL4or+XZu4vrW4mGYI91Uj7NO09KnFT7T31wE3A78I/BnNroq/H1UHJ2jRtSilfJ8mOGd2xz0F3AL8C/Dro+3mktZ7vdn1ooCjNtGLDC5xo1qevwReD5xWSpnvGlxL1aJqkeSNwK8Cry3tDtiXgMW+L2Y+/F1TSrmw/fm2JHsDH06yrpQy36V3lprFvi/2pwnMV9EcBH8E+FmaA7ov0Jz8uyfovd6cRlD0vcjgsGFxy/Uig31q8X+S/AnNZdnPLKXcPKK+TVqfWlxGsxX130kObKetAPZuf3+2dLtczFLRpxb/097/28D0m2kO4h7D/NdoW0r61OK9NMdsDiulPNBO+3ySJ4DNSS4tpdwzsp4uXb3Xm9PY9eRFBmf1qQUASS6gGRp7Xinl6hH2bdL61OJI4P00K46Z23HAse3Py+2TY9//Edj1E+TMp8fFHhCdlj61+Glg+5yQmPHl9v7Inn1bLnqvN6cRFNO+yOBS0qcWJPkNmkujXFBKuWRcnZyQPrU4ccjtHpqDoCcC14+hv+PUpxb/CuwETh2Yfkp7P9LvKZiAPrX4DrAqyeDB2p9r7789qk4ucf3Xm1MYC7ySJsH+nWZ42waaf+r/Al4+53mH0uxHvHCg/bU0nxLPBn6BZiXwfZr901Mf6zypWtCccPcizYrh2IHbumkv26TfF0PmdxvL9zyKvv8jv99O/2PgZJotzmeBq6a9bJOsBbCaZmjsfTQn651Ic3HSJ2kCc69JL88I6vH29vbXNFuN57a///w874le681pLewhwD+2f7CngH9m4MSR9o9cgD8YmP4ymjHi32kX9C7ghGn/ASddC5rRPWU3t9umvVyTfl8MmdeyDYq+taDZzXR+u4J9DngY2ATsM+3lmkIt1gH/AHyLJizvAz4CrJr2ci2yFtX/+XGtN70ooCSpaioXBZQkLR8GhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqvr/IXKPYvkvs7wAAAAASUVORK5CYII=\n", - "text/plain": [ - "<Figure size 432x288 with 2 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.subplots(nrows = 2)" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(<Figure size 432x288 with 4 Axes>,\n", - " array([[<AxesSubplot:>, <AxesSubplot:>],\n", - " [<AxesSubplot:>, <AxesSubplot:>]], dtype=object))" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 4 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.subplots(ncols = 2, nrows = 2)" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "<AxesSubplot:>" - ] - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 2 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "#Bad example!\n", - "fig, axes = plt.subplots(ncols = 2)\n", - "# axes[0] # the area on the left\n", - "# axes[1] # the area on the right\n", - "Series([1, 2, 3, 3, 4]).plot.line(ax = axes[0])\n", - "Series([5, 7, 7, 8]).plot.line(ax = axes[1])" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "<AxesSubplot:>" - ] - }, - "execution_count": 45, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAD9CAYAAACcJ53WAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAbU0lEQVR4nO3dd3RUdd7H8fc3kEIJvdfQBOmSCIi6iqy6yoPoiq6o4KoQQFzLrm1X117WrmtbQHfXUF1ARNeOvT46oRmkI1WBhBISUkj5PX8Qn8OylEnIzJ0783mdkzOHmUzu5wy/+8nNvfd3rznnEBER/4jzOoCIiFSOiltExGdU3CIiPqPiFhHxGRW3iIjP1Az1Apo0aeJSUlJCvRiJYZmZmTnOuabhXq7GtoTSkcZ1yIs7JSWFQCAQ6sVIDDOzDV4sV2NbQulI41q7SkREfEbFLSLiMypuERGfCaq4zexkM3vPzLab2R4zW2hmV4U6nIiI/LejFreZ9QYWAPHAWOBC4FvgJTObENp4IiJysGDOKrkEqAEMc87lVzz3vpn1AUYDL4QqnIiI/LdgdpUkACVA4UHP7w7y/SIiUo2CKd5/Vjz+1cxamVkDMxsLDAGeDFkyEZEotmjjLv76weoqvfeou0qcc1lmdjowD7im4ukSYLxzbtah3mNm6UA6QLt27aoUTCQSaWzLscotKOHhd1cw85uNNE9O4oqTUqhfO75SP+OoxW1mXYC5wDJgPPt3mQwH/mZmRc656Qe/xzk3GZgMkJaWpjs1SNTQ2Jaqcs4xd+EWHnprObsLS7jq5A7ceOZx1E2s/AT2YN7xIPu3sP/HOVdS8dwHZtYYeNrMZjrnyiu9ZBGRGLFqWx53vJbFNz/spF+7Bkw9vxfdW9Wr8s8Lprh7AUsOKO2ffQNcCjQDtlY5gYhIlCrYV8pfP1jDi5+to25STf7y615cnNaWuDg7pp8bTHFvBfqaWYJzbt8Bzw8AioCdx5RARCQKvbdsK/e88T1bdhdyUWobbjunG43rJlbLzw6muJ8FZgNvmNnz7N/HfR4wEnjyoDIXEYlpm3YWcM8by1iwfDtdmycze/xJnJjSqFqXEcxZJXPM7FzgVuBFIAlYC0wEJlVrGhERn9pXWs6Uz9bxzIeriTPjT+d248qTOxBfo/qnuwR1ONM59zbwdrUvXUQkCny1dgd/np/Fmu35nN2jOXcN60GrBrVCtryQ30hBRCRaZecV8+Bby5m3aAttGtbi779N44xuzUO+XBW3iEgllZU7ZnyzkUffWUFhSRnXDu7MxMGdqZVQIyzLV3GLiFRC1pZcbp/3HUs25zKoU2PuHd6Tzs3qhjWDiltEJAh7ikp4/N2VTP16A43qJPL0JX05r08rzI7tnOyqUHGLiByBc47Xl/zI/W8uJye/mNED2/P7s7pSv1blri9SnVTcIiKHsTY7nzvnZ/HFmh30blOfv19xIr3a1Pc6lopbRORgRSVlPPfRGiZ9so7E+DjuG96DSwe0p8YxTlWvLipuEZEDfLRyO3fNX8bGnQVccEJr/nhuN5olJ3kd6z+ouEVEgJ9yC7n3je95O2srnZrWYcbYAQzq1MTrWIek4haRmFZSVs4/v1jPkwtWUVbuuPnsrow9tSMJNSP3zowqbhGJWYH1O7njtSxWbM3jjG7NuOe8HrRtVNvrWEel4haRmLNz7z4efnsFrwQ20ap+EpNGpXJW9+aenJNdFSpuEYkZ5eWO2Zmb+MvbK8grKmXcLzpy3ZAu1KnC7cO85K+0IiJVtPynPdzxWhaZG3bRP6UR953fk64tkr2OVSUqbhGJavnFpTz1/ir+8eV66teK59ERvRmR2sY3u0UORcUtIlHJOcc7WftvH7Z1TxEj+7fjlrO70rBOgtfRjpmKW0SizsYdBdz5ehYfr8zm+Jb1eP7yfvRr19DrWNVGxS0iUaO4tIxJn6zjuY/WEF8jjjv/pzujT2pPzRDcPsxLKm4RiQqfr87hzvlZrMvZy9DeLfnz0O60qB9ZU9Wri4pbRADYkV/M8p/yvI5RaeXOMTtzM28s+ZGUxrXJuKo/vziuqdexQkrFLSL8lFvIec9+QXZesddRqiShZhw3/LIL40/rRFJ8eG4f5iUVt0iMKyopIz0jk4LiUqaMTqNBbe9uEFBVbRvWjtrdIoei4haJYc45bp27lKwfc5k8Ko0zu4f+DuVy7KLrUKuIVMqkT9cxf/GP/OHM41TaPqLiFolRH63YzsPvrGBo75ZMHNzZ6zhSCSpukRi0Zns+181cxPEt6vHoiN6+nv4di1TcIjEmt7CE9IwACTXjmHJFGrUTdKjLb/Q/JhJDysod181cxKZdBUwfM5DWDWp5HUmqQMUtEkMefmcFn6zK5sELetG/QyOv40gVaVeJSIx4deFmJn+6jlED23PpgHZex5FjoOIWiQGLN+3mtle/Y2DHRtw5rLvXceQYqbhFotz2PUWMmxqgWXIiz1+WSnyUXSkvFmkft0gUKyopI31qJnlFpcydMIhGUXATAVFxi0Qt5xy3z8ti8abd/O3yfhzfsp7XkaSa6G8mkSj10uc/MHfhZq4f0oVf9WzpdRypRipukSj06apsHnxrOWf3aM71Q7p4HUeqmYpbJMr8kLOXa2cs5LjmyTxxcV/i4jSdPdqouEWiSF5RCWMzAtSIM6aMTqNOog5jRSP9r4pEibJyxw2zFvNDzl6mXt2fto1qex1JQkRb3CJR4vH3VvLBiu3cNaw7gzo18TqOhJCKWyQKzF+8hec/XsvI/m0ZNbC913EkxFTcIj733eZcbpmzlBNTGnLPeT11be0YoOIW8bHteUWkTw3QuE4CL1yeSkJNrdKxQAcnRXyquLSMCdMWsqtgH3PGD6JJ3USvI0mYBP3r2czONbNPzSzfzPaYWcDMzghlOBE5NOccd762jMwNu3h0RB96tq7vdSQJo6CK28zGAfOBTOAC4CJgNqDzjUQ88PKX63klsImJgzsxrE8rr+NImB11V4mZpQBPATc755464KV3QxNJRI7kizU53Pfmcn55fDP+cGZXr+OIB4LZ4r4KKAf+FuIsInIUG3cUMHHGQjo2qcOTv9F09lgVTHGfAqwALjGztWZWamZrzGxiiLOJyAHyi0sZk/EtzsGU0WkkJ8V7HUk8EkxxtwK6AI8CfwHOAt4HnjWz6w/1BjNLrzh4GcjOzq62sCJe82psl5c7bnxlMWu25/PspSeQ0qRO2JYtkSeY4o4DkoFxzrkpzrkPnXMTgHeAP9ohzvZ3zk12zqU559KaNm1azZFFvOPV2H5qwSre/34btw/tzqldtE7FumCKe0fF4/sHPf8e0BzQFdpFQujNpT/x1w/XMCK1DVednOJ1HIkAwRT3ssM8//OWdnk1ZRGRgyz7MZebZi/hhHYNeOACTWeX/YIp7nkVj2cf9PzZwGbn3NbqjSQiADvyi0nPyKR+rXgmXZ5KYs0aXkeSCBHMlPe3gI+ASWbWBFgHjGD/QcorQ5hNJGbtKy1nwvSF5OQXM3v8STSrl+R1JIkgRy1u55wzs/OBh4B7gIbsPz3wMufcjNDGE4lN97yxjG9+2MnTl/Sld5sGXseRCBPURaacc3uAiRVfIhJC077ewPT/3ci40zoyvG9rr+NIBNI1IEUiyNfrdnD368sY3LUpt5zdzes4EqFU3CIRYtPOAq6ZvpB2jWvz9MgTqKHp7HIYKm6RCFCwr5SxGQFKysp5cXQa9TSdXY5AxS3iMeccN81ewqpteTwz8gQ6Nq3rdSSJcCpuEY898+Ea3vpuK7ed043TuzbzOo74gIpbxEPvLtvKE++v4oITWjP21I5exxGfUHGLeGTl1jx+/8pi+rSpz0O/7qXp7BI0FbeIB3bt3ceYjG+pk1iTSaPSSIrXdHYJnu7yLhJmJWXlTJyxkG25xcwaN5AW9TWdXSpHxS0SZg+8uZwv1+7gsYv60K9dQ6/jiA9pV4lIGL3y7Ub++eV6rj6lAyNS23gdR3xKxS0SJoH1O7njtSxO7dKEP56j6exSdSpukTD4cXch46dl0rpBLZ4d2Y+aNbTqSdVpH7dIiBXuKyN9aoCiknJmpadRv7ams8uxUXGLhJBzjlvmLmXZj3t4cXQanZslex1JooD+XhMJoRc+WcsbS37kprO6MuT45l7HkSih4hYJkQ+Wb+PRd1cyrE8rrjm9k9dxJIqouEVCYPW2PK6ftZgererxyIW9NZ1dqpWKW6Sa5RaUMDYjQFJ8HJNHpVErQdPZpXrp4KRINSotK+famQvZsruQmWMH0qpBLa8jSRTSFrdINSpzjqZ1E7lveE/SUhp5HUeilLa4RapRYs0aPH5xH+3TlpDSFrdINVNpS6ipuEVEfEbFLSLiMypuERGfUXGLiPiMiltExGdU3CIiPqPiFhHxGRW3iIjPqLhFRHxGxS0i4jMqbhERn1Fxi4j4jIpbRMRnVNwiIj6j4hYR8RkVt4iIz6i4RUR8RsUtIuIzKm4REZ9RcYuI+EyVitvM3jEzZ2b3V3cgERE5skoXt5mNBPqEIIuIiAShUsVtZg2AJ4HfhySNiIgcVWW3uB8BljnnZoYijIiIHF3QxW1mpwCjgWtCF0fkP+UVlXDb3KVs31PkdRSRiBFUcZtZPDAJeMw5tzKI7083s4CZBbKzs481o8So9Tl7+fXzXzI7czOBDbu8jgNobEtkCHaL+1agFvBAMN/snJvsnEtzzqU1bdq0yuEkdn2+Oofhz31Bdn4xU6/qz7m9WnodCdDYlshQ82jfYGbtgNuBMUCimSUe8HJixQHLPOdcWWgiSixxzvGPL9Zz/5vf06VZMlNGp9GucW2vY4lElKMWN9ARSAKmHeK1myq+TgAWV18siUXFpWXcMS+L2ZmbOat7c574TV/qJgYzREViSzBrxWJg8CGe/4j9Zf4SsKYaM0kM2r6niHHTMlm0cTfXDenCDUO6EBdnXscSiUhHLW7n3G7g44OfNzOADc65/3pNpDKWbNrNuKmZ5BaW8MJl/TgnQvZni0Qq/R0qnnpt0RZunbuUJnUTmTthEN1b1fM6kkjEq3JxO+f0d6xUWVm545F3VzDpk3UM6NCI5y/rR+O6iUd/o4hoi1vCL7ewhOtnLeLjldlcPrAddw3rQXwNXahSJFgqbgmrddn5jMkIsHFHAQ9c0JPLBrT3OpKI76i4JWw+Xrmd381cRHyNOKaPGcCAjo29jiTiSypuCTnnHFM+W8df3l5B1xb1mDI6lTYNNalGpKpU3BJSRSVl/PHV75i3aAtDe7Xk0Yt6UztBw07kWGgNkpDZmlvEuKkBlmzO5Q9nHse1Z3T++fx/ETkGKm4JiYUbdzFuaiYFxaVMHpXKWT1aeB1JJGqouKXazcnczJ9e/Y4W9ZOYdvUAurZI9jqSSFRRcUu1KS0r56G3V/DS5z8wqFNjnru0Hw3rJHgdSyTqqLilWuQWlHDtzIV8tjqH3w5K4Y6hx1NTk2pEQkLFLcdszfY8xrwcYMvuQh65sDcXn9jW60giUU3FLcfkg+XbuH7WYpLiazArfSCp7Rt5HUkk6qm4pUqcczz/8Voee28lPVvVZ9KoVFo1qOV1LJGYoOKWSivcV8bNc5bw76U/cV6fVjx8YW9qJdTwOpZIzFBxS6Vs2V1IekaA73/aw62/6sb40zpqUo1ImKm4JWjfrt/JhGmZFJeU89IVaZzRrbnXkURikopbgjLrm438eX4WrRvUYlZ6Gp2baVKNiFdU3HJEJWXl3P/v73n5qw2c2qUJz47sR/3a8V7HEolpKm45rF1793HN9IV8tW4HY0/twK2/6qZJNSIRQMUdQfaVlvPF2hz2lZZ7HYXi0nIefXcF2/YU8/hFfbgwtY3XkUSkgoo7QuTkFzNhWibfrt/ldZT/1yw5kVfSB3JCu4ZeRxGRA6i4I0DWllzSMwLsLNjHIyN606NVPa8jAdC+cR3qJmqIiEQarZUee2PJj9w8ZwmNaicwZ/wgerau73UkEYlwKm6PlJc7Hn9/Jc99tJa09g154fJUmiYneh1LRHxAxe2BvKISbnxlMQuWb2dk/7bcc15PEmrqbA0RCY6KO8zW5+xlbEaAdTl7uXd4D0YNbK8p4yJSKSruMPp8dQ4TZywkzmDq1f0Z1KmJ15FExIdU3GHgnOPvX6zngTe/p0uzZF68Io22jWp7HUtEfErFHWLFpWXcPi+LOZmbObtHc564uC91dIqdiBwDNUgIbd9TxLhpmSzauJvrh3Th+iFdiIvT/mwROTYq7hBZsmk346ZmkltYwguX9eOcXi29jiQiUULFHQKvLdrCLXOX0iw5kVevGcTxLSNjJqSIRAcVdzUqK3c88s4KJn26jgEdGvHC5ak0qpPgdSwRiTIq7mqSW1jC9bMW8fHKbEYNbM+dw7oTr0ugikgIqLirwdrsfMZmBNi4o4AHL+jFpQPaeR1JRKKYivsYfbRyO9fNXERCjThmjB1I/w6NvI4kIlFOxV1Fzjkmf7qOh99ZQbcW9Zg8OpU2DTWpRkRCT8VdBUUlZfzx1e+Yt2gLQ3u15NGLelM7QR+liISH2qaStuYWMW5qgCWbc7nprOOYOLizLhIlImGl4q6EhRt3MW5qJgXFpUwelcpZPVp4HUlEYpCKO0izA5u4fV4WLeonMX3MAI5rnux1JBGJUSruoygtK+fBt1bw9y9+4OTOjXl2ZD8aalKNiHhIxX0Euwv28buZi/hsdQ6/HZTCHUOPp6Ym1YiIx1Tch7F6Wx5jMwJs2V3IIxf25uIT23odSUQEgKNuPprZCDOba2YbzKzQzFaa2UNmFrU7eRd8v40Lnv+S/OIyZqUPVGmLSEQJZov7JmAj8CdgM3ACcDcw2MwGOefKQxcvvJxzPP/xWh57byU9W9Vn8uhUWtav5XUsEZH/EExxD3POZR/w70/MbCfwMnA68GEogoVb4b4ybp6zhH8v/YnhfVvx8IW9SYqv4XUsEZH/ctTiPqi0f/ZtxWPr6o3jjS27C0nPCPD9T3u47ZxujPtFR02qEZGIVdWDk6dVPC6vriBeCazfyfhpmRSXlPPSFWmc0a2515FERI6o0ue2mVlr4F5ggXMucJjvSTezgJkFsrMPtcEeGWZ9s5GRU74mOSmeeRMHqbTlqPwytiW6Vaq4zawuMB8oBa483Pc55yY759Kcc2lNmzY9xojVr6SsnDvnZ3Hbq99xUqcmvHbNyXRuFrUnyUg1ivSxLbEh6F0lZpYEvA50BE5zzm0OWaoQ2rl3HxOnL+SrdTsYe2oHbjvneGrozusi4iNBFbeZxQNzgf7AL51z34U0VYis2LqHsRkBtu0p5vGL+nBhahuvI4mIVNpRi9vM4oDpwBBgqHPu65CnCoF3srby+38tpm5iTf417iT6tm3gdSQRkSoJZov7OeAi4AFgr5kNPOC1zZG+y6S83PHMh2t4csEq+rRtwORRqTSvl+R1LBGRKgumuM+peLy94utA97B/FmVE2ltcyk2zl/B21lZ+3a81D17QS5NqRMT3gpmAkxKGHNVu084CxmYEWLUtjzuGHs/Vp3TQpBoRiQpReXXAr9bu4JrpmZSVO/5xZX9OO06nbYlI9Ii64p769QbueX0Z7RvXZsroNDo2ret1JBGRahU1xb2vtJy731jGjP/dyBndmvHUJX2plxTvdSwRkWoXFcWdk1/MNdMW8s36nUw4vRM3ndVVk2pEJGr5vriX/ZhLekYmOfnFPH1JX4b3jYoLFoqIHJavi/vNpT/xh9mLaVg7gTnjB9GrTX2vI4mIhJwvi7u83PHkglU88+EaUts35IXL+9EsWZNqRCQ2+K6484pKuPGVJSxYvo3fpLXl3vN7kFhTk2pEJHb4qrg37NjLmJcDrMvZy93DunPFoBRNqhGRmOOb4v58dQ4TZyzEDDKu6s/JnZt4HUlExBMRX9zOOf755Xruf3M5nZrWYcroNNo3ruN1LBERz0R0cReXlvHn17L4V2AzZ3ZvzpO/6UvdxIiOLCISchHbgtvzihg/NZOFG3dz3RmdueGXxxGnSTUiIpFZ3Es37yY9I5PcwhKeu7QfQ3u39DqSiEjEiLjinr94C7fMWUqTuonMmXASPVppUo2IyIEiprjLyh2PvLuCSZ+so39KI56/vB9N6iZ6HUtEJOJERHHvKSrh+pmL+GhlNpcOaMfdw3qQUDPO61giIhHJ8+Jel53PmIwAG3cUcN/5PRk1sL3XkUREIpqnxf3xyu38buYi4mvEMW3MAAZ2bOxlHBERX/CsuKd+tZ67Xl/Gcc2TmTI6jbaNansVRUTEVzwr7g5N6nJur5Y8MqI3tRM832MjIuIbnjXmKV2acEoXXW9ERKSydOqGiIjPqLhFRHxGxS0i4jMqbhERn1Fxi4j4jIpbRMRnVNwiIj6j4hYR8RlzzoV2AWbZwIbDvNwEyAlpAP/RZ3JoR/pc2jvnmoYzDGhsR5ho/LwPO65DXtxHYmYB51yaZwEikD6TQ/Pb5+K3vH4Xa5+3dpWIiPiMiltExGe8Lu7JHi8/EukzOTS/fS5+y+t3MfV5e7qPW0REKs/rLW4REakkFbeIiM+EvbjNrK2ZzTGzXDPbY2avmlm7cOeIFGY2wszmmtkGMys0s5Vm9pCZJXudLZKY2Ttm5szsfq+zHI7GdvjE+noT1uI2s9rAh0A34ApgFNAF+MjM6oQzSwS5CSgD/gT8CngBmAC8b2b6iwgws5FAH69zHInGdtjF9HoT7luXjQU6Al2dc2sAzGwpsBoYBzwR5jyRYJhzLvuAf39iZjuBl4HT2V8GMcvMGgBPAjcCM7xNc0Qa2+EV0+tNuH8znQd8/fPABnDO/QB8AQwPc5aIcNDg+9m3FY+tw5klQj0CLHPOzfQ6yFFobIdRrK834S7uHkDWIZ5fBnQPc5ZIdlrF43JPU3jMzE4BRgPXeJ0lCBrb3ouZ9Sbcxd0I2HWI53cCDcOcJSKZWWvgXmCBcy7gdR6vmFk8MAl4zDm30us8QdDY9lCsrTde7MQ/1IwfC3uKCGRmdYH5QClwpcdxvHYrUAt4wOsglaCx7YFYXG/CfXByF/u3TA7WkENvrcQMM0sCXmf/Aa7TnHObPY7kmYpT6G4HxgCJZpZ4wMuJFQcs85xzZV7kOwyNbQ/E6noT7i3uZezfF3iw7sD3Yc4SMSp2C8wF+gPnOue+8ziS1zoCScA09pfez1+w/zSwXUAvb6IdlsZ2mMXyehPu4n4dGGhmHX9+wsxSgJMrXos5FeecTgeGAMOdc197HCkSLAYGH+IL9pf5YGDNId/pHY3tMIr19SasF5mqmIiwBCgE7mD/PsH7gGSgt3MuP2xhIoSZvQCMZ/++3H8f9PLmWPnTLxhm5oAHnHN3eJ3lYBrb4RXr603Yrw5Ysf/ySeBM9h+4+QC4wTm3PqxBIoSZrQfaH+ble5xzd4cvTWSL5OIGje1wivX1Rpd1FRHxmaif0y8iEm1U3CIiPqPiFhHxGRW3iIjPqLhFRHxGxS0i4jMqbhERn1Fxi4j4zP8B4BY9T/kuUQoAAAAASUVORK5CYII=\n", - "text/plain": [ - "<Figure size 432x288 with 2 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, axes = plt.subplots(ncols = 2, sharey = True)\n", - "# axes[0] # the area on the left\n", - "# axes[1] # the area on the right\n", - "Series([1, 2, 3, 3, 4]).plot.line(ax = axes[0])\n", - "Series([5, 7, 7, 8]).plot.line(ax = axes[1])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### That's all folks ...\n", - "### (for plotting topic)" - ] - }, - { - "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.8.8" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/f22/meena_lec_notes/lec-39/examples/.ipynb_checkpoints/plotting3-checkpoint.ipynb b/f22/meena_lec_notes/lec-40/examples/.ipynb_checkpoints/plotting3-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-39/examples/.ipynb_checkpoints/plotting3-checkpoint.ipynb rename to f22/meena_lec_notes/lec-40/examples/.ipynb_checkpoints/plotting3-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-39/examples/.ipynb_checkpoints/plotting3_template-checkpoint.ipynb b/f22/meena_lec_notes/lec-40/examples/.ipynb_checkpoints/plotting3_template-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-39/examples/.ipynb_checkpoints/plotting3_template-checkpoint.ipynb rename to f22/meena_lec_notes/lec-40/examples/.ipynb_checkpoints/plotting3_template-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-39/examples/plotting3.ipynb b/f22/meena_lec_notes/lec-40/examples/plotting3.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-39/examples/plotting3.ipynb rename to f22/meena_lec_notes/lec-40/examples/plotting3.ipynb diff --git a/f22/meena_lec_notes/lec-39/examples/plotting3_template.ipynb b/f22/meena_lec_notes/lec-40/examples/plotting3_template.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-39/examples/plotting3_template.ipynb rename to f22/meena_lec_notes/lec-40/examples/plotting3_template.ipynb diff --git a/f22/meena_lec_notes/lec-39/examples/sp500.csv b/f22/meena_lec_notes/lec-40/examples/sp500.csv similarity index 100% rename from f22/meena_lec_notes/lec-39/examples/sp500.csv rename to f22/meena_lec_notes/lec-40/examples/sp500.csv diff --git a/f22/meena_lec_notes/lec-40/.ipynb_checkpoints/demo_lec_39-checkpoint.ipynb b/f22/meena_lec_notes/lec-41/.ipynb_checkpoints/demo_lec_39-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-40/.ipynb_checkpoints/demo_lec_39-checkpoint.ipynb rename to f22/meena_lec_notes/lec-41/.ipynb_checkpoints/demo_lec_39-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-40/.ipynb_checkpoints/demo_lec_39_template-checkpoint.ipynb b/f22/meena_lec_notes/lec-41/.ipynb_checkpoints/demo_lec_39_template-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-40/.ipynb_checkpoints/demo_lec_39_template-checkpoint.ipynb rename to f22/meena_lec_notes/lec-41/.ipynb_checkpoints/demo_lec_39_template-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-41/.ipynb_checkpoints/demo_lec_40-checkpoint.ipynb b/f22/meena_lec_notes/lec-41/.ipynb_checkpoints/demo_lec_40-checkpoint.ipynb index c7b889765030c6ef1aa505eaa243e3462bc2b319..3e5b99b0743e8977ab8df60591fc7f3a82fd6d07 100644 --- a/f22/meena_lec_notes/lec-41/.ipynb_checkpoints/demo_lec_40-checkpoint.ipynb +++ b/f22/meena_lec_notes/lec-41/.ipynb_checkpoints/demo_lec_40-checkpoint.ipynb @@ -4,14 +4,24 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "<style>em { color: red; }</style> <style>.container { width:100% !important; }</style>" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "import pandas as pd\n", - "import numpy as np\n", - "from numpy.random import choice, normal\n", - "from pandas import Series, DataFrame\n", - "import time\n", - "import matplotlib " + "# ignore this cell (it's just to make certain text red later, but you don't need to understand it).\n", + "from IPython.core.display import display, HTML\n", + "display(HTML('<style>em { color: red; }</style> <style>.container { width:100% !important; }</style>'))" ] }, { @@ -20,7 +30,10 @@ "metadata": {}, "outputs": [], "source": [ - "%matplotlib inline" + "import pandas as pd\n", + "from pandas import DataFrame, Series\n", + "import matplotlib\n", + "from matplotlib import pyplot as plt" ] }, { @@ -36,34 +49,17 @@ "cell_type": "code", "execution_count": 4, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<style>em { color: red; }</style> <style>.container {width:100% !important; }</style>" - ], - "text/plain": [ - "<IPython.core.display.HTML object>" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "# ignore this cell - it makes the emphasized text red and uses the full width of the screen\n", - "from IPython.core.display import HTML\n", - "HTML('<style>em { color: red; }</style> <style>.container {width:100% !important; }</style>')" + "import math\n", + "import requests" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "<img src=\"coins.png\">\n", - "\n", - "## Which sequence of coins was generated *randomly*? Which was *handpicked* with the goal of tricking you?" + "# Bar Plot Example w/ Fire Hydrants continuation" ] }, { @@ -73,8 +69,204 @@ "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>X</th>\n", + " <th>Y</th>\n", + " <th>OBJECTID</th>\n", + " <th>CreatedBy</th>\n", + " <th>CreatedDate</th>\n", + " <th>LastEditor</th>\n", + " <th>LastUpdate</th>\n", + " <th>FacilityID</th>\n", + " <th>DataSource</th>\n", + " <th>ProjectNumber</th>\n", + " <th>...</th>\n", + " <th>Elevation</th>\n", + " <th>Manufacturer</th>\n", + " <th>Style</th>\n", + " <th>year_manufactured</th>\n", + " <th>BarrelDiameter</th>\n", + " <th>SeatDiameter</th>\n", + " <th>Comments</th>\n", + " <th>nozzle_color</th>\n", + " <th>MaintainedBy</th>\n", + " <th>InstallType</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>-89.519573</td>\n", + " <td>43.049308</td>\n", + " <td>2536</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>WUJAG</td>\n", + " <td>2018-06-07T19:45:53.000Z</td>\n", + " <td>HYDR-2360-2</td>\n", + " <td>FASB</td>\n", + " <td>NaN</td>\n", + " <td>...</td>\n", + " <td>1138.0</td>\n", + " <td>NaN</td>\n", + " <td>Pacer</td>\n", + " <td>1996.0</td>\n", + " <td>5.0</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>blue</td>\n", + " <td>MADISON WATER UTILITY</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>-89.521988</td>\n", + " <td>43.049193</td>\n", + " <td>2537</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>WUJAG</td>\n", + " <td>2018-06-07T19:45:53.000Z</td>\n", + " <td>HYDR-2360-4</td>\n", + " <td>FASB</td>\n", + " <td>NaN</td>\n", + " <td>...</td>\n", + " <td>1170.0</td>\n", + " <td>NaN</td>\n", + " <td>Pacer</td>\n", + " <td>1995.0</td>\n", + " <td>5.0</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>blue</td>\n", + " <td>MADISON WATER UTILITY</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>-89.522093</td>\n", + " <td>43.048233</td>\n", + " <td>2538</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>WUJAG</td>\n", + " <td>2018-06-07T19:45:53.000Z</td>\n", + " <td>HYDR-2361-19</td>\n", + " <td>FASB</td>\n", + " <td>NaN</td>\n", + " <td>...</td>\n", + " <td>1179.0</td>\n", + " <td>NaN</td>\n", + " <td>Pacer</td>\n", + " <td>1996.0</td>\n", + " <td>5.0</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>blue</td>\n", + " <td>MADISON WATER UTILITY</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>-89.521013</td>\n", + " <td>43.049033</td>\n", + " <td>2539</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>WUJAG</td>\n", + " <td>2018-06-07T19:45:53.000Z</td>\n", + " <td>HYDR-2360-3</td>\n", + " <td>FASB</td>\n", + " <td>NaN</td>\n", + " <td>...</td>\n", + " <td>1163.0</td>\n", + " <td>NaN</td>\n", + " <td>Pacer</td>\n", + " <td>1995.0</td>\n", + " <td>5.0</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>blue</td>\n", + " <td>MADISON WATER UTILITY</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>-89.524782</td>\n", + " <td>43.056263</td>\n", + " <td>2540</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>WUPTB</td>\n", + " <td>2017-08-31T16:19:46.000Z</td>\n", + " <td>HYDR-2257-5</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>...</td>\n", + " <td>1065.0</td>\n", + " <td>NaN</td>\n", + " <td>Pacer</td>\n", + " <td>1996.0</td>\n", + " <td>5.0</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>blue</td>\n", + " <td>MADISON WATER UTILITY</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>5 rows × 25 columns</p>\n", + "</div>" + ], "text/plain": [ - "2" + " X Y OBJECTID CreatedBy CreatedDate LastEditor \\\n", + "0 -89.519573 43.049308 2536 NaN NaN WUJAG \n", + "1 -89.521988 43.049193 2537 NaN NaN WUJAG \n", + "2 -89.522093 43.048233 2538 NaN NaN WUJAG \n", + "3 -89.521013 43.049033 2539 NaN NaN WUJAG \n", + "4 -89.524782 43.056263 2540 NaN NaN WUPTB \n", + "\n", + " LastUpdate FacilityID DataSource ProjectNumber ... \\\n", + "0 2018-06-07T19:45:53.000Z HYDR-2360-2 FASB NaN ... \n", + "1 2018-06-07T19:45:53.000Z HYDR-2360-4 FASB NaN ... \n", + "2 2018-06-07T19:45:53.000Z HYDR-2361-19 FASB NaN ... \n", + "3 2018-06-07T19:45:53.000Z HYDR-2360-3 FASB NaN ... \n", + "4 2017-08-31T16:19:46.000Z HYDR-2257-5 NaN NaN ... \n", + "\n", + " Elevation Manufacturer Style year_manufactured BarrelDiameter \\\n", + "0 1138.0 NaN Pacer 1996.0 5.0 \n", + "1 1170.0 NaN Pacer 1995.0 5.0 \n", + "2 1179.0 NaN Pacer 1996.0 5.0 \n", + "3 1163.0 NaN Pacer 1995.0 5.0 \n", + "4 1065.0 NaN Pacer 1996.0 5.0 \n", + "\n", + " SeatDiameter Comments nozzle_color MaintainedBy InstallType \n", + "0 NaN NaN blue MADISON WATER UTILITY NaN \n", + "1 NaN NaN blue MADISON WATER UTILITY NaN \n", + "2 NaN NaN blue MADISON WATER UTILITY NaN \n", + "3 NaN NaN blue MADISON WATER UTILITY NaN \n", + "4 NaN NaN blue MADISON WATER UTILITY NaN \n", + "\n", + "[5 rows x 25 columns]" ] }, "execution_count": 5, @@ -83,16 +275,8 @@ } ], "source": [ - "# Write your guess in this cell\n", - "2" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----\n", - "### Random selection from a list" + "df = pd.read_csv(\"Fire_Hydrants.csv\")\n", + "df.head()" ] }, { @@ -103,25 +287,40 @@ { "data": { "text/plain": [ - "'rock'" + "Text(0.5, 0, 'Hydrant count')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } ], "source": [ - "#choice([<option1>, <option2> <...>])\n", - "choice([\"rock\", \"paper\", \"scissors\"])" + "style_counts = df[\"Style\"].str.upper().value_counts()\n", + "top12 = style_counts.iloc[:12]\n", + "top12[\"other\"] = style_counts.iloc[12:].sum()\n", + "ax = top12.plot.barh(color=\"k\")\n", + "ax.set_xlabel(\"Hydrant count\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "----\n", - "### Make lots of choices " + "### In what *decade* were *pacers manufactured*?\n", + "### Take a peek at the *Style* column data" ] }, { @@ -130,18 +329,34 @@ "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "array(['paper', 'scissors', 'paper', 'scissors', 'rock'], dtype='<U8')" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "0 Pacer\n", + "1 Pacer\n", + "2 Pacer\n", + "3 Pacer\n", + "4 Pacer\n", + "Name: Style, dtype: object\n", + "10104 NaN\n", + "10105 NaN\n", + "10106 NaN\n", + "10107 NaN\n", + "10108 NaN\n", + "Name: Style, dtype: object\n" + ] } ], "source": [ - "choice([\"rock\", \"paper\", \"scissors\"], size=5)" + "print(df[\"Style\"].head())\n", + "print(df[\"Style\"].tail())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Which *column* gives *year* information?" ] }, { @@ -152,7 +367,13 @@ { "data": { "text/plain": [ - "numpy.ndarray" + "Index(['X', 'Y', 'OBJECTID', 'CreatedBy', 'CreatedDate', 'LastEditor',\n", + " 'LastUpdate', 'FacilityID', 'DataSource', 'ProjectNumber',\n", + " 'InstallDate', 'LifecycleStatus', 'Location', 'SymbolRotation',\n", + " 'HydrantType', 'Elevation', 'Manufacturer', 'Style',\n", + " 'year_manufactured', 'BarrelDiameter', 'SeatDiameter', 'Comments',\n", + " 'nozzle_color', 'MaintainedBy', 'InstallType'],\n", + " dtype='object')" ] }, "execution_count": 8, @@ -161,7 +382,14 @@ } ], "source": [ - "type(choice([\"rock\", \"paper\", \"scissors\"], size=5))" + "df.columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### How to get the *decade* for *pacers* and *others*?" ] }, { @@ -173,127 +401,213 @@ "name": "stdout", "output_type": "stream", "text": [ - "['scissors' 'paper' 'paper' 'paper' 'rock']\n" + " Style year_manufactured\n", + "0 Pacer 1996.0\n", + "1 Pacer 1995.0\n", + "2 Pacer 1996.0\n", + "3 Pacer 1995.0\n", + "4 Pacer 1996.0\n", + " Style year_manufactured\n", + "10104 NaN 2018.0\n", + "10105 NaN 2017.0\n", + "10106 NaN 2000.0\n", + "10107 NaN 2017.0\n", + "10108 NaN NaN\n" ] } ], "source": [ - "a = choice([\"rock\", \"paper\", \"scissors\"], size=5)\n", - "print(a)" + "print(df[[\"Style\", \"year_manufactured\"]].head())\n", + "print(df[[\"Style\", \"year_manufactured\"]].tail())" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 1996.0\n", + "1 1995.0\n", + "2 1996.0\n", + "3 1995.0\n", + "4 1996.0\n", + "Name: year_manufactured, dtype: float64\n", + "18 1987.0\n", + "22 1996.0\n", + "23 1996.0\n", + "71 1987.0\n", + "72 1987.0\n", + "Name: year_manufactured, dtype: float64\n" + ] + } + ], + "source": [ + "pacer_years = df[df[\"Style\"] == \"Pacer\"][\"year_manufactured\"]\n", + "other_years = df[\"year_manufactured\"][df[\"Style\"] != \"Pacer\"]\n", + "print(pacer_years.head())\n", + "print(other_years.head())" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'paper'" + "0 1990.0\n", + "1 1990.0\n", + "2 1990.0\n", + "3 1990.0\n", + "4 1990.0\n", + "Name: year_manufactured, dtype: float64" ] }, - "execution_count": 10, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "a[2]" + "pacer_decades = (pacer_years // 10 * 10)\n", + "pacer_decades.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "----\n", - "### Random series" + "### How to *count the decades* for pacers and others?" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0 rock\n", - "1 scissors\n", - "2 scissors\n", - "3 paper\n", - "4 rock\n", - "dtype: object" + "2000.0 1730\n", + "1990.0 846\n", + "2010.0 503\n", + "1980.0 21\n", + "1960.0 1\n", + "Name: year_manufactured, dtype: int64" ] }, - "execution_count": 11, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "Series(choice([\"rock\", \"paper\", \"scissors\"], size=5))" + "pacer_decades = (pacer_years // 10 * 10).value_counts()\n", + "pacer_decades" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "other_decades = (other_years // 10 * 10).value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "----\n", - "### Multidimensional random Series" + "### How to convert the *decades* back to *int*?" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "#Doesn't work because of NaN values\n", + "#pacer_decades = (pacer_years // 10 * 10).astype(int).value_counts()\n", + "#pacer_decades.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([['scissors', 'paper'],\n", - " ['rock', 'rock'],\n", - " ['scissors', 'paper'],\n", - " ['scissors', 'rock'],\n", - " ['rock', 'rock']], dtype='<U8')" + "2000 1730\n", + "1990 846\n", + "2010 503\n", + "1980 21\n", + "1960 1\n", + "Name: year_manufactured, dtype: int64" ] }, - "execution_count": 12, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "#choice([\"rock\", \"paper\", \"scissors\"], size=(ROWS, COLUMNS))\n", - "#size=(ROWS, COLUMNS))\n", - "# V , -->\n", - "a = choice([\"rock\", \"paper\", \"scissors\"], size=(5, 2))\n", - "a" + "#Getting rid of NaN values\n", + "pacer_decades = (pacer_years // 10 * 10).dropna()\n", + "pacer_decades = pacer_decades.astype(int).value_counts()\n", + "pacer_decades" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'paper'" + "2010 1196\n", + "1980 937\n", + "1970 578\n", + "1990 431\n", + "1950 371\n", + "1960 349\n", + "2000 215\n", + "1940 68\n", + "1930 9\n", + "1900 1\n", + "Name: year_manufactured, dtype: int64" ] }, - "execution_count": 13, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "a[2][1]" + "other_decades = (other_years // 10 * 10).dropna()\n", + "other_decades = other_decades.astype(int).value_counts()\n", + "other_decades" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### How to put both the pacers and other decade counts Series together?" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -317,85 +631,117 @@ " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", - " <th>0</th>\n", - " <th>1</th>\n", + " <th>pacer</th>\n", + " <th>other</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", - " <th>0</th>\n", - " <td>rock</td>\n", - " <td>scissors</td>\n", + " <th>1900</th>\n", + " <td>NaN</td>\n", + " <td>1</td>\n", " </tr>\n", " <tr>\n", - " <th>1</th>\n", - " <td>paper</td>\n", - " <td>rock</td>\n", + " <th>1930</th>\n", + " <td>NaN</td>\n", + " <td>9</td>\n", " </tr>\n", " <tr>\n", - " <th>2</th>\n", - " <td>rock</td>\n", - " <td>scissors</td>\n", + " <th>1940</th>\n", + " <td>NaN</td>\n", + " <td>68</td>\n", " </tr>\n", " <tr>\n", - " <th>3</th>\n", - " <td>rock</td>\n", - " <td>paper</td>\n", + " <th>1950</th>\n", + " <td>NaN</td>\n", + " <td>371</td>\n", " </tr>\n", " <tr>\n", - " <th>4</th>\n", - " <td>paper</td>\n", - " <td>scissors</td>\n", + " <th>1960</th>\n", + " <td>1.0</td>\n", + " <td>349</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1970</th>\n", + " <td>NaN</td>\n", + " <td>578</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1980</th>\n", + " <td>21.0</td>\n", + " <td>937</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1990</th>\n", + " <td>846.0</td>\n", + " <td>431</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2000</th>\n", + " <td>1730.0</td>\n", + " <td>215</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2010</th>\n", + " <td>503.0</td>\n", + " <td>1196</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ - " 0 1\n", - "0 rock scissors\n", - "1 paper rock\n", - "2 rock scissors\n", - "3 rock paper\n", - "4 paper scissors" + " pacer other\n", + "1900 NaN 1\n", + "1930 NaN 9\n", + "1940 NaN 68\n", + "1950 NaN 371\n", + "1960 1.0 349\n", + "1970 NaN 578\n", + "1980 21.0 937\n", + "1990 846.0 431\n", + "2000 1730.0 215\n", + "2010 503.0 1196" ] }, - "execution_count": 14, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "#DataFrame(LIST of LISTS)\n", - "DataFrame(choice([\"rock\", \"paper\", \"scissors\"], size=(5, 2)))" + "style_df = DataFrame({\n", + " \"pacer\": pacer_decades,\n", + " \"other\": other_decades,\n", + "})\n", + "style_df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "----\n", - "### Exploring Bias - is this fair?" + "### Create a *bar plot* for visualization" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 18, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "rock 7\n", - "paper 6\n", - "scissors 2\n", - "dtype: int64\n" - ] + "data": { + "text/plain": [ + "Text(0, 0.5, 'Hydrant Count')" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -407,48 +753,29 @@ } ], "source": [ - "s = Series(choice([\"rock\", \"paper\", \"scissors\"], size=15))\n", - "vc = s.value_counts()\n", - "print(vc)\n", - "\n", - "ax = vc.plot.bar()\n", - "ax.set_ylabel(\"Count\")\n", - "None" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----\n", - "### Sort by item" + "ax = style_df.plot.bar()\n", + "ax.set_xlabel(\"Decade\")\n", + "ax.set_ylabel(\"Hydrant Count\")" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 19, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "paper 7\n", - "rock 1\n", - "scissors 7\n", - "dtype: int64\n" - ] + "data": { + "text/plain": [ + "Text(0, 0.5, 'Hydrant Count')" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ8AAAEqCAYAAADK5V1SAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAqrklEQVR4nO3de7hUdd3+8fdNwAY8AMpRFAEx1DStMCU10XqEBEWzsLLyUFr2u8zQDmKoG9HHQ1qaT1amZaXhKVORAkoJfMLMc4p5DNAHUQRUQDbI4fP7Y61Ns4fZmwFn1szsfb+ua12zZ63PzNx7A/vDWuu7vksRgZmZWZbaVTqAmZm1PW4+ZmaWOTcfMzPLnJuPmZllzs3HzMwy5+ZjZmaZa1/pALWiR48eMWDAgErHMDOrKY8++uiSiOiZv97Np0gDBgzgkUceqXQMM7OaImlBofU+7GZmZplz8zEzs8y5+ZiZWebcfMzMLHNuPmZmljk3HzMzy5yHWpfQ8uXLWbx4MWvXrq10FAM6dOhAr1692H777SsdxczyuPmUyPLly3n99dfp168fnTt3RlKlI7VpEUFDQwMLFy4EcAMyqzJuPiWyePFi+vXrR5cuXSodxQBJdOnShX79+vHqq6+6+VjRBpwzdYvq5186qkxJWjef8ymRtWvX0rlz50rHsDydO3f2YVCzKuTmU0I+1FZ9/GdiVp3cfMzMLHNuPmZmljkPOCizLT15WWo+GWpm1ch7PmZmljk3H6t5a9asqXQEM9tCbj5WUH19PZJ46qmnOOyww+jSpQt9+/bl/PPPZ8OGDQCsXr2acePGsffee7PtttvSp08fjjrqKJ599tlN3m/evHl86Utfok+fPtTV1TFo0CDOPPPMJjWzZs3iE5/4BNtttx3bbLMNI0aM4Omnn25SM3z4cA4++GCmTJnChz70Ierq6rj22mvL94Mws7LwOR9r0THHHMMpp5zC+PHjmT59OpMmTaJdu3bU19ezZs0aVqxYwYQJE+jbty/Lli3j2muv5cADD+TZZ5+lT58+QNJ4PvrRj9KlSxcmTpzI7rvvziuvvMKMGTM2fs7UqVMZM2YMo0aN4qabbgLgsssu45BDDuGf//wnu+yyy8ba559/nm9+85ucd955DBo0iB122CHbH4qZvWduPtaiU089lXPOOQeAI444guXLl3PllVfyrW99i27dunH99ddvrF2/fj0jRoygd+/eTJ48mXHjxgFwwQUX0NDQwJNPPslOO+20sf7EE0/c+PWZZ57JoYceyt13371x3WGHHcagQYO48sorueqqqzauX7JkCTNmzGC//fYr03dtZuXmw27WorFjxzZ5/rnPfY6VK1duPBx22223ccABB9CtWzfat2/PNttsw8qVK3nuuec2vmbGjBmMHj26SePJ9cILL/DSSy9xwgknsG7duo1Lly5dGDZsGLNnz25SP2DAADcesxrn5mMt6t27d8HnCxcuZMqUKRx//PHsueee/O53v+Ohhx7i4YcfpmfPnqxevXrja5YuXcrOO+/c7GcsXrwYgK985St06NChyXLvvfeydOnSJvV9+/Yt1bdnZhXiw27Wotdff51BgwY1eQ7Qr18/fvrTnzJ48GBuvPHGjdvXrl3LsmXLmrxHjx49Ns4uXciOO+4IwCWXXMInP/nJTbZ37NixyXNPmWNW+9x8rEW33XbbxnM+ALfccgvbbrste++9N6tWraJ9+6Z/hX7729+yfv36JuuOOOII7rzzThYtWlRwr2XIkCEMGDCAuXPnNvksM2u93HysRb/4xS/YsGED+++/P9OnT+f666+nvr6ebt26MXLkSO666y7GjRvH6NGjefTRR/nxj39Mt27dmrzHxIkTmTp1Kh/72Mc499xzGTx4MAsXLmTatGncdNNNSOInP/kJY8aM4d1332Xs2LH06NGD119/nTlz5tC/f3/OOuusyvwAzKws3HzKrNant7n77rs544wzmDRpEl27dmXChAmcd955QDIS7pVXXuGXv/wlP//5z9l///2ZMmUKxx57bJP3GDBgAA899BATJkxg/PjxrFixgn79+jFmzJiNNUceeSSzZ8/m4osv5qtf/SoNDQ306dOHAw88kOOPPz7T79nMys/Nx1q0xx57MHPmzILb2rVrx0UXXcRFF13UZP38+fM3qd1tt92YPHlyi581bNgw7r333hZr/vrXv7a43cxqg0e7mZlZ5tx8zMwsc24+VlB9fT0RscloNjOzUnDzMTOzzGXefCTtLOkaSQ9KWiUpJA3IqxmQri+0dMur7STpB5IWSWpI3/fjBT63naTxkuZLWi3pSUnHlfe7NTOzQiqx5zMYGAu8CTywmdpLgGF5y4q8mhuAU4HzgdHAImC6pP3y6iYB9cD/AJ8C/g7cLunI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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -460,42 +787,19 @@ } ], "source": [ - "s = Series(choice([\"rock\", \"paper\", \"scissors\"], size=15))\n", - "vc = s.value_counts()\n", - "vc = vc.sort_index()\n", - "print(vc)\n", - "\n", - "ax = vc.plot.bar()\n", - "ax.set_ylabel(\"Count\")\n", - "None" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----\n", - "### Sorted as \"rock\", \"paper\", \"scissors\"" + "ax = style_df[style_df.index >= 1950].plot.bar()\n", + "ax.set_xlabel(\"Decade\")\n", + "ax.set_ylabel(\"Hydrant Count\")" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 20, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rock 6\n", - "paper 3\n", - "scissors 6\n", - "dtype: int64\n" - ] - }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ8AAAErCAYAAAABuY73AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAtcUlEQVR4nO3de5xVdb3/8dfbgAG8AMpNUQTEVNTUwpTUvJWgoGgmVlZeSk+eHmaolXgdRI+XtDR/2cljauXdMgUtoJQDnlATbykqXuJieEFAuciAXD6/P9Ya3LPZM2xg9tp7z7yfj8d+7Nlrffba7xlgPnzX+q61FBGYmZllabNyBzAzs9bHzcfMzDLn5mNmZplz8zEzs8y5+ZiZWebcfMzMLHOZNh9JX5X0R0mzJdVJmiHpSklb5tV1kXSLpPmSPpL0N0l7Fthee0k/lfROur0nJH2xQN1mkkZJmiVpuaQXJB1fyu/VzMwapyzP85H0JDAHeAj4N7APUAu8CnwhItZIEjAF6Av8CPgAGAXsDuwdEf/O2d6dwNC07l/A94EjgUER8XxO3RXAecCFwDPA14DTgWER8edisnft2jX69Omzkd+5mVnr9Mwzz8yPiG75y7NuPt0i4v28Zd8GfgscHhGPSRoOPAgcFhGT0ppOwEzgjoj4QbpsL+B54LSIuC1d1gaYDsyIiGPSZd2Bt4CrIuLSnM99FOgWEZ8pJvvAgQNj2rRpG/29m5m1RpKeiYiB+csz3e2W33hST6fPvdLnY4C36xtP+r5FwDhgeM77jgFWAvfm1K0C7gEGS6pJFw8G2gF35H3uHcCekvpu3HdjZmYbqxImHBycPr+SPu8OvFSgbjrQW9IWOXUzI2JZgbp2QP+cuhXAGwXqAAZsZG4zM9tIZW0+knoBlwF/i4j6fVpbkxznybcwfe5SZN3WOc8fxrr7F/PrCuU7Q9I0SdPef7/QoM3MzDZG2ZpPOoJ5CFgFnJq7Cih0IEoFXjdn3Toi4uaIGBgRA7t1W+d4mZmZbaSyNB9J7YGxQD9gcO4MNpIRSaHRSP2I54Mi6xbmPHdJZ9E1VWdmZhnJvPlIagv8Efg8cFREvJhXMp3kOE2+AcCciFiaU9dXUscCdR/zyTGe6UANsFOBOoCXN/ibMDOzTdImyw+TtBlwJ3A4MDQinixQNhY4VdLBETE5fd9WwNHAXXl1o4ETSKZq10+1PhGYGBEr0rrxJM3opLS+3jeBlyJiZjN9eyxevJh58+axcuXK5tqkbYK2bdvSvXt3ttpqq3JHMbM8mTYf4JckzeIK4CNJ++es+3e6+20s8ARwh6Tck0wFXFNfHBHPS7oXuD4dTc0EziQ5OfWknLp5kn4OjJK0BHiWpEEdRsOp25tk8eLFvPfee/Tq1YsOHTqw7l4+y1JEUFdXx9y5cwHcgMwqTNbN58j0+cL0kWs0UJte5WAYcC1wE9CepBkdGhFv5b3nVJJGdjnQGXgBGBIRz+bVXQgsBc4GegIzgBERMa45vimAefPm0atXLzp2zN8LaOUgiY4dO9KrVy/efvttNx8rXm2nEm9/UWm3XyUybT4R0afIuoXAaemjqbo64Jz00VTdapIGdXlRQTfCypUr6dChQ6k2bxupQ4cO3g1qVoEq4STTFsO72iqP/0zMKpObj5mZZc7Nx8zMMpf1hINWp8/5j5T182ddNbSsn29mVohHPmZmljk3H6t6K1asWH+RmVUUNx8rqLa2Fkm8+OKLHHrooXTs2JFtt92WSy65hDVr1gCwfPlyRo4cyR577MEWW2xBz549Ofroo3n11VfX2d7MmTP51re+Rc+ePampqaFfv36cffbZDWomT57M4YcfzpZbbsnmm2/O4MGDeemlhnfXOOSQQzjwwAMZN24c++yzDzU1Ndx0002l+0GYWUn4mI816dhjj+W0005j1KhRTJgwgTFjxrDZZptRW1vLihUrWLJkCRdddBHbbrstCxcu5KabbmL//ffn1VdfpWfPnkDSeD7/+c/TsWNHRo8ezc4778xbb73FxIkT137OI488wvDhwxk6dCh33JHc9+/qq6/moIMO4p///Cc77LDD2trXXnuNH/zgB1x88cX069ePrbdu9K4YZlah3HysSaeffjrnn38+AEcccQSLFy/muuuu44c//CGdO3fmlltuWVu7evVqBg8eTI8ePbj77rsZOXIkAJdeeil1dXW88MILbLfddmvrTz755LVfn3322Rx88ME89NBDa5cdeuih9OvXj+uuu47rr79+7fL58+czceJE9t577xJ912ZWat7tZk0aMWJEg9df+9rXWLp06drdYffddx/77bcfnTt3pk2bNmy++eYsXbqUGTNmrH3PxIkTGTZsWIPGk+v111/nzTff5KSTTmLVqlVrHx07dmTQoEFMmTKlQX2fPn3ceMyqnJuPNalHjx4FX8+dO5dx48Zx4oknsttuu3HXXXfx1FNP8fTTT9OtWzeWL1++9j0LFixg++23b/Qz5s2bB8B3vvMd2rZt2+Dx8MMPs2DBggb12267bXN9e2ZWJt7tZk1677336NevX4PXAL169eJXv/oV/fv35/bbb1+7fuXKlSxc2PD+fF27dl17delCttlmGwCuvPJKvvSlL62zvl27dg1e+5I5ZtXPzceadN9996095gNwzz33sMUWW7DHHnuwbNky2rRp+Ffo97//PatXr26w7IgjjuCBBx7gnXfeKThq2WWXXejTpw/Tp09v8Flm1nK5+ViT/ud//oc1a9aw7777MmHCBG655RZqa2vp3LkzQ4YM4cEHH2TkyJEMGzaMZ555hl/84hd07ty5wTZGjx7NI488whe+8AUuuOAC+vfvz9y5cxk/fjx33HEHkvjlL3/J8OHD+fjjjxkxYgRdu3blvffeY+rUqfTu3ZtzzmnywuVmVmXcfEqs2i9v89BDD3HWWWcxZswYOnXqxEUXXcTFF18MJDPh3nrrLW699VZ+/etfs++++zJu3DiOO+64Btvo06cPTz31FBdddBGjRo1iyZIl9OrVi+HDP7mX31FHHcWUKVO44oor+O53v0tdXR09e/Zk//3358QTT8z0ezaz0lNElDtDVRg4cGBMmzat0fWvvPIKu+22W4aJSqu2tpbRo0ezcuXKdXatVZuW9mdjJeabyTUrSc9ExMD85Z7tZmZmmXPzMTOzzLn5WEG1tbVERNXvcjOzyuTmY2ZmmXPzMTOzzHmfiplZjj7L7yrp9meVdOvVwyMfMzPLnJuPmZllzrvdzMxakio5SdYjHzMzy5xHPqVW6v+FrPfzS3spj+uvv57evXvzla98peHHtqDL85hZ8/PIxzbJ9ddfzwMPPFDuGGZWZdx8rGqtWLGi3BHMbCO5+ViTxo8fz6BBg+jQoQOdOnXi2GOPZcaMGUByq4TZs2dz5513IglJnHLKKQ3eP3PmTIYOHcoWW2zBjjvuyGWXXcaaNWsa1MyfP58zzzyTXr16UVNTw6677srNN9/coOb2229HElOmTOGEE06gc+fO7LfffiX93s2sdLwz3ho1fvx4hg4dymGHHca9997L0qVLueSSSzjwwAN5/vnn+dOf/sRRRx3FXnvtRW1tLQDdunVrsI3jjjuOU089lZEjRzJu3DguvfRSdthhB0499VQAFi9ezAEHHEBdXR21tbX07duXCRMmcOaZZ7JixQrOOuusBts76aST+PrXv84f/vAHVq1alcnPwcyan5uPNeqiiy6iX79+/OUvf1k7aWDQoEF8+tOf5rrrruNnP/sZNTU1dO3alf3337/gNs4999y1jeZLX/oSjz32GHfffffaZTfccAOzZ8/mxRdfZOedd15b9+GHHzJ69GjOPPPMBhMWvvrVr3LNNdeU8ts2swx4t5sV9NFHH/Hss89y4oknNvjl37dvXw444AAmT55c1HaGDm14J9c99tiDOXPmrH09fvx49ttvP/r27cuqVavWPgYPHsyCBQt4+eWXG7w//y6pZladPPKxgj744AMigm233XaddT179mT27NlFbWfrrbdu8Lqmpobly5evfT1v3jzeeOMN2rZtW/D9CxYsaPC6UB4zqz5uPlZQly5dkMS77767zrp3332XbbbZplk+Z5tttqF79+7ccMMNBdfvsssuDV5LapbPNbPycvOxgjbffHM+97nPcf/991NbW8unPvUpAGbPns3UqVPXTgSoqamhrq5uoz9nyJAh3HjjjfTu3Zvu3bs3S3Yzq3w+5mONGjNmDK+//jrDhg1j3Lhx3H333Xz5y1+mU6dOnHvuuQAMGDCAxx9/nIcffphp06Yxa9asDfqMkSNH0r17dw466CD++7//m0mTJvHwww9z7bXXMnz48BJ8V2ZWCTzyKbUSX96mlIYMGcIjjzzC6NGjGTFiBO3ateOQQw7hmmuuYbvttgPgyiuv5PTTT2fEiBHU1dVx8sknc/vttxf9GZ06dWLq1KlcdtllXH311cydO5fOnTuzyy67cPzxx5foOzOzclNElDtDVRg4cGBMmzat0fWvvPIKu+22W4aJrFj+s7EN0ef8R0q6/VlXDV1/0aaosKtaS3omIgbmLy9qt5ukb0sqeIRZ0taSvr1BaczMrFUr9pjPbcBOjazrm64viqTtJd0o6QlJyySFpD55NX3S5YUenfNq20v6qaR3JNWl2/1igc/dTNIoSbMkLZf0giTv1zEzK4Nim09T81s3BzbkOif9gRHAB8Dj66m9EhiU91iSV/Mb4HTgEmAY8A4wQdLeeXVjgFrg/wFHAk8C90s6agOym5lZM2h0wkH6y/uzOYuOlrRHXlkH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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -507,13 +811,9 @@ } ], "source": [ - "s = Series(choice([\"rock\", \"paper\", \"scissors\"], size=15))\n", - "vc = s.value_counts()\n", - "vc = vc[ [\"rock\", \"paper\", \"scissors\"] ]\n", - "print(vc)\n", - "\n", - "ax = vc.plot.bar()\n", - "ax.set_ylabel(\"Count\")\n", + "ax = style_df[style_df.index >= 1950].plot.bar(stacked = True)\n", + "ax.set_xlabel(\"Decade\")\n", + "ax.set_ylabel(\"Hydrant Count\")\n", "None" ] }, @@ -521,337 +821,22 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "----\n", - "### Is this really fair? " + "# Rest of today's lecture\n", + "- setting axes limits\n", + "- logarithms\n", + "- multiple plots within same figure" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## IRIS dataset: http://archive.ics.uci.edu/ml/datasets/iris" ] }, { "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rock 1000091\n", - "paper 998937\n", - "scissors 1000972\n", - "dtype: int64\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "s = Series(choice([\"rock\", \"paper\", \"scissors\"], size=3000000))\n", - "vc = s.value_counts()\n", - "vc = vc[ [\"rock\", \"paper\", \"scissors\"] ]\n", - "print(vc)\n", - "\n", - "ax = vc.plot.bar()\n", - "ax.set_ylabel(\"Count\")\n", - "None" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----\n", - "### Control the probability of selection" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rock 30013\n", - "paper 60147\n", - "scissors 209840\n", - "dtype: int64\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "s = Series(choice([\"rock\", \"paper\", \"scissors\"], size=300000, p=[0.10, 0.20, 0.70]))\n", - "vc = s.value_counts()\n", - "vc = vc[ [\"rock\", \"paper\", \"scissors\"] ]\n", - "print(vc)\n", - "\n", - "ax = vc.plot.bar()\n", - "ax.set_ylabel(\"Count\")\n", - "None" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----\n", - "### Random integer shortcut" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 0\n", - "1 5\n", - "2 5\n", - "3 3\n", - "4 0\n", - "dtype: int64" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Series(choice(6, size=5,))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----\n", - "### Back to PowerPoint to talk about Bugs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----\n", - "### Change over time" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0 2\n", - "1 5\n", - "2 1\n", - "3 7\n", - "4 5\n", - "dtype: int64\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Change over time\n", - "s = Series(choice(10,size=5))\n", - "percents = []\n", - "for i in range(1, len(s)):\n", - " diff = 100 * (s[i] / s[i-1] -1)\n", - " percents.append(diff)\n", - "print(s)\n", - "Series(percents).plot.line()\n", - "None" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----\n", - "### Back to PowerPoint again - more about Bugs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----\n", - "### Seeding" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([883, 732, 15])" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.random.seed(220)\n", - "choice(1000, size=3)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([180, 120, 514])" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "choice(1000, size=3)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([883, 732, 15, 180, 120, 514])" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.random.seed(220)\n", - "choice(1000, size=6)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([112, 626, 27])" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "choice(1000, size=3)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----\n", - "### Seeding with time" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1639371636\n", - "Seeding with: 1639371636\n" - ] - } - ], - "source": [ - "# requires import of time module\n", - "time.time()\n", - "now = int(time.time())\n", - "print(now)\n", - "\n", - "np.random.seed(now)\n", - "choice(1000, size=3)\n", - "print(\"Seeding with:\", now)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----\n", - "### Significance - Does the data support drawing that conclusion?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----\n", - "### Is it weird that we have 60 heads, 40 tails? How often are we +- 10 of the expected" - ] - }, - { - "cell_type": "code", - "execution_count": 27, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -875,105 +860,118 @@ " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", - " <th>0</th>\n", - " <th>1</th>\n", - " <th>2</th>\n", + " <th>sep-len</th>\n", + " <th>sep-wid</th>\n", + " <th>pet-len</th>\n", + " <th>pet-wid</th>\n", + " <th>class</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", - " <td>T</td>\n", - " <td>T</td>\n", - " <td>H</td>\n", + " <td>5.1</td>\n", + " <td>3.5</td>\n", + " <td>1.4</td>\n", + " <td>0.2</td>\n", + " <td>Iris-setosa</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", - " <td>T</td>\n", - " <td>H</td>\n", - " <td>H</td>\n", + " <td>4.9</td>\n", + " <td>3.0</td>\n", + " <td>1.4</td>\n", + " <td>0.2</td>\n", + " <td>Iris-setosa</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", - " <td>T</td>\n", - " <td>T</td>\n", - " <td>H</td>\n", + " <td>4.7</td>\n", + " <td>3.2</td>\n", + " <td>1.3</td>\n", + " <td>0.2</td>\n", + " <td>Iris-setosa</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", - " <td>T</td>\n", - " <td>H</td>\n", - " <td>T</td>\n", + " <td>4.6</td>\n", + " <td>3.1</td>\n", + " <td>1.5</td>\n", + " <td>0.2</td>\n", + " <td>Iris-setosa</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", - " <td>H</td>\n", - " <td>T</td>\n", - " <td>H</td>\n", - " </tr>\n", - " <tr>\n", - " <th>5</th>\n", - " <td>H</td>\n", - " <td>H</td>\n", - " <td>T</td>\n", - " </tr>\n", - " <tr>\n", - " <th>6</th>\n", - " <td>T</td>\n", - " <td>T</td>\n", - " <td>T</td>\n", - " </tr>\n", - " <tr>\n", - " <th>7</th>\n", - " <td>H</td>\n", - " <td>H</td>\n", - " <td>T</td>\n", - " </tr>\n", - " <tr>\n", - " <th>8</th>\n", - " <td>H</td>\n", - " <td>H</td>\n", - " <td>H</td>\n", - " </tr>\n", - " <tr>\n", - " <th>9</th>\n", - " <td>H</td>\n", - " <td>H</td>\n", - " <td>T</td>\n", + " <td>5.0</td>\n", + " <td>3.6</td>\n", + " <td>1.4</td>\n", + " <td>0.2</td>\n", + " <td>Iris-setosa</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ - " 0 1 2\n", - "0 T T H\n", - "1 T H H\n", - "2 T T H\n", - "3 T H T\n", - "4 H T H\n", - "5 H H T\n", - "6 T T T\n", - "7 H H T\n", - "8 H H H\n", - "9 H H T" + " sep-len sep-wid pet-len pet-wid class\n", + "0 5.1 3.5 1.4 0.2 Iris-setosa\n", + "1 4.9 3.0 1.4 0.2 Iris-setosa\n", + "2 4.7 3.2 1.3 0.2 Iris-setosa\n", + "3 4.6 3.1 1.5 0.2 Iris-setosa\n", + "4 5.0 3.6 1.4 0.2 Iris-setosa" ] }, - "execution_count": 27, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "trials = 10\n", - "flips = 3\n", - "df = DataFrame(choice([\"H\",\"T\"], size = (trials, flips)))\n", - "df" + "resp = requests.get(\"https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data\")\n", + "resp.raise_for_status()\n", + "\n", + "iris_fh = open(\"iris.data\", \"w\")\n", + "iris_fh.write(resp.text)\n", + "iris_fh.close()\n", + "\n", + "df = pd.read_csv(\"iris.data\",\n", + " names = [\"sep-len\", \"sep-wid\", \"pet-len\", \"pet-wid\", \"class\"])\n", + "df.head()" ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Iris-setosa', 'Iris-versicolor', 'Iris-virginica'}" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "classes = set(df[\"class\"])\n", + "classes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### How do we control the *axes range* of values?\n", + "### Let us consider plotting just the data for class \"Iris-virginica\"\n", + "### How to extract data just for \"Iris-virginica\"?" + ] + }, + { + "cell_type": "code", + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -992,342 +990,293 @@ " .dataframe thead th {\n", " text-align: right;\n", " }\n", - "</style>\n", - "<table border=\"1\" class=\"dataframe\">\n", - " <thead>\n", - " <tr style=\"text-align: right;\">\n", - " <th></th>\n", - " <th>0</th>\n", - " <th>1</th>\n", - " <th>2</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>1</td>\n", - " <td>0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>0</td>\n", - " <td>1</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>1</td>\n", - " <td>1</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>sep-len</th>\n", + " <th>sep-wid</th>\n", + " <th>pet-len</th>\n", + " <th>pet-wid</th>\n", + " <th>class</th>\n", " </tr>\n", + " </thead>\n", + " <tbody>\n", " <tr>\n", - " <th>5</th>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>1</td>\n", + " <th>100</th>\n", + " <td>6.3</td>\n", + " <td>3.3</td>\n", + " <td>6.0</td>\n", + " <td>2.5</td>\n", + " <td>Iris-virginica</td>\n", " </tr>\n", " <tr>\n", - " <th>6</th>\n", - " <td>1</td>\n", - " <td>0</td>\n", - " <td>1</td>\n", + " <th>101</th>\n", + " <td>5.8</td>\n", + " <td>2.7</td>\n", + " <td>5.1</td>\n", + " <td>1.9</td>\n", + " <td>Iris-virginica</td>\n", " </tr>\n", " <tr>\n", - " <th>7</th>\n", - " <td>1</td>\n", - " <td>1</td>\n", - " <td>1</td>\n", + " <th>102</th>\n", + " <td>7.1</td>\n", + " <td>3.0</td>\n", + " <td>5.9</td>\n", + " <td>2.1</td>\n", + " <td>Iris-virginica</td>\n", " </tr>\n", " <tr>\n", - " <th>8</th>\n", - " <td>0</td>\n", - " <td>1</td>\n", - " <td>1</td>\n", + " <th>103</th>\n", + " <td>6.3</td>\n", + " <td>2.9</td>\n", + " <td>5.6</td>\n", + " <td>1.8</td>\n", + " <td>Iris-virginica</td>\n", " </tr>\n", " <tr>\n", - " <th>9</th>\n", - " <td>1</td>\n", - " <td>0</td>\n", - " <td>1</td>\n", + " <th>104</th>\n", + " <td>6.5</td>\n", + " <td>3.0</td>\n", + " <td>5.8</td>\n", + " <td>2.2</td>\n", + " <td>Iris-virginica</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ - " 0 1 2\n", - "0 0 0 0\n", - "1 1 0 1\n", - "2 0 1 1\n", - "3 1 1 0\n", - "4 0 0 0\n", - "5 0 0 1\n", - "6 1 0 1\n", - "7 1 1 1\n", - "8 0 1 1\n", - "9 1 0 1" + " sep-len sep-wid pet-len pet-wid class\n", + "100 6.3 3.3 6.0 2.5 Iris-virginica\n", + "101 5.8 2.7 5.1 1.9 Iris-virginica\n", + "102 7.1 3.0 5.9 2.1 Iris-virginica\n", + "103 6.3 2.9 5.6 1.8 Iris-virginica\n", + "104 6.5 3.0 5.8 2.2 Iris-virginica" ] }, - "execution_count": 28, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "trials = 10\n", - "flips = 3\n", - "df = DataFrame(choice([1,0], size = (trials, flips)))\n", - "df" + "df_sub = df[df[\"class\"] == \"Iris-virginica\"]\n", + "assert(len(df_sub) == 50)\n", + "df_sub.head()" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 24, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 0 1 2\n", - "0 1 0 0\n", - "1 0 0 0\n", - "2 0 0 0\n", - "3 0 1 1\n", - "4 1 0 1\n", - "5 1 0 0\n", - "6 0 1 0\n", - "7 0 1 0\n", - "8 0 1 0\n", - "9 0 1 0\n" - ] - }, { "data": { "text/plain": [ - "0 1\n", - "1 0\n", - "2 0\n", - "3 2\n", - "4 2\n", - "5 1\n", - "6 1\n", - "7 1\n", - "8 1\n", - "9 1\n", - "dtype: int64" + "<AxesSubplot:xlabel='pet-wid', ylabel='pet-len'>" ] }, - "execution_count": 29, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } ], "source": [ - "trials = 10\n", - "flips = 3\n", - "df = DataFrame(choice([1,0], size = (trials, flips)))\n", - "print(df)\n", - "df.sum(axis=1)" + "df_sub.plot.scatter(x = \"pet-wid\", y = \"pet-len\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Let's learn about *xlim* and *ylim*\n", + "- Allows us to set x-axis and y-axis limits\n", + "- Takes either a single value (LOWER-BOUND) or a tuple containing two values (LOWER-BOUND, UPPER-BOUND)\n", + "- You need to be careful about setting the UPPER-BOUND" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 25, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 0 1 2 3 4 5 6 7 8 9 ... 90 91 92 93 94 95 96 \\\n", - "0 0 0 1 0 0 0 0 1 0 1 ... 1 1 1 1 0 0 1 \n", - "1 0 1 1 0 1 0 0 1 0 1 ... 1 1 1 0 0 0 1 \n", - "2 1 0 1 0 1 1 0 1 0 1 ... 0 1 0 0 1 0 1 \n", - "3 1 0 0 1 1 0 0 1 0 0 ... 1 1 1 0 0 1 0 \n", - "4 0 0 0 1 1 0 1 0 0 1 ... 0 1 1 0 0 1 0 \n", - "... .. .. .. .. .. .. .. .. .. .. ... .. .. .. .. .. .. .. \n", - "9995 1 0 0 0 0 1 0 1 1 1 ... 0 1 0 1 0 0 0 \n", - "9996 1 0 0 0 0 0 1 0 0 0 ... 0 0 1 0 0 1 0 \n", - "9997 0 0 0 1 0 0 1 1 0 1 ... 1 0 0 1 0 1 0 \n", - "9998 0 1 1 1 0 1 0 0 0 1 ... 1 1 0 1 0 0 0 \n", - "9999 0 0 0 0 0 0 0 1 0 1 ... 0 0 0 0 0 0 1 \n", - "\n", - " 97 98 99 \n", - "0 0 0 0 \n", - "1 0 1 1 \n", - "2 1 1 1 \n", - "3 0 1 0 \n", - "4 0 1 1 \n", - "... .. .. .. \n", - "9995 1 0 0 \n", - "9996 1 0 0 \n", - "9997 0 0 1 \n", - "9998 1 0 1 \n", - "9999 1 0 0 \n", - "\n", - "[10000 rows x 100 columns]\n" - ] - }, { "data": { "text/plain": [ - "0 44\n", - "1 48\n", - "2 52\n", - "3 48\n", - "4 47\n", - " ..\n", - "9995 51\n", - "9996 47\n", - "9997 41\n", - "9998 48\n", - "9999 41\n", - "Length: 10000, dtype: int64" + "<AxesSubplot:xlabel='pet-wid', ylabel='pet-len'>" ] }, - "execution_count": 30, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } ], "source": [ - "trials = 10000\n", - "flips = 100\n", - "df = DataFrame(choice([1,0], size = (trials, flips)))\n", - "print(df)\n", - "counts = df.sum(axis=1)\n", - "counts" + "df_sub.plot.scatter(x = \"pet-wid\", y = \"pet-len\", xlim = 0, ylim = 0)" ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 26, "metadata": {}, "outputs": [ { "data": { + "image/png": "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\n", "text/plain": [ - "5.8500000000000005" + "<Figure size 216x216 with 1 Axes>" ] }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } ], "source": [ - "extremes = counts[(counts <= 40) | (counts >= 60)]\n", - "len(extremes) / trials * 100" + "ax = df_sub.plot.scatter(x = \"pet-wid\", y = \"pet-len\",\n", + " xlim = (0, 6), ylim = (0, 6),\n", + " figsize = (3, 3))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "----\n", - "### Opening example with the 16 coins - How often do we get 11 or more heads?" + "What's wrong with the above plot?" ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "10.870000000000001" + "6.9" ] }, - "execution_count": 32, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "flips = 16\n", - "trials = 10000\n", - "df = DataFrame(choice([1, 0], size = (trials, flips)))\n", - "counts = df.sum(axis=1)\n", - "result = counts[counts >= 11]\n", - "len(result) / trials * 100" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----\n", - "### How often do we see 7 heads in a row out of 16 coins" + "df_sub[\"pet-len\"].max()" ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "19.0015" + "(0.0, 6.0)" ] }, - "execution_count": 33, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "seven_or_more = 0\n", - "trials = 10000\n", - "for i in range(trials):\n", - " s = \"\".join(choice([\"H\",\"T\"], size=16))\n", - " if s.find(\"HHHHHHH\") != -1:\n", - " seven_or_more += 1\n", - "seven_or_more / trials * 445 " + "ax.get_ylim()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Self-study" + "Let's include assert statements to make sure we don't crop the plot!" ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 29, "metadata": {}, "outputs": [ + { + "ename": "AssertionError", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m<ipython-input-29-ed0f1e633492>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mxlim\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m6\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mylim\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m6\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m figsize = (3, 3))\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0;32massert\u001b[0m \u001b[0mdf_sub\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"pet-len\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m<=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_ylim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mAssertionError\u001b[0m: " + ] + }, { "data": { + "image/png": "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\n", "text/plain": [ - "<AxesSubplot:>" + "<Figure size 216x216 with 1 Axes>" ] }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df_sub.plot.scatter(x = \"pet-wid\", y = \"pet-len\",\n", + " xlim = (0, 6), ylim = (0, 6),\n", + " figsize = (3, 3))\n", + "assert df_sub[\"pet-len\"].max() <= ax.get_ylim()[1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Now let's try all 4 assert statements\n", + "\n", + "- assert df_sub[ax.get_xlabel()].min() >= ax.get_xlim()[0]\n", + "- assert df_sub[ax.get_xlabel()].max() <= ax.get_xlim()[1]\n", + "- assert df_sub[ax.get_ylabel()].min() >= ax.get_ylim()[0]\n", + "- assert df_sub[ax.get_ylabel()].max() <= ax.get_ylim()[1]" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "<Figure size 432x288 with 1 Axes>" + "<Figure size 216x216 with 1 Axes>" ] }, "metadata": { @@ -1337,105 +1286,180 @@ } ], "source": [ - "s = Series([\"rock\", \"rock\", \"paper\", \"scissors\", \"scissors\", \"scissors\"])\n", - "s.value_counts().plot.bar(color=\"orange\")" + "ax = df_sub.plot.scatter(x = \"pet-wid\", y = \"pet-len\",\n", + " xlim = (0, 7), ylim = (0, 7),\n", + " figsize = (3, 3))\n", + "assert df_sub[ax.get_xlabel()].min() >= ax.get_xlim()[0]\n", + "assert df_sub[ax.get_xlabel()].max() <= ax.get_xlim()[1]\n", + "assert df_sub[ax.get_ylabel()].min() >= ax.get_ylim()[0]\n", + "assert df_sub[ax.get_ylabel()].max() <= ax.get_ylim()[1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Logarithmic scale\n", + "- math.log(y, base)\n", + "- find an x, such that 10**x == y\n", + " - math.log10(y)" ] }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "<AxesSubplot:>" + "3.0" ] }, - "execution_count": 35, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" - }, + } + ], + "source": [ + "math.log10(1000)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "def log_approx(y):\n", + " assert type(y) == int\n", + " assert y >= 1\n", + " return len(str(y))" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ { "data": { - "image/png": "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\n", "text/plain": [ - "<Figure size 432x288 with 1 Axes>" + "9" ] }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "s = Series([0, 0, 1, 8, 9, 9])\n", - "s.value_counts().plot.bar(color=\"orange\")" + "log_approx(123456789)" ] }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "<AxesSubplot:>" + "8.09151497716927" ] }, - "execution_count": 36, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" - }, + } + ], + "source": [ + "math.log10(123456789)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ { "data": { - "image/png": "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\n", "text/plain": [ - "<Figure size 432x288 with 1 Axes>" + "6" ] }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "s.value_counts().sort_index().plot.bar(color=\"orange\")" + "log_approx(989898)" ] }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "<AxesSubplot:ylabel='Frequency'>" + "5.995590446800246" ] }, - "execution_count": 37, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" - }, + } + ], + "source": [ + "math.log10(989898)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's look at the error margin" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ { "data": { - "image/png": "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\n", "text/plain": [ - "<Figure size 432x288 with 1 Axes>" + "1.0" ] }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "s.plot.hist()" + "errors = []\n", + "for y in range(1, 1000001):\n", + " err = abs(log_approx(y) - math.log10(y))\n", + " errors.append(err)\n", + "max(errors)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Why does this matter?\n", + "- Comparing two numbers:\n", + " - 134234255623423423423432423432432432\n", + " - 2342343252523\n", + "\n", + "- Eventually I don't care what the number is, but only counting the number of digits in the number to know how big the number is!\n", + "- log base 2: counting how many bits we need\n", + "- log base 10: 10 digits 0 through 9!" ] }, { @@ -1446,7 +1470,7 @@ { "data": { "text/plain": [ - "<AxesSubplot:ylabel='Frequency'>" + "<AxesSubplot:>" ] }, "execution_count": 38, @@ -1455,7 +1479,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAD9CAYAAACSoiH8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAVSElEQVR4nO3de7BkZX3u8e/DPUaM3NQEhWEOxgQSpcpRSUQENIKXDCGiBggqKGPQnOMlGIlaHDMBNZqjRryBZYCIBo4iAkUSAdGRKAMOHFEmhJszJCiaSQaDXOT6O3+snrjp6T2z19q9u/fl+6nq6tnv6rf7N12wn3nX+653paqQJKmtLcZdgCRpbjJAJEmdGCCSpE4MEElSJwaIJKmTrcZdwCjtvPPOtWjRonGXIUlzxjXXXPMfVbXLoGMLKkAWLVrEqlWrxl2GJM0ZSW6b7JinsCRJnRggkqRODBBJUicGiCSpk5EGSJLDk5yX5LYk9yW5Mcn7kmw/hb7bJflgkjt6fa9Msv8o6pYkbWzUI5ATgIeBdwKHAJ8EjgcuTbK5Wj4DHAecBLwMuAP4SpJ9ZqxaSdKkRr2M93erat2En1ckWQ+cBRwAXD6oU5JnAEcCx1bVGb22FcBqYDmwdCaLliRtbKQjkL7w2ODbveddN9F1KfAgcO6E93oIOAc4OMm2QytSkjQls2ES/fm95xs28Zq9gTVVdW9f+2pgG2DPmShMkjS5sV6JnmRXmlNQl1XVpi4R3xG4c0D7+gnHJ/uMZcAygN12261jpbDoxIs7952Ote9/6Vg+V9LwzbffI2MbgSR5LHAB8BBwzOZeDgy6dWI29zlVdXpVLamqJbvsMnA7F0lSB2MJkCTbARcCi4GDq+r2zXRZz+BRxg4TjkuSRmjkAZJka+A84NnAS6rqe1PothrYI8lj+tr3Ah4AbhlulZKkzRn1hYRbAJ8DXgAcWlUrp9j1QmBr4BUT3msr4FXAJVV1/7BrlSRt2qgn0T9OEwKnAPck2XfCsdur6vYkuwO3AsurajlAVX0nybnAR3ojmDU0FyDuARw10r+BJAkY/SmsF/ee3wVc2fd4fe9YgC0H1HYMcAZwMnAx8BTgkKq6doZrliQNMNIRSFUtmsJr1jJgdVVV3Qe8rfeQJI3ZbLiQUJI0BxkgkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6mTkAZLkyUlOTXJlknuTVJJFU+xbkzz2mdmqJUn9thrDZ+4JvBK4BrgCeFHL/mcCp/W13TT9siRJbYwjQL5RVU8ESPJ62gfID6pq5fDLkiS1MfJTWFX1yKg/U5I0fHNxEv34JPf35k8uT/K8cRckSQvRXAuQs4E3Ai8ElgE7AZcnOWCyDkmWJVmVZNW6detGUqQkLQTjmAPprKqOnvDjFUkuAK4HTgb2m6TP6cDpAEuWLKkZL1KSFoi5NgJ5lKr6KXAx8Kxx1yJJC82cDpCeAI4sJGnE5nSAJHkc8FLgqnHXIkkLzVjmQJIc3vvjM3vPL06yDlhXVSuS7A7cCiyvquW9PicATwO+BvwQ2B04AXgScNQo65ckjW8S/Qt9P3+i97wCOIDmtNSWPHqEdCNwWO/xS8BdwDeB11XV1TNZrCRpY2MJkKrKZo6vpQmRiW0XARfNYFmSpBbm9ByIJGl8DBBJUietAiTJKb0JbknSAtd2BPK/gFuT/H2SpUkcwUjSAtU2AJ4EvAl4IvBl4LYk/zvJrsMuTJI0u7UKkKq6p6pOq6pnAs8BLgHeDqxJcn6SQ2aiSEnS7NP5FFRVfbuqXgfsAXwLOBS4OMn3k7zJ01uSNL91/iWf5H8k+QCwGvht4HyaK8KvBD4CfGoYBUqSZqdWFxIm2ZLmSvA3AAcCPwY+CZxWVT/sveycJFcAf0lzzw5J0jzU9kr0HwC7AN8AjgDOr6qHBrzu/wHbT7M2SdIs1jZAvgB8oqpu2NSLquoqvEhRkua1VgFSVf9zpgqRJM0tba9Ef0eSUyc59tEkbx9OWZKk2a7taaZjgO9Ocuw7veOSpAWgbYDsBtw8ybHv09zkSZK0ALQNkHuBybYteTJw//TKkSTNFW0D5Arg7Um2ndjY+/lPesclSQtA22W876HZtuSmJGfTXBeyK/CHwE7Aa4dZnCRp9mq7jPe6JAcCfwW8g2YE8wjwT8DLq+q64ZcoSZqNWt8TvaquBvZP8gvADsCdVXXf0CuTJM1qrQNkg15oGByStEC1DpAki4FX0izp3a7vcPW2eJckzXNtd+M9lGY/rC2Af2fjZbs1pLokSbNc2xHIycDXgaOqat3wy5EkzRVtA2Qx8CeGhySp7YWE/0JzvYckaYFrGyB/CryzN5EuSVrAulyJvhNwQ5KbgfV9x6uqnj+MwiRJs1vbAHkYuHEmCpEkzS1ttzI5YIbqkCTNMd63XJLUSesASbJrkg8lWZVkTZLf6LW/Jclzhl+iJGk2antP9L2B7wFHAz+k2c5km97h3YE3D7U6SdKs1XYE8n+AG4A9gN8HMuHYt4B9h1SXJGmWa7sKaz/giKq6O8mWfcd+DDxpOGVJkma7tiOQRzZxbGfc3l2SFoy2AXI1cMwkx14JfHN65UiS5oq2p7D+ArgsySXA52m2b39hkjcDhwH7D7k+SdIs1WoEUlUrgN+jmUT/G5pJ9PcDzwN+r6quGnaBkqTZqfV1IFV1cVU9FfhVmkn1X6+qxVX1D1Ppn+TJSU5NcmWSe5NUkkVT7Ltdkg8muSPJfb33cNQjSWPQ+Ur0qrqlqr5VVW33xtqTZr7kTuCKln0/AxwHnAS8DLgD+EqSfVq+jyRpmtre0vbVm3tNVf3tZl7yjap6Yu/9Xg+8aIqf/QzgSODYqjqj17YCWA0sB5ZO5X0kScPRdhL9zEnaJ94LfZMBUlWbWgq8KUuBB4FzJ7zXQ0nOAU5Msm1V9d+jXZI0Q9oGyB4D2naiOZ10JPCH065ocnsDa6rq3r721TTbqezZ+7MkaQTabud+24Dm24BrkwR4G02QzIQdaeZN+q2fcHwjSZYBywB22223malsBi068eKxffba9790bJ8tzZRx/j813wxzO/crgJn8jRMefapsYvukqur0qlpSVUt22WWXmalMkhagYQbIvsDdQ3y/fusZPMrYYcJxSdKItF2FddKA5m2A36AZfXxsGEVNYjVwWJLH9M2D7AU8ANwyg58tSerTdhL9PQPa7qeZBzkFeN90C9qEC4E/B14BnAWQZCvgVcAlrsCSpNFqO4k+lFNeSQ7v/fGZvecXJ1kHrKuqFUl2B24FllfV8t5nfyfJucBHkmwNrAGOp1kZdtQw6pIkTV3bEciwfKHv50/0nlcAB9BMjG/JxnM0x9CMdE4GHg9cBxxSVdfOVKGSpMHazoG0WgdbVf86SfvmVk6tZcDqqqq6j2ap8Nva1CFJGr62I5C1DF5KO5n+uxZKkuaJtgFyPPAu4C7g//Lz29i+EngszeklJ7MlaQFoGyC/DlwLHFZV/z0SSbIc+DLN1u5vHV55kqTZqu2qqiOA0yaGB0Dv508xc9uYSJJmmbYB8lhgsv1AngD84vTKkSTNFW0D5OvAe5M8a2JjkmfTzH98fThlSZJmu7YB8sc0k+Qrk6xNclWStcCVwM96xyVJC0DbK9HXJPk14LU0myf+MnA9TYCcVVUPDr1CSdKs1PpK9F5IfLr3kCQtUJ22MknydGB/mrsRnlZVP0qyJ/DjqvrpMAuUJM1Obbcy2RY4G/h9fn6Dp4uAHwEfAG4CThxyjZKkWajtJPopwAuBo4En8uj9qv4BOHhIdUmSZrm2p7COAN5dVZ9P0r/P1Rpg0VCqkiTNem1HIDsBN2zivbadXjmSpLmibYCsAX5rkmPPBm6cXjmSpLmibYD8LXBikqNo7oUOUEkOBN4K/M0wi5MkzV5tA+QDwMXAZ4H1vbZ/Ai4D/rGqTh1ibZKkWaztlegPA3+Q5OM0K66eAPwnTXismIH6JEmz1JQDJMk2wErgxKq6BLhixqqSJM16Uz6FVVUPAHsAD81cOZKkuaLtHMilwItmohBJ0tzS9kLCU4Gzk2xFcwvbO2i2M/lvVfX94ZQmSZrN2gbIhonyt9Es2x2k/wp1SdI8tNkASXIQcHVV3Q0cS9+IQ5K0ME1lBHIpzdXnV1fVmUm2oLl17euq6uaZLE6SNHtNZRI9A37eD9h++OVIkuaKtquwJEkCDBBJUkdTXYW1a5LFvT9vOaHtJ/0vdBmvJC0MUw2QLw5o+/Ikr3UZryQtAFMJkGNmvApJ0pyz2QCpqrNGUYgkaW5xEl2S1IkBIknqxACRJHVigEiSOjFAJEmdGCCSpE4MEElSJyMPkCRPSfLFJP+V5K4kX0qy2xT71iSPfWa4bElSn7Z3JJyWJI8BLgfuB15Dc3Oqk4GvJXl6Vd0zhbc5Ezitr+2mYdYpSdq8kQYIcBywGHhaVd0CkOS7wM3AG4APTeE9flBVK2euREnSVIz6FNZSYOWG8ACoqjXAN4FDR1yLJGkaRh0gewPXD2hfDew1xfc4Psn9Se5NcnmS5w2vPEnSVI06QHYE7hzQvh7YYQr9zwbeCLwQWAbsBFye5IDJOiRZlmRVklXr1q1rXbAkabBRz4FAM3Her/++64M7Vh094ccrklxAM6I5meY+7YP6nA6cDrBkyZJBny1J6mDUI5A7aUYh/XZg8Mhkk6rqp8DFwLOmWZckqaVRB8hqmnmQfnsB/9zxPcPgUY0kaQaNOkAuBPadcH91kiwCnts71kqSxwEvBa4aVoGSpKkZdYB8GlgLXJDk0CRLgQuAf2PCxYFJdk/yUJKTJrSdkOTTSY5MckCS19As/30S8O6R/i0kSaOdRK+qe5IcBHwY+CzN6aevAm+pqrsnvDTAljw64G4EDus9fgm4iyZAXldVV4+gfEnSBCNfhVVV/wq8fDOvWUvfyqyqugi4aOYqkyS14W68kqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoZeYAkeUqSLyb5ryR3JflSkt2m2He7JB9MckeS+5JcmWT/ma5ZkrSxkQZIkscAlwO/BrwGOBp4KvC1JL84hbf4DHAccBLwMuAO4CtJ9pmRgiVJk9pqxJ93HLAYeFpV3QKQ5LvAzcAbgA9N1jHJM4AjgWOr6oxe2wpgNbAcWDqzpUuSJhr1KaylwMoN4QFQVWuAbwKHTqHvg8C5E/o+BJwDHJxk2+GXK0mazKgDZG/g+gHtq4G9ptB3TVXdO6DvNsCe0y9PkjRVoz6FtSNw54D29cAO0+i74fhGkiwDlvV+vDvJjVOoc5Cdgf/o2HdOyl8ObF5w38Mk/B4afg+NWf09TPL/8lTtPtmBUQcIQA1oyxT6pUvfqjodOH0K77/pD09WVdWS6b7PXOf30PB7aPg9NBbq9zDqU1h3MniksAODRxcTrd9E3w3HJUkjMuoAWU0zl9FvL+Cfp9B3j95S4P6+DwC3bNxFkjRTRh0gFwL7Jlm8oSHJIuC5vWOb67s18IoJfbcCXgVcUlX3D73aR5v2abB5wu+h4ffQ8HtoLMjvIVWDphVm6MOaiwWvA+4D3k0zp/EXwPbA06vq7t7rdgduBZZX1fIJ/c8BDgbeDqwBjqe5oPC3q+rakf1FJEmjHYFU1T3AQcBNwGeBz9EEwUEbwqMnwJYD6jsGOAM4GbgYeApwiOEhSaM30hGIJGn+cDfeTZjOxo/zRZLDk5yX5LbeBpY3Jnlfku3HXdu4JfnHJJXk5HHXMmpJXpLkG0nu7v2/sSrJQeOua9SSPDfJJUn+vfc9XJvk2HHXNSoGyCSGsPHjfHEC8DDwTuAQ4JM0c0+XJlmw//0kOQJ4xrjrGIckbwAuAK4BDqNZ2PIFoH+F5LyW5OnAZTSLe44DXg58G/hMkuPHWduoeAprEkneTLO548SNH/eg2fjxT6tq0o0f55Mku1TVur62VwNnAS+oqsvHU9n4JHk88C/AW4HPA6dU1bvHWtSI9FZN3gD8WVV9ZLzVjFeS99L8A2vHiXO4SVYCVVW/NbbiRmTB/gtyCqaz8eO80R8ePd/uPe86ylpmkQ8Aq6vq78ZdyBgcCzwCfGrchcwC29Bs8HpfX/tPWCC/WxfEX7Kj6Wz8ON89v/d8w1irGIMk+wGvBt447lrGZD+a0dcfJLk1yUNJbknypnEXNgZn9p4/muRXkjw+yXHAC4APj6+s0RnHXlhzxXQ2fpy3kuxKc/+Vy6pq1bjrGaUkWwOnAX9VVV035ZzrfqX3+CDNvNitNHMgH0uyVVX99TiLG6Wquj7JAcD5/PwfFA8Cf1RV54yrrlEyQDat68aP81KSx9JMnj5Ec03OQvMO4BeAU8ZdyBhtQXPh72ur6ku9tst7cyN/luSjtUAmVpM8FTiP5qzEH9GcyjoU+FSSn1XV58ZZ3ygYIJObzsaP806S7Wi2k1kMPL+qbh9zSSPVW779LuD1wLZ9NzDbtjex/tOqengc9Y3Qf9KsRry0r/0SmlV6vwz8cNRFjcl7aUYcL6uqB3ttX02yE/DXSf6uqh4ZX3kzzzmQyU1n48d5pXfq5jzg2cBLqup7Yy5pHBYD2wFn0/wDYsMDmpU4dwK/OZ7SRmr1JO0bRubz+hdmn98ErpsQHhtcDewEPGH0JY2WATK56Wz8OG/0rvX4HM3E4KFVtXLMJY3Ld4ADBzygCZUDWRg7Qp/fez64r/1g4Paq+tGI6xmnHwH7JNmmr/05wM9YALeY8BTW5D4N/DFwQZKJGz/+G81E6kLxcZpJ0lOAe5LsO+HY7QvlVFZV/QT4en97EoDbqmqjY/PU3wNfA05LsjPwfeBw4EUsvHmxj9FcQHlRkk/QzIEsBY4APlxVD4yzuFHwQsJN6J33/jDwOzRD9K8Cb6mqteOsa5SSrGXyW1r+eVW9Z3TVzD5JigV0ISFAkscB76MJjh1olvW+v6o+P9bCxiDJi2kWV+xNc4rzVpqt3U9bAPNhBogkqRvnQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjr5/xljM8NWjmv8AAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -1467,10 +1491,8 @@ } ], "source": [ - "s = Series([0.1, 0, 1, 8, 9, 9.2])\n", - "s.plot.hist() # a histogram \"bins\" nearby numbers to create discrete bars\n", - "# first bar represents both 0 and 0.1\n", - "# last bar represents both 9 and 9.2" + "s = Series([1, 10, 100, 1000, 10000, 100000, 1000000])\n", + "s.plot.line()" ] }, { @@ -1481,7 +1503,7 @@ { "data": { "text/plain": [ - "<AxesSubplot:ylabel='Frequency'>" + "<AxesSubplot:>" ] }, "execution_count": 39, @@ -1490,7 +1512,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -1502,7 +1524,14 @@ } ], "source": [ - "s.plot.hist(bins=10)" + "s.plot.line(logy = True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Multiple *axessubplots* in the same plot" ] }, { @@ -1513,7 +1542,7 @@ { "data": { "text/plain": [ - "<AxesSubplot:ylabel='Frequency'>" + "(<Figure size 432x288 with 1 Axes>, <AxesSubplot:>)" ] }, "execution_count": 40, @@ -1522,7 +1551,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -1534,7 +1563,7 @@ } ], "source": [ - "s.plot.hist(bins=3) # too few bins provides too little detail" + "plt.subplots()" ] }, { @@ -1545,7 +1574,8 @@ { "data": { "text/plain": [ - "<AxesSubplot:ylabel='Frequency'>" + "(<Figure size 432x288 with 2 Axes>,\n", + " array([<AxesSubplot:>, <AxesSubplot:>], dtype=object))" ] }, "execution_count": 41, @@ -1554,9 +1584,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAD9CAYAAACSoiH8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAXxUlEQVR4nO3de5QlZX3u8e8jCAT1LAYYTCQMwxxcyBDRFSdKhCiQRNC4hhjvV7wBGo23iGI0HDOC9wPGKwPHKEEMHhGFBGOQq4aIOHqUOKACzoBG1FFGkIsI+jt/1O7Y9Ozu3lXdvXf39PezVq/tvFVv1a/3knmm6n3rrVQVkiS1dZ9RFyBJWpgMEElSJwaIJKkTA0SS1IkBIknqZNtRFzBMu+66ay1fvnzUZUjSgvHVr371J1W1tN+2RRUgy5cvZ926daMuQ5IWjCQ3TLbNW1iSpE4MEElSJwaIJKkTA0SS1MnQAyTJ7yZ5X5IvJbkjSSVZPmDfHZK8K8lNSe7sHeMxc1yyJKmPUVyB7A08DdgMfLFl3w8DRwHHA08EbgL+LcnDZ7NASdL0RjGN9wtV9UCAJC8GHjdIpyQPA54FvLCqPtJruwxYD6wBVs9NuZKkfoZ+BVJVv+7YdTVwN/CJcce6BzgLOCzJ9rNQniRpQAtpEH0/YENV3TGhfT2wHc2tMUnSkCykJ9F3phk3mejmcdu3kORo4GiAZcuWdT758uPO79u+8e1/1vmYbc871+eS1M58+O9zshqGUdtCugIJ0O/1iZmqU1WdWlWrqmrV0qV9l3ORJHWwkALkZvpfZSwZt12SNCQLKUDWA3sl2XFC+0rgl8B1wy9JkhavhRQg5wH3BZ461pBkW+DpwAVVddeoCpOkxWgkg+hJntL7n4/ofT4+ySZgU1VdlmRP4HpgTVWtAaiqryf5BPCeJPcFNgAvBfYCnj3c30CSNKpZWJ+c8OcP9j4vAw6mGRjfhi2vkF4AnAicAOwEfAM4vKq+NleFSpL6G0mAVNV0M6c20md2VVXdCbym9yNJGqGFNAYiSZpHDBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktTJ0AMkyR5Jzk5yS5Jbk5yTZNmAfZclOT3JjUnuSPKdJCckud9c1y1Jurdth3myJDsCFwN3AUcCBZwAXJJk/6q6fYq+9wMuBO4L/C1wI/AHwN8BDwaePrfVS5LGG2qAAEcBK4B9quo6gCRXAdcCxwAnTdH3QJqgOKyqLui1XZJkZ+C1SXasqjvmrnRJ0njDvoW1GrhiLDwAqmoDcDlwxDR9t+t93jqh/Wc0v0dmqUZJ0gCGHSD7Ad/s074eWDlN3wtprlTekWRlkvsnORR4JXDKVLe/JEmzb9gBsjOwuU/7zcCSqTpW1S+Ag2hqXg/8HLgI+Bfg5ZP1S3J0knVJ1m3atKlr3ZKkCUYxjbf6tE17+ynJDsAngN2A5wKPBY6lGTz/wKQnqzq1qlZV1aqlS5d2q1iStIVhD6JvprkKmWgJ/a9MxnsRcDCwd1Vd32v7QpJbgFOTnFJV35i1SiVJUxr2Fch6mnGQiVYCV0/T96HA5nHhMebK3ue+M6xNktTCsAPkPOCAJCvGGpIsp5mie940fX8ILEmy94T2R/U+/2u2ipQkTW/YAXIasBE4N8kRSVYD5wLfA9aO7ZRkzyT3JDl+XN+P0gycfzbJkUkOSXIs8G7gqzRTgSVJQzLUAOlNtT0U+A5wBnAmsAE4tKpuG7drgG3G11dVG4EDgK/TPL3+WZoHE08F/rSqfj33v4EkacywB9GpqhuBJ0+zz0b6zMyqqquBp81NZZKkNlyNV5LUiQEiSerEAJEkdWKASJI6MUAkSZ0YIJKkTgwQSVInBogkqRMDRJLUiQEiSerEAJEkdWKASJI6aRUgSU5MsudcFSNJWjjaXoG8Arg+yWeTrE7iFYwkLVJtA+C3gZcBDwQ+A9yQ5H8l2X22C5MkzW+tAqSqbq+qtVX1CJpXyV4AHAtsSPLpJIfPRZGSpPmn8y2oqvpKVb0I2Av4D+AI4Pwk303yMm9vSdLWrfNf8kn+Z5J3AuuBRwOfBp4NfAl4D3DKbBQoSZqfWr3SNsk2wJOAY4BDgB8BHwLWVtUPerudleSLwDuAo2exVknSPNL2nej/BSwFvgA8E/h0Vd3TZ7//BzxghrVJkuaxtgHySeCDVXXNVDtV1ZfxIUVJ2qq1CpCq+qu5KkSStLC0fRL99UneN8m29yY5dnbKkiTNd21vM70AuGqSbV/vbZckLQJtA2QZcO0k274LuE6WJC0SbQPkDmCyZUt+F7hrZuVIkhaKtgHyReDYJNuPb+z9+a972yVJi0Dbabxvplm25DtJPkbzXMjuwHOAXYDnz2ZxkqT5q+1iit+geQL9BuD1wPt7nxuAg3vbp5RkjyRnJ7klya1JzkmybNAakuyb5JNJfpLkziTfTvLKNr+HJGnm2l6BUFVXAo9J8lvAEmBzVd05SN8kOwIX04yVHAkUcAJwSZL9q+r2afqv6vW/FHgxcAvwYOD+bX8PSdLMtA6QMb3QGCg4xjkKWAHsU1XXASS5imZm1zHASZN17K3uezpwUVU9adymS1rWIEmaBa0DJMkK4Gk0U3p3mLC5eku8T2Y1cMVYePQ6bEhyOc1y8JMGCHAwsBJ4SduaJUmzr+1qvEfQrId1H+DHbDltt6Y5xH7AuX3a1wNPnabvQb3PHZJcATwC2AycBbx+0NtokqTZ0fYK5ASa8YdnV9WmDufbmeYv/YluphlPmcqDep+foBm8Pw5YBawB9qBZZl6SNCRtA2QF8Ncdw2NMv6uUDNBvbMbYx6rq+N7/vrT3jpK3J1lZVVdvceDkaHrvJVm2bODJXpKkabR9kPBbNM97dLWZ5ipkoiX0vzIZ76e9z89PaL+g9/nwfp2q6tSqWlVVq5YuXTponZKkabQNkNcBf9MbSO9iPc04yEQrgS2uHvr0hS2vYMauXn7dsSZJUgddnkTfBbgmybU0YxfjVVU9dor+5wHvTrKiqr4LkGQ5cCDNmMZU/pVm0P5w4F/GtR/W+1w3yC8gSZodbQPkV8C3Z3C+04CXA+cmeRPN1cRbgO8Ba8d2SrIncD2wpqrWAFTVT5O8DfjbJLfSPFC4CjgeOH381GBJ0txr+0bCg2dysqq6PcmhwMnAGTS3ny4CXlVVt43bNcA2bHmLbQ3wc+AvgdcCNwHvogkhSdIQdX4SvauquhF48jT7bKTPzKyqKpqHDad64FCSNARtB9FJsnuSk5KsS7Ihye/12l+V5FGzX6IkaT5q+070/YD/BJ4L/IBmOZPtepv3BFwVV5IWibZXIP8buAbYC/gL7n2b6T+AA2apLknSPNd2DOQg4JlVdVvvCfDxfgT89uyUJUma79pegUz1sN6utF/eXZK0QLUNkCuBF0yy7WnA5TMrR5K0ULS9hfUW4MIkFwAfp3kQ8E96r5R9EvCYWa5PkjRPtX0n+mXAn9MMov8DzSD624E/Av68qr482wVKkuanLu9EPx84P8newG7AT6tqJsubSJIWoJm8E/06wPWnJGmRavtK2+dNt09V/WP3ciRJC0XbK5CPTtI+/h0dBogkLQJtA2SvPm27AE8EngU8Z8YVSZIWhLbLud/Qp/kG4GtJAryGJkgkSVu51qvxTuGLwJ/N4vEkSfPYbAbIAcBt0+4lSdoqtJ2FdXyf5u2A36O5+nj/bBQlSZr/2g6iv7lP21004yAnAm+baUGSpIWh7SD6bN7ykiQtYAaCJKmTtmMgy9rsX1U3titHkrRQtB0D2ci9nzqfzsS3FkqSthJtA+SlwBuBW4H/y29eY/s04P40A+l3zWaBkqT5qW2A7At8DXhSVf33lUiSNcBngH2r6tWzV54kab5qO4j+TGDt+PAA6P35FFzGRJIWjbYBcn9g6STbdgPuN7NyJEkLRdsAuRR4a5I/GN+Y5JE04x+Xzk5ZkqT5rm2AvJxmkPyKJBuTfDnJRuBLwC962yVJi0DbJ9E3JHkI8HyaxRN/B/gmTYCcXlV3z3qFkqR5qfWT6FV1d1WdVlUvqqon9D7/z6DhkWSPJGcnuSXJrUnOafuAYu84b0hSSf69bV9J0sy1ncYLQJL9gcfQvI1wbVX9MMnewI+q6udT9NsRuJjmNtiRNA8lngBckmT/qrp9wPOvoHke5cdd6pckzVzbpUy2Bz4G/AUQmgD4Z+CHwDuB7wDHTXGIo4AVwD5VdV3vmFcB1wLHACcNWMqHgDOBfdr+DpKk2dH2FtaJwJ8AzwUeSBMiY/4VOGya/quBK8bCA5pxFeBy4IhBCkjyLOD3gTcMXrYkabZ1eZDwTVX1ceDmCds2AMun6b8fzaD7ROuBldOdPMkS4GTgdVU18fySpCFqGyC7ANdMcaztp+m/M7C5T/vNwJIBzv8umttkHx1gXwCSHJ1kXZJ1mzZtGrSbJGkabQNkA/CHk2x7JPDtAY7RbzXf9Gm79w7JHwHPA146cSmVKU9WdWpVraqqVUuXTvYQvSSprbYB8o/AcUmeTfMudIBKcgjwauAfpum/meYqZKIl9L8yGW8t8GHg+0l2SrITzQD6Nr0/T3f1I0maRW0D5J3A+cAZ/GYM5N+BC4HPVdX7pum/nmYcZKKVwNXT9N0XeAlN0Iz9HEjzQONmmqXmJUlD0vZJ9F8Bz0jyAZoZV7sBP6UJj8sGOMR5wLuTrKiq7wIkWU4TBFNN/wU4pE/be2heWvVXwHV9tkuS5sjAAZJkO+AK4LiqugD4YofznUazXta5Sd5EMx7yFuB7NLeoxs61J3A9sKaq1gBU1aV9avoZsG2/bZKkuTXwLayq+iWwF3BP15P1njQ/lGYm1Rk0DwNuAA6tqtvG7RqaK4vWS61Ikoaj7VPcnwceR7McSSdVdSPw5Gn22cgAM7Oq6uCudUiSZqZtgLwP+FiSbWleYXsTE6bljo1tSJK2bm0DZGyg/DU003b72aZ7OZKkhWLaAElyKHBlb4zihfR/EFCStMgMcgXyeZqnz6+sqo8muQ/Nq2tfVFXXzmVxkqT5a5BZThMHswMcBDxg9suRJC0UTpOVJHVigEiSOhl0FtbuvdfIwm9mWe3eexL8XpzGK0mLw6ABcnafts9Msq/TeCVpERgkQF4w51VIkhacaQOkqk4fRiGSpIXFQXRJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUidDD5AkeyQ5O8ktSW5Nck6SZQP0W5Xk1CTfSnJHkhuTnJlkr2HULUm6t6EGSJIdgYuBhwBHAs8FHgxckuR+03R/BrAf8F7g8cBxwO8D65LsMWdFS5L6mvad6LPsKGAFsE9VXQeQ5CrgWuAY4KQp+r6jqjaNb0hyObChd9zj56RiSVJfw76FtRq4Yiw8AKpqA3A5cMRUHSeGR6/tBmATsPss1ylJmsawA2Q/4Jt92tcDK9seLMm+wG7ANTOsS5LU0rADZGdgc5/2m4ElbQ6UZFvgFJorkA9Psd/RSdYlWbdp0xYXMZKkjkYxjbf6tKXDcd4PPBp4TlX1C6XmZFWnVtWqqlq1dOnSDqeRJPUz7EH0zTRXIRMtof+VSV9J3gYcDRxZVRfMUm2SpBaGHSDracZBJloJXD3IAZK8kWYK7yuq6oxZrE2S1MKwb2GdBxyQZMVYQ5LlwIG9bVNK8grgBOCNVfW+uSpSkjS9YQfIacBG4NwkRyRZDZwLfA9YO7ZTkj2T3JPk+HFtzwDeA3wOuDjJAeN+Ws/gkiTNzFBvYVXV7UkOBU4GzqAZPL8IeFVV3TZu1wDbcO+AO7zXfnjvZ7zLgIPnqGxJUh/DHgOhqm4EnjzNPhuZMDOrqp4PPH+u6pIkteNqvJKkTgwQSVInBogkqRMDRJLUiQEiSerEAJEkdWKASJI6MUAkSZ0YIJKkTgwQSVInBogkqRMDRJLUiQEiSerEAJEkdWKASJI6MUAkSZ0YIJKkTgwQSVInBogkqRMDRJLUiQEiSerEAJEkdWKASJI6MUAkSZ0YIJKkTgwQSVInBogkqRMDRJLUiQEiSepk6AGSZI8kZye5JcmtSc5JsmzAvjskeVeSm5LcmeRLSR4z1zVLkrY01ABJsiNwMfAQ4EjgucCDgUuS3G+AQ3wYOAo4HngicBPwb0kePicFS5Imte2Qz3cUsALYp6quA0hyFXAtcAxw0mQdkzwMeBbwwqr6SK/tMmA9sAZYPbelS5LGG/YtrNXAFWPhAVBVG4DLgSMG6Hs38Ilxfe8BzgIOS7L97JcrSZrMsANkP+CbfdrXAysH6Luhqu7o03c7YO+ZlydJGtSwb2HtDGzu034zsGQGfce2byHJ0cDRvT/eluTbA9TZz67AT7Y4/js6Hq2DYZ5rCn2/h0XI76Hh99DYNe8Y/fcw2d8RM/y7Y8/JNgw7QACqT1sG6JcufavqVODUAY4/9cmTdVW1aqbHWej8Hhp+Dw2/h8Zi/R6GfQtrM/2vFJbQ/+pivJun6Du2XZI0JMMOkPU0YxkTrQSuHqDvXr2pwBP7/hK4bssukqS5MuwAOQ84IMmKsYYky4EDe9um63tf4Knj+m4LPB24oKrumvVq723Gt8G2En4PDb+Hht9DY1F+D6nqN6wwRydrHhb8BnAn8CaaMY23AA8A9q+q23r77QlcD6ypqjXj+p8FHAYcC2wAXkrzQOGjq+prQ/tFJEnDvQKpqtuBQ4HvAGcAZ9IEwaFj4dETYJs+9b0A+AhwAnA+sAdwuOEhScM31CsQSdLWw9V4pzCThR+3FkmekuRTSW7oLWD57SRvS/KAUdc2akk+l6SSnDDqWoYtyROSfCHJbb3/NtYlOXTUdQ1bkgOTXJDkx73v4WtJXjjquobFAJnELCz8uLV4LfAr4G+Aw4EP0Yw9fT7Jov3/T5JnAg8bdR2jkOQY4Fzgq8CTaCa2fBKYOENyq5Zkf+BCmsk9RwFPBr4CfDjJS0dZ27B4C2sSSV5Js7jj+IUf96JZ+PF1VTXpwo9bkyRLq2rThLbnAacDf1xVF4+mstFJshPwLeDVwMeBE6vqTSMtakh6syavAd5QVe8ZbTWjleStNP/A2nn8GG6SK4Cqqj8cWXFDsmj/BTmAmSz8uNWYGB49X+l97j7MWuaRdwLrq+qfRl3ICLwQ+DVwyqgLmQe2o1ng9c4J7T9jkfzduih+yY5msvDj1u6xvc9rRlrFCCQ5CHge8JejrmVEDqK5+npGkuuT3JPkuiQvG3VhI/DR3ud7kzwoyU5JjgL+GDh5dGUNzyjWwlooZrLw41Yrye4071+5sKrWjbqeYUpyX2At8O6q6roo50L3oN7Pu2jGxa6nGQN5f5Jtq+rvR1ncMFXVN5McDHya3/yD4m7gJVV11qjqGiYDZGpdF37cKiW5P83g6T00z+QsNq8Hfgs4cdSFjNB9aB78fX5VndNru7g3NvKGJO+tRTKwmuTBwKdo7kq8hOZW1hHAKUl+UVVnjrK+YTBAJjeThR+3Okl2oFlOZgXw2Kr6/ohLGqre9O03Ai8Gtp/wArPtewPrP6+qX42iviH6Kc1sxM9PaL+AZpbe7wA/GHZRI/JWmiuOJ1bV3b22i5LsAvx9kn+qql+Prry55xjI5Gay8ONWpXfr5lPAI4EnVNV/jrikUVgB7AB8jOYfEGM/0MzE2Qw8dDSlDdX6SdrHrsy36r8wJ3go8I1x4THmSmAXYLfhlzRcBsjkZrLw41aj96zHmTQDg0dU1RUjLmlUvg4c0ucHmlA5hMWxIvSne5+HTWg/DPh+Vf1wyPWM0g+BhyfZbkL7o4BfsAheMeEtrMmdBrwcODfJ+IUfv0czkLpYfIBmkPRE4PYkB4zb9v3Fciurqn4GXDqxPQnADVW1xbat1GeBS4C1SXYFvgs8BXgci29c7P00D1D+c5IP0oyBrAaeCZxcVb8cZXHD4IOEU+jd9z4Z+FOaS/SLgFdV1cZR1jVMSTYy+Sst/66q3jy8auafJMUiepAQIMn/AN5GExxLaKb1vr2qPj7SwkYgyeNpJlfsR3OL83qapd3XLoLxMANEktSNYyCSpE4MEElSJwaIJKkTA0SS1IkBIknqxACRJHVigEiSOjFAJEmd/H83iA0iVvg8zgAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "<Figure size 432x288 with 1 Axes>" + "<Figure size 432x288 with 2 Axes>" ] }, "metadata": { @@ -1566,7 +1596,7 @@ } ], "source": [ - "s.plot.hist(bins=100) #too many bins provides too much detail (equally bad)" + "plt.subplots(ncols = 2)" ] }, { @@ -1577,7 +1607,8 @@ { "data": { "text/plain": [ - "<AxesSubplot:ylabel='Frequency'>" + "(<Figure size 432x288 with 2 Axes>,\n", + " array([<AxesSubplot:>, <AxesSubplot:>], dtype=object))" ] }, "execution_count": 42, @@ -1586,9 +1617,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEDCAYAAAArwUMAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAXS0lEQVR4nO3df6wl9V3/8ecLlh9la2XRVqMFdjcYYImFtKuS0iIgFlqaJaa/DKYSWtgWY8Qv/ogNLZoVtUptTTEKiwgGasBiFWpjwEKhtCk0S1NqtwoF+VEbmi6y5dfSBeTz/WPmem/Pnv3cuXfOj3vZ5yM5OffOOZ85n3nfc+d1ZuYzc1JKQZKk3dlr2h2QJC1tBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqo6BUWSVye5JMmXkuxIUpKs7th2/yQXJ3k0ybPtPI7v1WtJ0sR03aI4DHgnsB24Y4GvcQVwDnAh8FbgUeCmJMcscD6SpClIlxPukuxVSnmx/fls4HJgTSnloXnaHQ18FXhPKeXKdtoKYCtwbyllQ6/eS5LGrtMWxUxILMIG4HngujnzegG4FjglyX6LnK8kaULGfTD7KODBUsqOgelbgX1pdmlJkpawFWOe/0E0xzUGPT7n8V0k2QhsBFi5cuXrjjjiiPH0TpJegu6+++7HSimvHNX8xh0UAYYdBEmtUSllM7AZYP369WXLli1j6JokvTQleXiU8xv3rqfHGb7VsGrO45KkJWzcQbEVWJPkgIHp64DngPvH/PqSpJ7GHRQ3AvsA75iZ0A6PfRdwcyll55hfX5LUU+djFEne3v74uvb+zUm2AdtKKbcnORR4ANhUStkEUEr5apLrgL9Isg/wIHAusAb4lVEthCRpfBZyMPuTA7//VXt/O3ACzQHqvdl1K+Us4I+Ai4ADgXuAU0spX1lgXyVJU9A5KEop841Ueogho5lKKc8C57c3SdIy49VjJUlVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVNUpKJIcnOT6JE8keTLJp5Ic0rFt2c3tmF49lyRNxIr5npDkAOBWYCdwJlCAi4DPJXlNKeWZDq9zFXDZwLT7FtZVSdI0zBsUwDnAWuDwUsr9AEm+BnwTeB/w0Q7z+HYp5c5F91KSNDVddj1tAO6cCQmAUsqDwBeB08fVMUnS0tAlKI4Cvj5k+lZgXcfXOTfJziQ7ktya5I2deyhJmqouQXEQsH3I9MeBVR3aXwP8GnAysBH4EeDWJCfsrkGSjUm2JNmybdu2Di8hSRqXLscooDmAPSidGpby7jm/3pHkBpotlIuAN+ymzWZgM8D69euHvbYkaUK6bFFsp9mqGLSK4VsaVaWUp4DPAD+z0LaSpMnrEhRbaY5TDFoHfGORrxuGb6VIkpaYLkFxI3BskrUzE5KsBo5rH1uQJK8ATgPuWmhbSdLkdQmKy4GHgBuSnJ5kA3AD8C3mnESX5NAkLyS5cM60305yeZIzkpyQ5EyaYbU/DnxwlAsiSRqPeQ9ml1KeSXIS8DHgaprdRrcAv1lKeXrOUwPszQ+Gz73AL7W3HwaepAmK95ZSvjySJZAkjVWnUU+llEeAt83znIcYGAlVSvk08OnFdk6SNH1ePVaSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJquoUFEkOTnJ9kieSPJnkU0kO6dh2/yQXJ3k0ybNJvpTk+H7dliRNyrxBkeQA4FbgCOBM4N3ATwGfS7Kyw2tcAZwDXAi8FXgUuCnJMYvssyRpglZ0eM45wFrg8FLK/QBJvgZ8E3gf8NHdNUxyNHAG8J5SypXttNuBrcAmYEOv3kuSxq7LrqcNwJ0zIQFQSnkQ+CJweoe2zwPXzWn7AnAtcEqS/RbcY0nSRHUJiqOArw+ZvhVY16Htg6WUHUPa7gsc1uH1JUlT1GXX00HA9iHTHwdW9Wg78/gukmwENra/7kwyLKj2RD8KPDbtTiwB1mGWtZhlLWYdPsqZdQkKgDJkWjq0y2LallI2A5sBkmwppazv8FovedaiYR1mWYtZ1mJWki2jnF+XXU/bGf7JfxXDtxbmerzSduZxSdIS1iUottIcaxi0DvhGh7Zr2iG2g22fA+7ftYkkaSnpEhQ3AscmWTszIclq4Lj2sfna7gO8Y07bFcC7gJtLKTs7vP7mDs/ZU1iLhnWYZS1mWYtZI61FShl2CGHOE5qT6u4BngU+SHPM4Q+BHwJeU0p5un3eocADwKZSyqY57a8FTgF+B3gQOJfmxLvXl1K+MsqFkSSN3rxbFKWUZ4CTgPuAq4FP0KzwT5oJiVaAvYfM8yzgSuAi4DPAwcCphoQkLQ/zblFIkvZsU7l6rBcZnLXYWiRZn2Rzkv9MsiPJI0k+kWTNJPo9Dn3eFwPz+UCSkuQL4+jnJPStRZIjk3wyyWPt/8m9Sc4bZ5/Hpef64pAkf9f+f+xIcl+Sizpep25JSfLqJJe067wd7Xt8dce2vdabEw8KLzI4q2ctfplmNNrHgTcDvwe8FtiS5OCxdXpMRvC+mJnPWuAC4Lvj6Ock9K1FkvXAXcB+wNnAW4A/p9k1vKz0qUX7+GeB44EPAacBfwP8FvC3Y+z2uBwGvJPmtIQ7Fti233qzlDLRG3Ae8L/AYXOmrQFeAM6fp+3RNAfTz5ozbQVwL3DjpJdlyrV45ZBphwIv0gwomPryTaoWA/O5CbgMuA34wrSXawrvi71ohqX/07SXYwnU4k3t+uJNA9M/3LY/YNrLt8Ba7DXn57PbZVvdoV3v9eY0dj15kcFZi65FKWXbkGkPA9uAnxxxPyehz/sCgCRn0GxVfWAsPZycPrU4geY8pd1e1XmZ6VOLfdv7Jwemf48mULtcXWLJKKW8uMimvdeb0wgKLzI4q08tdpHkSOBVwH/07Nc09KpFklXAx4DfLaUs9zP++9TiDe39/knuTPJ8ku8m+XiSl420l5PRpxafpfk6hD9Nsi7Jy5OcRLOVcmlpRnTuCXqvN6cRFBO/yOAS1qcWP6A9kfFSmi2KK/p3beL61uJimiHcV42wT9PSpxY/0d5fB9wM/CLwZzS7Kv5+VB2coEXXopTyfZrgnNkd9xRwC/AvwK+PtptLWu/1ZteLAo7aRC8yuMSNann+Eng9cFopZb5rcC1Vi6pFkjcCvwq8trQ7YF8CFvu+mPnwd00p5cL259uS7A18OMm6Usp8l95Zahb7vtifJjBfRXMQ/BHgZ2kO6L5Ac/LvnqD3erPrd2aPbFhWO3nYJuOeeJHBPhdc/D9J/oTmsuzvKaXcPKK+TVqfWlxGsxX130kOTHIgzYegvdvfl9uxqz61+J/2/t8Gps+8L45ZfLemok8t3ktzzOYtpZRrSimfL6V8hGbU0/vTfAPnnqD3erPrrqdRDsv6HvDWIcOy9sSLDPa54CIASS6gGRp7Xinl6hH2bdL61OJI4P0078+Z23HAse3Py+2TY98LccKunyBnPj0u9oDotPSpxU8D20spDwxM/3J7f2TPvi0XvdebXYPi86WUHyulvAX4ZNfeZfY7s/9fKeXyUsotNEPT9gI+Mud5q5ncRQaXkj4XXCTJb9BcGuWCUsol4+rkhPSpxYlDbvfQHAQ9Ebh+DP0dpz61+FdgJ3DqwPRT2vuRfk/BBPSpxXeAVUkGD9b+XHv/7VF1conrv95cxFjehYzf/RBNYh0wZ9pKmk2dF4G30Qzdugf4L+Dlc553KM1+xAsH5nktzafEs4FfoFkJfJ9m//TUxzovsJYradL832mG+nWuBc0Jdy/SrBiOHbitm/ayTbIWu5nfbSzf8yh61QL4/Xb6HwMn02xxPgtcNe1lm2QtgNU0Q2PvozlZ70Sai5M+SROYe016eUZQj7e3t79u18Pntr///DzviV7rzcV0dCFBcS1w75Dp57bzeJpmJMI/D86v/SMX4A8Gpr+MZoz4d9oFvQs4Ydp/wB5/+EOAf2zfvJ1rQTO6p+zmdtu0l2uStdjNvG5jmQZF31rQ7GY6v13BPgc8DGwC9pn2ck2hFuuAfwC+RROW99HszVg17eVaZC2q//PjWm8u+KKASc4GLgfWlFIemue5NwOvKKUcOzD9ZJqDbceXUnY55pE535m9cuXK1x1xxBEL6qMk7cnuvvvux0oprxzV/MY9PLb3d2avX7++bNmy3HarStL0JHl4lPMb9wl3L7XhrJK0xxl3ULzUhrNK0h5n3EHxUhvOKkl7nM7HKJK8vf3xde39m5NsA7aVUm7PkO/MLqV8Ncl1wF8k2YfZ78xeA/zKqBZCkjQ+CzmYPXii3V+197fTnCZf+87sP6I5MexAmjHQfme2JC0TnYOilDLfSKWHGDKaqZTyLM2Y7vMX2jlJ0vRN5TuzJUnLh0EhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSpqlNQJDk4yfVJnkjyZJJPJTmkY9uym9sxvXouSZqIFfM9IckBwK3ATuBMoAAXAZ9L8ppSyjMdXucq4LKBafctrKuSpGmYNyiAc4C1wOGllPsBknwN+CbwPuCjHebx7VLKnYvupSRparrsetoA3DkTEgCllAeBLwKnj6tjkqSloUtQHAV8fcj0rcC6jq9zbpKdSXYkuTXJGzv3UJI0VV2C4iBg+5DpjwOrOrS/Bvg14GRgI/AjwK1JTthdgyQbk2xJsmXbtm0dXkKSNC5djlFAcwB7UDo1LOXdc369I8kNNFsoFwFv2E2bzcBmgPXr1w97bUnShHTZothOs1UxaBXDtzSqSilPAZ8BfmahbSVJk9clKLbSHKcYtA74xiJfNwzfSpEkLTFdguJG4Ngka2cmJFkNHNc+tiBJXgGcBty10LaSpMnrEhSXAw8BNyQ5PckG4AbgW8w5iS7JoUleSHLhnGm/neTyJGckOSHJmTTDan8c+OAoF0SSNB7zHswupTyT5CTgY8DVNLuNbgF+s5Ty9JynBtibHwyfe4Ffam8/DDxJExTvLaV8eSRLIEkaq06jnkopjwBvm+c5DzEwEqqU8mng04vtnCRp+rx6rCSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqo6BUWSg5Ncn+SJJE8m+VSSQzq23T/JxUkeTfJski8lOb5ftyVJkzJvUCQ5ALgVOAI4E3g38FPA55Ks7PAaVwDnABcCbwUeBW5Kcswi+yxJmqAVHZ5zDrAWOLyUcj9Akq8B3wTeB3x0dw2THA2cAbynlHJlO+12YCuwCdjQq/eSpLHrsutpA3DnTEgAlFIeBL4InN6h7fPAdXPavgBcC5ySZL8F91iSNFFdguIo4OtDpm8F1nVo+2ApZceQtvsCh3V4fUnSFHXZ9XQQsH3I9MeBVT3azjy+iyQbgY3trzuTDAuqPdGPAo9NuxNLgHWYZS1mWYtZh49yZl2CAqAMmZYO7bKYtqWUzcBmgCRbSinrO7zWS561aFiHWdZilrWYlWTLKOfXZdfTdoZ/8l/F8K2FuR6vtJ15XJK0hHUJiq00xxoGrQO+0aHtmnaI7WDb54D7d20iSVpKugTFjcCxSdbOTEiyGjiufWy+tvsA75jTdgXwLuDmUsrODq+/ucNz9hTWomEdZlmLWdZi1khrkVKGHUKY84TmpLp7gGeBD9Icc/hD4IeA15RSnm6fdyjwALCplLJpTvtrgVOA3wEeBM6lOfHu9aWUr4xyYSRJozfvFkUp5RngJOA+4GrgEzQr/JNmQqIVYO8h8zwLuBK4CPgMcDBwqiEhScvDvFsUkqQ921SuHutFBmctthZJ1ifZnOQ/k+xI8kiSTyRZM4l+j0Of98XAfD6QpCT5wjj6OQl9a5HkyCSfTPJY+39yb5Lzxtnncem5vjgkyd+1/x87ktyX5KKO16lbUpK8Oskl7TpvR/seX92xba/15sSDwosMzupZi1+mGY32ceDNwO8BrwW2JDl4bJ0ekxG8L2bmsxa4APjuOPo5CX1rkWQ9cBewH3A28Bbgz2l2DS8rfWrRPv5Z4HjgQ8BpwN8AvwX87Ri7PS6HAe+kOS3hjgW27bfeLKVM9AacB/wvcNicaWuAF4Dz52l7NM3B9LPmTFsB3AvcOOllmXItXjlk2qHAizQDCqa+fJOqxcB8bgIuA24DvjDt5ZrC+2IvmmHp/zTt5VgCtXhTu75408D0D7ftD5j28i2wFnvN+fnsdtlWd2jXe705jV1PXmRw1qJrUUrZNmTaw8A24CdH3M9J6PO+ACDJGTRbVR8YSw8np08tTqA5T2m3V3VeZvrUYt/2/smB6d+jCdQuV5dYMkopLy6yae/15jSCwosMzupTi10kORJ4FfAfPfs1Db1qkWQV8DHgd0spy/2M/z61eEN7v3+SO5M8n+S7ST6e5GUj7eVk9KnFZ2m+DuFPk6xL8vIkJ9FspVxamhGde4Le681pBMXELzK4hPWpxQ9oT2S8lGaL4or+XZu4vrW4mGYI91Uj7NO09KnFT7T31wE3A78I/BnNroq/H1UHJ2jRtSilfJ8mOGd2xz0F3AL8C/Dro+3mktZ7vdn1ooCjNtGLDC5xo1qevwReD5xWSpnvGlxL1aJqkeSNwK8Cry3tDtiXgMW+L2Y+/F1TSrmw/fm2JHsDH06yrpQy36V3lprFvi/2pwnMV9EcBH8E+FmaA7ov0Jz8uyfovd6cRlD0vcjgsGFxy/Uig31q8X+S/AnNZdnPLKXcPKK+TVqfWlxGsxX130kObKetAPZuf3+2dLtczFLRpxb/097/28D0m2kO4h7D/NdoW0r61OK9NMdsDiulPNBO+3ySJ4DNSS4tpdwzsp4uXb3Xm9PY9eRFBmf1qQUASS6gGRp7Xinl6hH2bdL61OJI4P00K46Z23HAse3Py+2TY9//Edj1E+TMp8fFHhCdlj61+Glg+5yQmPHl9v7Inn1bLnqvN6cRFNO+yOBS0qcWJPkNmkujXFBKuWRcnZyQPrU4ccjtHpqDoCcC14+hv+PUpxb/CuwETh2Yfkp7P9LvKZiAPrX4DrAqyeDB2p9r7789qk4ucf3Xm1MYC7ySJsH+nWZ42waaf+r/Al4+53mH0uxHvHCg/bU0nxLPBn6BZiXwfZr901Mf6zypWtCccPcizYrh2IHbumkv26TfF0PmdxvL9zyKvv8jv99O/2PgZJotzmeBq6a9bJOsBbCaZmjsfTQn651Ic3HSJ2kCc69JL88I6vH29vbXNFuN57a///w874le681pLewhwD+2f7CngH9m4MSR9o9cgD8YmP4ymjHi32kX9C7ghGn/ASddC5rRPWU3t9umvVyTfl8MmdeyDYq+taDZzXR+u4J9DngY2ATsM+3lmkIt1gH/AHyLJizvAz4CrJr2ci2yFtX/+XGtN70ooCSpaioXBZQkLR8GhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqvr/IXKPYvkvs7wAAAAASUVORK5CYII=\n", "text/plain": [ - "<Figure size 432x288 with 1 Axes>" + "<Figure size 432x288 with 2 Axes>" ] }, "metadata": { @@ -1598,7 +1629,7 @@ } ], "source": [ - "s.plot.hist(bins=10)" + "plt.subplots(nrows = 2)" ] }, { @@ -1609,7 +1640,9 @@ { "data": { "text/plain": [ - "<AxesSubplot:ylabel='Frequency'>" + "(<Figure size 432x288 with 4 Axes>,\n", + " array([[<AxesSubplot:>, <AxesSubplot:>],\n", + " [<AxesSubplot:>, <AxesSubplot:>]], dtype=object))" ] }, "execution_count": 43, @@ -1618,9 +1651,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEDCAYAAAArwUMAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAUmElEQVR4nO3db4xcdb3H8fcXWsEuogVNfCDQNpg2bQINFIPyx14kQaN3wYiaYAhBaUl5okF8xiXeWh+ZoImJxu41kIAJRCSyhAdyr0VCiGCKkT/LDX+0VWMwKbaXQrcWK9/74MzCuJ397Tl75k/bfb+SSXfPzG/mzG8/08+cmTNnIjORJGkuJ4x6BSRJRzeLQpJUZFFIkoosCklSkUUhSSqyKCRJRbWKIiI+FBHfj4hfR8R0RGRErKg59uSI+E5EvBIRBzvXcWmrtZb6xGxL86u7RXE28AVgH/BYw9v4MbAJuA34DPAK8IuIWN/weqRBMNvSPKLOB+4i4oTMfKvz8w3ABLAyM3fPM+5c4HfAlzPzjs6yJcAU8EJmjrdae6klsy3Nr9YWxcwDaQHGgX8A93Zd12HgHuCKiDhpgdcr9YXZluY36Dez1wG7MnN61vIp4F1Um/3Sschsa9FYMuDrP43qtd/Z9nadf4SI2AxsBhgbGzt/zZo1g1k7LXpPPfXUq5n5gQUMbZxtc61haZHrngZdFAH0ehMkSoMyczuwHWDDhg25c+fOAayaBBHxx4UOpWG2zbWGpUWuexr0S0976b3VsLzrfOlYZLa1aAy6KKaAlRGxbNbytcCbwMsDvn1pUMy2Fo1BF8UksBT4/MyCzi6EXwQezsxDA759aVDMthaN2u9RRMTVnR/P7/z7qYjYA+zJzEcj4izg98DWzNwKkJm/i4h7ge9FxFJgF7AFWAl8qV93QmrDbEtlTd7M/ums33/Q+fdRYCPVm3gncuRWyvXAt4FtwPuAp4FPZuZvG66rNChmWyqoXRSZOd+eSrvpscdHZh4Ebu6cpKOO2ZbKPHqsJKnIopAkFVkUkqQii0KSVGRRSJKKLApJUpFFIUkqsigkSUUWhSSpyKKQJBVZFJKkIotCklRkUUiSiiwKSVKRRSFJKrIoJElFFoUkqciikCQVWRSSpCKLQpJUZFFIkoosCklSkUUhSSqyKCRJRRaFJKnIopAkFVkUkqQii0KSVGRRSJKKLApJUpFFIUkqsigkSUUWhSSpyKKQJBVZFJKkIotCklRkUUiSimoVRUScERH3RcRrEbE/Iu6PiDNrjs05TutbrbnUH0vNtlS2ZL4LRMQyYAdwCLgOSGAb8EhEnJOZB2rczp3Aj2Yte7HZqkr9NT09DbAaOBGzLc1p3qIANgGrgNWZ+TJARDwDvATcCNxe4zr+kplPLHgtpQGYmJgAOAm4ymxLc6vz0tM48MTMAwkgM3cBjwNXDmrFpEGbnJwEOGC2pbI6RbEOeK7H8ilgbc3b2RIRhyJiOiJ2RMQltddQGpCpqSmAg73OwmxLb6tTFKcB+3os3wssrzH+buAm4HJgM3A6sCMiNs41ICI2R8TOiNi5Z8+eGjchNbd3716Aw73OYgDZNtc6VtV5jwKqN/lmi1oDM6/t+vWxiHiAagtlG3DxHGO2A9sBNmzY0Ou2pUEaSLbNtY5VdbYo9lFtVcy2nN5bGkWZ+TrwEHBB07FSPy1fvhx6P1ky21KXOkUxRfU+xWxrgecXeLtB760UaWjWrVsHcHKPs8y21KVOUUwCF0bEqpkFEbECuKhzXiMRcSrwaeDJpmOlfhofHwc4xWxLZXWKYgLYDTwQEVdGxDjwAPBnuj5oFBFnRcThiLita9ktETEREddExMaIuI5q18MPArf2845ITW3atAmqD5Kabalg3jezM/NARFwGfBe4i2rT+pfA1zLzja6LBtUnXLvL5wXgs53Te4H9VA+mr2Tmb/pyD6QFGhsbg+pT1C9htqU51drrKTP/BHxunsvsZtbeIpn5IPDgQldOGoI3M9NsSwUePVaSVGRRSJKKLApJUpFFIUkqsigkSUUWhSSpyKKQJBVZFJKkIotCklRkUUiSiiwKSVKRRSFJKrIoJElFFoUkqciikCQVWRSSpCKLQpJUZFFIkoosCklSkUUhSSqyKCRJRRaFJKnIopAkFVkUkqQii0KSVGRRSJKKLApJUpFFIUkqsigkSUUWhSSpyKKQJBVZFJKkIotCklRkUUiSiiwKSVKRRSFJKqpVFBFxRkTcFxGvRcT+iLg/Is6sOfbkiPhORLwSEQcj4tcRcWm71Zb6ZqnZlsrmLYqIWAbsANYA1wHXAh8GHomIsRq38WNgE3Ab8BngFeAXEbF+gess9cX09DTAasy2VLSkxmU2AauA1Zn5MkBEPAO8BNwI3D7XwIg4F7gG+HJm3tFZ9igwBWwFxlutvdTCxMQEwEnAVWZbmludl57GgSdmHkgAmbkLeBy4ssbYfwD3do09DNwDXBERJzVeY6lPJicnAQ6YbamsTlGsA57rsXwKWFtj7K7MnO4x9l3A2TVuXxqIqakpgIO9zsJsS2+r89LTacC+Hsv3AstbjJ05/wgRsRnY3Pn1UET0Kir19n7g1VGvxDHiPODUHssHkm1z3Yq5bmZ1P6+sTlEAZI9lUWNcLGRsZm4HtgNExM7M3FDjtoTz1UREvMk7/7H/y1l1htMw2+Z64ZyvZiJiZz+vr85LT/vo/cx/Ob2fUXXbWxg7c740Kvvo/WTJbEtd6hTFFNXrsbOtBZ6vMXZlZxfb2WPfBF4+cog0NFPAyT2Wm22pS52imAQujIhVMwsiYgVwUee8+cYuBT7fNXYJ8EXg4cw8VOP2t9e4jN7hfNU3CSwbUbb9OzXjfDXT1/mKzF4vs3ZdoPrg0dNUe4fcSvW67LeA9wDnZOYbncudBfwe2JqZW7vG3wNcAXwD2AVsofpw0scy87f9vDNSE2ZbqmfeLYrMPABcBrwI3AX8hOpBcdnMA6kjgBN7XOf1wB3ANuAh4Azgkz6QNGpmW6pn3i0KSdLiNpKjx3qQwWZazlfOcVo/4NUemYj4UER8v5ON6c79XVFzbKt8me1mzHZ9o8z10IvCgww204f5ArgT+Ois04t9X9mjx9nAF6h2cX2s4dgF58tsN2O2GxtJrgHIzKGegK8C/wTO7lq2EjgM3DzP2HOp3nC8vmvZEuAFYHLY9+Von6/OZRPYNur7MeQ5O6Hr5xs6c7CixrhW+TLbjf9OZrvZfI0k15k5kpeePMhgM23ma1HKzLcWOLRtvsx2M2a7gRHmeiRF4UEGm2kzXzO2RMShzuuaOyLikv6t3nGlbb7MdjNmezhaZ2sURTH0gwwe49rMF8DdwE3A5VQHpDsd2BERG/u0fseTtvky282Y7eFona26BwXst6EeZPA4sOD7nJnXdv36WEQ8QPUsbhtwcR/W7XjSj3yZ7WbM9uC1zlbd78zu225ZncW9Nis9EFtvbQ7KeITMfJ3qw2EXtFyv40J3toF/ozpczYpZF+uZL7PdmtkejtbZqvvSUz93y/o/4DM9dsvyQGy9tTko41zmeoaxGHVne1dn2ewDBc6VL7PdjtkejvbZGsFuWTd3lv1P17IVVO/Kf32e61vfGXvdrN28/hd4cNS7rw3iBHyNanfBVU3na47rOxX4E/DoqO/bkOavmNdZ2f7PzmW/3rWsZ77Mdl/+NmZ74XPX5P/h1tka9Ar+B1VjLetaNka1qfMW8DmqXbeeBv4AnNJ1ubM6Ibpt1nXeQ/Xs7wbgE8B9wN+B80b9xxtQIMaoGv9Zql0Ga88XcAswAVwDbKT6UNOznb/JJaO+bwOet6s7px928rql8/vHC/M1k+3X5suX2Tbbx0qu+5Gthaxok6K4B3ihx/Itnet4A3gd+Pns66N6ZpHAN2ctfzdwO/DXzh19Etg46j/ggMNxJvAzYH+T+QL+nWqf9FepnqX9jerw2B8Z9X0awpzlHKdfFeZrJtv/NV++zLbZHtF8Nc51P7LV+KCAEXEDVZOvzMzd81z2YeDUzLxw1vLLgf8GLs3MI97ziK7vFh4bGzt/zZo1jdZRquupp556NTM/AIPPtrnWsHTnuh8GvXts6+/M3rBhQ+7c2devf5XeFhF/XOhQWnxntrnWILXIdU+D/sDdYtzlT4uD2daiMeiiWIy7/GlxMNtaNAZdFP34zmzpaGS2tWjUfo8iIq7u/Hh+599PRcQeYE9mPho9vlc4M38XEfcC34uIpbzzvcIrgS/1605IbZhtqazJm9k/nfX7Dzr/Pkq1H3Ppe4W/TXX8lfdR7Sft9wrraGK2pYLaRZGZ8+2ptJsee3xk5kGqT6ze3HTlpGEw21LZSL4zW5J07LAoJElFFoUkqciikCQVWRSSpCKLQpJUZFFIkoosCklSkUUhSSqyKCRJRRaFJKnIopAkFVkUkqQii0KSVGRRSJKKLApJUpFFIUkqsigkSUUWhSSpyKKQJBVZFJKkIotCklRkUUiSiiwKSVKRRSFJKrIoJElFFoUkqciikCQVWRSSpCKLQpJUZFFIkoosCklSkUUhSSqyKCRJRRaFJKnIopAkFdUqiog4IyLui4jXImJ/RNwfEWfWHJtznNa3WnOpP5aabalsyXwXiIhlwA7gEHAdkMA24JGIOCczD9S4nTuBH81a9mKzVZX6a3p6GmA1cCJmW5rTvEUBbAJWAasz82WAiHgGeAm4Ebi9xnX8JTOfWPBaSgMwMTEBcBJwldmW5lbnpadx4ImZBxJAZu4CHgeuHNSKSYM2OTkJcMBsS2V1imId8FyP5VPA2pq3syUiDkXEdETsiIhLaq+hNCBTU1MAB3udhdmW3lanKE4D9vVYvhdYXmP83cBNwOXAZuB0YEdEbJxrQERsjoidEbFzz549NW5Cam7v3r0Ah3udxQCyba51rKrzHgVUb/LNFrUGZl7b9etjEfEA1RbKNuDiOcZsB7YDbNiwoddtS4M0kGybax2r6mxR7KPaqphtOb23NIoy83XgIeCCpmOlflq+fDn0frJktqUudYpiiup9itnWAs8v8HaD3lsp0tCsW7cO4OQeZ5ltqUudopgELoyIVTMLImIFcFHnvEYi4lTg08CTTcdK/TQ+Pg5witmWyuoUxQSwG3ggIq6MiHHgAeDPdH3QKCLOiojDEXFb17JbImIiIq6JiI0RcR3VrocfBG7t5x2Rmtq0aRNUHyQ121LBvG9mZ+aBiLgM+C5wF9Wm9S+Br2XmG10XDapPuHaXzwvAZzun9wL7qR5MX8nM3/TlHkgLNDY2BtWnqF/CbEtzqrXXU2b+CfjcPJfZzay9RTLzQeDBha6cNARvZqbZlgo8eqwkqciikCQVWRSSpCKLQpJUZFFIkoosCklSkUUhSSqyKCRJRRaFJKnIopAkFVkUkqQii0KSVGRRSJKKLApJUpFFIUkqsigkSUUWhSSpyKKQJBVZFJKkIotCklRkUUiSiiwKSVKRRSFJKrIoJElFFoUkqciikCQVWRSSpCKLQpJUZFFIkoosCklSkUUhSSqyKCRJRRaFJKnIopAkFVkUkqQii0KSVGRRSJKKahVFRJwREfdFxGsRsT8i7o+IM2uOPTkivhMRr0TEwYj4dURc2m61pb5ZaralsnmLIiKWATuANcB1wLXAh4FHImKsxm38GNgE3AZ8BngF+EVErF/gOkt9MT09DbAasy0VLalxmU3AKmB1Zr4MEBHPAC8BNwK3zzUwIs4FrgG+nJl3dJY9CkwBW4HxVmsvtTAxMQFwEnCV2ZbmVuelp3HgiZkHEkBm7gIeB66sMfYfwL1dYw8D9wBXRMRJjddY6pPJyUmAA2ZbKqtTFOuA53osnwLW1hi7KzOne4x9F3B2jduXBmJqagrgYK+zMNvS2+q89HQasK/H8r3A8hZjZ84/QkRsBjZ3fj0UEb2KSr29H3h11CtxjDgPOLXH8oFk21y3Yq6bWd3PK6tTFADZY1nUGBcLGZuZ24HtABGxMzM31Lgt4Xw1ERFv8s5/7P9yVp3hNMy2uV4456uZiNjZz+ur89LTPno/819O72dU3fYWxs6cL43KPno/WTLbUpc6RTFF9XrsbGuB52uMXdnZxXb22DeBl48cIg3NFHByj+VmW+pSpygmgQsjYtXMgohYAVzUOW++sUuBz3eNXQJ8EXg4Mw/VuP3tNS6jdzhf9U0Cy0aUbf9OzThfzfR1viKz18usXReoPnj0NNXeIbdSvS77LeA9wDmZ+UbncmcBvwe2ZubWrvH3AFcA3wB2AVuoPpz0scz8bT/vjNSE2ZbqmXeLIjMPAJcBLwJ3AT+helBcNvNA6gjgxB7XeT1wB7ANeAg4A/ikDySNmtmW6pl3i0KStLiN5OixHmSwmZbzlXOc1g94tUcmIj4UEd/vZGO6c39X1BzbKl9muxmzXd8ocz30ovAgg830Yb4A7gQ+Ouv0Yt9X9uhxNvAFql1cH2s4dsH5MtvNmO3GRpJrADJzqCfgq8A/gbO7lq0EDgM3zzP2XKo3HK/vWrYEeAGYHPZ9Odrnq3PZBLaN+n4Mec5O6Pr5hs4crKgxrlW+zHbjv5PZbjZfI8l1Zo7kpScPMthMm/lalDLzrQUObZsvs92M2W5ghLkeSVF4kMFm2szXjC0RcajzuuaOiLikf6t3XGmbL7PdjNkejtbZGkVRDP0gg8e4NvMFcDdwE3A51QHpTgd2RMTGPq3f8aRtvsx2M2Z7OFpnq+5BAfttqAcZPA4s+D5n5rVdvz4WEQ9QPYvbBlzch3U7nvQjX2a7GbM9eK2zNYotCg8y2Eyb+TpCZr5O9eGwC1qu1/Gobb7MdjNmezhaZ2sUReFBBptpM19zmesZxmLXNl9muxmzPRytszWKohj1QQaPNW3m6wgRcSrwaeDJfq3gcaRtvsx2M2Z7ONpnawT7Ao9RNdizVLvAjVMdmO0PwCldlzuLan/q22aNv4dqs/QG4BPAfcDfgfNGvZ/z0TZfwC3ABHANsJHqQ03PUj2LuGTU923A83Z15/RDqmeYWzq/f3xQ+TLbZnsIczb0XGfm8Iuis9JnAj8D9gOvAz9n1gdHgBWdifjmrOXvBm4H/tq5o08CG0f9Bzwa5wv4d6p90l+l2o/6b1TPLj4y6vs0hDnLOU6/GmS+zLbZHvB8jSTXHhRQklQ0koMCSpKOHRaFJKnIopAkFVkUkqQii0KSVGRRSJKKLApJUpFFIUkq+n8If5dmmAGggAAAAABJRU5ErkJggg==\n", "text/plain": [ - "<Figure size 432x288 with 1 Axes>" + "<Figure size 432x288 with 4 Axes>" ] }, "metadata": { @@ -1630,7 +1663,7 @@ } ], "source": [ - "s.plot.hist(bins=[0,1,2,3,4,5,6,7,8,9,10])" + "plt.subplots(ncols = 2, nrows = 2)" ] }, { @@ -1641,7 +1674,7 @@ { "data": { "text/plain": [ - "<AxesSubplot:ylabel='Frequency'>" + "<AxesSubplot:>" ] }, "execution_count": 44, @@ -1650,9 +1683,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "<Figure size 432x288 with 1 Axes>" + "<Figure size 432x288 with 2 Axes>" ] }, "metadata": { @@ -1662,7 +1695,12 @@ } ], "source": [ - "s.plot.hist(bins=range(11)) # same as above" + "#Bad example!\n", + "fig, axes = plt.subplots(ncols = 2)\n", + "# axes[0] # the area on the left\n", + "# axes[1] # the area on the right\n", + "Series([1, 2, 3, 3, 4]).plot.line(ax = axes[0])\n", + "Series([5, 7, 7, 8]).plot.line(ax = axes[1])" ] }, { @@ -1673,7 +1711,7 @@ { "data": { "text/plain": [ - "<AxesSubplot:ylabel='Frequency'>" + "<AxesSubplot:>" ] }, "execution_count": 45, @@ -1682,9 +1720,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "<Figure size 432x288 with 1 Axes>" + "<Figure size 432x288 with 2 Axes>" ] }, "metadata": { @@ -1694,41 +1732,19 @@ } ], "source": [ - "s = Series(normal(size=10000))\n", - "\n", - "s.plot.hist()" + "fig, axes = plt.subplots(ncols = 2, sharey = True)\n", + "# axes[0] # the area on the left\n", + "# axes[1] # the area on the right\n", + "Series([1, 2, 3, 3, 4]).plot.line(ax = axes[0])\n", + "Series([5, 7, 7, 8]).plot.line(ax = axes[1])" ] }, { - "cell_type": "code", - "execution_count": 46, + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "<AxesSubplot:ylabel='Frequency'>" - ] - }, - "execution_count": 46, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], "source": [ - "s.plot.hist(bins=100)" + "### That's all folks ...\n", + "### (for plotting topic)" ] }, { @@ -1759,5 +1775,5 @@ } }, "nbformat": 4, - "nbformat_minor": 4 + "nbformat_minor": 2 } diff --git a/f22/meena_lec_notes/lec-40/.ipynb_checkpoints/demo_lec_40_template-checkpoint.ipynb b/f22/meena_lec_notes/lec-41/.ipynb_checkpoints/demo_lec_40_template-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-40/.ipynb_checkpoints/demo_lec_40_template-checkpoint.ipynb rename to f22/meena_lec_notes/lec-41/.ipynb_checkpoints/demo_lec_40_template-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-40/examples/.ipynb_checkpoints/plotting4-checkpoint.ipynb b/f22/meena_lec_notes/lec-41/examples/.ipynb_checkpoints/plotting4-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-40/examples/.ipynb_checkpoints/plotting4-checkpoint.ipynb rename to f22/meena_lec_notes/lec-41/examples/.ipynb_checkpoints/plotting4-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-39/examples/Fire_Hydrants.csv b/f22/meena_lec_notes/lec-41/examples/Fire_Hydrants.csv similarity index 100% rename from f22/meena_lec_notes/lec-39/examples/Fire_Hydrants.csv rename to f22/meena_lec_notes/lec-41/examples/Fire_Hydrants.csv diff --git a/f22/meena_lec_notes/lec-40/examples/plotting4.ipynb b/f22/meena_lec_notes/lec-41/examples/plotting4.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-40/examples/plotting4.ipynb rename to f22/meena_lec_notes/lec-41/examples/plotting4.ipynb diff --git a/f22/meena_lec_notes/lec-40/examples/plotting4_template.ipynb b/f22/meena_lec_notes/lec-41/examples/plotting4_template.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-40/examples/plotting4_template.ipynb rename to f22/meena_lec_notes/lec-41/examples/plotting4_template.ipynb diff --git a/f22/meena_lec_notes/lec-42/.ipynb_checkpoints/demo_lec_40-checkpoint.ipynb b/f22/meena_lec_notes/lec-42/.ipynb_checkpoints/demo_lec_40-checkpoint.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..c7b889765030c6ef1aa505eaa243e3462bc2b319 --- /dev/null +++ b/f22/meena_lec_notes/lec-42/.ipynb_checkpoints/demo_lec_40-checkpoint.ipynb @@ -0,0 +1,1763 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "from numpy.random import choice, normal\n", + "from pandas import Series, DataFrame\n", + "import time\n", + "import matplotlib " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "matplotlib.rcParams[\"font.size\"] = 16" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<style>em { color: red; }</style> <style>.container {width:100% !important; }</style>" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# ignore this cell - it makes the emphasized text red and uses the full width of the screen\n", + "from IPython.core.display import HTML\n", + "HTML('<style>em { color: red; }</style> <style>.container {width:100% !important; }</style>')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<img src=\"coins.png\">\n", + "\n", + "## Which sequence of coins was generated *randomly*? Which was *handpicked* with the goal of tricking you?" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Write your guess in this cell\n", + "2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Random selection from a list" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'rock'" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#choice([<option1>, <option2> <...>])\n", + "choice([\"rock\", \"paper\", \"scissors\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Make lots of choices " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['paper', 'scissors', 'paper', 'scissors', 'rock'], dtype='<U8')" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "choice([\"rock\", \"paper\", \"scissors\"], size=5)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "numpy.ndarray" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(choice([\"rock\", \"paper\", \"scissors\"], size=5))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['scissors' 'paper' 'paper' 'paper' 'rock']\n" + ] + } + ], + "source": [ + "a = choice([\"rock\", \"paper\", \"scissors\"], size=5)\n", + "print(a)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'paper'" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a[2]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Random series" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 rock\n", + "1 scissors\n", + "2 scissors\n", + "3 paper\n", + "4 rock\n", + "dtype: object" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Series(choice([\"rock\", \"paper\", \"scissors\"], size=5))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Multidimensional random Series" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([['scissors', 'paper'],\n", + " ['rock', 'rock'],\n", + " ['scissors', 'paper'],\n", + " ['scissors', 'rock'],\n", + " ['rock', 'rock']], dtype='<U8')" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#choice([\"rock\", \"paper\", \"scissors\"], size=(ROWS, COLUMNS))\n", + "#size=(ROWS, COLUMNS))\n", + "# V , -->\n", + "a = choice([\"rock\", \"paper\", \"scissors\"], size=(5, 2))\n", + "a" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'paper'" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a[2][1]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>0</th>\n", + " <th>1</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>rock</td>\n", + " <td>scissors</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>paper</td>\n", + " <td>rock</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>rock</td>\n", + " <td>scissors</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>rock</td>\n", + " <td>paper</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>paper</td>\n", + " <td>scissors</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " 0 1\n", + "0 rock scissors\n", + "1 paper rock\n", + "2 rock scissors\n", + "3 rock paper\n", + "4 paper scissors" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#DataFrame(LIST of LISTS)\n", + "DataFrame(choice([\"rock\", \"paper\", \"scissors\"], size=(5, 2)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Exploring Bias - is this fair?" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "rock 7\n", + "paper 6\n", + "scissors 2\n", + "dtype: int64\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYEAAAEtCAYAAADuh9yxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAVo0lEQVR4nO3deZScVZnH8e+DYROiAgkuaGgRZQaN24mIiqgERQFF5uAcEBdAB2QclxEXRGRTBxRk03HBUZRFHBcUcEUEwQUcg4MIKgqYjKhIwhoQgYRn/rhvoGl6q+6u9+3O/X7OqdOp91ZXPedUun713vveeyMzkSTVaY2uC5AkdccQkKSKGQKSVDFDQJIqZghIUsUMAUmq2KyuC+jFnDlzcmBgoOsyJGlGufTSS5dl5tzh2mZUCAwMDLBo0aKuy5CkGSUilozUZneQJFXMEJCkihkCklQxQ0CSKmYISFLFDAFJqpghIEkVMwQkqWIzarJY2wYO/FbXJfTV4qN26roESR3zTECSKmYISFLFDAFJqpghIEkVMwQkqWKGgCRVzBCQpIoZApJUMUNAkipmCEhSxQwBSaqYISBJFTMEJKlihoAkVcwQkKSKGQKSVDFDQJIqZghIUsUMAUmqmCEgSRUzBCSpYoaAJFXMEJCkinUSAhGxY0RcFBG3R8RtEbEoIrbrohZJqlnrIRAR+wFnAZcCuwKvAr4CPLTtWiSpdrPafLGIGACOB96VmccPavpem3VIkoq2zwT2Ae4FPtXy60qShtF2CGwD/BbYPSKuiYgVEXF1RLy55TokSbTcHQQ8prkdDRwEXEMZE/h4RMzKzBNarkeSqtZ2CKwBzAb2yswzm2PnN2MF742IEzMzB/9CROwL7Aswb968NmvVDDdw4Le6LqGvFh+1U9claDXQdnfQjc3P7w85fi7wSODRQ38hM0/KzAWZuWDu3Ln9rk+SqtJ2CFw5wvFoft7bViGSpPZD4OvNzx2GHN8BuC4zr2+5HkmqWttjAt8GLgA+HRFzgGuB3YCXAHu3XIskVa/VEMjMjIhXAkcChwMbUC4Z3TMzv9hmLZKk9s8EyMzbgDc3N0lSh1xFVJIqZghIUsUMAUmqmCEgSRUzBCSpYoaAJFXMEJCkihkCklQxQ0CSKmYISFLFDAFJqpghIEkVMwQkqWKGgCRVzBCQpIoZApJUMUNAkipmCEhSxQwBSaqYISBJFTMEJKlihoAkVcwQkKSKGQKSVDFDQJIqZghIUsUMAUmqmCEgSRUzBCSpYoaAJFXMEJCkihkCklQxQ0CSKmYISFLFDAFJqpghIEkVMwQkqWKGgCRVzBCQpIoZApJUsXGHQERsGxHrj9C2fkRsO3VlSZLa0MuZwAXAliO0bdG0S5JmkF5CIEZpWxtYOclaJEktmzVaY0QMAJsNOrRgmC6hdYF9gP+b2tIkSf02aggArwcOBbK5fYwHnhFkc38F8OZ+FChJ6p+xQuDzwA8pH/TnUz7ofz3kMXcBv8vMm6a6OElSf40aApm5BFgCEBEvAn6RmcunsoCI+C6wA/ChzDx4Kp9bkjS6sc4E7pOZF071i0fEHsDTpvp5JUnj08s8gbUi4tCI+G1E/C0iVg65rejlhSPiEcBxwDt6rFmSNEXGfSYAHE0ZE/gOcCZlLGAyPgJcmZlnRMQXJ/lckqQJ6CUEdgMOzcwPTfZFI2Ib4HXYFSRJneplstj6wMWTfcGIWBP4NHBMZl412eeTJE1cLyFwDjAV6wO9hzLBbFxnFBGxb0QsiohFS5cunYKXlySt0kt30MeAUyLiXuDbwIPmBWTmtaM9QUTMA94HvBFYOyLWHtS8djNYvDwz71uCIjNPAk4CWLBgQfZQryRpDL2EwKquoMMos4iH85AxnmMzYB3gtGHa3tncngFc1kNdkqQJ6iUE9qEsEzEZlwEvGub4BZRg+Cxw9SRfQ5I0Tr1MFvv8ZF8sM2+hLEPxABEBsCQzH9QmSeofdxaTpIqN+0wgIj43xkMyM98wkSIyc7S9CiRJfdLLmMB2PHhMYENgNnBLc5MkzSC9jAkMDHe82Vv4U8CeU1STJKklkx4TyMyLKAvBfWzy5UiS2jRVA8PXUq7vlyTNIJMOgYiYBewFXDfpaiRJrerl6qDzhzm8FvAkYCPgTVNVlCSpHb1cHbQGD746aDllb4EvOdFLkmaeXq4OemEf65AkdcAZw5JUsZ5CICLmR8RXI2JpRKyIiBsi4ssRMb9fBUqS+qeXgeFnARcCdwJnA9cDjwJeDuwUEdtm5qV9qVKS1Be9DAwfCVwBLMzM5asORsRs4Lym/SVTW54kqZ966Q7aGjhycAAANPc/DDxnKguTJPVfLyEw1oYybv0oSTNMLyHwM+CgpvvnPhGxHmXz+EumsjBJUv/1MiZwEGVXsCUR8U3gL5SB4Z2AhwIvmPLqJEl91ctksf+JiK2BQ4AdKHsJ3AScD3wgM3/VnxIlSf0yaghExBqUb/p/yMwrMvNyYLchj5kPDACGgCTNMGONCbwGOAO4Y5THLAfOiIg9pqwqSVIrxhMCJ2fmH0Z6QGYuBj4LvH4K65IktWCsEHgmcO44nuc8YMHky5EktWmsEJgN3DyO57m5eawkaQYZKwSWAZuO43nmNY+VJM0gY4XAjxlfX/9ezWMlSTPIWCFwPLAwIo6LiLWGNkbEmhFxArAdcFwf6pMk9dGo8wQy8+KIOAD4KLBnRJwLLGmaNwVeTNlf+IDMdNkISZphxpwxnJnHR8QvgAOBXYF1m6Y7KctIHJWZP+pbhZKkvhnXshGZeRFwUTODeE5z+MbMXNm3yiRJfdfLAnJk5r3ADX2qRZLUMjeal6SKGQKSVDFDQJIqZghIUsUMAUmqmCEgSRUzBCSpYoaAJFXMEJCkihkCklQxQ0CSKmYISFLFDAFJqpghIEkVMwQkqWKGgCRVzBCQpIq1GgIRsVtEfC0ilkTEnRFxVUQcGRGz26xDklS0fSbwTmAlcBDwUuCTwP7A95v9iyVJLeppj+Ep8PLMXDro/oURcRPwBeCFwPkt1yNJVWv12/eQAFjl583PTdqsRZI0PQaGX9D8/E2nVUhShToNgYjYBDgCOC8zF3VZiyTVqO0xgftExPrAWcAKYO9RHrcvsC/AvHnz2ilOUqcGDvxW1yX01eKjduq6hPt0ciYQEesAZwObATtk5nUjPTYzT8rMBZm5YO7cua3VKEk1aP1MICLWBL4GbAVsn5m/arsGSVLRagg0cwFOBxYCO2XmJW2+viTpgdo+E/hP4FXAh4A7ImLrQW3XjdYtJEmaem2PCbys+fk+4OIhtze2XIskVa/VM4HMHGjz9SRJo5sOk8UkSR0xBCSpYoaAJFXMEJCkihkCklQxQ0CSKmYISFLFDAFJqpghIEkVMwQkqWKGgCRVzBCQpIoZApJUMUNAkipmCEhSxQwBSaqYISBJFTMEJKlihoAkVcwQkKSKGQKSVDFDQJIqZghIUsUMAUmqmCEgSRUzBCSpYoaAJFXMEJCkihkCklQxQ0CSKmYISFLFDAFJqpghIEkVMwQkqWKGgCRVzBCQpIoZApJUMUNAkipmCEhSxQwBSaqYISBJFTMEJKlihoAkVcwQkKSKGQKSVDFDQJIqZghIUsVaD4GIeFxEfDUibo2I2yLizIiY13YdkqSWQyAiHgqcD/wD8HrgtcATgQsiYr02a5EkwayWX+9fgM2ALTLzaoCIuBz4PbAfcGzL9UhS1druDnoFcMmqAADIzD8APwF2abkWSape2yHwZOCKYY5fCWzZci2SVL22u4M2BG4e5vhNwAbD/UJE7Avs29y9PSKu6lNt08EcYFlbLxYfbuuVquH7N3Ot7u/dpiM1tB0CADnMsRjxwZknASf1r5zpIyIWZeaCruvQxPj+zVw1v3dtdwfdTDkbGGoDhj9DkCT1UdshcCVlXGCoLYFft1yLJFWv7RA4G9g6IjZbdSAiBoDnNW21q6LbazXm+zdzVfveReZwXfR9erEyIeyXwJ3AwZTxgQ8As4GnZubtrRUjSWr3TCAz7wC2A34HnAqcDvwB2M4AkKT2tXomIEmaXlxFVJIqZghIUsUMgWksIrqYzCet9iJil4jYe9D9TSPi4ohY3ix1v36X9bXJEOhQRLx7lLZZwJdbLEc9iIi1IuKmiHhF17VoQg4G5g66fyzwWMqlotsCh3VQUycMgW59MCJeO/RgRKwBfAl4UfslaTwy825gBfD3rmvRhDwBuBwgItYFdgTekZkHAAcBu3ZYW6sMgW7tB3wmIl666kATAP8NvBh4WVeFaVy+AezWdRGakHUo85UAnktZR+3c5v5VwGO6KKoL9jl3KDNPjohHAV+JiIXAz4EzgB2Al2bmJZ0WqLF8BzgxIr5KCYS/MGSBxMw8v4O6NLbFwDbAhZS9TC7NzFubto2BW0f4vdWO8wSmgYj4GLA78FPKZLqXZeaPu61KY4mIe0doSsrKuJmZD2mxJI1TRLwNOIaygsHTgf0z8zNN2zHAMzNzu+4qbI9nAtPDWynfPnYEdjIAZgzHbGaozDwhIpYCzwFOzMxTBjXPBk7uprL2eSbQsoj4I8PvqTALeDhw46BjmZkjbgYhqXcRsRawP/CDzBxup8OqeCbQvh8wfAhohoqIOcDWwEbAOZl5U0SsA9ydmSN1GakjmXl3RBxFGXurniHQsszcq+saNDUiIoCPAG8B1qKE+7Mo26WeBfyYskqupp/fAJsBF3VdSNe8RFSauPcC/wYcATybB26Teg6wcxdFaVwOAd4fEfO7LqRrngl0KCKOA+Zk5nATxk4F/pqZ72y/Mo3TG4EjMvPIiBh6FdDVlAlJmp7eA6wP/G9ELObBl/dmZr6gi8La5plAt17B/RNUhvoe8Mr2StEEbAKMNJfjbmC9FmtRb1ZStrT9EfBHyuzvlYNu1YzleCbQrU0o/wGHc13TrunrT8BTgAuGaXsaZcMkTUOZ+cKua5guPBPo1s3A5iO0bQ4sb7EW9e4rwCER8bxBxzIingQcQFn/SZrWnCfQoabffxtg68z866DjjwQuBi7OzD27qk+jaxYeO5ey9swSYAC4FngcZfb3Ds1Cc5qGIuLRlLB+AbAhZY7OD4FjM/P6DktrlSHQoYgYoKwXtDbwTe7vAtoZuAt4dmbapTCNNQPCr6Zcc74x5YPku8Dpmbmiy9o0suZs7UfABsBPgOuBR1EC/Wbg+Zn5++4qbI8h0LEmCI6grBq6EbCM8u3y0Mxc0mFp0morIr5OGc95cWYuHnR8U8rf35WZ+U8dldcqQ0CapIjYHNiKchZ3HfDzzLy626o0moi4BXhTZj5o3CYi9gA+kZkbtF5YB7w6aBpoZp5uSemXXAb8Nk3naa9ZGuITwGuBwfMEVkbEF4A3Z+ZdnRSnsazFyBdeLG/aq+DVQR2LiDdSJqpcThmUugL4c0S8ocu6NC7HAHsCh1Ku5prd/DyMEgxHd1aZxnIZ8JZmE6f7NF/I/rVpr4LdQR2KiD2BUymLyp3G/YNTewILgddk5hndVajRRMQyypUk/zFM2/uAf8/MOe1XprE0u/l9E7iGspPfXyh/e68CnkhZ0n2kiZyrFUOgQxHxS+DyUZaNmJ+ZT2+9MI1LRCwHds3M84Zp2x44MzMf1n5lGo8mCD4IPINmEyDgUuD9mfm9Lmtrk91B3dqCcgYwnNOadk1f5wEvGaHtJYBbS05jmfndzFxA6cZ7HDA7M7eqKQDAgeGuLQceO0LbY3HG8HR3LHBqRKxHmT38V+CRwD9Tdol7TURsturBmXltJ1VqVJn5N+BvEbFhRPwjcEVNA/p2B3UoIk6hTDLaLTN/NOj4c4AzgXMz8/Vd1afRDdljePAfUgxzDPcbnj4i4mBgvcx8b3N/W8oYwXqUNaEWOllMfRcRj6JsavEEyn+8VYNTj6UsRbzt4OUkNL1ERE8BnZlf6Fct6k1E/Bb46KDN5S8B7qFsEnQIcE1m7t5hia2xO6gjzT6nnwTeTtnh6PmUeQKLgQuBzzenqZqm/FCf0TYBfg8QEXMpO8ItzMwfNn+bJ3ZZXJsMgY40+5xuD5yQmR8HPt51TVJFVnL/hLBtgb9T1hACWEr5QlYFQ6BbP6FsUP7DjuvQBEXExsAelCu51hnSnJnppL/p6UrKwP1PgX2ACzPznqbtccANnVXWMkOgWwcA34iI24Fv8OAt7sjManY4mmkiYgvKzmIPoQwoLqN8g3wIZSXKW7urTmM4AjiLMjHzHsoFGqvsCPyii6K64MBwhwZdXTLSm5CZaVBPUxFxNmUZ8FcCdwALKMt/vA44HNg5M3/ZWYEaVUQ8HngmcFlmXjPo+H7ALzNzpK1DVyt+wHTrCEYOAE1/zwLeRNn7AWCNZg+Bz0XEHOB44EUd1aYxNHt1PGi/jsz8dAfldMYQ6FBmHtZ1DZqU9YGbMvPeiLgVGLxO0CLKpYaahiJiF2DDzDy5ub8pZTvQpwDfA/bKzNs7LLE1LhshTdxiyrwOgKsoi4+tsjNwS8v1aPwOBuYOun8sZX7OSZSrhQ7roKZOGALSxH2fsiMclA+RvSPiqoi4Engb8LnOKtNYnkAZv1m1V/SOwDsy8wDgIGDXDmtrld1B0sS9lzIwTGZ+OSL+BuwOPBQ4AfhMh7VpdOsAdzb/fi7ls3DV0tFXAY/poqguGALSBDWLjN0VEQ+j9CWvS9lp7IrMvK3T4jSWxcA2lNn5uwCXZuaqS3o3pqLLew0BaRIi4hDKfI/1uX9N+tsj4ujM/GCnxWk0nwaOiYhdgacD+w9qew7w6y6K6oIhIE1QRBwOvB/4L8qVJauWkt4DODwiZnkF2PSUmSc0O8NtDZyYmacMap4NnNxNZe1zspg0QRHxZ+D0zHzXMG3HAK/OzGr6ljUzeXWQNHEPp1xTPpzvNu3StGYISBP3M8qs4eE8q2nXNBERKyNiq+bf9zb3R7qt6LretjgmIE3cW4GvNx8YQ7eX3AfYJSLu+6LlYoCdOwK4btC/7QvHMQFpwsZYADCGHHcxQE1L/qeUJs5vkzNURKwJrJWZdwzTth5w96D9BVZrnglIqk5EnALMysxXD9N2GiUE9mm/svY5MCypRi+kbCoznLOBhe2V0i1DQFKNNmbkLSSXUgb4q2AISKrRDcD8EdrmAze2WEunDAFJNfom8P6IeOrggxExH3gfcE4nVXXAgWFJ1Wm2/7wYGAB+Tpk/sAmwFWXLyedm5rLOCmyRISCpShHxCOAdlI2BNgKWUfYUOG7QstKrPUNAUnWamdxrZOaKQcdeCjwZ+EFmXtZVbW1zspikGp0B3AW8DiAi9qNsCBTAPRGxU2ae12F9rXFgWFKNtga+Pej+u4HPUlZ+PZMyOFwFQ0BSjTYG/gQQEZsDjwc+npnLKRvKjHT56GrHEJBUo9sog8FQZg8vy8zLm/srKRvRV8ExAUk1+ilwYLMM+Nt5YNfQ5ty/5PRqz6uDJFUnIp4IfIvygX8tsH1mLm7azgeWZObe3VXYHkNAUrUiYqPMvHHIsfnA9Zm5tKOyWmUISFLFHBiWpIoZApJUMUNAkipmCEhSxQwBSarY/wMnW0uwfnYMIgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s = Series(choice([\"rock\", \"paper\", \"scissors\"], size=15))\n", + "vc = s.value_counts()\n", + "print(vc)\n", + "\n", + "ax = vc.plot.bar()\n", + "ax.set_ylabel(\"Count\")\n", + "None" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Sort by item" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "paper 7\n", + "rock 1\n", + "scissors 7\n", + "dtype: int64\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s = Series(choice([\"rock\", \"paper\", \"scissors\"], size=15))\n", + "vc = s.value_counts()\n", + "vc = vc.sort_index()\n", + "print(vc)\n", + "\n", + "ax = vc.plot.bar()\n", + "ax.set_ylabel(\"Count\")\n", + "None" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Sorted as \"rock\", \"paper\", \"scissors\"" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "rock 6\n", + "paper 3\n", + "scissors 6\n", + "dtype: int64\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s = Series(choice([\"rock\", \"paper\", \"scissors\"], size=15))\n", + "vc = s.value_counts()\n", + "vc = vc[ [\"rock\", \"paper\", \"scissors\"] ]\n", + "print(vc)\n", + "\n", + "ax = vc.plot.bar()\n", + "ax.set_ylabel(\"Count\")\n", + "None" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Is this really fair? " + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "rock 1000091\n", + "paper 998937\n", + "scissors 1000972\n", + "dtype: int64\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s = Series(choice([\"rock\", \"paper\", \"scissors\"], size=3000000))\n", + "vc = s.value_counts()\n", + "vc = vc[ [\"rock\", \"paper\", \"scissors\"] ]\n", + "print(vc)\n", + "\n", + "ax = vc.plot.bar()\n", + "ax.set_ylabel(\"Count\")\n", + "None" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Control the probability of selection" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "rock 30013\n", + "paper 60147\n", + "scissors 209840\n", + "dtype: int64\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s = Series(choice([\"rock\", \"paper\", \"scissors\"], size=300000, p=[0.10, 0.20, 0.70]))\n", + "vc = s.value_counts()\n", + "vc = vc[ [\"rock\", \"paper\", \"scissors\"] ]\n", + "print(vc)\n", + "\n", + "ax = vc.plot.bar()\n", + "ax.set_ylabel(\"Count\")\n", + "None" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Random integer shortcut" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0\n", + "1 5\n", + "2 5\n", + "3 3\n", + "4 0\n", + "dtype: int64" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Series(choice(6, size=5,))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Back to PowerPoint to talk about Bugs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Change over time" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 2\n", + "1 5\n", + "2 1\n", + "3 7\n", + "4 5\n", + "dtype: int64\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Change over time\n", + "s = Series(choice(10,size=5))\n", + "percents = []\n", + "for i in range(1, len(s)):\n", + " diff = 100 * (s[i] / s[i-1] -1)\n", + " percents.append(diff)\n", + "print(s)\n", + "Series(percents).plot.line()\n", + "None" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Back to PowerPoint again - more about Bugs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Seeding" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([883, 732, 15])" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.random.seed(220)\n", + "choice(1000, size=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([180, 120, 514])" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "choice(1000, size=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([883, 732, 15, 180, 120, 514])" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.random.seed(220)\n", + "choice(1000, size=6)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([112, 626, 27])" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "choice(1000, size=3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Seeding with time" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1639371636\n", + "Seeding with: 1639371636\n" + ] + } + ], + "source": [ + "# requires import of time module\n", + "time.time()\n", + "now = int(time.time())\n", + "print(now)\n", + "\n", + "np.random.seed(now)\n", + "choice(1000, size=3)\n", + "print(\"Seeding with:\", now)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Significance - Does the data support drawing that conclusion?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Is it weird that we have 60 heads, 40 tails? How often are we +- 10 of the expected" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>0</th>\n", + " <th>1</th>\n", + " <th>2</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>T</td>\n", + " <td>T</td>\n", + " <td>H</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>T</td>\n", + " <td>H</td>\n", + " <td>H</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>T</td>\n", + " <td>T</td>\n", + " <td>H</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>T</td>\n", + " <td>H</td>\n", + " <td>T</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>H</td>\n", + " <td>T</td>\n", + " <td>H</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>H</td>\n", + " <td>H</td>\n", + " <td>T</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>T</td>\n", + " <td>T</td>\n", + " <td>T</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>H</td>\n", + " <td>H</td>\n", + " <td>T</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>H</td>\n", + " <td>H</td>\n", + " <td>H</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>H</td>\n", + " <td>H</td>\n", + " <td>T</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " 0 1 2\n", + "0 T T H\n", + "1 T H H\n", + "2 T T H\n", + "3 T H T\n", + "4 H T H\n", + "5 H H T\n", + "6 T T T\n", + "7 H H T\n", + "8 H H H\n", + "9 H H T" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "trials = 10\n", + "flips = 3\n", + "df = DataFrame(choice([\"H\",\"T\"], size = (trials, flips)))\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>0</th>\n", + " <th>1</th>\n", + " <th>2</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " 0 1 2\n", + "0 0 0 0\n", + "1 1 0 1\n", + "2 0 1 1\n", + "3 1 1 0\n", + "4 0 0 0\n", + "5 0 0 1\n", + "6 1 0 1\n", + "7 1 1 1\n", + "8 0 1 1\n", + "9 1 0 1" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "trials = 10\n", + "flips = 3\n", + "df = DataFrame(choice([1,0], size = (trials, flips)))\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0 1 2\n", + "0 1 0 0\n", + "1 0 0 0\n", + "2 0 0 0\n", + "3 0 1 1\n", + "4 1 0 1\n", + "5 1 0 0\n", + "6 0 1 0\n", + "7 0 1 0\n", + "8 0 1 0\n", + "9 0 1 0\n" + ] + }, + { + "data": { + "text/plain": [ + "0 1\n", + "1 0\n", + "2 0\n", + "3 2\n", + "4 2\n", + "5 1\n", + "6 1\n", + "7 1\n", + "8 1\n", + "9 1\n", + "dtype: int64" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "trials = 10\n", + "flips = 3\n", + "df = DataFrame(choice([1,0], size = (trials, flips)))\n", + "print(df)\n", + "df.sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0 1 2 3 4 5 6 7 8 9 ... 90 91 92 93 94 95 96 \\\n", + "0 0 0 1 0 0 0 0 1 0 1 ... 1 1 1 1 0 0 1 \n", + "1 0 1 1 0 1 0 0 1 0 1 ... 1 1 1 0 0 0 1 \n", + "2 1 0 1 0 1 1 0 1 0 1 ... 0 1 0 0 1 0 1 \n", + "3 1 0 0 1 1 0 0 1 0 0 ... 1 1 1 0 0 1 0 \n", + "4 0 0 0 1 1 0 1 0 0 1 ... 0 1 1 0 0 1 0 \n", + "... .. .. .. .. .. .. .. .. .. .. ... .. .. .. .. .. .. .. \n", + "9995 1 0 0 0 0 1 0 1 1 1 ... 0 1 0 1 0 0 0 \n", + "9996 1 0 0 0 0 0 1 0 0 0 ... 0 0 1 0 0 1 0 \n", + "9997 0 0 0 1 0 0 1 1 0 1 ... 1 0 0 1 0 1 0 \n", + "9998 0 1 1 1 0 1 0 0 0 1 ... 1 1 0 1 0 0 0 \n", + "9999 0 0 0 0 0 0 0 1 0 1 ... 0 0 0 0 0 0 1 \n", + "\n", + " 97 98 99 \n", + "0 0 0 0 \n", + "1 0 1 1 \n", + "2 1 1 1 \n", + "3 0 1 0 \n", + "4 0 1 1 \n", + "... .. .. .. \n", + "9995 1 0 0 \n", + "9996 1 0 0 \n", + "9997 0 0 1 \n", + "9998 1 0 1 \n", + "9999 1 0 0 \n", + "\n", + "[10000 rows x 100 columns]\n" + ] + }, + { + "data": { + "text/plain": [ + "0 44\n", + "1 48\n", + "2 52\n", + "3 48\n", + "4 47\n", + " ..\n", + "9995 51\n", + "9996 47\n", + "9997 41\n", + "9998 48\n", + "9999 41\n", + "Length: 10000, dtype: int64" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "trials = 10000\n", + "flips = 100\n", + "df = DataFrame(choice([1,0], size = (trials, flips)))\n", + "print(df)\n", + "counts = df.sum(axis=1)\n", + "counts" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5.8500000000000005" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "extremes = counts[(counts <= 40) | (counts >= 60)]\n", + "len(extremes) / trials * 100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### Opening example with the 16 coins - How often do we get 11 or more heads?" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10.870000000000001" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "flips = 16\n", + "trials = 10000\n", + "df = DataFrame(choice([1, 0], size = (trials, flips)))\n", + "counts = df.sum(axis=1)\n", + "result = counts[counts >= 11]\n", + "len(result) / trials * 100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "----\n", + "### How often do we see 7 heads in a row out of 16 coins" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "19.0015" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "seven_or_more = 0\n", + "trials = 10000\n", + "for i in range(trials):\n", + " s = \"\".join(choice([\"H\",\"T\"], size=16))\n", + " if s.find(\"HHHHHHH\") != -1:\n", + " seven_or_more += 1\n", + "seven_or_more / trials * 445 " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Self-study" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<AxesSubplot:>" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s = Series([\"rock\", \"rock\", \"paper\", \"scissors\", \"scissors\", \"scissors\"])\n", + "s.value_counts().plot.bar(color=\"orange\")" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<AxesSubplot:>" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s = Series([0, 0, 1, 8, 9, 9])\n", + "s.value_counts().plot.bar(color=\"orange\")" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<AxesSubplot:>" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD4CAYAAAAAczaOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAPbElEQVR4nO3df6zddX3H8edLigKbMpCqi1IKwWDKpmRWJVMZ8xf4q8QJGmHGoFIt2Qwz7B9nWFJrzOKibm4aagjMXwEFIxCygFhSCQFdMeKoE4S1Ohlz1VYQ6IrAe398T7fj5bT3e849914un+cjOTn3fL6fz/f7Pqe3r/s935+pKiRJbXjKYhcgSVo4hr4kNcTQl6SGGPqS1BBDX5IasmyxC5jNEUccUStXrlzsMiRpybj11lt/XlXLR017wof+ypUr2bJly2KXIUlLRpIf72uam3ckqSGGviQ1xNCXpIYY+pLUkFlDP8npSa5I8uMku5PckeRjSZ7eY+xBST6e5N7B2JuTnDSd0iVJ4+qzpn8+8CjwIeBU4LPAOuAbSWYbfxFwDnAB8CbgXuDaJCdMWrAkaXJ9Dtl8c1XtGHq9OclO4J+Ak4FNowYleRFwJvDuqrp40LYZ2AqsB9bMoW5J0gRmXdOfEfh7/cvg+bn7GboG+DVw2dC8HgEuBU5J8rQx6pQkTcGkO3L/aPD8b/vpczywraoemtG+FXgqcOyEy5YkTWjsM3KTPJdu88z1VbW/U2UPB3aNaN85NH1fy1gLrAVYsWLFuCXO7suZ/jyn7UxvbiPNmf/XH2esNf0kvw1cCTwCnD1bd2DUu5n1X6GqNlbV6qpavXz5yMtHSJIm0Dv0kxwEXAUcA5xSVT+dZchORq/NHzY0XZK0gHqFfpIDgSuAlwJvqKp/7TFsK3B0kkNmtK8CHgbuGqdQSdLc9Tk56ynAl4BXA6dV1S09530VcCBwxtC8lgFvB66rqj3jlytJmos+O3L/kS64Pwo8mOTEoWk/raqfJjkKuBtYX1XrAarqe0kuAz41+Kawje6krqOBs6b5JiRJ/fTZvPP6wfNfATfPeLx3MC3AASPmdzZwMbABuAY4Eji1qr47t7IlSZOYdU2/qlb26LOdEUflVNVu4IODhyRpkXmVTUlqiKEvSQ0x9CWpIYa+JDXE0Jekhhj6ktQQQ1+SGmLoS1JDDH1JaoihL0kNMfQlqSGGviQ1xNCXpIYY+pLUEENfkhpi6EtSQwx9SWqIoS9JDTH0Jakhhr4kNcTQl6SGGPqS1BBDX5IaYuhLUkMMfUlqiKEvSQ0x9CWpIYa+JDXE0Jekhhj6ktQQQ1+SGmLoS1JDDH1JaoihL0kNMfQlqSGGviQ1xNCXpIYY+pLUkF6hn+R5ST6d5OYkDyWpJCt7jq19PE6YS+GSpPEt69nvWOBtwK3AjcDrxlzOJcCFM9ruHHMekqQ56hv636qqZwMkeS/jh/49VXXLmGMkSVPWa/NOVT0234VIkubfQu3IXZdkz2B/wKYkr1yg5UqShixE6H8ROBd4DbAWeCawKcnJ+xqQZG2SLUm27NixYwFKlKQ29N2mP7GqeufQyxuTXAncDmwAXrGPMRuBjQCrV6+u+a5Rklqx4MfpV9WvgGuAlyz0siWpdYt1clYA1+AlaYEteOgneQbwRuDbC71sSWpd7236SU4f/PjiwfPrk+wAdlTV5iRHAXcD66tq/WDM+cBxwA3AfwJHAecDzwHOms5bkCT1Nc6O3K/OeP2ZwfNm4GS6TTYH8JvfHu4A3jJ4HArcD9wEvKeqvjNBvZKkOegd+lWVWaZvpwv+4bargasnqkySNHVeZVOSGmLoS1JDDH1JaoihL0kNMfQlqSGGviQ1xNCXpIYY+pLUEENfkhpi6EtSQwx9SWqIoS9JDTH0Jakhhr4kNcTQl6SGGPqS1BBDX5IaYuhLUkMMfUlqiKEvSQ0x9CWpIYa+JDXE0Jekhhj6ktQQQ1+SGmLoS1JDDH1JaoihL0kNMfQlqSGGviQ1xNCXpIYY+pLUEENfkhpi6EtSQwx9SWqIoS9JDTH0Jakhhr4kNcTQl6SG9Ar9JM9L8ukkNyd5KEklWdlz7EFJPp7k3iS7B/M4aU5VS5Im0ndN/1jgbcAu4MYxl3ERcA5wAfAm4F7g2iQnjDkfSdIcLevZ71tV9WyAJO8FXtdnUJIXAWcC766qiwdtm4GtwHpgzdgVS5Im1mtNv6oem3D+a4BfA5cNzesR4FLglCRPm3C+kqQJzPeO3OOBbVX10Iz2rcBT6TYbSZIWSN/NO5M6nG4/wEw7h6Y/TpK1wFqAFStWzE9lmo4vZ7Er6OfMWuwK+vHz1Dyb7zX9AKN+O/b7m11VG6tqdVWtXr58+fxUJkkNmu/Q38notfnDhqZLkhbIfIf+VuDoJIfMaF8FPAzcNc/LlyQNme/Qvwo4EDhjb0OSZcDbgeuqas88L1+SNKT3jtwkpw9+fPHg+fVJdgA7qmpzkqOAu4H1VbUeoKq+l+Qy4FNJDgS2AeuAo4GzpvUmJEn9jHP0zldnvP7M4HkzcDLdztkDePy3h7OBjwIbgN8BbgNOrarvjlmrJGmOeod+Vc12xM12RhyVU1W7gQ8OHpKkReRVNiWpIYa+JDXE0Jekhhj6ktQQQ1+SGmLoS1JDDH1JaoihL0kNMfQlqSGGviQ1xNCXpIYY+pLUEENfkhpi6EtSQwx9SWqIoS9JDTH0Jakhhr4kNcTQl6SGGPqS1BBDX5IaYuhLUkMMfUlqiKEvSQ0x9CWpIYa+JDXE0Jekhhj6ktQQQ1+SGmLoS1JDDH1JaoihL0kNMfQlqSGGviQ1xNCXpIYY+pLUEENfkhpi6EtSQwx9SWpIr9BPcmSSy5Pcl+T+JF9LsqLn2NrH44Q5VS5JGtuy2TokOQTYBOwB3gUUsAG4IckLq+rBHsu5BLhwRtud45UqSZqrWUMfOAc4Bjiuqu4CSPJ94EfA+4BP9JjHPVV1y8RVSpKmos/mnTXALXsDH6CqtgE3AafNV2GSpOnrE/rHA7ePaN8KrOq5nHVJ9iR5KMmmJK/sXaEkaWr6hP7hwK4R7TuBw3qM/yJwLvAaYC3wTGBTkpP3NSDJ2iRbkmzZsWNHj0VIkvros00fup23M6XXwKp3Dr28McmVdN8cNgCv2MeYjcBGgNWrV49atiRpAn3W9HfRre3PdBijvwHsV1X9CrgGeMm4YyVJc9Mn9LfSbdefaRXwgwmXG0Z/e5AkzaM+oX8VcGKSY/Y2JFkJvHwwbSxJngG8Efj2uGMlSXPTJ/Q/B2wHrkxyWpI1wJXAfzB0wlWSo5I8kuSCobbzk3wuyZlJTk7yLrpDPZ8DfHiab0SSNLtZd+RW1YNJXgV8EvgC3aaZbwLnVdUDQ10DHMBv/iG5A3jL4HEocD9d6L+nqr4zlXcgSeqt19E7VfUT4K2z9NnOjCN6qupq4OpJi5MkTZdX2ZSkhhj6ktQQQ1+SGmLoS1JDDH1JaoihL0kNMfQlqSGGviQ1xNCXpIYY+pLUEENfkhpi6EtSQwx9SWqIoS9JDTH0Jakhhr4kNcTQl6SGGPqS1BBDX5IaYuhLUkMMfUlqiKEvSQ0x9CWpIYa+JDXE0Jekhhj6ktQQQ1+SGmLoS1JDDH1JaoihL0kNMfQlqSGGviQ1xNCXpIYY+pLUEENfkhpi6EtSQwx9SWqIoS9JDTH0JakhvUI/yZFJLk9yX5L7k3wtyYqeYw9K8vEk9ybZneTmJCfNrWxJ0iRmDf0khwCbgBcA7wLeCTwfuCHJb/VYxkXAOcAFwJuAe4Frk5wwYc2SpAkt69HnHOAY4LiqugsgyfeBHwHvAz6xr4FJXgScCby7qi4etG0GtgLrgTVzql6SNJY+m3fWALfsDXyAqtoG3ASc1mPsr4HLhsY+AlwKnJLkaWNXLEmaWJ/QPx64fUT7VmBVj7HbquqhEWOfChzbY/mSpCnps3nncGDXiPadwGFzGLt3+uMkWQusHbx8IMkdPepcTEcAP5/qHM/KVGe3xPh5Tpef53RN9/Ocn8/yqH1N6BP6ADWirU+lmWRsVW0ENvaY/xNCki1VtXqx63iy8POcLj/P6Vrqn2efzTu7GL1Gfhij1+KH7dzP2L3TJUkLpE/ob6XbNj/TKuAHPcYePTjsc+bYh4G7Hj9EkjRf+oT+VcCJSY7Z25BkJfDywbTZxh4InDE0dhnwduC6qtozbsFPUEtmU9QS4ec5XX6e07WkP89UjdrkPtShOwHrNmA38GG6bfQfAZ4OvLCqHhj0Owq4G1hfVeuHxl8KnAL8JbANWEd3ktYfVtV3p/2GJEn7NuuaflU9CLwKuBP4AvAluvB+1d7AHwhwwIh5ng1cDGwArgGOBE418CVp4c26pi9JevLwKpuS1BBDX5IaYuhLT3JJnjU4ak4y9MeR5OAk5yW5IcnPkjw8ePxs0HbeiHMSNAdJTkqyabHreKJL8r4kNw3uV3HGoO0dSf6b7nLm9w3ua9H09RP6SnJgkvcnuTbJPYN7gTyY5K4klyR52WLXOCl35PaU5Ei6+wqspLvC6Fa6M4pDd4bxKrpzF34MvLqqfrI4lT65JHkr8JWqOmCxa3miSnI23X0rvg38ku5ou/cDFwJfAb4DnEh3fsy5VXXh4lS6NCR5FnA98HvAL4A9wO8CjwL/THc/keOAv6mqDy1WnZPyK19/n6I7V+H5VbV9VIfBSWtfBz4JvHWB6lqS+t55DVg+r4U8OfwZcGFVrQNIcg7wWeAzVXXeoM/fJ9lJdw8MQ3///hZ4BvDSqtoC/3ce0ueBB6pqVZJTga8n+WFVfX4Rax2ba/o9JbkP+NOqunqWfmuAL1TVoQtT2dKU5DFGX4zvcV2Bck1/3wa/m39SVd8cvD6U7rpYr66qG4b6vRa43N/N/UvyC+ADVfWlGe0voLvM/HOq6udJNtCdc7SkLr7mmn5/4/x19C/p7HYD3wIun6Xfav7/Mtsa7X+A4X1Je38+aEa/gwd9tX8H023WmekXdPtBn013aeUbgb9YwLqmwtDv73rgo0luH9w57HEGm3c+AnxjIQtbom4DHq2qi/bXKckvMfRn8z3gvCTX04X6h4B7gD9Pcl1VPTo4eudcun1R2r9bgXWDz+6xofYP0K2s/PtQ25K7fpih3995wA3AnUluofuat4turf5wuiuRnghsZwn+9V8EtwKn9+zrESf7t55uRWMX3e1JAf4YuAL4YZLbgBOAo4E3LEaBS8wFwLV0n9036K4IfCLwUmBDVe0e9PsDluAfUbfpjyHJwXRrnW+mC/m99wrYRfePfxXwuRG3h9QMSZ4LHFtVmxe7lieDJL8PvIPuqraXVNXWJMcCH6M7CuW/gH+oqisWscwlI8krgb8GXkZ31M4dwN9V1ZeH+pwAPFxVs11i/gnF0JekhnhyliQ1xNCXpIYY+pLUEENfkhryv9JXcNm/9Y/EAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s.value_counts().sort_index().plot.bar(color=\"orange\")" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<AxesSubplot:ylabel='Frequency'>" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAD9CAYAAACSoiH8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAVTklEQVR4nO3de7RdZX3u8e8j11qxclNbFEIO1hZaZQyj0ooIaAUvDaWiFigqKLFoz/FSrFQdHJuCWu1RK97AYYGKFo4iAoO2AqKRKhcDR5SUcjOhRdGmDRa5yPV3/pgrZWdl72TPuddlX76fMdZY2e9c71q/rAH7yTvfd74zVYUkSW09ZtwFSJLmJgNEktSJASJJ6sQAkSR1YoBIkjrZctwFjNJOO+1UixYtGncZkjRnXHPNNf9RVTtPdmxBBciiRYtYuXLluMuQpDkjyW1THfMUliSpEwNEktSJASJJ6sQAkSR1MtIASXJYknOT3JbkviQ3Jnl/ku2m0XfbJB9Kckev7xVJ9htF3ZKkjY16BHI88DDwLuBg4FPAccAlSTZXy2eBY4ETgZcDdwBfTbL30KqVJE1p1Mt4f7eq1k74eUWSdcCZwP7AZZN1SvJM4AjgmKo6vde2AlgFLAeWDrNoSdLGRjoC6QuP9b7Te95lE12XAg8C50x4r4eAs4GDkmwzsCIlSdMyGybRX9B7vmETr9kLWF1V9/a1rwK2BvYYRmGSpKmN9Ur0JLvQnIK6tKo2dYn4DsCdk7Svm3B8qs9YBiwD2HXXXTtWCotOuKhz35lY84GXjeVzJQ3efPs9MrYRSJLHAecDDwFHb+7lwGS3TszmPqeqTquqJVW1ZOedJ93ORZLUwVgCJMm2wAXAYuCgqrp9M13WMfkoY/sJxyVJIzTyAEmyFXAu8BzgpVX1/Wl0WwXsnuSxfe17Ag8Atwy2SknS5oz6QsLHAJ8HXggcUlVXTrPrBcBWwCsnvNeWwKuBi6vq/kHXKknatFFPon+CJgROBu5Jss+EY7dX1e1JdgNuBZZX1XKAqvpuknOAj/ZGMKtpLkDcHThypH8DSRIw+lNYL+k9vxu4ou/xht6xAFtMUtvRwOnAScBFwFOBg6vq2iHXLEmaxEhHIFW1aBqvWcMkq6uq6j7g7b2HJGnMZsOFhJKkOcgAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicjD5AkT0lySpIrktybpJIsmmbfmuKx93CrliT123IMn7kH8CrgGuBy4MUt+58BnNrXdtPMy5IktTGOAPlmVT0JIMkbaB8gP6yqKwdfliSpjZGfwqqqR0b9mZKkwZuLk+jHJbm/N39yWZLnj7sgSVqI5lqAnAW8CXgRsAzYEbgsyf5TdUiyLMnKJCvXrl07kiIlaSEYxxxIZ1V11IQfL09yPnA9cBKw7xR9TgNOA1iyZEkNvUhJWiDm2ghkA1X1M+Ai4NnjrkWSFpo5HSA9ARxZSNKIzekASfJ44GXAVeOuRZIWmrHMgSQ5rPfHZ/WeX5JkLbC2qlYk2Q24FVheVct7fY4Hng58HfgRsBtwPPBk4MhR1i9JGt8k+hf7fv5k73kFsD/Naakt2HCEdCNwaO/xS8BdwLeA11fV1cMsVpK0sbEESFVlM8fX0ITIxLYLgQuHWJYkqYU5PQciSRofA0SS1EmrAElycm+CW5K0wLUdgfwv4NYkf59kaRJHMJK0QLUNgCcDbwaeBHwFuC3J/06yy6ALkyTNbq0CpKruqapTq+pZwHOBi4F3AKuTnJfk4GEUKUmafTqfgqqq71TV64HdgW8DhwAXJflBkjd7ekuS5rfOv+ST/I8kHwRWAb8NnEdzRfgVwEeBTw+iQEnS7NTqQsIkW9BcCf5G4ADgJ8CngFOr6ke9l52d5HLgL2nu2SFJmofaXon+Q2Bn4JvA4cB5VfXQJK/7f8B2M6xNkjSLtQ2QLwKfrKobNvWiqroKL1KUpHmtVYBU1f8cViGSpLml7ZXo70xyyhTHPpbkHYMpS5I027U9zXQ08L0pjn23d1yStAC0DZBdgZunOPYDmps8SZIWgLYBci8w1bYlTwHun1k5kqS5om2AXA68I8k2Ext7P/9J77gkaQFou4z3vTTbltyU5Cya60J2Af4Q2BF43SCLkyTNXm2X8V6X5ADgr4B30oxgHgH+CXhFVV03+BIlSbNR63uiV9XVwH5JfgHYHrizqu4beGWSpFmtdYCs1wsNg0OSFqjWAZJkMfAqmiW92/Ydrt4W75Kkea7tbryH0OyH9Rjg39l42W4NqC5J0izXdgRyEvAN4MiqWjv4ciRJc0XbAFkM/InhIUlqeyHhv9Bc7yFJWuDaBsifAu/qTaRLkhawLlei7wjckORmYF3f8aqqFwyiMEnS7NY2QB4GbhxGIZKkuaXtVib7D6kOSdIc433LJUmdtA6QJLsk+XCSlUlWJ/mNXvtbkzx38CVKkmajtvdE3wv4PnAU8COa7Uy27h3eDXjLQKuTJM1abUcg/we4Adgd+H0gE459G9hnQHVJkma5tquw9gUOr6q7k2zRd+wnwJMHU5YkabZrOwJ5ZBPHdsLt3SVpwWgbIFcDR09x7FXAt2ZWjiRprmh7CusvgEuTXAx8gWb79hcleQtwKLDfgOuTJM1SrUYgVbUC+D2aSfS/oZlE/wDwfOD3quqqQRcoSZqdWl8HUlUXVdXTgF+lmVT/9apaXFX/MJ3+SZ6S5JQkVyS5N0klWTTNvtsm+VCSO5Lc13sPRz2SNAadr0Svqluq6ttV1XZvrD1o5kvuBC5v2fezwLHAicDLgTuArybZu+X7SJJmqO0tbV+zuddU1d9u5iXfrKon9d7vDcCLp/nZzwSOAI6pqtN7bSuAVcByYOl03keSNBhtJ9HPmKJ94r3QNxkgVbWppcCbshR4EDhnwns9lORs4IQk21RV/z3aJUlD0jZAdp+kbUea00lHAH8444qmthewuqru7WtfRbOdyh69P0uSRqDtdu63TdJ8G3BtkgBvpwmSYdiBZt6k37oJxzeSZBmwDGDXXXcdTmVDtOiEi8b22Ws+8LKxfbY0LOP8f2q+GeR27pcDw/yNEzY8VTaxfUpVdVpVLamqJTvvvPNwKpOkBWiQAbIPcPcA36/fOiYfZWw/4bgkaUTarsI6cZLmrYHfoBl9fHwQRU1hFXBoksf2zYPsCTwA3DLEz5Yk9Wk7if7eSdrup5kHORl4/0wL2oQLgD8HXgmcCZBkS+DVwMWuwJKk0Wo7iT6QU15JDuv98Vm955ckWQusraoVSXYDbgWWV9Xy3md/N8k5wEeTbAWsBo6jWRl25CDqkiRNX9sRyKB8se/nT/aeVwD700yMb8HGczRH04x0TgKeAFwHHFxV1w6rUEnS5NrOgbRaB1tV/zpF++ZWTq1hktVVVXUfzVLht7epQ5I0eG1HIGuYfCntVPrvWihJmifaBshxwLuBu4D/y6O3sX0V8Dia00tOZkvSAtA2QH4duBY4tKr+eySSZDnwFZqt3d82uPIkSbNV21VVhwOnTgwPgN7Pn2Z425hIkmaZtgHyOGCq/UCeCPzizMqRJM0VbQPkG8D7kjx7YmOS59DMf3xjMGVJkma7tgHyxzST5FcmWZPkqiRrgCuAn/eOS5IWgLZXoq9O8mvA62g2T/xl4HqaADmzqh4ceIWSpFmp9ZXovZD4TO8hSVqgOm1lkuQZwH40dyM8tap+nGQP4CdV9bNBFihJmp3abmWyDXAW8Ps8eoOnC4EfAx8EbgJOGHCNkqRZqO0k+snAi4CjgCex4X5V/wAcNKC6JEmzXNtTWIcD76mqLyTp3+dqNbBoIFVJkma9tiOQHYEbNvFe28ysHEnSXNE2QFYDvzXFsecAN86sHEnSXNE2QP4WOCHJkTT3QgeoJAcAbwP+ZpDFSZJmr7YB8kHgIuBzwLpe2z8BlwL/WFWnDLA2SdIs1vZK9IeBP0jyCZoVV08E/pMmPFYMoT5J0iw17QBJsjVwJXBCVV0MXD60qiRJs960T2FV1QPA7sBDwytHkjRXtJ0DuQR48TAKkSTNLW0vJDwFOCvJljS3sL2DZjuT/1ZVPxhMaZKk2axtgKyfKH87zbLdyfRfoS5Jmoc2GyBJDgSurqq7gWPoG3FIkham6YxALqG5+vzqqjojyWNobl37+qq6eZjFSZJmr+lMomeSn/cFtht8OZKkuaLtKixJkgADRJLU0XRXYe2SZHHvz1tMaPtp/wtdxitJC8N0A+RLk7R9ZYrXuoxXkhaA6QTI0UOvQpI052w2QKrqzFEUIkmaW5xElyR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktTJyAMkyVOTfCnJfyW5K8mXk+w6zb41xWPvIZctSerT9o6EM5LkscBlwP3Aa2luTnUS8PUkz6iqe6bxNmcAp/a13TTIOiVJmzfSAAGOBRYDT6+qWwCSfA+4GXgj8OFpvMcPq+rK4ZUoSZqOUZ/CWgpcuT48AKpqNfAt4JAR1yJJmoFRB8hewPWTtK8C9pzmexyX5P4k9ya5LMnzB1eeJGm6Rh0gOwB3TtK+Dth+Gv3PAt4EvAhYBuwIXJZk/6k6JFmWZGWSlWvXrm1dsCRpcqOeA4Fm4rxf/33XJ+9YddSEHy9Pcj7NiOYkmvu0T9bnNOA0gCVLlkz22ZKkDkY9ArmTZhTSb3smH5lsUlX9DLgIePYM65IktTTqAFlFMw/Sb0/gnzu+Z5h8VCNJGqJRB8gFwD4T7q9OkkXA83rHWknyeOBlwFWDKlCSND2jDpDPAGuA85MckmQpcD7wb0y4ODDJbkkeSnLihLbjk3wmyRFJ9k/yWprlv08G3jPSv4UkabST6FV1T5IDgY8An6M5/fQ14K1VdfeElwbYgg0D7kbg0N7jl4C7aALk9VV19QjKlyRNMPJVWFX1r8ArNvOaNfStzKqqC4ELh1eZJKkNd+OVJHVigEiSOjFAJEmdGCCSpE4MEElSJwaIJKkTA0SS1IkBIknqxACRJHVigEiSOjFAJEmdGCCSpE4MEElSJwaIJKkTA0SS1IkBIknqxACRJHVigEiSOjFAJEmdGCCSpE4MEElSJwaIJKkTA0SS1IkBIknqxACRJHVigEiSOjFAJEmdGCCSpE4MEElSJwaIJKkTA0SS1IkBIknqxACRJHVigEiSOjFAJEmdGCCSpE4MEElSJwaIJKkTA0SS1MnIAyTJU5N8Kcl/JbkryZeT7DrNvtsm+VCSO5Lcl+SKJPsNu2ZJ0sZGGiBJHgtcBvwa8FrgKOBpwNeT/OI03uKzwLHAicDLgTuArybZeygFS5KmtOWIP+9YYDHw9Kq6BSDJ94CbgTcCH56qY5JnAkcAx1TV6b22FcAqYDmwdLilS5ImGvUprKXAlevDA6CqVgPfAg6ZRt8HgXMm9H0IOBs4KMk2gy9XkjSVUQfIXsD1k7SvAvacRt/VVXXvJH23BvaYeXmSpOka9SmsHYA7J2lfB2w/g77rj28kyTJgWe/Hu5PcOI06J7MT8B8d+85J+cspDy2472Iz/D425PfxqFnxXWzi/+Xp2G2qA6MOEICapC3T6JcufavqNOC0abz/pj88WVlVS2b6PvOB38WG/D425PfxqPn+XYz6FNadTD5S2J7JRxcTrdtE3/XHJUkjMuoAWUUzl9FvT+Cfp9F3995S4P6+DwC3bNxFkjQsow6QC4B9kixe35BkEfC83rHN9d0KeOWEvlsCrwYurqr7B17thmZ8Gmwe8bvYkN/Hhvw+HjWvv4tUTTatMKQPay4WvA64D3gPzZzGXwDbAc+oqrt7r9sNuBVYXlXLJ/Q/GzgIeAewGjiO5oLC366qa0f2F5EkjXYEUlX3AAcCNwGfAz5PEwQHrg+PngBbTFLf0cDpwEnARcBTgYMND0kavZGOQCRJ84e78W7CTDZ+nE+SHJbk3CS39TaxvDHJ+5NsN+7aZosk/5ikkpw07lrGJclLk3wzyd29/19WJjlw3HWNWpLnJbk4yb/3vodrkxwz7rqGwQCZwgA2fpxPjgceBt4FHAx8imb+6ZIkC/6/oSSHA88cdx3jlOSNwPnANcChNItdvgj0r5qc15I8A7iUZsHPscArgO8An01y3DhrGwZPYU0hyVtoNnecuPHj7jQbP/5pVU258eN8k2Tnqlrb1/Ya4EzghVV12XgqG78kTwD+BXgb8AXg5Kp6z1iLGrHeSsobgD+rqo+Ot5rxSvI+mn9w7TBxXjfJlUBV1W+NrbghWPD/etyEmWz8OK/0h0fPd3rPu4yyllnog8Cqqvq7cRcyRscAjwCfHnchs8DWNJu+3tfX/lPm4e/befcXGqCZbPy4ELyg93zDWKsYoyT7Aq8B3jTuWsZsX5pR2B8kuTXJQ0luSfLmcRc2Bmf0nj+W5FeSPCHJscALgY+Mr6zhGMdeWHPFTDZ+nNeS7EJzD5ZLq2rluOsZhyRbAacCf1VVXTfonC9+pff4EM082a00cyAfT7JlVf31OIsbpaq6Psn+wHk8+g+LB4E/qqqzx1XXsBggm9Z148d5K8njaCZLH6K5LmeheifwC8DJ4y5kFngMzcXAr6uqL/faLuvNjfxZko/VAplsTfI04FyaMxV/RHMq6xDg00l+XlWfH2d9g2aATG0mGz/OS0m2pdlSZjHwgqq6fcwljUVvKfe7gTcA2/TdzGyb3sT6z6rq4XHUNwb/SbNC8ZK+9otpVu39MvCjURc1Ju+jGXG8vKoe7LV9LcmOwF8n+buqemR85Q2WcyBTm8nGj/NO75TNucBzgJdW1ffHXNI4LQa2Bc6i+cfE+gc0K3DuBH5zPKWNxaop2teP1ufNL8xp+E3gugnhsd7VwI7AE0df0vAYIFObycaP80rvWo/P00wEHlJVV465pHH7LnDAJA9oQuUAFtbu0Of1ng/qaz8IuL2qfjziesbpx8DeSbbua38u8HPm2W0nPIU1tc8Afwycn2Tixo//RjN5upB8gmZS9GTgniT7TDh2+0I7lVVVPwW+0d+eBOC2qtro2Dz398DXgVOT7AT8ADgMeDELb57s4zQXUF6Y5JM0cyBLgcOBj1TVA+MsbtC8kHATeue6PwL8Ds1w/GvAW6tqzTjrGrUka5j6tpZ/XlXvHV01s1eSYgFeSAiQ5PHA+2mCY3uaZb0fqKovjLWwMUjyEppFFnvRnOq8lWZb91Pn27yYASJJ6sQ5EElSJwaIJKkTA0SS1IkBIknqxACRJHVigEiSOjFAJEmdGCCSpE7+P+zzM8M2hZSoAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s.plot.hist()" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<AxesSubplot:ylabel='Frequency'>" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s = Series([0.1, 0, 1, 8, 9, 9.2])\n", + "s.plot.hist() # a histogram \"bins\" nearby numbers to create discrete bars\n", + "# first bar represents both 0 and 0.1\n", + "# last bar represents both 9 and 9.2" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<AxesSubplot:ylabel='Frequency'>" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s.plot.hist(bins=10)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<AxesSubplot:ylabel='Frequency'>" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s.plot.hist(bins=3) # too few bins provides too little detail" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<AxesSubplot:ylabel='Frequency'>" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s.plot.hist(bins=100) #too many bins provides too much detail (equally bad)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<AxesSubplot:ylabel='Frequency'>" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s.plot.hist(bins=10)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<AxesSubplot:ylabel='Frequency'>" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s.plot.hist(bins=[0,1,2,3,4,5,6,7,8,9,10])" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<AxesSubplot:ylabel='Frequency'>" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAD9CAYAAACSoiH8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAWFUlEQVR4nO3deZRlZX3u8e/DHAMqk5qATcPFawKJspatcuMExCU4pAkRMUCIgoJBk6sheiXq4no7oAZz1YgTeJ0iJhhFBBZJBARboiC2BJQOYbIbg4BpA8ook7/7xz4di8Op7tq7zlDD97PWWafq3Wef89vQVU+9+333u1NVSJLU1iaTLkCSND8ZIJKkTgwQSVInBogkqRMDRJLUyWaTLmCcdthhh1q6dOmky5CkeeM73/nOj6tqx0HbFlWALF26lFWrVk26DEmaN5LcNN02T2FJkjoxQCRJnRggkqRODBBJUidjDZAkByc5M8lNSe5Lcm2SdyfZZgb7bpXkvUlu7e17aZLnj6NuSdKjjbsH8mbgYeBtwAHAR4FjgQuSbKyWTwBHAycALwNuBb6SZK+RVStJmta4p/H+TlWtm/L9yiS3A58B9gEuGrRTkqcDhwFHVdWnem0rgdXACmD5KIuWJD3aWHsgfeGx3rd7zzttYNflwIPA56e810PAGcD+SbYcWpGSpBmZC4PoL+g9X7OB1+wJrKmqe/vaVwNbALuPojBJ0vQmeiV6kp1oTkFdWFUbukR8O+COAe23T9k+3WccAxwDsGTJko6VwtLjz+u872ysfc9LJ/K5koZvof0emVgPJMnWwNnAQ8CRG3s5MOjWidnY51TVaVW1rKqW7bjjwOVcJEkdTCRAkmwFnAPsBuxfVTdvZJfbGdzL2HbKdknSGI09QJJsDpwJPAt4SVV9bwa7rQZ2TfKYvvY9gAeAG4ZbpSRpY8Z9IeEmwOeA3wYOrKrLZrjrOcDmwCumvNdmwCuB86vq/mHXKknasHEPon+YJgROAu5JsveUbTdX1c1JdgFuBFZU1QqAqroyyeeBD/R6MGtoLkDcFTh8rEcgSQLGfwrrxb3ntwOX9j1e29sWYNMBtR0JfAo4ETgPeDJwQFVdMeKaJUkDjLUHUlVLZ/CatQyYXVVV9wHH9R6SpAmbCxcSSpLmIQNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnRggkqRODBBJUicGiCSpEwNEktSJASJJ6sQAkSR1YoBIkjoxQCRJnYw9QJLsnOSUJJcmuTdJJVk6w31rmsdeo61aktRvswl85u7AIcB3gEuAF7Xc/9PAqX1t182+LElSG5MIkK9X1RMBkryW9gHyw6q6bPhlSZLaGPsprKr6+bg/U5I0fPNxEP3YJPf3xk8uSvK8SRckSYvRfAuQ04HXAy8EjgG2By5Kss90OyQ5JsmqJKvWrVs3liIlaTGYxBhIZ1V1xJRvL0lyNnA1cCLw3Gn2OQ04DWDZsmU18iIlaZGYbz2QR6iqu4DzgGdOuhZJWmzmdYD0BLBnIUljNq8DJMljgZcC35p0LZK02ExkDCTJwb0vn9F7fnGSdcC6qlqZZBfgRmBFVa3o7fNm4KnAxcAtwC7Am4EnAYePs35J0uQG0b/Q9/1Hes8rgX1oTkttyiN7SNcCB/UejwPuBL4BvKaqLh9lsZKkR5tIgFRVNrJ9LU2ITG07Fzh3hGVJklqY12MgkqTJMUAkSZ20CpAkJ/UGuCVJi1zbHsj/BG5M8g9JliexByNJi1TbAHgS8AbgicCXgZuS/O8kOw27MEnS3NYqQKrqnqo6taqeATwbOB94C7AmyVlJDhhFkZKkuafzKaiq+nZVvQbYFfgmcCBwXpLvJ3mDp7ckaWHr/Es+yX9LcjKwGvgt4CyaK8IvBT4AfGwYBUqS5qZWFxIm2ZTmSvDXAfsCPwI+CpxaVbf0XnZGkkuAv6S5Z4ckaQFqeyX6D4Edga8DhwJnVdVDA173L8A2s6xNkjSHtQ2QLwAfqaprNvSiqvoWXqQoSQtaqwCpqj8ZVSGSpPml7ZXob01yyjTbPpjkLcMpS5I017U9zXQk8N1ptl3Z2y5JWgTaBsgS4Ppptn2f5iZPkqRFoG2A3AtMt2zJzsD9sytHkjRftA2QS4C3JNlyamPv+z/rbZckLQJtp/G+k2bZkuuSnE5zXchOwB8A2wOvHmZxkqS5q+003quS7Av8FfBWmh7Mz4F/Bl5eVVcNv0RJ0lzU+p7oVXU58PwkvwRsC9xRVfcNvTJJ0pzWOkDW64WGwSFJi1TrAEmyG3AIzZTerfo2V2+Jd0nSAtd2Nd4DadbD2gT4Dx49bbeGVJckaY5r2wM5EfgacHhVrRt+OZKk+aJtgOwG/JnhIUlqeyHhv9Fc7yFJWuTaBsj/At7WG0iXJC1iXa5E3x64Jsn1wO1926uqXjCMwiRJc1vbAHkYuHYUhUiS5pe2S5nsM6I6JEnzjPctlyR10jpAkuyU5H1JViVZk+Q3eu1vSvLs4ZcoSZqL2t4TfU/ge8ARwC00y5ls0du8C/DGoVYnSZqz2vZA/i9wDbAr8HtApmz7JrD3kOqSJM1xbWdhPRc4tKruTrJp37YfAU8aTlmSpLmubQ/k5xvYtgMu7y5Ji0bbALkcOHKabYcA35hdOZKk+aLtKay/AC5Mcj7wtzTLt78wyRuBg4DnD7k+SdIc1aoHUlUrgd+lGUT/JM0g+nuA5wG/W1XfGnaBkqS5qfV1IFV1XlU9BfjvNIPqv15Vu1XVP85k/yQ7JzklyaVJ7k1SSZbOcN+tkrw3ya1J7uu9h70eSZqAzleiV9UNVfXNqmq7NtbuNOMldwCXtNz3E8DRwAnAy4Bbga8k2avl+0iSZqntLW3/cGOvqaq/2chLvl5VT+y932uBF83ws58OHAYcVVWf6rWtBFYDK4DlM3kfSdJwtB1E//Q07VPvhb7BAKmqDU0F3pDlwIPA56e810NJzgCOT7JlVfXfo12SNCJtA2TXAW3b05xOOgz4g1lXNL09gTVVdW9f+2qa5VR2730tSRqDtsu53zSg+SbgiiQBjqMJklHYjmbcpN/tU7Y/SpJjgGMAlixZMprKRmjp8edN7LPXvuelE/tsaVQm+TO10AxzOfdLgFH+xgmPPFU2tX1aVXVaVS2rqmU77rjjaCqTpEVomAGyN3D3EN+v3+0M7mVsO2W7JGlM2s7COmFA8xbAb9D0Pj40jKKmsRo4KMlj+sZB9gAeAG4Y4WdLkvq0HUR/54C2+2nGQU4C3j3bgjbgHOD/AK8APgOQZDPglcD5zsCSpPFqO4g+lFNeSQ7uffmM3vOLk6wD1lXVyiS7ADcCK6pqRe+zr0zyeeADSTYH1gDH0swMO3wYdUmSZq5tD2RYvtD3/Ud6zyuBfWgGxjfl0WM0R9L0dE4EHg9cBRxQVVeMqlBJ0mBtx0BazYOtqh9M076xmVNrGTC7qqruo5kqfFybOiRJw9e2B7KWwVNpp9N/10JJ0gLRNkCOBd4O3An8Pb+4je0hwNY0p5cczJakRaBtgPw6cAVwUFX9V08kyQrgyzRLu//p8MqTJM1VbWdVHQqcOjU8AHrff4zRLWMiSZpj2gbI1sB064E8Afjl2ZUjSZov2gbI14B3JXnm1MYkz6IZ//jacMqSJM11bQPkj2kGyS9LsjbJt5KsBS4FftbbLklaBNpeib4mya8Br6ZZPPFXgKtpAuQzVfXg0CuUJM1Jra9E74XEx3sPSdIi1WkpkyRPA55PczfCU6vqtiS7Az+qqruGWaAkaW5qu5TJlsDpwO/xixs8nQvcBpwMXAccP+QaJUlzUNtB9JOAFwJHAE/kketV/SOw/5DqkiTNcW1PYR0KvKOq/jZJ/zpXa4ClQ6lKkjTnte2BbA9cs4H32nJ25UiS5ou2AbIG+B/TbHsWcO3sypEkzRdtA+RvgOOTHE5zL3SASrIv8KfAJ4dZnCRp7mobICcD5wGfBW7vtf0zcCHwT1V1yhBrkyTNYW2vRH8Y+P0kH6aZcfUE4D9pwmPlCOqTJM1RMw6QJFsAlwHHV9X5wCUjq0qSNOfN+BRWVT0A7Ao8NLpyJEnzRdsxkAuAF42iEEnS/NL2QsJTgNOTbEZzC9tbaZYz+S9V9f3hlCZJmsvaBsj6gfLjaKbtDtJ/hbokaQHaaIAk2Q+4vKruBo6ir8chSVqcZtIDuYDm6vPLq+rTSTahuXXta6rq+lEWJ0mau2YyiJ4B3z8X2Gb45UiS5ou2s7AkSQIMEElSRzOdhbVTkt16X286pe0n/S90Gq8kLQ4zDZAvDmj78jSvdRqvJC0CMwmQI0dehSRp3tlogFTVZ8ZRiCRpfnEQXZLUiQEiSerEAJEkdWKASJI6MUAkSZ0YIJKkTgwQSVInYw+QJE9O8sUkP01yZ5IvJVkyw31rmsdeIy5bktSn7R0JZyXJY4CLgPuBV9HcnOpE4OIkT6uqe2bwNp8GTu1ru26YdUqSNm6sAQIcDewGPLWqbgBI8l3geuB1wPtm8B4/rKrLRleiJGkmxn0Kazlw2frwAKiqNcA3gAPHXIskaRbGHSB7AlcPaF8N7DHD9zg2yf1J7k1yUZLnDa88SdJMjTtAtgPuGNB+O7DtDPY/HXg98ELgGGB74KIk+0y3Q5JjkqxKsmrdunWtC5YkDTbuMRBoBs779d93ffCOVUdM+faSJGfT9GhOpLlP+6B9TgNOA1i2bNmgz5YkdTDuHsgdNL2QftsyuGeyQVV1F3Ae8MxZ1iVJamncAbKaZhyk3x7Av3Z8zzC4VyNJGqFxB8g5wN5T7q9OkqXAc3rbWknyWOClwLeGVaAkaWbGHSAfB9YCZyc5MMly4Gzg35lycWCSXZI8lOSEKW1vTvLxJIcl2SfJq2im/z4JeMdYj0KSNN5B9Kq6J8l+wPuBz9Kcfvoq8KaqunvKSwNsyiMD7lrgoN7jccCdNAHymqq6fAzlS5KmGPssrKr6AfDyjbxmLX0zs6rqXODc0VUmSWrD1XglSZ0YIJKkTgwQSVInBogkqRMDRJLUiQEiSerEAJEkdWKASJI6MUAkSZ0YIJKkTgwQSVInBogkqRMDRJLUiQEiSerEAJEkdWKASJI6MUAkSZ0YIJKkTgwQSVInBogkqRMDRJLUiQEiSerEAJEkdWKASJI6MUAkSZ0YIJKkTgwQSVInBogkqRMDRJLUiQEiSerEAJEkdWKASJI6MUAkSZ0YIJKkTgwQSVInBogkqRMDRJLUiQEiSerEAJEkdTL2AEny5CRfTPLTJHcm+VKSJTPcd6sk701ya5L7klya5PmjrlmS9GhjDZAkjwEuAn4NeBVwBPAU4OIkvzyDt/gEcDRwAvAy4FbgK0n2GknBkqRpbTbmzzsa2A14alXdAJDku8D1wOuA9023Y5KnA4cBR1XVp3ptK4HVwApg+WhLlyRNNe5TWMuBy9aHB0BVrQG+ARw4g30fBD4/Zd+HgDOA/ZNsOfxyJUnTGXeA7AlcPaB9NbDHDPZdU1X3Dth3C2D32ZcnSZqpcZ/C2g64Y0D77cC2s9h3/fZHSXIMcEzv27uTXDuDOgfZAfhxx33npfzl4jtmFt//58V2vLAIj3mWP8u7TLdh3AECUAPaMoP90mXfqjoNOG0G77/hD09WVdWy2b7PfOIxL3yL7XjBYx6mcZ/CuoPBPYVtGdy7mOr2Dey7frskaUzGHSCracYy+u0B/OsM9t21NxW4f98HgBsevYskaVTGHSDnAHsn2W19Q5KlwHN62za27+bAK6bsuxnwSuD8qrp/6NU+0qxPg81DHvPCt9iOFzzmoUnVoGGF0ehdLHgVcB/wDpoxjb8AtgGeVlV39163C3AjsKKqVkzZ/wxgf+AtwBrgWJoLCn+rqq4Y24FIksbbA6mqe4D9gOuAzwKfowmC/daHR0+ATQfUdyTwKeBE4DzgycABhockjd9YeyCSpIXD1Xg3YDYLP85HSQ5OcmaSm3qLVV6b5N1Jtpl0beOS5J+SVJITJ13LKCV5SZKvJ7m79297VZL9Jl3XqCR5TpLzk/xH73ivSHLUpOsaliQ7Jzmlt8Dsvb1/w0sHvG7bJP8vyY+T3JPkwiS/2fVzDZBpDGHhx/nozcDDwNuAA4CP0owzXZBkwf9bSXIo8PRJ1zFqSV4HnA18BziIZmLKF4D+GY4LQpKnARfSTMI5Gng58G3gE0mOnWRtQ7Q7cAjN5RCXDHpBktBMRjoA+BOa/w6b0/xO27nTp1aVjwEP4I00v0x3n9K2K/AQcNyk6xvRMe84oO0PaSY77Dfp+kZ87I8HbgMO7R3viZOuaUTHuZRmEsubJl3LGI/5XTRT/bfua78MuHTS9Q3pGDeZ8vVre/+Gl/a95sBe+75T2h5Hcw3dB7t87oL/q3IWZrPw47xUVesGNH+797zTOGuZgJOB1VX1d5MuZMSOAn4OfGzShYzRFjQLsd7X1/4TFshZmKr6+Qxethy4paounrLfT4Fz6fg7bUH8xxuR2Sz8uJC8oPd8zUSrGKEkz6Xpab1+0rWMwXOBfwN+P8mNSR5KckOSN0y6sBH6dO/5g0l+NcnjkxwN/Dbw/smVNXYb+p22JMnWbd9wEmthzRezWfhxQUiyE829Vi6sqlWTrmcUkmwOnAr8VVV1XWhzPvnV3uO9NGNdN9KMgXwoyWZV9deTLG4UqurqJPsAZ/GLPxIeBP6oqs6YVF0TsB2wdkD7+mWgtgXuHrB9WgbIhnVd+HHe6/01cjbNmM+REy5nlN4K/BJw0qQLGZNNaC7cfXVVfanXdlFvxs6fJ/lg9U6OLxRJngKcSfOX9h/RnMo6EPhYkp9V1ecmWd8YdVqQdkMMkOnNZuHHeS3JVjSzNXYDXlBVN0+4pJHoTcl+O82g45Z9NyXbMsnjgbuq6uFJ1Dci/0kzm/CCvvbzaWbn/Apwy7iLGrF30fQ4XlZVD/bavppke+Cvk/zdDMcQ5ruNLUjb+veaYyDTm83Cj/NW75TOmcCzgJdU1fcmXNIo7QZsBZxO88Oz/gHNlOY7gM5z5Oeo1dO0r/8rdCH+Iv1N4Kop4bHe5cD2wBPGX9JEbOh32g/qkauBzIgBMr3ZLPw4L/Wu9fgczeDigVV12YRLGrUrgX0HPKAJlX1ZeKs8n9V73r+vfX/g5qq6bcz1jMNtwF5JtuhrfzbwMxbPrSDOAXZKsn5iDEkeC/wOHX+neQpreh8H/hg4O8nUhR//nWbQdSH6MM2A6knAPUn2nrLt5oV2KquqfgJ8rb+9ud6Km6rqUdsWgH8ALgZOTbID8H3gYOBFLNyxrg/RXCh5bpKP0IyBLKe55uf9VfXAJIsbliQH9758Ru/5xUnWAeuqaiVNSFwKnJ7kLTQ97D+n6X2e3OlDJ30BzFx+AEtoTufcCdwFfJm+i3MW0oNmhkZN83jnpOsb43+HBXshYe/4Hkvzx8KPaC6w+y5w2KTrGvExv5jmj4V1vZ/lK2lmZG066dqGeIzT/ex+bcprtgM+SdPruhf4KvD0rp/pYoqSpE4cA5EkdWKASJI6MUAkSZ0YIJKkTgwQSVInBogkqRMDRJLUiQEiSerk/wPRp8l2Ndp6oQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s.plot.hist(bins=range(11)) # same as above" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<AxesSubplot:ylabel='Frequency'>" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s = Series(normal(size=10000))\n", + "\n", + "s.plot.hist()" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<AxesSubplot:ylabel='Frequency'>" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "s.plot.hist(bins=100)" + ] + }, + { + "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.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/f22/meena_lec_notes/lec-41/.ipynb_checkpoints/randomness-checkpoint.ipynb b/f22/meena_lec_notes/lec-42/.ipynb_checkpoints/randomness-checkpoint.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-41/.ipynb_checkpoints/randomness-checkpoint.ipynb rename to f22/meena_lec_notes/lec-42/.ipynb_checkpoints/randomness-checkpoint.ipynb diff --git a/f22/meena_lec_notes/lec-41/coins.png b/f22/meena_lec_notes/lec-42/coins.png similarity index 100% rename from f22/meena_lec_notes/lec-41/coins.png rename to f22/meena_lec_notes/lec-42/coins.png diff --git a/f22/meena_lec_notes/lec-41/randomness.ipynb b/f22/meena_lec_notes/lec-42/randomness.ipynb similarity index 100% rename from f22/meena_lec_notes/lec-41/randomness.ipynb rename to f22/meena_lec_notes/lec-42/randomness.ipynb