{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "Untitled75.ipynb", "provenance": [], "authorship_tag": "ABX9TyNiU/F4IIvf6kN64u+n/Ea/", "include_colab_link": true }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "markdown", "source": [ "\n", "# My Solutions" ], "metadata": { "id": "33EzAJhUT_Aj" } }, { "cell_type": "markdown", "source": [ "## Loading Packages" ], "metadata": { "id": "0147FBy_UV0P" } }, { "cell_type": "code", "source": [ "\n", "\n", "from google.colab import auth\n", "auth.authenticate_user()\n", "print('Authenticated')\n", "\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 567 }, "id": "JlCMSU42URDM", "outputId": "285f5241-0849-478b-9a7f-9a51ac3cebdd" }, "execution_count": null, "outputs": [ { "output_type": "error", "ename": "KeyboardInterrupt", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py\u001b[0m in \u001b[0;36m_input_request\u001b[0;34m(self, prompt, ident, parent, password)\u001b[0m\n\u001b[1;32m 728\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 729\u001b[0;31m \u001b[0mident\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreply\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msession\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstdin_socket\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 730\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/jupyter_client/session.py\u001b[0m in \u001b[0;36mrecv\u001b[0;34m(self, socket, mode, content, copy)\u001b[0m\n\u001b[1;32m 802\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 803\u001b[0;31m \u001b[0mmsg_list\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msocket\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv_multipart\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 804\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mzmq\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mZMQError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/zmq/sugar/socket.py\u001b[0m in \u001b[0;36mrecv_multipart\u001b[0;34m(self, flags, copy, track)\u001b[0m\n\u001b[1;32m 624\u001b[0m \"\"\"\n\u001b[0;32m--> 625\u001b[0;31m \u001b[0mparts\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mflags\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtrack\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtrack\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[0m\u001b[1;32m 626\u001b[0m \u001b[0;31m# have first part already, only loop while more to receive\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32mzmq/backend/cython/socket.pyx\u001b[0m in \u001b[0;36mzmq.backend.cython.socket.Socket.recv\u001b[0;34m()\u001b[0m\n", "\u001b[0;32mzmq/backend/cython/socket.pyx\u001b[0m in \u001b[0;36mzmq.backend.cython.socket.Socket.recv\u001b[0;34m()\u001b[0m\n", "\u001b[0;32mzmq/backend/cython/socket.pyx\u001b[0m in \u001b[0;36mzmq.backend.cython.socket._recv_copy\u001b[0;34m()\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/zmq/backend/cython/checkrc.pxd\u001b[0m in \u001b[0;36mzmq.backend.cython.checkrc._check_rc\u001b[0;34m()\u001b[0m\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: ", "\nDuring handling of the above exception, another exception occurred:\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mgoogle\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolab\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mauth\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mauth\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mauthenticate_user\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[0m\u001b[1;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Authenticated'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/google/colab/auth.py\u001b[0m in \u001b[0;36mauthenticate_user\u001b[0;34m(clear_output)\u001b[0m\n\u001b[1;32m 151\u001b[0m \u001b[0mcontext_manager\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_output\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtemporary\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mclear_output\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0m_noop\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 152\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mcontext_manager\u001b[0m\u001b[0;34m(\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[0;32m--> 153\u001b[0;31m \u001b[0m_gcloud_login\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[0m\u001b[1;32m 154\u001b[0m \u001b[0m_install_adc\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 155\u001b[0m \u001b[0mcolab_tpu_addr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_os\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0menviron\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'COLAB_TPU_ADDR'\u001b[0m\u001b[0;34m,\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[0;32m/usr/local/lib/python3.7/dist-packages/google/colab/auth.py\u001b[0m in \u001b[0;36m_gcloud_login\u001b[0;34m()\u001b[0m\n\u001b[1;32m 93\u001b[0m \u001b[0;31m# https://github.com/jupyter/notebook/issues/3159\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 94\u001b[0m \u001b[0mprompt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprompt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrstrip\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[0;32m---> 95\u001b[0;31m \u001b[0mcode\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_code\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprompt\u001b[0m \u001b[0;34m+\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[0m\u001b[1;32m 96\u001b[0m \u001b[0mgcloud_process\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcommunicate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcode\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstrip\u001b[0m\u001b[0;34m(\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 97\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py\u001b[0m in \u001b[0;36mraw_input\u001b[0;34m(self, prompt)\u001b[0m\n\u001b[1;32m 702\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_parent_ident\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 703\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_parent_header\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 704\u001b[0;31m \u001b[0mpassword\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 705\u001b[0m )\n\u001b[1;32m 706\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py\u001b[0m in \u001b[0;36m_input_request\u001b[0;34m(self, prompt, ident, parent, password)\u001b[0m\n\u001b[1;32m 732\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyboardInterrupt\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 733\u001b[0m \u001b[0;31m# re-raise KeyboardInterrupt, to truncate traceback\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 734\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyboardInterrupt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 735\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 736\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ] }, { "cell_type": "code", "source": [ "import pandas as pa\n", "import requests\n", "from bs4 import BeautifulSoup\n", "import re\n", "import matplotlib.pyplot as plt\n" ], "metadata": { "id": "dKkXFQoXUZfB" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "## SQL Subquery" ], "metadata": { "id": "VPAPDPuAVHlk" } }, { "cell_type": "code", "source": [ "%%bigquery --project pic-math\n", "WITH t as (\n", "SELECT COUNT(*) as number_trips, start_station_name\n", "FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips`\n", "GROUP BY start_station_name\n", "ORDER BY number_trips DESC\n", "LIMIT 2\n", ")\n", "\n", "SELECT *\n", "FROM t\n", "ORDER BY number_trips\n", "LIMIT 1" ], "metadata": { "id": "MDPIJfwHVL86", "outputId": "2e4a1b2f-7d0a-4b47-f6f8-e03088c8ce74", "colab": { "base_uri": "https://localhost:8080/", "height": 81 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
number_tripsstart_station_name
040635Riverside @ S. Lamar
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " number_trips start_station_name\n", "0 40635 Riverside @ S. Lamar" ] }, "metadata": {}, "execution_count": 3 } ] }, { "cell_type": "code", "source": [ "%%bigquery --project pic-math\n", "\n", "SELECT COUNT(*) as round_trips, start_station_name\n", "FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips`\n", "WHERE start_station_name = end_station_name AND duration_minutes >= 60\n", "GROUP BY start_station_name" ], "metadata": { "id": "pPLdiMacWLaQ", "outputId": "72ee7cf9-bd00-40d6-e0ba-1aaa4a94897d", "colab": { "base_uri": "https://localhost:8080/", "height": 424 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
round_tripsstart_station_name
0190Toomey Rd @ South Lamar
1119Waller & 6th St.
2249State Capitol @ 14th & Colorado
383Rainey @ River St
480Nueces @ 3rd
.........
173317Republic Square @ Guadalupe & 4th St.
1743783rd & West
1751693rd/West
1767126th/Nueces
17786Nueces & 26th
\n", "

178 rows × 2 columns

\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " round_trips start_station_name\n", "0 190 Toomey Rd @ South Lamar\n", "1 119 Waller & 6th St.\n", "2 249 State Capitol @ 14th & Colorado\n", "3 83 Rainey @ River St\n", "4 80 Nueces @ 3rd\n", ".. ... ...\n", "173 317 Republic Square @ Guadalupe & 4th St.\n", "174 378 3rd & West\n", "175 169 3rd/West\n", "176 71 26th/Nueces\n", "177 86 Nueces & 26th\n", "\n", "[178 rows x 2 columns]" ] }, "metadata": {}, "execution_count": 5 } ] }, { "cell_type": "markdown", "source": [ "## SQL JOINS" ], "metadata": { "id": "VrWLPhhhUBP-" } }, { "cell_type": "code", "source": [ "\n", "\n", "%%bigquery --project pic-math\n", "WITH stations as (\n", "SELECT name, property_type\n", "FROM `bigquery-public-data.austin_bikeshare.bikeshare_stations`\n", ")\n", "\n", "SELECT stations.property_type as starting_station_type, \n", " AVG(trips.duration_minutes) as average_ride_minutes, \n", " count(*) as number_of_trips, \n", " STDDEV_POP(trips.duration_minutes) as std_ride_minutes\n", "FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips` as trips \n", " LEFT OUTER JOIN stations \n", " ON trips.start_station_name = stations.name\n", "WHERE stations.property_type = 'sidewalk' OR stations.property_type = 'parkland'\n", "GROUP BY stations.property_type\n", "ORDER BY average_ride_minutes DESC\n", "\n" ], "metadata": { "id": "LTHkQYL5UEPD" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "\n", "\n", "##html Tables" ], "metadata": { "id": "9RES5KuTZ29V" } }, { "cell_type": "code", "source": [ "html = requests.get('https://en.wikipedia.org/wiki/List_of_Marvel_Cinematic_Universe_films')\n", "soup = BeautifulSoup(html.text)\n", "\n", "df3 = pa.read_html(str(soup.find_all('table', class_='wikitable plainrowheaders')[0]))[0]\n", "\n", "df3.columns = df3.columns.droplevel(1)" ], "metadata": { "id": "N879Sj5-BvVz" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "head = list(df3.columns[:-1])\n", "head.append('Phase')\n", "df3.columns = head" ], "metadata": { "id": "bp9MdBrsDFOZ" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "df3.Phase = [1,1,1,1,1,1,0,2,2,2,2,2,2,0,3,3,3,3,3,3,3,3,3,3,3]" ], "metadata": { "id": "cqULXidQJFuk" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "df3.drop([6,13])" ], "metadata": { "id": "imTVOLdIJqdy", "outputId": "4715d5ff-6db1-402e-99da-d1decc9becf3", "colab": { "base_uri": "https://localhost:8080/", "height": 771 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FilmU.S. release dateDirector(s)Screenwriter(s)Producer(s)Phase
0Iron ManMay 2, 2008Jon Favreau[26]Mark Fergus & Hawk Ostby and Art Marcum & Matt...Avi Arad and Kevin Feige1
1The Incredible HulkJune 13, 2008Louis Leterrier[28]Zak Penn[29]Avi Arad, Gale Anne Hurdand Kevin Feige1
2Iron Man 2May 7, 2010Jon Favreau[30]Justin Theroux[31]Kevin Feige1
3ThorMay 6, 2011Kenneth Branagh[32]Ashley Edward Miller & Zack Stentz and Don Pay...Kevin Feige1
4Captain America: The First AvengerJuly 22, 2011Joe Johnston[34]Christopher Markus & Stephen McFeely[35]Kevin Feige1
5Marvel's The AvengersMay 4, 2012Joss Whedon[36]Joss Whedon[36]Kevin Feige1
7Iron Man 3May 3, 2013Shane Black[37]Drew Pearce and Shane Black[37][38]Kevin Feige2
8Thor: The Dark WorldNovember 8, 2013Alan Taylor[39]Christopher L. Yost and Christopher Markus & S...Kevin Feige2
9Captain America: The Winter SoldierApril 4, 2014Anthony and Joe Russo[41]Christopher Markus & Stephen McFeely[42]Kevin Feige2
10Guardians of the GalaxyAugust 1, 2014James Gunn[43]James Gunn and Nicole Perlman[44]Kevin Feige2
11Avengers: Age of UltronMay 1, 2015Joss Whedon[45]Joss Whedon[45]Kevin Feige2
12Ant-ManJuly 17, 2015Peyton Reed[46]Edgar Wright & Joe Cornish and Adam McKay & Pa...Kevin Feige2
14Captain America: Civil WarMay 6, 2016Anthony and Joe Russo[48]Christopher Markus & Stephen McFeely[48]Kevin Feige3
15Doctor StrangeNovember 4, 2016Scott Derrickson[49]Jon Spaihts and Scott Derrickson & C. Robert C...Kevin Feige3
16Guardians of the Galaxy Vol. 2May 5, 2017James Gunn[44]James Gunn[44]Kevin Feige3
17Spider-Man: HomecomingJuly 7, 2017Jon Watts[51]Jonathan Goldstein & John Francis Daley andJon...Kevin Feige and Amy Pascal3
18Thor: RagnarokNovember 3, 2017Taika Waititi[53]Eric Pearson and Craig Kyle & Christopher L. Y...Kevin Feige3
19Black PantherFebruary 16, 2018Ryan Coogler[56]Ryan Coogler & Joe Robert Cole[57][58]Kevin Feige3
20Avengers: Infinity WarApril 27, 2018Anthony and Joe Russo[59]Christopher Markus & Stephen McFeely[60]Kevin Feige3
21Ant-Man and the WaspJuly 6, 2018Peyton Reed[61]Chris McKenna & Erik Sommers andPaul Rudd & An...Kevin Feige and Stephen Broussard3
22Captain MarvelMarch 8, 2019Anna Boden and Ryan Fleck[63]Anna Boden & Ryan Fleck & Geneva Robertson-Dwo...Kevin Feige3
23Avengers: EndgameApril 26, 2019Anthony and Joe Russo[59]Christopher Markus & Stephen McFeely[60]Kevin Feige3
24Spider-Man: Far From HomeJuly 2, 2019Jon Watts[65]Chris McKenna & Erik Sommers[66]Kevin Feige and Amy Pascal3
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " Film ... Phase\n", "0 Iron Man ... 1\n", "1 The Incredible Hulk ... 1\n", "2 Iron Man 2 ... 1\n", "3 Thor ... 1\n", "4 Captain America: The First Avenger ... 1\n", "5 Marvel's The Avengers ... 1\n", "7 Iron Man 3 ... 2\n", "8 Thor: The Dark World ... 2\n", "9 Captain America: The Winter Soldier ... 2\n", "10 Guardians of the Galaxy ... 2\n", "11 Avengers: Age of Ultron ... 2\n", "12 Ant-Man ... 2\n", "14 Captain America: Civil War ... 3\n", "15 Doctor Strange ... 3\n", "16 Guardians of the Galaxy Vol. 2 ... 3\n", "17 Spider-Man: Homecoming ... 3\n", "18 Thor: Ragnarok ... 3\n", "19 Black Panther ... 3\n", "20 Avengers: Infinity War ... 3\n", "21 Ant-Man and the Wasp ... 3\n", "22 Captain Marvel ... 3\n", "23 Avengers: Endgame ... 3\n", "24 Spider-Man: Far From Home ... 3\n", "\n", "[23 rows x 6 columns]" ] }, "metadata": {}, "execution_count": 65 } ] }, { "cell_type": "markdown", "source": [ "## html Selenium" ], "metadata": { "id": "CcyyXZc0jivN" } }, { "cell_type": "code", "source": [ "# RUN THIS CELL WHEN USING THE NOTEBOOK ON COLAB - NO PREVIOUS INSTALLATION OF SELENIUM IS NEEDED\n", "# install chromium, its driver, and selenium\n", "!apt update\n", "!apt install chromium-chromedriver\n", "!pip install selenium\n", "# set options to be headless\n", "from selenium import webdriver\n", "options = webdriver.ChromeOptions()\n", "options.add_argument('--headless')\n", "options.add_argument('--no-sandbox')\n", "options.add_argument('--disable-dev-shm-usage')\n", "# open it, go to a website, and get results\n", "driver = webdriver.Chrome('chromedriver',options=options)\n", "from selenium.webdriver.common.by import By\n", "from selenium.webdriver.common.keys import Keys" ], "metadata": { "id": "NszKO4nQjk6m", "outputId": "8a9358ae-07a7-45d5-cfac-e252f349e684", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\u001b[33m\r0% [Working]\u001b[0m\r \rGet:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]\n", "Get:2 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran40/ InRelease [3,626 B]\n", "Ign:3 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 InRelease\n", "Hit:4 http://ppa.launchpad.net/c2d4u.team/c2d4u4.0+/ubuntu bionic InRelease\n", "Hit:5 http://archive.ubuntu.com/ubuntu bionic InRelease\n", "Ign:6 https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 InRelease\n", "Get:7 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 Release [696 B]\n", "Hit:8 https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 Release\n", "Get:9 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 Release.gpg [836 B]\n", "Get:10 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]\n", "Hit:11 http://ppa.launchpad.net/cran/libgit2/ubuntu bionic InRelease\n", "Hit:12 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu bionic InRelease\n", "Get:13 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]\n", "Hit:14 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic InRelease\n", "Get:15 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [2,544 kB]\n", "Get:16 http://security.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [760 kB]\n", "Get:17 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1,466 kB]\n", "Get:19 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 Packages [914 kB]\n", "Get:20 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [2,986 kB]\n", "Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [2,244 kB]\n", "Fetched 11.2 MB in 8s (1,484 kB/s)\n", "Reading package lists... Done\n", "Building dependency tree \n", "Reading state information... Done\n", "51 packages can be upgraded. Run 'apt list --upgradable' to see them.\n", "Reading package lists... Done\n", "Building dependency tree \n", "Reading state information... Done\n", "The following packages were automatically installed and are no longer required:\n", " cuda-command-line-tools-10-0 cuda-command-line-tools-10-1\n", " cuda-command-line-tools-11-0 cuda-compiler-10-0 cuda-compiler-10-1\n", " cuda-compiler-11-0 cuda-cuobjdump-10-0 cuda-cuobjdump-10-1\n", " cuda-cuobjdump-11-0 cuda-cupti-10-0 cuda-cupti-10-1 cuda-cupti-11-0\n", " cuda-cupti-dev-11-0 cuda-documentation-10-0 cuda-documentation-10-1\n", " cuda-documentation-11-0 cuda-documentation-11-1 cuda-gdb-10-0 cuda-gdb-10-1\n", " cuda-gdb-11-0 cuda-gpu-library-advisor-10-0 cuda-gpu-library-advisor-10-1\n", " cuda-libraries-10-0 cuda-libraries-10-1 cuda-libraries-11-0\n", " cuda-memcheck-10-0 cuda-memcheck-10-1 cuda-memcheck-11-0 cuda-nsight-10-0\n", " cuda-nsight-10-1 cuda-nsight-11-0 cuda-nsight-11-1 cuda-nsight-compute-10-0\n", " cuda-nsight-compute-10-1 cuda-nsight-compute-11-0 cuda-nsight-compute-11-1\n", " cuda-nsight-systems-10-1 cuda-nsight-systems-11-0 cuda-nsight-systems-11-1\n", " cuda-nvcc-10-0 cuda-nvcc-10-1 cuda-nvcc-11-0 cuda-nvdisasm-10-0\n", " cuda-nvdisasm-10-1 cuda-nvdisasm-11-0 cuda-nvml-dev-10-0 cuda-nvml-dev-10-1\n", " cuda-nvml-dev-11-0 cuda-nvprof-10-0 cuda-nvprof-10-1 cuda-nvprof-11-0\n", " cuda-nvprune-10-0 cuda-nvprune-10-1 cuda-nvprune-11-0 cuda-nvtx-10-0\n", " cuda-nvtx-10-1 cuda-nvtx-11-0 cuda-nvvp-10-0 cuda-nvvp-10-1 cuda-nvvp-11-0\n", " cuda-nvvp-11-1 cuda-samples-10-0 cuda-samples-10-1 cuda-samples-11-0\n", " cuda-samples-11-1 cuda-sanitizer-11-0 cuda-sanitizer-api-10-1\n", " cuda-toolkit-10-0 cuda-toolkit-10-1 cuda-toolkit-11-0 cuda-toolkit-11-1\n", " cuda-tools-10-0 cuda-tools-10-1 cuda-tools-11-0 cuda-tools-11-1\n", " cuda-visual-tools-10-0 cuda-visual-tools-10-1 cuda-visual-tools-11-0\n", " cuda-visual-tools-11-1 default-jre dkms freeglut3 freeglut3-dev\n", " keyboard-configuration libargon2-0 libcap2 libcryptsetup12\n", " libdevmapper1.02.1 libfontenc1 libidn11 libip4tc0 libjansson4\n", " libnvidia-cfg1-510 libnvidia-common-460 libnvidia-common-510\n", " libnvidia-extra-510 libnvidia-fbc1-510 libnvidia-gl-510 libpam-systemd\n", " libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libxfont2\n", " libxi-dev libxkbfile1 libxmu-dev libxmu-headers libxnvctrl0\n", " nsight-compute-2020.2.1 nsight-compute-2022.1.0 nsight-systems-2020.3.2\n", " nsight-systems-2020.3.4 nsight-systems-2021.5.2 nvidia-dkms-510\n", " nvidia-kernel-common-510 nvidia-kernel-source-510 nvidia-modprobe\n", " nvidia-settings openjdk-11-jre policykit-1 policykit-1-gnome python3-xkit\n", " screen-resolution-extra systemd systemd-sysv udev x11-xkb-utils\n", " xserver-common xserver-xorg-core-hwe-18.04 xserver-xorg-video-nvidia-510\n", "Use 'apt autoremove' to remove them.\n", "The following additional packages will be installed:\n", " chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra\n", "Suggested packages:\n", " webaccounts-chromium-extension unity-chromium-extension\n", "The following NEW packages will be installed:\n", " chromium-browser chromium-browser-l10n chromium-chromedriver\n", " chromium-codecs-ffmpeg-extra\n", "0 upgraded, 4 newly installed, 0 to remove and 51 not upgraded.\n", "Need to get 95.3 MB of archives.\n", "After this operation, 327 MB of additional disk space will be used.\n", "Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 chromium-codecs-ffmpeg-extra amd64 97.0.4692.71-0ubuntu0.18.04.1 [1,142 kB]\n", "Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 chromium-browser amd64 97.0.4692.71-0ubuntu0.18.04.1 [84.7 MB]\n", "Get:3 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 chromium-browser-l10n all 97.0.4692.71-0ubuntu0.18.04.1 [4,370 kB]\n", "Get:4 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 chromium-chromedriver amd64 97.0.4692.71-0ubuntu0.18.04.1 [5,055 kB]\n", "Fetched 95.3 MB in 5s (19.9 MB/s)\n", "Selecting previously unselected package chromium-codecs-ffmpeg-extra.\n", "(Reading database ... 155113 files and directories currently installed.)\n", "Preparing to unpack .../chromium-codecs-ffmpeg-extra_97.0.4692.71-0ubuntu0.18.04.1_amd64.deb ...\n", "Unpacking chromium-codecs-ffmpeg-extra (97.0.4692.71-0ubuntu0.18.04.1) ...\n", "Selecting previously unselected package chromium-browser.\n", "Preparing to unpack .../chromium-browser_97.0.4692.71-0ubuntu0.18.04.1_amd64.deb ...\n", "Unpacking chromium-browser (97.0.4692.71-0ubuntu0.18.04.1) ...\n", "Selecting previously unselected package chromium-browser-l10n.\n", "Preparing to unpack .../chromium-browser-l10n_97.0.4692.71-0ubuntu0.18.04.1_all.deb ...\n", "Unpacking chromium-browser-l10n (97.0.4692.71-0ubuntu0.18.04.1) ...\n", "Selecting previously unselected package chromium-chromedriver.\n", "Preparing to unpack .../chromium-chromedriver_97.0.4692.71-0ubuntu0.18.04.1_amd64.deb ...\n", "Unpacking chromium-chromedriver (97.0.4692.71-0ubuntu0.18.04.1) ...\n", "Setting up chromium-codecs-ffmpeg-extra (97.0.4692.71-0ubuntu0.18.04.1) ...\n", "Setting up chromium-browser (97.0.4692.71-0ubuntu0.18.04.1) ...\n", "update-alternatives: using /usr/bin/chromium-browser to provide /usr/bin/x-www-browser (x-www-browser) in auto mode\n", "update-alternatives: using /usr/bin/chromium-browser to provide /usr/bin/gnome-www-browser (gnome-www-browser) in auto mode\n", "Setting up chromium-chromedriver (97.0.4692.71-0ubuntu0.18.04.1) ...\n", "Setting up chromium-browser-l10n (97.0.4692.71-0ubuntu0.18.04.1) ...\n", "Processing triggers for man-db (2.8.3-2ubuntu0.1) ...\n", "Processing triggers for hicolor-icon-theme (0.17-2) ...\n", "Processing triggers for mime-support (3.60ubuntu1) ...\n", "Processing triggers for libc-bin (2.27-3ubuntu1.3) ...\n", "/sbin/ldconfig.real: /usr/local/lib/python3.7/dist-packages/ideep4py/lib/libmkldnn.so.0 is not a symbolic link\n", "\n", "Collecting selenium\n", " Downloading selenium-4.1.0-py3-none-any.whl (958 kB)\n", "\u001b[K |████████████████████████████████| 958 kB 18.1 MB/s \n", "\u001b[?25hCollecting trio-websocket~=0.9\n", " Downloading trio_websocket-0.9.2-py3-none-any.whl (16 kB)\n", "Collecting urllib3[secure]~=1.26\n", " Downloading urllib3-1.26.8-py2.py3-none-any.whl (138 kB)\n", "\u001b[K |████████████████████████████████| 138 kB 51.3 MB/s \n", "\u001b[?25hCollecting trio~=0.17\n", " Downloading trio-0.19.0-py3-none-any.whl (356 kB)\n", "\u001b[K |████████████████████████████████| 356 kB 44.2 MB/s \n", "\u001b[?25hRequirement already satisfied: attrs>=19.2.0 in /usr/local/lib/python3.7/dist-packages (from trio~=0.17->selenium) (21.4.0)\n", "Collecting outcome\n", " Downloading outcome-1.1.0-py2.py3-none-any.whl (9.7 kB)\n", "Collecting async-generator>=1.9\n", " Downloading async_generator-1.10-py3-none-any.whl (18 kB)\n", "Requirement already satisfied: idna in /usr/local/lib/python3.7/dist-packages (from trio~=0.17->selenium) (2.10)\n", "Collecting sniffio\n", " Downloading sniffio-1.2.0-py3-none-any.whl (10 kB)\n", "Requirement already satisfied: sortedcontainers in /usr/local/lib/python3.7/dist-packages (from trio~=0.17->selenium) (2.4.0)\n", "Collecting wsproto>=0.14\n", " Downloading wsproto-1.0.0-py3-none-any.whl (24 kB)\n", "Requirement already satisfied: certifi in /usr/local/lib/python3.7/dist-packages (from urllib3[secure]~=1.26->selenium) (2021.10.8)\n", "Collecting cryptography>=1.3.4\n", " Downloading cryptography-36.0.1-cp36-abi3-manylinux_2_24_x86_64.whl (3.6 MB)\n", "\u001b[K |████████████████████████████████| 3.6 MB 50.1 MB/s \n", "\u001b[?25hCollecting pyOpenSSL>=0.14\n", " Downloading pyOpenSSL-22.0.0-py2.py3-none-any.whl (55 kB)\n", "\u001b[K |████████████████████████████████| 55 kB 3.7 MB/s \n", "\u001b[?25hRequirement already satisfied: cffi>=1.12 in /usr/local/lib/python3.7/dist-packages (from cryptography>=1.3.4->urllib3[secure]~=1.26->selenium) (1.15.0)\n", "Requirement already satisfied: pycparser in /usr/local/lib/python3.7/dist-packages (from cffi>=1.12->cryptography>=1.3.4->urllib3[secure]~=1.26->selenium) (2.21)\n", "Collecting h11<1,>=0.9.0\n", " Downloading h11-0.13.0-py3-none-any.whl (58 kB)\n", "\u001b[K |████████████████████████████████| 58 kB 5.2 MB/s \n", "\u001b[?25hRequirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from h11<1,>=0.9.0->wsproto>=0.14->trio-websocket~=0.9->selenium) (3.10.0.2)\n", "Installing collected packages: sniffio, outcome, h11, cryptography, async-generator, wsproto, urllib3, trio, pyOpenSSL, trio-websocket, selenium\n", " Attempting uninstall: urllib3\n", " Found existing installation: urllib3 1.24.3\n", " Uninstalling urllib3-1.24.3:\n", " Successfully uninstalled urllib3-1.24.3\n", "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", "requests 2.23.0 requires urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1, but you have urllib3 1.26.8 which is incompatible.\n", "datascience 0.10.6 requires folium==0.2.1, but you have folium 0.8.3 which is incompatible.\u001b[0m\n", "Successfully installed async-generator-1.10 cryptography-36.0.1 h11-0.13.0 outcome-1.1.0 pyOpenSSL-22.0.0 selenium-4.1.0 sniffio-1.2.0 trio-0.19.0 trio-websocket-0.9.2 urllib3-1.26.8 wsproto-1.0.0\n" ] } ] }, { "cell_type": "code", "source": [ "url = 'https://google.com'\n", "driver.get(url)\n", "\n", "\n", "elem = driver.find_element(By.XPATH, '//input')\n", "\n", "elem.send_keys(\"Tottenham Football Club\")\n", "\n", "#elem = driver.find_element(By.XPATH, '//input[@name = \"btnI\"]')\n", "elem.send_keys(Keys.ENTER)\n", "driver.current_url" ], "metadata": { "id": "S-CZZtDUjqD1", "outputId": "9e2ebd08-a81f-4fd5-f9ae-ae5cdfc921e0", "colab": { "base_uri": "https://localhost:8080/", "height": 54 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" }, "text/plain": [ "'https://www.google.com/search?q=Tottenham+Football+Club&source=hp&ei=QAT7YZXeJYDQytMPw8Ws4AI&iflsig=AHkkrS4AAAAAYfsSUMHkfn7vB6MqyKlrFkHY89DtlTuv&ved=0ahUKEwiV_outh-L1AhUAqHIEHcMiCywQ4dUDCAk&uact=5&oq=Tottenham+Football+Club&gs_lcp=Cgdnd3Mtd2l6EANQAFhjYIQBaABwAHgAgAEAiAEAkgEAmAEAoAEB&sclient=gws-wiz'" ] }, "metadata": {}, "execution_count": 79 } ] }, { "cell_type": "code", "source": [ "from bs4 import BeautifulSoup\n", "soup = BeautifulSoup(driver.page_source)\n", "soup.title" ], "metadata": { "id": "d3n4mBq-lVWT", "outputId": "63cada08-b945-40b5-a68c-0214f3158ffe", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Tottenham Football Club - Google Search" ] }, "metadata": {}, "execution_count": 80 } ] }, { "cell_type": "markdown", "source": [ "The implicit wait did nothing for me. The best option seemed to be to do the `staleness_of` command. Waiting is hard!" ], "metadata": { "id": "PHQC6orqiSRS" } }, { "cell_type": "code", "source": [ "from selenium.webdriver.support.ui import WebDriverWait\n", "from selenium.webdriver.support.expected_conditions import staleness_of\n", "\n", "old_page = driver.find_element(By.XPATH,'//html')\n", "driver.find_element(By.PARTIAL_LINK_TEXT,'twitter').click()\n", "\n", "WebDriverWait(driver, 10).until(staleness_of(old_page))\n", "#driver.implicitly_wait(5)\n", "\n", "driver.title\n", "\n", "\n", "\n", "driver.current_url" ], "metadata": { "id": "4GtHXW7bnkWE", "outputId": "85eb5d37-b160-4729-dfbc-7c4e633f9f91", "colab": { "base_uri": "https://localhost:8080/", "height": 35 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" }, "text/plain": [ "'https://twitter.com/SpursOfficial?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor'" ] }, "metadata": {}, "execution_count": 81 } ] }, { "cell_type": "code", "source": [ "driver.title" ], "metadata": { "id": "KBriuL9idJb2", "outputId": "24e472d9-48f6-478e-a7f2-c80f6144bae9", "colab": { "base_uri": "https://localhost:8080/", "height": 35 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" }, "text/plain": [ "'Tottenham Hotspur (@SpursOfficial) / Twitter'" ] }, "metadata": {}, "execution_count": 82 } ] }, { "cell_type": "code", "source": [ "driver.current_url" ], "metadata": { "id": "3eT8Kn5JeCeq", "outputId": "0ddaccc9-7c8a-4ae9-87d9-3b16f99fd7d3", "colab": { "base_uri": "https://localhost:8080/", "height": 35 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" }, "text/plain": [ "'https://twitter.com/SpursOfficial?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor'" ] }, "metadata": {}, "execution_count": 83 } ] }, { "cell_type": "markdown", "source": [ "## Strings" ], "metadata": { "id": "QjQszVQ6Gbtb" } }, { "cell_type": "code", "source": [ "line = 'happy birthday to you\\n'\n", "\n", "print(line.capitalize() + line + line.replace(\"to you\",\"dear {}\".format(input(\"Enter the birthday celebrant's name: \"))) + line)" ], "metadata": { "id": "Y9Ur2hRre18V", "outputId": "a29aff1b-da12-4247-cdc2-2d145c3eddd2", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Enter the birthday celebrant's name: Nick\n", "Happy birthday to you\n", "happy birthday to you\n", "happy birthday dear Nick\n", "happy birthday to you\n", "\n" ] } ] }, { "cell_type": "code", "source": [ "" ], "metadata": { "id": "-pKlYIIAXVNK" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "## String Cleaning" ], "metadata": { "id": "YOxkdjbIW_xZ" } }, { "cell_type": "code", "source": [ "import requests\n", "import pandas as pa\n", "from bs4 import BeautifulSoup\n", "\n", "\n", "r = requests.get('https://en.wikipedia.org/wiki/List_of_highest_mountains_on_Earth')\n", "html_contents = r.text\n", "html_soup = BeautifulSoup(html_contents,\"lxml\")\n", "tables = html_soup.find_all('table',class_=\"wikitable\")\n", "\n", "df1 = pa.read_html(str(tables))[0]\n", "df1.columns = df1.columns.droplevel(0).droplevel(0)\n", "df1.head()" ], "metadata": { "id": "g5vD3P8-XG5K" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "cols = df1.columns.map(lambda s: re.sub(r\"\\[(.+)\\]\",\"\",s))\n", "\n", "cols" ], "metadata": { "id": "zahpUfXKXvZi", "outputId": "92b6befc-f53b-44a4-fd19-0a82b14b7326", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Index(['Rank', 'Mountain name(s)', 'm', 'ft', 'm', 'ft', 'Range',\n", " 'Coordinates', 'Parent mountain', '1st', 'y', 'n',\n", " 'Country (disputed claims in italics)'],\n", " dtype='object')" ] }, "metadata": {}, "execution_count": 29 } ] }, { "cell_type": "code", "source": [ "re.sub(r\"\\((.+)\\)\",\"\",cols[1])" ], "metadata": { "id": "Ctk6NwlJUjNt", "outputId": "f5954d2c-be2b-43e8-96c4-e6240a9a494f", "colab": { "base_uri": "https://localhost:8080/", "height": 36 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" }, "text/plain": [ "'Mountain name'" ] }, "metadata": {}, "execution_count": 31 } ] }, { "cell_type": "code", "source": [ "cols = cols.map(lambda s: re.sub(r\"\\((.+)\\)\",\"\",s))\n", "\n", "cols" ], "metadata": { "id": "Gh30jQNPVARt", "outputId": "783bf726-a38b-4a27-ae74-69e876114c89", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Index(['Rank', 'Mountain name', 'm', 'ft', 'm', 'ft', 'Range', 'Coordinates',\n", " 'Parent mountain', '1st', 'y', 'n', 'Country '],\n", " dtype='object')" ] }, "metadata": {}, "execution_count": 33 } ] }, { "cell_type": "code", "source": [ "re.sub(r\" \",\"_\",cols[1])" ], "metadata": { "id": "Cvlu066eVRPv", "outputId": "9dc0fd9c-daaf-44a2-eea4-d447e74b3286", "colab": { "base_uri": "https://localhost:8080/", "height": 36 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" }, "text/plain": [ "'Mountain_name'" ] }, "metadata": {}, "execution_count": 35 } ] }, { "cell_type": "code", "source": [ "cols = cols.map(lambda s: s.strip())\n", "cols" ], "metadata": { "id": "eS7YLsX2VrM1", "outputId": "7404c1f8-b4fe-444e-dedc-44313e75f5ec", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Index(['Rank', 'Mountain name', 'm', 'ft', 'm', 'ft', 'Range', 'Coordinates',\n", " 'Parent mountain', '1st', 'y', 'n', 'Country'],\n", " dtype='object')" ] }, "metadata": {}, "execution_count": 40 } ] }, { "cell_type": "code", "source": [ "cols = cols.map(lambda s: re.sub(r\" \",\"_\",s))\n", "\n", "cols" ], "metadata": { "id": "8miqBn41VX7g", "outputId": "d158e174-9a16-45d3-fffc-6d49b6fded39", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Index(['Rank', 'Mountain_name', 'm', 'ft', 'm', 'ft', 'Range', 'Coordinates',\n", " 'Parent_mountain', '1st', 'y', 'n', 'Country'],\n", " dtype='object')" ] }, "metadata": {}, "execution_count": 42 } ] }, { "cell_type": "code", "source": [ "cols = cols.map(lambda s : s.lower())\n", "\n", "cols" ], "metadata": { "id": "MB0qoae2VnKR", "outputId": "3337fef9-3f04-413b-fcd6-b2f03305f38f", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Index(['rank', 'mountain_name', 'm', 'ft', 'm', 'ft', 'range', 'coordinates',\n", " 'parent_mountain', '1st', 'y', 'n', 'country'],\n", " dtype='object')" ] }, "metadata": {}, "execution_count": 48 } ] }, { "cell_type": "code", "source": [ "df1.columns = cols" ], "metadata": { "id": "cjO201-iWHag" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "df1.head()" ], "metadata": { "id": "PaZ0z-B3WUOz", "outputId": "1b78be47-d653-47f8-82ee-43c2ecd07f67", "colab": { "base_uri": "https://localhost:8080/", "height": 337 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
rankmountain_namemftmftrangecoordinatesparent_mountain1styncountry
01.mw-parser-output ul.cslist,.mw-parser-output ...884829,029[dp 7]884829029Mahalangur Himalaya.mw-parser-output .geo-default,.mw-parser-outp...1953145121NepalChina
12K2861128251402013190Baltoro Karakoram35°52′53″N 76°30′48″E / 35.88139°N 76.51333°EMount Everest19544544Pakistan[dp 8]China[12]
23Kangchenjunga858628169392212867Kangchenjunga Himalaya27°42′12″N 88°08′51″E / 27.70333°N 88.14750°E *Mount Everest19553824NepalIndia
34Lhotse8516279406102000Mahalangur Himalaya27°57′42″N 86°55′59″E / 27.96167°N 86.93306°EMount Everest19562626NepalChina
45Makalu84852783823787802Mahalangur Himalaya27°53′23″N 87°05′20″E / 27.88972°N 87.08889°EMount Everest195545NepalChina
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " rank ... country\n", "0 1 ... NepalChina\n", "1 2 ... Pakistan[dp 8]China[12]\n", "2 3 ... NepalIndia\n", "3 4 ... NepalChina\n", "4 5 ... NepalChina\n", "\n", "[5 rows x 13 columns]" ] }, "metadata": {}, "execution_count": 50 } ] }, { "cell_type": "markdown", "source": [ "## Strings and Regular Expressions Country Column Clean" ], "metadata": { "id": "kSDzhcJwWr_g" } }, { "cell_type": "code", "source": [ "r = requests.get('https://en.wikipedia.org/wiki/List_of_highest_mountains_on_Earth')\n", "html_contents = r.text\n", "html_soup = BeautifulSoup(html_contents,\"lxml\")\n", "tables = html_soup.find_all('table',class_=\"wikitable\")\n", "\n", "df1 = pa.read_html(str(tables))[0]\n", "df1.columns = df1.columns.droplevel(0).droplevel(0)\n", "df1.head()" ], "metadata": { "id": "p_LK4kjBXcyT" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "df1.iloc[:,-1]" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "MA7M3vHoPKF_", "outputId": "06c739ec-84b1-49fd-92d5-714c680a6a77" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0 NepalChina\n", "1 Pakistan[dp 8]China[12]\n", "2 NepalIndia\n", "3 NepalChina\n", "4 NepalChina\n", " ... \n", "115 China\n", "116 NepalChina\n", "117 BhutanChina[dp 18]\n", "118 IndiaChina[dp 10][dp 11]'[dp 12]\n", "119 Pakistan[dp 8]\n", "Name: Country (disputed claims in italics), Length: 120, dtype: object" ] }, "metadata": {}, "execution_count": 51 } ] }, { "cell_type": "code", "source": [ "newcol = df1.iloc[:,-1]\n", "\n", "newcol = newcol.apply(lambda x: re.sub(r\"\\[(.+?)\\]\",\"\",x))\n", "\n" ], "metadata": { "id": "vrRRuJ_SRMOd" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "newcol" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "RDntueueSLYk", "outputId": "f6fa09d9-a3e4-4694-b6ee-0b9eacf7e46a" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0 NepalChina\n", "1 PakistanChina\n", "2 NepalIndia\n", "3 NepalChina\n", "4 NepalChina\n", " ... \n", "115 China\n", "116 NepalChina\n", "117 BhutanChina\n", "118 IndiaChina'\n", "119 Pakistan\n", "Name: Country (disputed claims in italics), Length: 120, dtype: object" ] }, "metadata": {}, "execution_count": 53 } ] }, { "cell_type": "markdown", "source": [ "I still see an unexpected character, I'll remove that one too." ], "metadata": { "id": "HI3HDKcQSqv7" } }, { "cell_type": "code", "source": [ "newcol = newcol.apply(lambda x: re.sub(r\"[^A-z]\",\"\",x))\n", "\n", "newcol" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "jVvQEp1eSOxt", "outputId": "a37c4a8e-83df-4233-bffb-5ea110537f37" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0 NepalChina\n", "1 PakistanChina\n", "2 NepalIndia\n", "3 NepalChina\n", "4 NepalChina\n", " ... \n", "115 China\n", "116 NepalChina\n", "117 BhutanChina\n", "118 IndiaChina\n", "119 Pakistan\n", "Name: Country (disputed claims in italics), Length: 120, dtype: object" ] }, "metadata": {}, "execution_count": 54 } ] }, { "cell_type": "code", "source": [ "newcol = newcol.apply(lambda x: re.findall(r\"[A-Z][a-z]*\",x))\n", "newcol" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "RHDMyJFgTfDz", "outputId": "ca2cae5c-f110-4aa7-8a29-8e3bc54a3547" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0 [Nepal, China]\n", "1 [Pakistan, China]\n", "2 [Nepal, India]\n", "3 [Nepal, China]\n", "4 [Nepal, China]\n", " ... \n", "115 [China]\n", "116 [Nepal, China]\n", "117 [Bhutan, China]\n", "118 [India, China]\n", "119 [Pakistan]\n", "Name: Country (disputed claims in italics), Length: 120, dtype: object" ] }, "metadata": {}, "execution_count": 55 } ] }, { "cell_type": "markdown", "source": [ "I need to find the most number of countries meeting. I find the length of each and find the max of that." ], "metadata": { "id": "qgRqzdT_WH1l" } }, { "cell_type": "code", "source": [ "max(newcol.apply(lambda x: len(x)))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "rsY5L_5NVylo", "outputId": "99d4cfaf-13fb-4bcd-a980-69598dcfee08" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "3" ] }, "metadata": {}, "execution_count": 56 } ] }, { "cell_type": "markdown", "source": [ "I know there are 3 possible countries. I'll make three columns with the possible answers" ], "metadata": { "id": "Kvul7NQUWHDV" } }, { "cell_type": "code", "source": [ "newcols = pa.DataFrame(newcol.to_list(), columns = ['country1','country2','country3'])\n", "\n", "newcols" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 424 }, "id": "AL4NSwdrT3be", "outputId": "dd3c7435-b660-42c4-df07-2e1a9498ebc4" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
country1country2country3
0NepalChinaNone
1PakistanChinaNone
2NepalIndiaNone
3NepalChinaNone
4NepalChinaNone
............
115ChinaNoneNone
116NepalChinaNone
117BhutanChinaNone
118IndiaChinaNone
119PakistanNoneNone
\n", "

120 rows × 3 columns

\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " country1 country2 country3\n", "0 Nepal China None\n", "1 Pakistan China None\n", "2 Nepal India None\n", "3 Nepal China None\n", "4 Nepal China None\n", ".. ... ... ...\n", "115 China None None\n", "116 Nepal China None\n", "117 Bhutan China None\n", "118 India China None\n", "119 Pakistan None None\n", "\n", "[120 rows x 3 columns]" ] }, "metadata": {}, "execution_count": 43 } ] }, { "cell_type": "markdown", "source": [ "I'll add that back into the dataframe using `concat` on `axis = 1`" ], "metadata": { "id": "w3T3k8YVWZIu" } }, { "cell_type": "code", "source": [ "df1 = pa.concat([df1,newcols], axis = 1)\n", "\n", "df1.head()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 355 }, "id": "Y4EX7-V1Uh24", "outputId": "88fac950-bac5-4e34-c9c7-208e300acd34" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Rank[dp 1]Mountain name(s)mftmftRangeCoordinates[dp 4]Parent mountain[dp 5]1stynCountry (disputed claims in italics)country1country2country3
01.mw-parser-output ul.cslist,.mw-parser-output ...884829,029[dp 7]884829029Mahalangur Himalaya.mw-parser-output .geo-default,.mw-parser-outp...1953145121NepalChinaNepalChinaNone
12K2861128251402013190Baltoro Karakoram35°52′53″N 76°30′48″E / 35.88139°N 76.51333°EMount Everest19544544Pakistan[dp 8]China[12]PakistanChinaNone
23Kangchenjunga858628169392212867Kangchenjunga Himalaya27°42′12″N 88°08′51″E / 27.70333°N 88.14750°E *Mount Everest19553824NepalIndiaNepalIndiaNone
34Lhotse8516279406102000Mahalangur Himalaya27°57′42″N 86°55′59″E / 27.96167°N 86.93306°EMount Everest19562626NepalChinaNepalChinaNone
45Makalu84852783823787802Mahalangur Himalaya27°53′23″N 87°05′20″E / 27.88972°N 87.08889°EMount Everest195545NepalChinaNepalChinaNone
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " Rank[dp 1] ... country3\n", "0 1 ... None\n", "1 2 ... None\n", "2 3 ... None\n", "3 4 ... None\n", "4 5 ... None\n", "\n", "[5 rows x 16 columns]" ] }, "metadata": {}, "execution_count": 48 } ] }, { "cell_type": "code", "source": [ "" ], "metadata": { "id": "tai4FfEAVDVX" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "## Dates My Solutions" ], "metadata": { "id": "zquCSKdMF1mV" } }, { "cell_type": "code", "source": [ "iot = pa.read_csv('https://raw.githubusercontent.com/nurfnick/Data_Viz/main/IOT-temp.csv')\n", "\n", "iot.head()" ], "metadata": { "id": "FJLAiDsmyAsT", "outputId": "e7c576f8-564b-4432-91ef-927fc5e11d09", "colab": { "base_uri": "https://localhost:8080/", "height": 206 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idroom_id/idnoted_datetempout/in
0__export__.temp_log_196134_bd201015Room Admin08-12-2018 09:3029In
1__export__.temp_log_196131_7bca51bcRoom Admin08-12-2018 09:3029In
2__export__.temp_log_196127_522915e3Room Admin08-12-2018 09:2941Out
3__export__.temp_log_196128_be0919cfRoom Admin08-12-2018 09:2941Out
4__export__.temp_log_196126_d30b72fbRoom Admin08-12-2018 09:2931In
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " id room_id/id ... temp out/in\n", "0 __export__.temp_log_196134_bd201015 Room Admin ... 29 In\n", "1 __export__.temp_log_196131_7bca51bc Room Admin ... 29 In\n", "2 __export__.temp_log_196127_522915e3 Room Admin ... 41 Out\n", "3 __export__.temp_log_196128_be0919cf Room Admin ... 41 Out\n", "4 __export__.temp_log_196126_d30b72fb Room Admin ... 31 In\n", "\n", "[5 rows x 5 columns]" ] }, "metadata": {}, "execution_count": 4 } ] }, { "cell_type": "code", "source": [ "iot.shape" ], "metadata": { "id": "sippBaqe0AL9", "outputId": "1bd9f1d2-d1ed-45ef-973c-cad90a32713c", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(97606, 5)" ] }, "metadata": {}, "execution_count": 5 } ] }, { "cell_type": "code", "source": [ "iot.noted_date = pa.to_datetime(iot.noted_date,format = '%d-%m-%Y %H:%M')" ], "metadata": { "id": "cMPb3sayyoYu" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "iot.noted_date.max()" ], "metadata": { "id": "vdO4BYnRl6o4", "outputId": "a0db0ee8-3ba2-47f8-d50a-8330e240509a", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Timestamp('2018-12-08 09:30:00')" ] }, "metadata": {}, "execution_count": 7 } ] }, { "cell_type": "code", "source": [ "iot.noted_date.min()" ], "metadata": { "id": "344cH2QVyS1S", "outputId": "576f0802-e1dc-4fec-c816-f5df33c8b54f", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Timestamp('2018-07-28 07:06:00')" ] }, "metadata": {}, "execution_count": 8 } ] }, { "cell_type": "code", "source": [ "(iot.noted_date.shift() - iot.noted_date).max()" ], "metadata": { "id": "aeZTFxgZyYCQ", "outputId": "e752d0d8-e24b-486b-bcc7-5be67393c86a", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Timedelta('11 days 13:38:00')" ] }, "metadata": {}, "execution_count": 9 } ] }, { "cell_type": "code", "source": [ "(iot.noted_date.shift() - iot.noted_date).idxmax()" ], "metadata": { "id": "5XdeB7CUyk50", "outputId": "589acd84-e4de-46cd-deac-40c11d3ab9ff", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "14038" ] }, "metadata": {}, "execution_count": 10 } ] }, { "cell_type": "markdown", "source": [ "That is a bigger jump than expected! The device must have been turned off or stopped outputting for a bit. Let's see where that happened. " ], "metadata": { "id": "k9d0fmbP1qID" } }, { "cell_type": "code", "source": [ "iot.iloc[14030:14050,:]" ], "metadata": { "id": "oFbcWrce1Bx5", "outputId": "ebf5c3f3-c835-413c-ceda-f6fe1dda8014", "colab": { "base_uri": "https://localhost:8080/", "height": 677 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idroom_id/idnoted_datetempout/in
14030__export__.temp_log_102425_e0206705Room Admin2018-11-17 10:35:0046Out
14031__export__.temp_log_142054_05d7f31eRoom Admin2018-11-17 10:31:0045Out
14032__export__.temp_log_132828_a446ef24Room Admin2018-11-17 10:29:0044Out
14033__export__.temp_log_130368_429948b8Room Admin2018-11-17 10:19:0045Out
14034__export__.temp_log_129679_c7815c3aRoom Admin2018-11-17 10:17:0046Out
14035__export__.temp_log_115558_f8f70efdRoom Admin2018-11-17 10:09:0045Out
14036__export__.temp_log_134401_87b1348cRoom Admin2018-11-17 09:43:0046Out
14037__export__.temp_log_134969_a8fe035cRoom Admin2018-11-17 09:41:0045Out
14038__export__.temp_log_105931_d412d864Room Admin2018-11-05 20:03:0041Out
14039__export__.temp_log_137841_5842365fRoom Admin2018-11-05 20:01:0041Out
14040__export__.temp_log_116451_f584e59dRoom Admin2018-11-05 19:59:0040Out
14041__export__.temp_log_90838_35fed2fdRoom Admin2018-11-05 19:57:0041Out
14042__export__.temp_log_100510_81c084b2Room Admin2018-11-05 19:56:0032In
14043__export__.temp_log_147095_21d94fe0Room Admin2018-11-05 19:53:0041Out
14044__export__.temp_log_110222_030f5157Room Admin2018-11-05 19:51:0041Out
14045__export__.temp_log_148651_5199c024Room Admin2018-11-05 19:47:0042Out
14046__export__.temp_log_108041_1583682cRoom Admin2018-11-05 19:44:0032In
14047__export__.temp_log_108105_9c42994bRoom Admin2018-11-05 19:43:0041Out
14048__export__.temp_log_129004_bf8c5c0cRoom Admin2018-11-05 19:41:0041Out
14049__export__.temp_log_111575_de593acdRoom Admin2018-11-05 19:39:0041Out
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " id room_id/id ... temp out/in\n", "14030 __export__.temp_log_102425_e0206705 Room Admin ... 46 Out\n", "14031 __export__.temp_log_142054_05d7f31e Room Admin ... 45 Out\n", "14032 __export__.temp_log_132828_a446ef24 Room Admin ... 44 Out\n", "14033 __export__.temp_log_130368_429948b8 Room Admin ... 45 Out\n", "14034 __export__.temp_log_129679_c7815c3a Room Admin ... 46 Out\n", "14035 __export__.temp_log_115558_f8f70efd Room Admin ... 45 Out\n", "14036 __export__.temp_log_134401_87b1348c Room Admin ... 46 Out\n", "14037 __export__.temp_log_134969_a8fe035c Room Admin ... 45 Out\n", "14038 __export__.temp_log_105931_d412d864 Room Admin ... 41 Out\n", "14039 __export__.temp_log_137841_5842365f Room Admin ... 41 Out\n", "14040 __export__.temp_log_116451_f584e59d Room Admin ... 40 Out\n", "14041 __export__.temp_log_90838_35fed2fd Room Admin ... 41 Out\n", "14042 __export__.temp_log_100510_81c084b2 Room Admin ... 32 In\n", "14043 __export__.temp_log_147095_21d94fe0 Room Admin ... 41 Out\n", "14044 __export__.temp_log_110222_030f5157 Room Admin ... 41 Out\n", "14045 __export__.temp_log_148651_5199c024 Room Admin ... 42 Out\n", "14046 __export__.temp_log_108041_1583682c Room Admin ... 32 In\n", "14047 __export__.temp_log_108105_9c42994b Room Admin ... 41 Out\n", "14048 __export__.temp_log_129004_bf8c5c0c Room Admin ... 41 Out\n", "14049 __export__.temp_log_111575_de593acd Room Admin ... 41 Out\n", "\n", "[20 rows x 5 columns]" ] }, "metadata": {}, "execution_count": 11 } ] }, { "cell_type": "code", "source": [ "iot.noted_date.mean()" ], "metadata": { "id": "qHEtiuWK1fjK", "outputId": "e546cda5-a743-4d98-a471-ff0268f9a50e", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Timestamp('2018-10-07 05:10:38.821178880')" ] }, "metadata": {}, "execution_count": 12 } ] }, { "cell_type": "code", "source": [ "iot[iot.noted_date.dt.date == pa.Timestamp('09-11-2018')]" ], "metadata": { "id": "rUg-ofVE2Pda", "outputId": "efcd2ce7-1ffc-4ee0-d58e-c0c506a2bcd0", "colab": { "base_uri": "https://localhost:8080/", "height": 481 } }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/usr/local/lib/python3.7/dist-packages/pandas/core/ops/array_ops.py:73: FutureWarning: Comparison of Timestamp with datetime.date is deprecated in order to match the standard library behavior. In a future version these will be considered non-comparable.Use 'ts == pd.Timestamp(date)' or 'ts.date() == date' instead.\n", " result = libops.scalar_compare(x.ravel(), y, op)\n" ] }, { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idroom_id/idnoted_datetempout/in
63867__export__.temp_log_13951_c7fd4bf2Room Admin2018-09-11 23:59:0028Out
63868__export__.temp_log_125783_87502329Room Admin2018-09-11 23:59:0028In
63869__export__.temp_log_117810_921a0b1dRoom Admin2018-09-11 23:59:0027In
63870__export__.temp_log_13950_419fb8ecRoom Admin2018-09-11 23:59:0027Out
63871__export__.temp_log_13945_96e421eaRoom Admin2018-09-11 23:58:0027Out
..................
73364__export__.temp_log_118244_25e68d24Room Admin2018-09-11 07:38:0033Out
73365__export__.temp_log_135028_912344cfRoom Admin2018-09-11 07:38:0033In
73366__export__.temp_log_141419_d999d57aRoom Admin2018-09-11 07:38:0032Out
73367__export__.temp_log_112252_eee53ad5Room Admin2018-09-11 07:38:0032Out
73368__export__.temp_log_91587_c5eb7913Room Admin2018-09-11 07:38:0033Out
\n", "

9502 rows × 5 columns

\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " id room_id/id ... temp out/in\n", "63867 __export__.temp_log_13951_c7fd4bf2 Room Admin ... 28 Out\n", "63868 __export__.temp_log_125783_87502329 Room Admin ... 28 In\n", "63869 __export__.temp_log_117810_921a0b1d Room Admin ... 27 In\n", "63870 __export__.temp_log_13950_419fb8ec Room Admin ... 27 Out\n", "63871 __export__.temp_log_13945_96e421ea Room Admin ... 27 Out\n", "... ... ... ... ... ...\n", "73364 __export__.temp_log_118244_25e68d24 Room Admin ... 33 Out\n", "73365 __export__.temp_log_135028_912344cf Room Admin ... 33 In\n", "73366 __export__.temp_log_141419_d999d57a Room Admin ... 32 Out\n", "73367 __export__.temp_log_112252_eee53ad5 Room Admin ... 32 Out\n", "73368 __export__.temp_log_91587_c5eb7913 Room Admin ... 33 Out\n", "\n", "[9502 rows x 5 columns]" ] }, "metadata": {}, "execution_count": 13 } ] }, { "cell_type": "code", "source": [ "start = pa.Timestamp('09-11-2018')\n", "end = pa.Timestamp('09-12-2018')\n", "\n", "\n", "iot[iot.noted_date.between(start,end)]" ], "metadata": { "id": "hjWRITKiCGcL", "outputId": "36ad95e5-e94f-4535-a442-1eefc00c9eb0", "colab": { "base_uri": "https://localhost:8080/", "height": 424 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idroom_id/idnoted_datetempout/in
63853__export__.temp_log_113659_fad18b77Room Admin2018-09-12 00:00:0027Out
63854__export__.temp_log_13965_2d758a5bRoom Admin2018-09-12 00:00:0027Out
63855__export__.temp_log_148141_1ed4c048Room Admin2018-09-12 00:00:0027Out
63856__export__.temp_log_13964_b6650f58Room Admin2018-09-12 00:00:0027Out
63857__export__.temp_log_112729_9ad42af4Room Admin2018-09-12 00:00:0027Out
..................
73364__export__.temp_log_118244_25e68d24Room Admin2018-09-11 07:38:0033Out
73365__export__.temp_log_135028_912344cfRoom Admin2018-09-11 07:38:0033In
73366__export__.temp_log_141419_d999d57aRoom Admin2018-09-11 07:38:0032Out
73367__export__.temp_log_112252_eee53ad5Room Admin2018-09-11 07:38:0032Out
73368__export__.temp_log_91587_c5eb7913Room Admin2018-09-11 07:38:0033Out
\n", "

9516 rows × 5 columns

\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " id room_id/id ... temp out/in\n", "63853 __export__.temp_log_113659_fad18b77 Room Admin ... 27 Out\n", "63854 __export__.temp_log_13965_2d758a5b Room Admin ... 27 Out\n", "63855 __export__.temp_log_148141_1ed4c048 Room Admin ... 27 Out\n", "63856 __export__.temp_log_13964_b6650f58 Room Admin ... 27 Out\n", "63857 __export__.temp_log_112729_9ad42af4 Room Admin ... 27 Out\n", "... ... ... ... ... ...\n", "73364 __export__.temp_log_118244_25e68d24 Room Admin ... 33 Out\n", "73365 __export__.temp_log_135028_912344cf Room Admin ... 33 In\n", "73366 __export__.temp_log_141419_d999d57a Room Admin ... 32 Out\n", "73367 __export__.temp_log_112252_eee53ad5 Room Admin ... 32 Out\n", "73368 __export__.temp_log_91587_c5eb7913 Room Admin ... 33 Out\n", "\n", "[9516 rows x 5 columns]" ] }, "metadata": {}, "execution_count": 14 } ] }, { "cell_type": "markdown", "source": [ "I tried for awhile to get around the deprecation warning and this was the best I could come up with. It does give me the first few readings that happen exactly at midnight. I am okay with that..." ], "metadata": { "id": "d_HpDHyDFG5y" } }, { "cell_type": "code", "source": [ "iot[(iot.noted_date.between(start,end))& (iot['out/in'] == 'Out')].temp.mean()" ], "metadata": { "id": "jNe3mqVQC6mC", "outputId": "4f1449f1-47d4-459f-ad18-2c5f0bb73745", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "30.051679232350924" ] }, "metadata": {}, "execution_count": 15 } ] }, { "cell_type": "markdown", "source": [ "Actually I can fix that by not allowing the the inclusion of the right endpoint." ], "metadata": { "id": "zRKdaaG3K3vk" } }, { "cell_type": "code", "source": [ "iot[iot.noted_date.between(start,end, inclusive = 'left')]" ], "metadata": { "id": "Ffln9otmFvaf", "colab": { "base_uri": "https://localhost:8080/", "height": 424 }, "outputId": "60a220f3-7795-4470-8a4f-2fb5b590147f" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idroom_id/idnoted_datetempout/in
63867__export__.temp_log_13951_c7fd4bf2Room Admin2018-09-11 23:59:0028Out
63868__export__.temp_log_125783_87502329Room Admin2018-09-11 23:59:0028In
63869__export__.temp_log_117810_921a0b1dRoom Admin2018-09-11 23:59:0027In
63870__export__.temp_log_13950_419fb8ecRoom Admin2018-09-11 23:59:0027Out
63871__export__.temp_log_13945_96e421eaRoom Admin2018-09-11 23:58:0027Out
..................
73364__export__.temp_log_118244_25e68d24Room Admin2018-09-11 07:38:0033Out
73365__export__.temp_log_135028_912344cfRoom Admin2018-09-11 07:38:0033In
73366__export__.temp_log_141419_d999d57aRoom Admin2018-09-11 07:38:0032Out
73367__export__.temp_log_112252_eee53ad5Room Admin2018-09-11 07:38:0032Out
73368__export__.temp_log_91587_c5eb7913Room Admin2018-09-11 07:38:0033Out
\n", "

9502 rows × 5 columns

\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " id room_id/id ... temp out/in\n", "63867 __export__.temp_log_13951_c7fd4bf2 Room Admin ... 28 Out\n", "63868 __export__.temp_log_125783_87502329 Room Admin ... 28 In\n", "63869 __export__.temp_log_117810_921a0b1d Room Admin ... 27 In\n", "63870 __export__.temp_log_13950_419fb8ec Room Admin ... 27 Out\n", "63871 __export__.temp_log_13945_96e421ea Room Admin ... 27 Out\n", "... ... ... ... ... ...\n", "73364 __export__.temp_log_118244_25e68d24 Room Admin ... 33 Out\n", "73365 __export__.temp_log_135028_912344cf Room Admin ... 33 In\n", "73366 __export__.temp_log_141419_d999d57a Room Admin ... 32 Out\n", "73367 __export__.temp_log_112252_eee53ad5 Room Admin ... 32 Out\n", "73368 __export__.temp_log_91587_c5eb7913 Room Admin ... 33 Out\n", "\n", "[9502 rows x 5 columns]" ] }, "metadata": {}, "execution_count": 16 } ] }, { "cell_type": "code", "source": [ "iot[(iot.noted_date.between(start,end, inclusive = \"left\"))& (iot['out/in'] == 'Out')].temp.mean()" ], "metadata": { "id": "aPy9GSJzLTxS", "outputId": "9eecdf49-3494-4bcc-b340-76167004ef8b", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "30.057547040241726" ] }, "metadata": {}, "execution_count": 26 } ] }, { "cell_type": "markdown", "source": [ "I was right not to worry about that shifting the average too much..." ], "metadata": { "id": "okY_VU00MAOh" } }, { "cell_type": "code", "source": [ "" ], "metadata": { "id": "tso3_C-SL_DD" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "## Integers and Floats" ], "metadata": { "id": "MKFSKmoQxivC" } }, { "cell_type": "code", "source": [ "df = pa.read_csv('https://raw.githubusercontent.com/nurfnick/Data_Viz/main/iris.csv')\n", "\n", "df.head()" ], "metadata": { "id": "bLqGe8ByxmTO", "outputId": "550c5b38-320b-4138-cbba-b2171cccbd64", "colab": { "base_uri": "https://localhost:8080/", "height": 206 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SepalLengthSepalWidthPedalLengthPedalWidthClass
05.13.51.40.2Iris-setosa
14.93.01.40.2Iris-setosa
24.73.21.30.2Iris-setosa
34.63.11.50.2Iris-setosa
45.03.61.40.2Iris-setosa
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " SepalLength SepalWidth PedalLength PedalWidth 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" ] }, "metadata": {}, "execution_count": 2 } ] }, { "cell_type": "code", "source": [ "df.SepalLength.mean()" ], "metadata": { "id": "nrfWcIFDx1VN", "outputId": "62611c0d-2b23-4129-8d2b-6d495e49a6b0", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "5.843333333333335" ] }, "metadata": {}, "execution_count": 3 } ] }, { "cell_type": "code", "source": [ "df.SepalLength.astype('int').mean()" ], "metadata": { "id": "rd3aj2Ihx698", "outputId": "32c92de2-226c-48cf-95a3-a86f15f6cf42", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "5.386666666666667" ] }, "metadata": {}, "execution_count": 4 } ] }, { "cell_type": "code", "source": [ "df.groupby('Class').agg('mean')" ], "metadata": { "id": "n_YKxwuSyBQO", "outputId": "f3fa24f1-341c-4b2c-d9ec-ff78995c8f30", "colab": { "base_uri": "https://localhost:8080/", "height": 175 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SepalLengthSepalWidthPedalLengthPedalWidth
Class
Iris-setosa5.0063.4181.4640.244
Iris-versicolor5.9362.7704.2601.326
Iris-virginica6.5882.9745.5522.026
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " SepalLength SepalWidth PedalLength PedalWidth\n", "Class \n", "Iris-setosa 5.006 3.418 1.464 0.244\n", "Iris-versicolor 5.936 2.770 4.260 1.326\n", "Iris-virginica 6.588 2.974 5.552 2.026" ] }, "metadata": {}, "execution_count": 5 } ] }, { "cell_type": "markdown", "source": [ "Cannot just convert a groupby!\n", "```\n", "df.groupby('Class').astype('int').agg('mean')\n", "```" ], "metadata": { "id": "rlHiLuq8yWMa" } }, { "cell_type": "code", "source": [ "df2 = df[['PedalLength','PedalWidth','SepalLength','SepalWidth']].astype('int')" ], "metadata": { "id": "OxNc2EBtyUYS" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "df2 = pa.concat([df2,df.Class],axis = 1)\n", "\n", "df2.head()" ], "metadata": { "id": "uu6k_9GSyky3", "outputId": "354709f1-e041-4cb4-dbcd-af8467e767f1", "colab": { "base_uri": "https://localhost:8080/", "height": 206 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PedalLengthPedalWidthSepalLengthSepalWidthClass
01053Iris-setosa
11043Iris-setosa
21043Iris-setosa
31043Iris-setosa
41053Iris-setosa
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " PedalLength PedalWidth SepalLength SepalWidth Class\n", "0 1 0 5 3 Iris-setosa\n", "1 1 0 4 3 Iris-setosa\n", "2 1 0 4 3 Iris-setosa\n", "3 1 0 4 3 Iris-setosa\n", "4 1 0 5 3 Iris-setosa" ] }, "metadata": {}, "execution_count": 20 } ] }, { "cell_type": "code", "source": [ "df2.groupby('Class').agg('mean')" ], "metadata": { "id": "8RWTJSujy_ea", "outputId": "6e14f9e0-39b3-42ad-947f-380dafb1fd5d", "colab": { "base_uri": "https://localhost:8080/", "height": 175 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PedalLengthPedalWidthSepalLengthSepalWidth
Class
Iris-setosa1.000.004.603.04
Iris-versicolor3.821.005.482.32
Iris-virginica5.101.586.082.58
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " PedalLength PedalWidth SepalLength SepalWidth\n", "Class \n", "Iris-setosa 1.00 0.00 4.60 3.04\n", "Iris-versicolor 3.82 1.00 5.48 2.32\n", "Iris-virginica 5.10 1.58 6.08 2.58" ] }, "metadata": {}, "execution_count": 21 } ] }, { "cell_type": "code", "source": [ "df.groupby('Class').agg(['mean','median','count','std'])" ], "metadata": { "id": "iedzZhFnzL3q", "outputId": "ed3d289d-17b5-49da-de8f-1a61062d0e2b", "colab": { "base_uri": "https://localhost:8080/", "height": 206 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SepalLengthSepalWidthPedalLengthPedalWidth
meanmediancountstdmeanmediancountstdmeanmediancountstdmeanmediancountstd
Class
Iris-setosa5.0065.0500.3524903.4183.4500.3810241.4641.50500.1735110.2440.2500.107210
Iris-versicolor5.9365.9500.5161712.7702.8500.3137984.2604.35500.4699111.3261.3500.197753
Iris-virginica6.5886.5500.6358802.9743.0500.3224975.5525.55500.5518952.0262.0500.274650
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " SepalLength ... PedalWidth \n", " mean median count ... median count std\n", "Class ... \n", "Iris-setosa 5.006 5.0 50 ... 0.2 50 0.107210\n", "Iris-versicolor 5.936 5.9 50 ... 1.3 50 0.197753\n", "Iris-virginica 6.588 6.5 50 ... 2.0 50 0.274650\n", "\n", "[3 rows x 16 columns]" ] }, "metadata": {}, "execution_count": 22 } ] }, { "cell_type": "code", "source": [ "" ], "metadata": { "id": "q5qWLemOz_RL" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "## Visualize Amounts" ], "metadata": { "id": "rC5sn77y_pe5" } }, { "cell_type": "code", "source": [ "import pandas as pa\n", "\n", "df3 = pa.read_csv('https://raw.githubusercontent.com/nurfnick/Data_Viz/main/AB_NYC_2019.csv')" ], "metadata": { "id": "s3xy7tR8_rYJ" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "!pip install --upgrade matplotlib" ], "metadata": { "id": "6V4J_LDpEq6H", "outputId": "21c28b97-c6c9-424d-f18e-f6d3a7bb823a", "colab": { "base_uri": "https://localhost:8080/", "height": 551 } }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (3.2.2)\n", "Collecting matplotlib\n", " Downloading matplotlib-3.5.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (11.2 MB)\n", "\u001b[K |████████████████████████████████| 11.2 MB 27.8 MB/s \n", "\u001b[?25hRequirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (1.4.0)\n", "Collecting fonttools>=4.22.0\n", " Downloading fonttools-4.31.2-py3-none-any.whl (899 kB)\n", "\u001b[K |████████████████████████████████| 899 kB 46.1 MB/s \n", "\u001b[?25hRequirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (7.1.2)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (2.8.2)\n", "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (1.21.5)\n", "Requirement already satisfied: pyparsing>=2.2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (3.0.7)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (21.3)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (0.11.0)\n", "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from kiwisolver>=1.0.1->matplotlib) (3.10.0.2)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.7->matplotlib) (1.15.0)\n", "Installing collected packages: fonttools, matplotlib\n", " Attempting uninstall: matplotlib\n", " Found existing installation: matplotlib 3.2.2\n", " Uninstalling matplotlib-3.2.2:\n", " Successfully uninstalled matplotlib-3.2.2\n", "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", "albumentations 0.1.12 requires imgaug<0.2.7,>=0.2.5, but you have imgaug 0.2.9 which is incompatible.\u001b[0m\n", "Successfully installed fonttools-4.31.2 matplotlib-3.5.1\n" ] }, { "output_type": "display_data", "data": { "application/vnd.colab-display-data+json": { "pip_warning": { "packages": [ "matplotlib", "mpl_toolkits" ] } } }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "ax = df3.groupby('neighbourhood_group').price.agg('max').plot.bar(ylim = [0,11100], \n", " title = 'Max Price by Borough', \n", " ylabel = 'Price in Dollars',\n", " rot = 45)\n", "\n", "for container in ax.containers:\n", " ax.bar_label(container)\n", "\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 340 }, "id": "hC2Q5y9y_yKm", "outputId": "cd152fdf-4a12-4d09-83fb-1ed80faf2dd3" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "\n", "\n", "df3.groupby(['neighbourhood_group','room_type']).price.agg('max').plot.bar(y = 'room_type')\n", "\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 448 }, "id": "5K5mHvJw_2zB", "outputId": "16017d4b-4012-4812-f1a3-eb435b89d98a" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 2 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "markdown", "source": [ "I had to do it with a pivot table to get around the double indexing of the groupby." ], "metadata": { "id": "J8BM12lSGa2x" } }, { "cell_type": "code", "source": [ "df_pivot = pa.pivot_table(\n", " df3, \n", " values=\"price\",\n", " index=\"neighbourhood_group\",\n", " columns=\"room_type\", \n", " aggfunc=max\n", ")\n", "\n", "df_pivot.plot.bar(title = 'Grouped by Borough')" ], "metadata": { "id": "0cHvEyJUF9YA", "outputId": "81832326-4a16-4b24-bc06-7195a555483b", "colab": { "base_uri": "https://localhost:8080/", "height": 370 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 3 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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FcBlkpaQ9Ancku5yC9AiLb8MGJ0eZyFwD0ki+Tvwk4jYUNW4zKz+uuaaa+jcuTNdu3alW7duvPDCCwC0a9eOlStX1vr5+/fvT6EOWa/WQ2cRcSVw5RbFb1PKaKCI+Ao4rYzjXANcU51YzKxmFU0qqtHjvXLM5G1uf+6555g+fTrz58+nUaNGrFy5km+++aba5y2e9rqmbNiwgYYNt7/R756OwszywvLly2nZsmXJvD0tW7Zkr732Ktk+fvx4unfvTlFRUclTvbNnz+awww7jkEMO4fDDD+eNN94A4Pbbb+eEE05gwIABHH300axZs4azzz6b3r17c8ghh/DQQ0nr9dq1axk2bBgdO3bkpJNOYu3ataXG1q5dO6644gq6d+/Ovffey913301RURFdunThiiuuKKlXVnnTpk0ZNWoUnTt35rvf/S6zZ8+mf//+dOjQgWnTptXshawiJwMzywsDBw7k/fff59vf/jYXXHABTz311GbbW7Zsyfz58zn//PO54YYbADjooIOYNWsWL774Ir/+9a/5+c9/XlJ//vz5TJ06laeeeoprrrmGAQMGMHv2bGbMmMGoUaNYs2YNN998M02aNGHRokVcffXVzJs3r8z4WrRowfz58+nbty9XXHEFTz75JAsWLGDOnDk8+OCDfPjhh6WWA6xZs4YBAwawcOFCdt11V/7rv/6Lxx57jAceeIBf/epXtXA1K89zE5lZXmjatCnz5s1j1qxZzJgxg6FDhzJmzBjOPPNMAE4++WQAevTowf333w8kE9KNGDGCxYsXI6lkwjmAY445hubNmwPJVNXTpk0rSSJfffUV7733Hk8//TQXXXQRkMxb1LVr1zLjGzp0KABz5syhf//+FI9oHD58OE8//TSSSi0/8cQT2WmnnUom0SsqKqJRo0bsuOOOnsLazKw0DRs2pH///vTv35+ioiImTZpUkgyKm48aNmxYMu3zL3/5S77zne/wwAMPsHTpUvr3719yrNxppyOC++67jwMPPLDKsVVnGusdd9yRZNClp7A2M9umN954Y7OFZRYsWEDbtm23uc/q1avZe+9kwoLbb7+9zHqDBg1i/PjxFE/M+eKLycR6ffv25a677gLg1Vdf5eWXXy43zt69e/PUU0+xcuVKNmzYwN13302/fv3KLK8vfGdglVPZRdLzfKZOyx9ffPEFF154IZ9++ik7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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "df_pivot" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 238 }, "id": "q8Eml6TbBTbK", "outputId": "cce966f6-37c3-4eea-ba89-43447f97a0da" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "room_type Entire home/apt Private room Shared room\n", "neighbourhood_group \n", "Bronx 1000 2500 800\n", "Brooklyn 10000 7500 725\n", "Manhattan 10000 9999 1000\n", "Queens 2600 10000 1800\n", "Staten Island 5000 300 150" ], "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
room_typeEntire home/aptPrivate roomShared room
neighbourhood_group
Bronx10002500800
Brooklyn100007500725
Manhattan1000099991000
Queens2600100001800
Staten Island5000300150
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ] }, "metadata": {}, "execution_count": 4 } ] }, { "cell_type": "code", "source": [ "df_pivot = pa.pivot_table(\n", " df3, \n", " values=\"price\",\n", " index=\"room_type\",\n", " columns=\"neighbourhood_group\", \n", " aggfunc=max\n", ")\n", "\n", "df_pivot.plot.bar(title = 'Grouped by Room Type')" ], "metadata": { "id": "m-iBbeVjGm1H", "outputId": "d4abddfc-faf4-4330-e024-1dca9b4d8ac0", "colab": { "base_uri": "https://localhost:8080/", "height": 384 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 5 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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gDVr1tC2bVtSU1Np0aIF69evL8NXXzaUDEQk7q1Zs4bWrVtnKzv11FNp3Lhx1uByx9qxYwf33nsv//rXv1i+fDlt2rThwQcf5NChQ4wYMYLZs2ezbNkyfvzjHzNmzJis4w4fPszixYuZMGECv/3tbwGYNGkSo0aNIj09naVLl9KgQYPSe7ERUTWRiJyQ3nvvPdauXUvHjh0B+Pbbb+nQoQMfffQRq1ev5vLLLwfgyJEj1K9fP+u43r17A8GQ1hkZGQB06NCB++67jy1bttC7d2+aNGlSti+mDCgZiEjcS05OPm52sD179vDFF19Qp04dPv7446zyzGGj3Z3LL7+c6dOnZztu1apVNGvWjHfffTfHa2UONR07pPUNN9xAu3btmDNnDldddRWPP/44l112WYm9vnigaiIRiXtdu3Zl//79PP3000Dwbf4Xv/gFw4cPJykpifT0dI4ePcrmzZtZvHgxAO3bt2fRokVs2LABCGY1+/jjjzn//PPZvn17VjI4dOgQa9asyfP6n3zyCWeffTYjR46kV69erFy5shRfbTSUDEQk7pkZzz33HLNnz6ZJkybUqVOHChUqMGbMGDp27EhSUhLJycmMHDmStLQ0AOrVq8fUqVO5/vrradGiBR06dGDdunWcfPLJzJ49m9GjR9OyZUtSU1N555138rz+rFmzaN68OampqaxevZr+/fuXxcsuUxrCujRoCOvEpSGsE8I777zD9ddfz3PPPZf14S/ZFXYIa7UZiEjCueiii9i0aVPUYZxQVE0kIiJKBiIiomQgIiIoGYiICEoGIiKCkoGIJIj77ruPZs2a0aJFC1JTU3n//fcBmDBhAvv378/3+ILuVxALFiygR48euW7PyMigefPmZXKtkqKupSJSaI/eMr9Ez3frpLyHdnj33Xd5+eWXWb58OZUrV2bHjh18++23QPAhf9NNN3HKKafkeY6C7lde6c5AROLe1q1bqVu3bta4QXXr1uWMM87g4Ycf5vPPP+fSSy/l0ksvBWDo0KG0adOGZs2aMXbsWIAc98tteOvGjRszduxY0tLSSElJYd26dXnGtnDhQlJTU0lNTaVVq1bs3bs32/aMjAw6depEWloaaWlpWU87L1iwgC5dunDdddfRtGlTbrzxRjIfAn7ttddo2rQpaWlp/POf/yyhdzFvSgYiEve6devG5s2bOe+88xg2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QEREUDIQERGUDEREBCUDERFByUBERFAyEBERlAxERAQlAxERQclARERQMhAREZQMREQEJQMREUHJQEREUDIQERGUDEREBCUDERFByUBERFAyEBERoFLUAUjBfdj0goLv3OXR0gtERE44ujMQERHdGciJr/Gdcwq8b0aVUgxEJI7pzkBERJQMREREyUBERFAyEBERlAxERAQlAxERoRjJwMwamtkbZrbWzNaY2aiw/DQzm2dm68PftcNyM7OHzWyDma00s7SYcw0I919vZgOK/7JERKQwinNncBj4hbsnA+2BW80sGbgT+Le7NwH+Ha4DXAk0CX+GAI9BkDyAsUA7oC0wNjOBiIhI2ShyMnD3re6+PFzeC3wInAn0AqaFu00DrgmXewFPe+A9oJaZ1QeuAOa5+5fu/hUwD+he1LhERKTwSqTNwMwaA62A94HT3X1ruOkL4PRw+Uxgc8xhW8Ky3MpFRKSMFDsZmFl14Fngp+6+J3abuzvgxb1GzLWGmNlSM1u6ffv2kjqtiEi5V6xkYGYnESSCZ9z9n2HxtrD6h/D3f8Pyz4CGMYc3CMtyKz+Ou0929zbu3qZevXrFCV1ERGIUpzeRAVOAD939wZhNLwKZPYIGAC/ElPcPexW1B3aH1UlzgW5mVjtsOO4WlomISBkpzqilHYEfAavMLD0s+yVwPzDLzH4CbAJ+GG57BbgK2ADsBwYBuPuXZnYPsCTc7253/7IYcYmISCEVORm4+9uA5bK5aw77O3BrLud6EniyqLGIiJSmwkwsdcG6D0sxktKjJ5BFRETJQERElAxERAQlAxERQclARERQMhAREZQMREQEJQMREUHJQEREUDIQERGUDEREBCUDERFByUBERFAyEBERlAxERITiTW5TbjS+c06h9s+oUkqBiEiJSZmWUuB9Z5ViHPFCdwYiIqJkICIiSgYiIoKSgYiIoAZkEYlzhenAkXH/1aUYyYlNyUBEThzjahZ836SzSi+OBKRqIhERUTIQERElAxERQclARERQMhAREZQMREQEJQMREUHJQERE0ENnInHp0VvmF3jfWyddVoqRSHmhOwMREVEyEBGROKomMrPuwESgIvCEu98fcUgiIoWWqFV8cXFnYGYVgUeBK4Fk4HozS442KhGR8iMukgHQFtjg7p+4+7fADKBXxDGJiJQb5u5Rx4CZXQd0d/ebw/Uf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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "markdown", "source": [ "## Visualize Histograms" ], "metadata": { "id": "xgWyK9JcImuU" } }, { "cell_type": "code", "source": [ "df3.price.plot.hist(title = \"Price of Air B&B in NYC with Outliers Removed\",bins = 100, xlim = [0,2000]).set_xlabel(\"Price\")\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 313 }, "id": "f60KO57zIpgA", "outputId": "eb24e245-fa4d-483e-91db-c798eae21209" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Text(0.5, 0, 'Price')" ] }, "metadata": {}, "execution_count": 23 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "df3.price.plot.hist(title = \"Price of Air B&B in NYC with Outliers\",bins = 100)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 299 }, "id": "ekeXR3lZJwK4", "outputId": "31dfe448-49e9-4aac-a8e1-992f3fab728b" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 16 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "df3.price.plot.hist(title = \"Price of Air B&B in NYC with Outliers\",bins = 100, logx = True)" ], "metadata": { "id": "7S8tgHexMGki", "outputId": "c0662076-548d-4671-fdcb-e7c34f1b8a44", "colab": { "base_uri": "https://localhost:8080/", "height": 303 } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 4 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "df3.groupby('neighbourhood_group').price.plot.hist(alpha = .7, bins = 100, xlim = [0,2000], legend = True, title = \"Distribution of Boroughs Pricing with Outliers Removed\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 410 }, "id": "NmehQrGCKGHA", "outputId": "42463758-a154-4fe4-8077-8a665a74d94f" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "neighbourhood_group\n", "Bronx AxesSubplot(0.125,0.125;0.775x0.755)\n", "Brooklyn AxesSubplot(0.125,0.125;0.775x0.755)\n", "Manhattan AxesSubplot(0.125,0.125;0.775x0.755)\n", "Queens AxesSubplot(0.125,0.125;0.775x0.755)\n", "Staten Island AxesSubplot(0.125,0.125;0.775x0.755)\n", "Name: price, dtype: object" ] }, "metadata": {}, "execution_count": 30 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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zp3L2LFjWbYseorL999/T9euXZkzZw6/+tWveOihhwA45phj+OCDD5g9ezb9+vXj73//Oy1btuSyyy7j97//PTk5ORx77LGcdtpp/OMf/yAnJ4eDDjqIvn37Mn36dObMmcMhhxzCI488kh/DihUreOedd5g0aRLXX389uwJd4xGRau+www4jNzeXp556it69excYt3btWgYMGMCiRYswM7Zu3Zo/rkePHjRo0ACArKwsli5dSvPmzdltt9045ZRTgOixBpMnTwYgLy+Pc845hxUrVrBly5b8Ry7szLx587jpppv47rvv2LBhAyeeeGL+uNNPP50aNWqQlZWVX7Oq7FTjEREBTjvtNK655poCzWwAf/rTnzjuuOOYN28eL7zwAps3b84fl3wz0OTHF9SuXZvoxvkFy4cMGcLgwYOZO3cuDz74YIFllWTgwIGMGDGCuXPnMmzYsGJj2FXuvakaj4gIcNFFF7H33nvTrl07pkyZkl++du3a/M4Go0aNKtc6kpc1evTo/PL69euzbt26Aq/Xr1+f/3r9+vU0adKErVu38sQTT8Te+SHdlHhEpNJIpftzRWnWrBlDhw7dofzaa69lwIAB3HbbbZx88snlWsfNN9/MWWedRcOGDTn++OP5/PPPATj11FM588wzef755/nXv/5Fv379uPTSS7nnnnsYP348t956K126dGHfffelS5cuBZLSrkiPRSgtPRZBJG30WITKR49FqITS8QO3TJ7ViYhkmjoXiIhIrJR4REQkVko8IiISKyUeERGJlRKPiIjESr3aRKTSWHbZ5WldXvMH7t/pNHl5eVx55ZUsWLCA7du307t3b+64444CdwSQ9FKNR0SqLXenb9++nH766SxatIhFixaxadOmHe40LemlxCMi1dabb75J3bp1ufDCC4Hovmp33XUXY8aMYcSIEQwe/NPv9k455ZT8W+m89tprHHnkkWRnZ3PWWWflP/Rt5syZHHvssXTs2JETTzyRFStWANC9e3euu+46OnfuzMEHH8zbb78NwPz58+ncuTPt27fnsMMOY9GiRTFufeYo8YhItTV//nw6duxYoGyvvfaiZcuW+Tf2LGz16tXcdtttvP7668yaNYtOnTpx5513snXrVoYMGcL48eOZOXMmF110ETfeeGP+fNu2bWPatGncfffd/PnPfwbggQce4KqrriInJ4cZ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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "df3.groupby('neighbourhood_group').price.plot.hist(alpha = .5, bins = 100, legend = True, title = \"Distribution of Boroughs Pricing loglog Scale\", logx = True, logy = True)\n", "\n", "plt.show()" ], "metadata": { "id": "LMI0yEK6MkF2", "outputId": "8a4fe102-3b71-4bc0-da7e-2636d4d4d873", "colab": { "base_uri": "https://localhost:8080/", "height": 285 } }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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K9Hp168fmzZt4vPPPwegefPmST2vadOmsb+zsrLYt28fADt27KCoqAiA7du307JlyxRHXDeko6awGOhiZp3MrAkwAphblQLcfZ67j23dolkkAYpI5lu9ejX79++nTZs2B60bOHAgjz76KADvv/8+//rXv+jatWuF5U2cOJFRo0bxy1/+kjFjxkQSc10Q9ZDUmQQdyG3NrAiY5O73m9l44DmCIakPuPvKKparmoKIHKSkTwGCK3ofeughsrKyDtruuuuuY9y4cXTv3p1DDjmEGTNmlKohlLVw4UIWL17Ma6+9RlZWFn/961958MEHueqqqyI7lnTJ6Hs09+nawd+a9l/pDkNSaOrhrdOyXzUf1dy7777LiSeemO4wpIzyzouZLXH3PuVtX+c6mkVEJH0yMimY2TAzm75l+850hyIiUq9k5GV97j4PmNena4f629vTUH24KD37VfORCJChNQUREYlGRtYUSkYftTuqBVO/XJbucERE6o2MrCmUXKfQrHnydxMSEZHKZWRSEBEpT1ZWFnl5efTs2ZP8/Hxef/31lJQ7Y8YMxo8ff9DyyZMn17spLzKy+UhEMkCq73WSxL02NHV2zWVkTaFkSOrOr/amOxQRqaOqM3V2ouXxnn766di8SiXWrl1Lfn5+7PEHH3wQe5yTk8OkSZPIz8+ne/furF69OsrDrrGMTJclQ1I7Hn+EhqSKSExNp86+9957E06pDTBnzhzuuOMO5s+fH0s4AMcddxytW7emoKCAvLy8g6bAaNu2LUuXLmXq1KlMmTKFP//5z7XzglRDRtYURETKU9OpsyuaUvull17itttu4+mnny6VEEpcc801PPjgg+zfv59Zs2Zx2WWXxdYNHz4cgN69e1NYWBjZ8aeCkoKI1EvVnTo7keOOO45t27aVqjnEu+iii3jmmWd46qmn6N27d6nZWUsm24ufiruuysjmo1TIeXFjukOQJBSeeXS6Q5AMlczU2d/61rdKTZ2daPnSpUvp2LEjt99+O8OHD+fxxx/npJNOKlVmdnY255xzDuPGjeP++++vrcNMuYxMCvEXr4mkQqpu7qPZVtOrplNnVzaldrdu3Xj00Ue55JJLmDdv3kHljho1ijlz5mT0rTozeursjscf4RNvP6daz1VNITPUWk2h08CUFNOQk4KmzoYpU6awZcsWfvWrX6U7lJiqTp2dkTUFEZG65jvf+Q5r164tNeIpEykpiIikwJw5c9IdQkpo9JGIiMQoKYiISExGJgVNcyEiEo2MTAqaOltEJBoZmRRERMpjZrFpKiCYEbVdu3YMHTq02mW2aFG166EWLFhQasruJ598klWrVlV7/7VNo49EJBKpuiCwRDLXgDRv3pwVK1awc+dOmjVrxgsvvED79u1TGkdlFixYQIsWLejfvz8QJIWhQ4eSm5tbq3FUl2oKIlKvnHfeeTz99NMAzJw5k5EjR8bWvfnmm/Tr149evXrRv39/3nvvPSC4ic7w4cMZMmQIXbp04YYbbihV5s0330zPnj057bTT+PTTTwGYN28ep556Kr169eLMM8/k008/pbCwkGnTpnHnnXeSl5fHwoULmTt3Lj/5yU/Iy8tj7dq13HfffZxyyin07NmTiy66iB07dgAwevRoJkyYQP/+/encuTNPPPFEbbxcB1FSEJF6ZcSIETz22GPs2rWLZcuWceqpp8bWdevWjUWLFvH222/zy1/+kp/+9KexdQUFBcyaNYvly5cza9YsNmzYAMBXX33FaaedxjvvvMM3v/lN7rvvPgC+8Y1v8I9//IO3336bESNG8Pvf/56cnByuvfZafvCDH1BQUMDpp5/OBRdcwO23305BQQHHHXccw4cPZ/HixbzzzjuceOKJpeZJ2rhxI6+++ipPPfUUN954Yy29YqWp+UhE6pUePXpQWFjIzJkzOe+880qt27JlC1deeSUffPABZsbevQdGMJ5xxhm0bt0agNzcXNavX8+xxx5LkyZNYn0SvXv35oUXXgCgqKiISy+9lI0bN7Jnz57YtNyVWbFiBbfccgtffvkl27dv55xzDkzV8+1vf5tGjRqRm5sbq5HUNtUURKTeueCCC/jxj39cqukI4Gc/+xmDBw9mxYoVzJs3j127dsXWxU98Fz/FdePGjTGzg5Zff/31jB8/nuXLl/OnP/2pVFkVGT16NPfccw/Lly9n0qRJCWNI17x0qimISL3zve99j8MOO4zu3buzYMGC2PItW7bEOp5nzJhRo33El/XQQw/Flrds2ZKtW7eWerxt27bY423btnH00Uezd+9eHn300VrvCK9MRtYUdPGaiFSkQ4cOTJgw4aDlN9xwAzfddBO9evWq8c1uJk+ezCWXXELv3r1p27ZtbPmwYcOYM2cOeXl5LFq0iBEjRnD77bfTq1cv1q5dy69+9StOPfVUBgwYQLdu3WoUQxQ0dbbUaZo6O3No6uy6qapTZ2dkTUFERKKhpCAiIjHqaBYB+HBRasppwM1HUj+opiAiIjFKCiIiEqPmI5EUqs4kcA15xJLUPaopiEi9UlRUxIUXXkiXLl3o3Lkz48ePZ/fu3ekOK2OopiAikfj8f+5JaXntrh9f6TbuzvDhwxk3bhx///vf2b9/P2PHjuWGG27gj3/8Y0rjqa9UUxCReuOll14iOzubq666CgjmKrrzzjt5+OGHueeeexg//kBiGTp0aGwKjOeff55+/fqRn5/PJZdcwvbt2wFYsmQJp59+Or179+acc85h48bgotdBgwYxceJE+vbtywknnMCiRcHotZUrV9K3b1/y8vLo0aMHH3zwQS0efWrUmZqCmZ0IfB9oC/w/d//fNIckdUBtX3lea1dQSyRWrlxJ7969Sy1r1aoVOTk5Cae12LRpE7/+9a958cUXad68Obfddht33HEHN910E9dffz1///vfadeuHbNmzeLmm2/mgQceAIK7ur355pvMnz+fX/ziF7z44otMmzaN73//+4waNYo9e/awf//+yI851SJNCmb2ADAU+MzdT45bPgT4I5AF/Nndf+fu7wLXmlkj4GFASUFEIvePf/yDVatWMWDAAAD27NlDv379eO+991ixYgVnnXUWAPv37+foow/8aBg+fDgQTKddWFgIQL9+/bj11lspKipi+PDhdOnSpXYPJgWibj6aAQyJX2BmWcC9wLlALjDSzHLDdRcATwPzI45LROqh3NxclixZUmrZ1q1b+eSTT2jTpg3FxcWx5SVTVrs7Z511FgUFBRQUFLBq1Sruv/9+3J2TTjoptnz58uU8//zzseeXTHMdP532ZZddxty5c2nWrBnnnXceL730UtSHnHKRJgV3fwX4d5nFfYE17r7O3fcAjwEXhtvPdfdzgVGJyjSzsWb2lpm9tX2rRhSIyAFnnHEGO3bs4OGHHwaCX/c/+tGPGD9+PJ06daKgoIDi4mI2bNjAm2++CcBpp53Ga6+9xpo1a4DgTmvvv/8+Xbt25fPPP+eNN94AYO/evaxcubLC/a9bt47OnTszYcIELrzwQpYtWxbh0UYjHR3N7YENcY+LgPZmNsjM7jazP1FBTcHdp7t7H3fv06JV00SbiUgDZGbMmTOHJ554gi5dutCm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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "markdown", "source": [ "" ], "metadata": { "id": "mrBBBPxY_xw8" } }, { "cell_type": "markdown", "source": [ "## Visualize Proportions" ], "metadata": { "id": "d-EUPDr86tjO" } }, { "cell_type": "markdown", "source": [ "I'll limit the number of colors passed to it to be just 7 instead of 10. The percent will have to be converted back to a total. I do that with a function. I also do this in two ways." ], "metadata": { "id": "WqGvQ5tc8qRM" } }, { "cell_type": "code", "source": [ "import pandas as pa\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import numpy as np\n", "\n", "df = pa.read_csv('https://raw.githubusercontent.com/nurfnick/Data_Viz/main/Activity_Dataset_V1.csv')\n", "\n", "def func(pct, allvals):\n", " absolute = int(pct/100.*np.sum(allvals))\n", " return \"{:.0f}%\\n{:d}\".format(pct, absolute)\n", "\n", "\n", "plt.pie(x=df.groupby('workout_type').workout_type.agg('count'),\n", " labels = df.groupby('workout_type').workout_type.agg('count').index, \n", " autopct=lambda pct: func(pct,df.groupby('workout_type').workout_type.agg('count')),\n", " colors = sns.color_palette('bright')[:7])\n", "plt.show()" ], "metadata": { "id": "hovnTyK_6vzM", "outputId": "7c9c3ef9-d115-4617-a524-02a781a5a393", "colab": { "base_uri": "https://localhost:8080/", "height": 248 } }, "execution_count": 9, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUUAAADnCAYAAACJ10QMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOydd3hb5fXHP0eSt7wdO3s621kkBBKymCWMsveepS1Q2h+rQBhlFRpKWwplNmGVUQgjYROanZC997Yz7MRxnHjI1ji/P+51UBIPyZYlOdzP8+ixdO973/cokY7e+77nfI+oKhYWFhYWBrZIG2BhYWERTVhO0cLCwsIPyylaWFhY+GE5RQsLCws/LKdoYWFh4YflFC0sLCz8sJyihYWFhR+WU7SwsLDww3KKFhYWFn5YTtHCwsLCD8spWlhYWPhhOUULCwsLPyynaGFhYeGH5RQtLCws/LCcooWFhYUfllO0sGgAESkLsv0YEZnSTLb0EJEvRWSDiCwWkQ9FJKcR/WwVkSzz+ZzQW9pycUTaAAsLi9oREYeqevxexwNfAH9Q1cnmsTFAK6CwseOo6vAmmnpMYc0ULSwCxJwBThORj0RkrYi8KyJinjvTPLYYuNDvmgwR+VRElovIPBHp38DxR0XkbRGZDbx9hAlXAnNrHCKAqk5T1ZUiMkNEBvqNO0tEBoiIU0QmiMgKc6yLanlfZQG8v7PMY4tE5B/NNROOBiynaGERHIOAu4A+QFfgJHMG9xpwLjAYaO3X/jFgiar2Bx4A3mrgOGbfp6nqFUeMnQcsqsOuN4DrwbjFBuJVdRkwDihV1X7mWD808v29AoxV1cEYM9NjFsspWlgEx3xVLVBVH7AU6Az0Arao6gY1ih6949d+BOaMT1V/ADJFJKWe4wCfq2plkHb9FzhHRGKAG4GJ5vHTgBdrGqlqSSPf32ZV3WK2eS9I21oU1pqihUVwVPk999I836HyOo6vAkbXdkJVK0TkO+A84FKMGWtjCMf7i2qsmaKFRdNZC3QWkW7ma//b3pnAVXBoU2Svqh6o53h9/AcYLiJn1xwQkVEikme+fB34B7DAb0b4HfBbv/bpQb87WAd0FZHO5uvLGtFHi8FyimFERNqLyGdmOMUmEfm7iMQ243giIntrvggi0kZEVERG+LXZIyKZdVyfJiK/aS77jhVU1QXcCnxhbrQU+Z1+FBgsIsuBPwPXNXC8vnEqgXOAO8zP0GrgN8Ae8/wi4AAwwe+yJ4B0EVkpIsuAkxvx/irNcb4WkUXAQaA02H5aCmLVfQ4P5i7ej8C/VHWCiNiBV4F9qnpPM447BXhJVb80dx4fBN5X1WdFpCfwmar2quPazsAUVc2r7Xwd1wjG58rXdOstgkFE2gLTgF6h/vcXEaeqlpn/vy8CG1T1+VCOES1YM8XwcQrgUtUJAKrqBX4P3CgiiSJyvTmLnGbOAh6puVBErhaR+SKyVEReMR0qIlImIk+KyDIzrKO2IN45QE0c2nDgeWCY3+vZZtjGVDMYeIWInGee/zPQzRz3L+aY94jIAjO84zHzWGcRWScibwErgQ6h+2ezCAQRuRbjR/fBZvpBukVElmKsa6Zi7EYfm6iq9QjDA7gTeL6W40uA/hjhFLuATCABw7kMAXoDk4EYs/1LwLXmcwXONZ8/CzxUS/+jgR/M5zMBJ7DQfP0acBPGYnqKeSwL2AgIxs7jSr++zsCY3QrGD+oUYJTZzgecGOl/Z+thPZr6+NntLEU536lqMYCITMII2/Bg7CQuMONoE/hpzaoawzGBEb92ei19LgAGiUgShmMtE5HNIpKLMVN8DsPJPSUiozCcWzugtlnnGeZjifnaCXQHtgPbVHVeY9+4hUW0YDnF8LEauNj/gBmX1hFjZnYcxszPH8VwWG+q6h9r6dOtqjXX1Bo+oUaoxgaM2LXF5uF5wFlANsbO4nUYAbmDVdUtIluB+FrGE+BpVT3s1slce6wrjKRZKBSnAK13Z8d0Omtyr05AG79HWyDDbKoYjr6uvz6gEigwH/nm3+3A5h1D51aH6z1ZRAeWUwwfU4E/i8i1qvqWuS74HDDRdFwAp4tIBsaX9HwMR1YBfCYiz6tqkXk+WVW3BTH2HIwshUfN13MxAoznqaqKSCpQZDrEk4FOZruDQLJfP98Aj4vIu+aMsx3gDvpfIkgKxZkMDMTItjjO/NsdSMgpclcAic00tLfd/GFbMX441pp/FwJLdwyda20kHaNYTjFMmM7nAuAlERmHsSb3JUaKVw3zgY+B9sA7qroQQEQeAr4VERuGE/otEIxTnA38DsMZgjFjbI8R1wbwLjBZRFZgfOnXmjYXi8hsEVkJfKWq94hIb2Cu6cTLgKsxZqkho1Cc7TCWAk4FTgByMWapRyGQmF7i2VeS7sio7XwTsQPdzMdZfseL280f9j+MH7rvdwydu7EZxraIEFZITpQgItcDQ1T19kjbEm4KxekExmA4wtMxNpcC5oZXu65ZNiApqGtCzDYMBzkVmLpj6NxGK9ZYRB5rpmgREQrFGQ+cDVxu/k1obF+5m1ylywYkhcq0xtAJY6njRoB284etBL4F3t0xdO7i+i60iD6smaJF2CgUpwNDoOAKjDXTlPqvCIwPLs6Y/sw97WrNCY4ClmNkmLy7Y+jcPZE2xqJhrOBti2anUJztCsX5GMZt5lfAtYTIIQJ02VLVcKPI0R8jYH7Hqd8PeJFxcgbjpNb1UYvowHKKFs1GoThPKBTnB8BW4GGMUJmQ03ZXdVxz9BtiYm7Ysnswxg7+WsbJ7xgnEb3nt6gd6/bZIuQUivMsjBzrsMjcVyTY1oyY1jeSGy0NYlPdveWLH7MchydM7AX+CvyTx/VghEyzOAJrpmgRMgrFeXKhOGdj1BEJW92PeJcvO1xjNZZf7N63znF0BlkW8BSwlXHyEOMkZEsK/oiI18xfr3l0bqZxrjdFKRpqd6hoVjRiOUWLJlMozmGF4pyKIXUf9iJINiUzvtJXEe5xA0bV+8iq7d3raZEBPA5sY5w8zDgJdTB6paoO9HtsrTlhysuFyg9cTzMtkYQTyylaNJpCcXYuFOenGBkzp0TSlg4FVbsjOX59tHFVL+pQWRWIs0jDqN2yhnFycUONG0ttqka1qR+ZbY9SaDIfE02NxhUi8nsRuRhDwORds+3ZIvKpXz+ni8gntdhSqwJUJLGcokXQFIoztlCcD2Dkc5/XUPtw0HVL1b5I21AX96wtCPaSjsB/GSffM076hMCEBL9b5xrH1B1DZ7Mv0NN8PRQjnXKwGIrevTFUtk9S1YEYmUtXmW3aqWqeqvYDJqjqRxjZUFeZbb8EeolITZGrG4B/+xtVT/8RxXKKFkFRKM5TgGXAkzQh4DrU5G50BVvoKSzYfbrjkoI9Qxp5+anAMsbJX5u43uh/+3yBecxf1chf/WgxRqGq7ub4NQpNS83XXYHNGOUJXhCRMzHUvg/DFCp5G7haRNIwNDy/quX91dZ/RLEyWiwColCc6cALRMEveW103eIKaf51qDhnV/EGmyHF1lgcGGLEFzFOruNxnRYayw5TNapL/egO6lBoEpEBwC+A2zAKZd1YyxgTMLRAXcB/VdVzZDd19R9JrJmiRYMUinMMRmZGVDpEgA4F1TGRtuEoVD0Prd5ea6mHRtARmMo4Gc84CXVc5jcYCvBOABFpJyLZGLncF5vPEZEMEelk7hzbVPVj4CEM5SI4QlVJVXcCO802/nVjaqi1/xC/t6CxnKJFnRSKM6ZQnE9jfHjbR9qe+mi115PccKvw0r6yalFbV3XrEHZpA/4PWMA46ReqTlX1W4xKgXNNpaSPMOTpVmM4tG/FKLD1HYZeZTtgmnnL+w5QM9ObCLxsrl3WLK28C+Sr6ppaxq2r/4hiBW9b1EqhOLtjfFEaux4WVjx2CobO6RdVjvufizcsumBHcWPrLzdEFfAAj+tfm6n/kCAi/wSWqOobkbYlUCynaHEUheK8CONX3xlhUwJGwXP8nDzx2SMf0gHg8Pnyt34xv73UoQMZQv4L3MDjGlbl80AQoxxqOXC6qkZ1gro/1u2zxSEKxWkrFOcTGF+0FuMQAQQcbXa7oyZW8fwdxZvC4BABLgHmMU66hWGsoFDVwao6qiU5RLCcooXJ+Lz8pHf6LH9vT8KAiwnPlznkdN7qKo60DQCouh9Ys71vGEfMA+YzTsaEccxjFsspWjA+L78dMFMl5tJvurzjrHC0apG6f7mbq6JCVKFzRdXCnCp3q4ZbhpQM4FvGyc1hHveYw3KKP3PG5+V3x0jTGwSg4mj3ee6U3V6JbVG3PAC5m1zNXkQrEP64ZnttlRDDQQzwGuMkquL+WhqWU/wZMz4vvx8wAyMG7hBue0q/L7t+sCAyVjWeTtuqIr7JEuPzbTt7176BETbjKcbJUxG2ocViOcWfKePz8o8HpgG1xtHtj+81Ym6bx6aH1agmklPkjnja4cX5e7eEaYOlIf7IOPm7pfIdPJZT/BkyPi9/FEZAdr1lQTemXzJyc+ovW8yMMeWAN72hNmXv7aLo8mUUXbGMkoc2oFU+Sh7eQNFVyznw0vZD7Q7+u4DK6UFqTKhW37d2e17QhjcfdwKvMy5k0mA/C6x/rJ8Z4/PyT8RQMGk4A0TENrvdn3vui++9qdkNCwGx1Vpv9oi3qJryD3bTamI/st8bgPqU8k8LkTgb2e/2p3pNOb4yD9691VSvKiNhdHClpLuVuRa2qvZEm3jqjcCb1owxcCyn+DNifF5+XwxV7MBrg4ikfNX1A4fLnh610lw1CCSllXjqtVO9ilb5UI+iLh8oxmufgscHNuHgqwUk39Ih6PEfWrMt1OKwoeJq4LlIG9FSiJhTFJH2IvKZiGwQkU0i8ncRiQ3gugfqOfeoiNwdWksP9T1WRBaKyGoRWSIiQX/ITHHPlebzISLyj9BbWjvj8/I7Y9QiDm76A/gkptPnuVO2+bAfqXISdXTaXlVnIXp7dizOq9pQeN5iCs9ehM1px3l5G2xpMey5dgXxI9LxFrjAp8T2Cq6mVKzXt/mMwv2R3mCpj98zTu6JtBEtgYg4RRERYBLwqap2B3pgZFA8GcDldTrFUCEijiNe5wH/BK5W1T4Y+cAbmzKGqi5U1Tub0kegjM/Lz8FItm+0VHyVI2PQN13emRM6qwxew81oKhhFBa9iRNQ8TjUnU8Ht/BQV9BGeQ+frI3eTq7Suc74DHlwzSsj+ZBA5XxyHVvqo+GoPqX/oTPY7/XFe1ZYDr+ST/KsOHJywg30PrKf80zp97GFcnl+UH1DDyPIM4+TaSBsR7URqpngK4FLVCQCq6sXQjLtRRBLNAjj/rGksIlNEZIyI/JmfVITfNc89KCLrRWQWhoJwzTUDRWSeKa/+iYikN3B8moj8TUQWAr87wt57gSdVdW2Nvar6LxFJFpEtIhJj9pFS81pEckXkexFZJiKLRQ5PwzLfzxTz+aMi8m/Ths0icqdfu3GmdPwsEXkv2Jnw+Lz8BIxb5txgrquNvYkDRy3MuXdGU/upYQ0+3sHNVyTwAwl8h4dVeFmBl/+RSKzZphLlfdzcEID8Z+4mV3Vd56oWlOJoG4c9PQZx2Ig/OYPqFWWHzldO30dMryS00ounwEXGUz1w/bAPX0NSjaque9YW9A/4jUcOAd5gnIyNtCHRTKScYl9gkf8BVT0AbKeeL6+q3s9PKsJXichg4HIMefSzgOP9mr8F3Keq/YEVwCMNHAeIVdUhqnrkrXHekfaa9hzECGs52zx0OTBJVd0YkkkvquoAjGJOu+p6Xya9MEQ7hwKPmI71eOAiYAAwlsYp1ryGoW4cEtZkXj98W/Lpi0PR1wZ8HIedRAQHwjDsfIUXN6AolRjl7/6Fm5uIISaASJcuW6vqVDix58RSvbIMn8uLqhpOsrMRxaMeH+Xv78Z5TVvU5aNmW0J9Cu76RVN6HqxclOH2NLjzHSU4MEodhEx67FijpW+0jAQ+UdUK06l+DiAiqUCaqtbE2b0JjKrruF9/HzTChtcx6k9g/p0gIskYNSw+AVBVl6o2VG3uC1WtUtW9QBGQA5wEfGZefxBDxThgxufl/x+hFoYVcczo8LeupbFdtzW1q17Y+BEv+1AqUKaaz0/Fzmm4yEZIARbjY2yAIvFtd1bXKcAam5dM/CkZ7L12BXuuXA4+SDrfqI5a/t9CEs/OwhZvx9E9EXX5KLpyGbG9krAl1z/2uNXbok7LsQGSgI+bq6RqSydS5QhWA4dVKxORFIzMio1Afw532OFKm6pLfmkVxmxr2ZEnVHW2uYEyBrCr6krTKQaLf1qdlyb+34zPyz8DeKYpfdSJ2NKmdJu075J1I0tjfQdTG9tND2zcTgyX4yIR6IsNO3A7sdxutvkDVdxLDO/iZhpe+mDj99S9H5de4q3XnpRbO5By69E7y84rftI2FRHSn6ivIulPxHl9G0/eU9oSbp2PpDuGPNyFEbYj6ojUTHEqkChiLPqaZQ2fAyaaM6qtwEARsYlIB4xbyhrcNWt4GClq54tIgumIzgVQ1VKgRERGmu2uAabXdTwAe/8CPCAiPUx7bSJym9/5tzAEWWvWSA8CBSJyvtk+TqRRtXxnA+eKSLwpFX9OIBeNz8vvArwPNFvam88W1/Xz3CkbfNiaVBvlSmL4lgQ+JYE0hK5+H8kVeFGgGzYm4+U14tmKshlfnf0luHxhFWK4elvhjnCOF2IuYJzcG2kjoo2IOEWz0tcFwCUisgFYj1HcpmZneTawBWNG+Q+MCmM1vAosF5F3VXUxxi3vMoxKYf7ZF9cBfzFlzgcCf2rgeH32LgfuAt4TkTUYtXL9q469C6QD7/kduwa40xxnDnWk0zUw7gKMJYHl5vtbAdS5uwowPi8/BsMhNvsaV2VM9pCpnV6f1ZQ+9mCs1xXg40s8XOg3QX4GN/cRgwdM92h8YCupe43PpmTFV/oaWqoIDaoVf1hfEM1hOIHwlCU5djiW8nYIEKMQ+Hmqek0z9O1U1TJzpjkDuNX8MaiV8Xn5TwP3h9qO+uhf9OLMAXv+ObLhlkdzHpXsQ4lBeIxYRpqT26/wsBIf95i3yo9Sdej2+aUGVlMueyd384buCc1eKrNvafmsb2esGNHc44SBQqA/j2tRpA2JBqwSp01ERF7A2Bk+q5mGeFVE+mCsq77ZgEMciRE+FFaWt/rNCVmVS5e3K5sV9NraZ3WUjh6LA/+4kUcJvIBd1y1VJRu6160N4dlWyb4HNxx67d1RRfKt7YkbnML+Z7aglV7sbeJIfywXm7Pur8jDq7Ydmo3fOBmmbIDsJFj5K+PYvkq4bBJs3Q+d0+DDCyE9AT5eAw9Ph4wE+PQSyEyETfvggWnwQWRW+HKAl7HWFwFrpnjMMD4v34lxm90lIgaob8/5G86sSnbnR7x41BvXt5r54q9bBzRzVa9SeM5isv6dR8kf15NyZyfijkuh4vMiPDurSLmt9nS/BI933cavFhyKi52xDZyxcO3nPznFe6dCRjzcfxL8eTaUuOCZU2HMW/DlFTBprXHsjuPhiknwpzHQPeh8o5ByLY/r2xG1IApo6SE5Fj/xFyLlEAHE1mpy7mcVbkmIeAGlrpsbirb+iaoFpdjbx+FoE4dnu4vYQUbgQNwJqbj+V3ca9fVbCw+71RzVyZj5+fPZOrjOnDtf1x8+XWc8twlUeaDCDTE2mLkdWjsj6xA9at95zdq3b7KPDn7t+1jDcorHAOPz8k8AfhVpO7y2hB6Tcz9fqdSzExIGOhRUxzTcyqDyu2ISzzCEbRxdE3DNKDGOT92Ht6gO8XHVst9taHiDpbAc2pjBWa2dxmuAP54Ep70LkzfAFX3h8ZkwrlErsqFhwcEhM1vNKXb+p+jq0cALkbMkOrCcYgtnfF6+DXiJ6BA2pTy2/QnTOvwz6FTA2nKgS1AupZJhVHAplewP0Ndm7fUEVIlQ3T6qZpYQf4oxRUt7qBsVHxWy59oVaIUXHLV/PQaUli9J9viCikUV4VCWzOldYdHNMPky+Gw9nJUL64vh4o/glinGDDIcuH2OgktXf7j4xCULRh7wptYEcl9sH8354bEgOrGcYsvnN8BxkTbCn4KUU0evzrw+YPGI2nKgt+DjBdyMxM5cEhmJnRcCEIQAcJZ7MwNp55qzn5ieSdgzjR3umM4JZL7Qm1Zv9SPhjEwc7Wvf3Hlk1baANBNzkmCXWUpr10HIPiJStcINE5fBb4fAIzPgzV/CiA7w7opAem88quic0uEzsubuS/t47yW1fXb+ah8dxM7WMYblFFswpvrNE5G2ozYW5dx73O7E41cH0ra2HOgv8PANHi41AyQuxcHXBKZcZvfS2ubVBtcVK78tJuGMn/ynd5/hdNWnHPz3DpIuyDnqmiSPd80J+w72DsSOX/aAN5cbz99cDuf1PPz8X+bCnUMhxg6VbmMmaROoaEaBtmpfzPYLV3+6bOSy2aPKvMl1zai7YKh2/yyxnGLL5s9Ao9PsmhWR+O87T8god7RusEB9bTnQO1H2oOSYH9Fs5FCgd4NDg6P1bne9ml++Si9V80uJP/mn3Y3Kb/dSePFSii5dhr1VLAnnHp0cc/PmXXtr6++KSTBsIqwrhvZ/hzeWwP3D4bst0P1F+H6L8bqGnQdh/k4433SUdxwPx78BLy+GK5uhYrQqOn3/6OlZc/Zlfl58XiAB5w/aRxNtKuJhwQrJaaGMz8vvjZFZE9U/bA5v2epL1o3o4tCqeotK/Qc3E/GQiJETHQd8gIf1fiLhPSlnXYCi4Xc833n57OHJoc1JVj2w/qsF9iSvLzgF2ghT7YvZduHqT/Z/te/sAUFe+pJ3Or9tFqOimKj+QlnUy59oAf9/HruzzxfdPl7SULvacqBbIRSaec6F+MgKYi8pd5PrYOOtrp3BJWVLW5JDVMX3fcmp0zPm7M9uhEMEuNU+moCWCo4lov5LZXE04/PyB2HoLIaNmcVvMH7jaYzfeCozi18H4IvdT/HcxjN4r+CuQ+0W7Z906HwNB+K6DZ/V7pl6hTdqy4E+AwcfmuuIH+LhF0EkYHXb5Ar5ytyjq7YdvcgYpVT5YrecueLbVb9Y8f3oSl9iY0u/OoCfXf1oyym2TJ4gjCE4u13r+LHkPe7sOpnfd/uG1QenstO1mh2ulfxf7rc4JJZdrrW4fS4W7v+Q4RnXHdXHltRzR61Pv+THusa4GRcjqeBaqniaOFIR7iCG6XgZRgUz8HIHAYcf0ml7VUj/fZLdnlXH7S/r2XDLn/j7fMh7Bfq+DH/ze+cvLIBe/zKO3zs1lFaCKt6v9p05LWPO/jbf7z89FEKy5/3cZotW7nMLwyxR2lx51rVSWLWBjgmDiLUZE46uiSey8sA3eNWDqlKtldjFwbS9r3BSxg3YpRbnJSI/tnksL921bl2ryuVHOZfacqAzED6qIze6IVoXukNaWe9Xm3aVBNN+ZRG8tgTm3wixdjjzP3BOd8g/YGS6LLsF4hxQFML8n0pf/KZzVnzpmlZ68pjQ9YoA9wHXh7DPqMaaKbY8mqVaYX20ju/Jlor5lHtKqPZVsrbsf1R4S+iVfDLPbx5LiiObeFsy+ZVLyEv5Rd0diSR90+VdZ6Uja09z25xywBsy6TRRLb1t066gSjqs2QsntIXEGCMGfHQnI9f5X4uMXeg4czqSHYIVSlU8nxf/clrm7JL200pPboa9a660jyb4mq8tFGv3uQUxPi+/E7CJZhSPrYv5Je8zZ99bxNoSyYnrgUNiOa/No4fO/3fHvQzLuIYdrpWsL5tBm/jenNaq9lC3WG/p8ovXjexlV3eDJW0bi0L54B/7hWRT5ITiA9MnzVk9Ophr1uyF8z6EuddDQgyc+g4MaQMz8+G8HvD1Joh3wPjT4PhG11iECm/ChrErvvHMOjCyuW9x/+6dzl0NN2v5WDPFlsUdRMAhAgxNv5y7un3Jb7p8RKI9lVZxP8kV7qhciaJkx3VjeekXXNPhXxRXb2NP1ZZa+6q2p/b/usv7da4vhgKBpLQST92KDkHw2Kqt7YK9pncW3DcMzviPces8MAfsNvD4DEmxeTfAX06FSz+GxsxLVHF/tOei6Rlz9ncOg0MEuNk+moAyhVo6llNsIZjSYDdFavwyjxGzXFK9gxUHvmZQ6nmHzn1TNJ5fZP8fXnXjw0gkEWy4tbLO/vYl9Bn5Y5tHAikF0Wg6ba8KrGhzPaRWe5b3K61oVHnYmwYZOc4zroP0eOiRAe2T4cJeRvbK0HZGBsveIHXCy72J64Yvnbv5sjUfjXZrbOC7T00jiQh+/sKJ5RRbDtcBaZEa/K38X/GXjacwYfuNXNDmcRLsRiLNygPf0D6hP6kxrUmwp9I2vi/PbTwdj1bRNr5PvX2uT79sxObUcxc2l825m1wHmtrHbzbtbHS8Y80myvZSmLQOrswzMlj+t9U4vr4Yqr2QFeCWkCrV7xddPi1j9v5u8w+eGNROeIi4oeEmLR9rTbGFMD4vfzlw7NXqVT1w9qYL9mRUresW6q7fvyRz+rN3tw1qLdAfUS3Z+OX8hHifNqqa5Mg3objS0Ez86+lwahfDCd44GZYWGrvS40+FUwJQwTzoda45Zdn/HIvLhgRWZrD5OMk7nYDFPkSkNfA3jJrs+zFKH9ylquuPaDdHVYfX0kXN+WnA3ara4I+oiHQGhqvqfwK10x8rJKcFYAZrH3sOEUAk5atu/y25aN2oknjv/pAW2+q6xdWk60/ae2B5vE8b7VRnHh2uSawd3glCmEuVqreLrp17y7rXR3iIiYbv640QmFMUEQE+wSijcbl5bABG+YP15muHqnrqc4iNoDNwJUaFzaCxbp9bAHFJ752DVNa9QNfC8UlMp8m5U7b4sIc0C6XtzuomyV89umprx1DZ0hhKPSmrhixeXHDDujfHRIlDBLjUPppAY0BPBtyq+nLNAVVdBthFZKaIfI5RsRMRKatpIyL3icgKEVkmIn/279AsLzxRRJ4QEbuI/EVEFojIchGpEVr+MzBSRJaKyO+DfYOWU4xyJo4VW3LGfbdltuvpScv5xezYhC+WgK/uwsctFJcj87hvu7wV8G1ZIKSXeButIJRe5V7a+2BlRMo7qOJ6Y9dN01rNKe61tHxQyJcVmp8eLUkAACAASURBVEgycEmAbfOARXWcOw74nar28D8oImOB84ATVHUA8KzfaQdGOeENqvoQxsZPqaoej3F7fouIdMGoZjlTVQeq6vMB2nrYIBbRzQigrQg4YteclJL1a1Rtu91VJ62rKP2/Np7q43o02EMImbH3debvfw8Q2sT14tJ24/l41wNsLv+ReLshRn1Z2+dolxB8DPGexONGLcq5e8bgwvGjQmFrgst3tPZXgNy5cUd4akcfQYknbcWYpTOcKyv6jYnE+AFyBfBmE/uYr6q1xWydBkxQ1QoAVfUPq3oF+FBVnzRfnwH0N0sMgyGj1x2obophllOMfi498oCIr3Vs/MzWsfEzUV/chqqK83ZWHLirh8/bvk1zGlLq3s2sfRO4J3cqMbZ43s7/NUtLJwNwTs4D9E89u8ljrM68cXiriiVLOh6cOqipfdmUrPhKX4UrwRZUyp+o7r1+S+GQpo4fDKpUvLzr1wvu2PjCSMUe7Xdwp9hHk+qdTmkD7VYBF9dxrjEJjnOAk0XkOVV1YaQg3qGq3/g3EpExjej7ENH+j/+zZuJYsdGAGo7YqrrHOz8cnd5meE5G2wFLE1OemyVS2tCHtdH41IPb58KrHty+SlJiQiwcI+KY3uEfnUtju2wLRXcdCoKPVRy9p3RVrGqzZdscSbE7Y1newtV7bt/40ugW4BABYggs//4HIE5Ebq05ICL9gfrKdH0H3CAiiWZ7/xqHbwBfAh+KiAP4Bvi1iJFsLyI9RCQJOIhxm98oWsJ/wM+ZkRBYyUkRbDZ7ycDE1L+PyGjXLy699ai5cUnvzwd3yMogpca0ZnTWrTy54UQeXzeEeHsKPZ3Gne7XRX/huY1n8Pmux/D46qiCFyhiS5/S7RNPtc3Z5DjDLlurgstqUdXHVm7t3NRxAxuK8r8V3DU9e+6e/msre3c66vyOv+NbmIdvYV+04G8A+Dbfh29Rf3xrr/2pXeE7h86HkXMbaqBGvN8FwGkisklEVgFPA3Wqsavq18DnwEIRWcoRuf6q+ldgCfA28DrGRs1iEVmJcXvtwKh/7jU3aoLeaLHiFKOYiWPlceChpvShKvs81cetrCi9K8NdNTqvKX1VePfzVv5tXN3+RRLsKbyd/2v6pZxF96STSHZk49VqPtp5P5mxnTg9u+lpsgnuwgUXrT95sKCN/vF+4/pWM1/8deuAC4hmVbkXL/t2UbMXAttTnbVkxLLZWRsre9QqtKDlK9E1lyOD5oMtFl1xJtL1OXTz3dj6f4dv/c1Iu99BfC666hwk72vEFq7kFgD2Aa280znmNv2smWJ0M6ypHYhoRkzcolGp2dfkZbbvui0587bpdsf6rY3pa0PZLDJiOuB0ZGKXGPJSzmRbxSJSYnIQERy2OI5Pv5T8yqVNNRuAypic46d2em1mU/rourkqqC/tXesLmjjNrR9VDj6bf++M1vMKB9blEAGoWAPJJyD2REQcSOpoKP4U1I2qgrcCJAYKxiNt7wi3QwTIAE4I96DhwHKKUYq5njg0lH2KeDrFJX45Or3NaZ0z2vVZlZT26Ayx7am1EFNtpMe0Y3vlYqp9lagqG8tmkx2XywGzRpSqsvLAN7SOD10G2i7nSaOXZ902q7HXdyioCngz0aZadPW2ombbYNldnbOox4KNpX/c8swoI+u5HpLy4MBM1F2MeivQfV+i7r1Ixlno4kEQ2wbsqejBH5GsiJVpPjVSAzcn1u5z9NKXJiwWN4TNVtY3IfnfxDv/7fF5Wy+oPHiLx1V+9UA0oU5V146Jg+iXchZ/23QWNrHTLr4vJ6Zfyevbr6PcU4yitI3vy0XZoVWwX5Z95/FZlStWtC2fHXRWT9ZeT11lPI/itMKS1TGqY4IdoyFUOfDU9geXPbztiYBv4yWxN7S/D11xBtiSwDkQxI50uBfpcC+AcQvd6U/ortfRkm+RpP5IpyattgRLk+9kohFrTTFKmThWbsVYOA4bqhz0unsvrzhwZ2J15dgBYIueOwn17Tl/wy+qk90FQcl4eewUDJ3Tr33D/atv1g9Ld3apqGq4bRDsrGqzcMTS2W23VXVpgmoi+LY8gMS1R9r+BgAtW4Lu+CeS+w909YXY+n2Db90NSMcHkISwpUfvA7K80wOsPdtCiJ4PvcWRhP1XWIRkM0B8UGb7rkUpra6a7ohdvL7hK8OA2FpNzv2szC0JQcW32b20tnnV21C7nCr34lA6RJ9K6SNbH5vV4cedQxrrELW6yPjr2g57J0H2lT+d2zoO6fw4qBsOvT2bsdYYPjKAsCYPhAPr9jl6ieitSaQCxOvDa0vsOSX3s3nnbzjjBAmwcJeAo3Whe+fOtrH1OqY/rCsI2S5qvqv9/BFL53QsqO4woin96OqLUE8xSAyS+yLiMJTjdO+n4ByCxBlvSZ0D8S3sB0n9EWdjKpk2iWHAunAP2pxYt89RyMSxkg4UE8aKfYGgik996ctdZdeWVR68uZ9qaqNzi5tChwPfThuT/7sxgba/4/nOy2cPT+5f13mb6q6tU37MtjdR1dynUvLg1qdWP5t//0lN6aeF8ap3Or9quFnLwbp9jk5OJMocIoQnQDwQ8lPOGLMm49q5gbbvtslVVt/5M3ftW9dUh7ilssu8Tj/mu39mDhEgrOmQ4cC6fY5Ownrr/M1WmFFgeOH2TripH/x7JRQchAHZcLG5avT5JuP8cTkgQrw9Zuuw5Ix7cabfF7IA8UBZ2Pr+gRmuVWtyKhY1WJ8kd7OrboEAVe/Dq7c3el3Mp1J8z+bx6/+24w/H5E5sABxza4rWTDE6CVtQbIkLvt8GjwyDJ0aAD5iWDzF2eHwEbCmFCjfsd8Hm/YZDPJJQBogHjEjCd53fTKtw5DSY29xpW1Wdn/M2rupFHSqrGrURsrEyd177eTt9P2OHCOC0j6ZJO+vRRoNOUUTai8hnIrLBzF/8u4g0mCwvIg/Uc+5REQl5/WIRuV5E9pjikmsbk/cY4Dhfikhz1ksJq4aeVw2ZfK/P+KuA2ws+NY7ZBD7ZCOcHUL6pqQHiwaBib/N57pS9HomtV2K7daG7TpWce9cWBL1M4VXbnjs2vjC354INJxa6WzdanixQas2B3jrOyIFeNBDf8jPQqp3NbUZ9RLpEQkip1ymacuKTgE9VtTvGVNkJPFnfdSZ1OsVQYSplHMkHqjoQOAl4UERCXsRbVc9S1f2h7hdg4lgRIKSxcvWRHg9ndoa7p8Nd/4MEB5zRGZJj4dE5MDAbiiqMMpydg9xWMQPER2W0HZyW3mbognjna3NDrSDutjv7ftltUl1CpgCkHPDWWubA7tMdFxfsCarI/dqKnnPazdtle2nn7WGZHWr5SnTXa8ig+cjgZei+KWjlRqT9PdgGL8c2eCmSeQ66/U/hMKcujqlb6IZmiqcALlWdAKCqXuD3wI0ikmjOzP5Z01hEpojIGFNCPMGcsb1rnntQRNaLyCygp981A0Vknikn/omIpDdwfJqI/E1EFgK/q8twVS0GNgJtRKSzqaJRM+bdIvKoX3/PiMh8076R5vHrRWSSiHxtzpKf9bt+q4hkmf2uEZHXRGSViHwrIglmm+NN25eakukrCYxWQJNk9IOh3A1LiuDZ0fD8yVDlhTk74cre8KeT4MwuMGkDXNAdJm+Cl5bC9PzgxhDBYXfsPt6Z/viw5lAQL43rdtLsdk/XWS41tlprVRo6Z1fxBluAS0hetRXdtv6VH/suXDt8jzs7fPWPa8uB3jsJcaT4GVdOhPflfj4zRYxUs8N+hVX1ALAdqPNmSlXvBypNOfCrRGQwcDkwEEOH7Xi/5m8B96lqf2AF8EgDxwFiVXWIqj5Xlw0i0hGIx5ARagiHqg4F7jpinIHAZRhFoy6rY9bZHXhRVftiVCur0T+cAPzKnLU2GDzsR8hntvWxuhhaJUBKLDhsMDgHNpb8dH5xIXROMZxlUQX8ZiAs2G28bgxHBYhnXT3dEbukyQHim1PPG7Uh7aL5tY4JSWklnsMlxFQ9D63e3iuQvleW953dZm5hzGu7bw2/AEJtOdBVxq+Sb8uD+OZ1QIveRTpFdKbYqLrY0Uq4NlpGAp+oaoXpVD8HEJFUIE1Va37l3wRG1XXcr78P6hnrMhFZjjFLfMlU6G2ISebfRRiVwGqYqqqlZh+rgaM074AtqlojC7MI6GyuNyarak3YSDBVxcLqFDPiYVOp4eRUDSfZ1swW9vjgu20wtqux1lgzF1GMtcamIuJrHZswY3Raznk9Mtv12OBMv3u6zV6wq5Gdyby2j/fZG5+3obbTnbZXFfm/7lBZtaitq7perUqv2nffuO7f8wcsWnlSsScrpJUGA0USeyNmDrSuOPNQDjSArcuT2E7MR7KvQnf+s4GempXsSA4eahpyiquBw9ZcRCQF6IjhdDxH9NGo+riNoL5Urw/M2eVw4M9m3dmG7KyRi/JyeJiSv4zUkeeCaRMMAYnKhopuaTAkx1g/HDfbcHijTbf8w3Y4qS3E2aFDsuEYH5oFnVIgMcRKVWJzHaEg/teZIgeCE5kVcX7d9b2ESnvmURs73TZXHaZGfv+a/HrjEpeUDZyVPXdPwpuFN4RUqagxSJubsB23CNvAGeBIRxKOWMLLvgr2fhwZ4wwyGm7ScmjIKU4FEkXkWgARsQPPARPNwjJbgYFm2cEOHC515a6RCQdmAOeLSIKIJGOq9qpqKVBSs44HXANMr+t4MG/MLJr9Nsa6YyGQLSKZIhIHnBNMX8FibsIcFJGa263Lg7g8fOtVJhd0h6dHGiE5t/Y3ireDseEywtzyEYHbBhptLg2dMthR/BQg/reRGe3yYoMNEFdxtP88d8oOH47D2uduch26Y3D4fPnn7SyudYPFo/adV695Z+GQxUtG7PekRyRj50hqy4HWSr8JcfFnkBjQSkBzEfbPbHNS76xGVVVELgBeEpFxGE70S37aWZ4NbMGYUa4BFvtd/iqwXEQWm+uKHwDLgCJggV+764CXzZoMm4EbGjgeDM+YNj0F/AmYD+wA1jair2C5CXhNRHwYDj3QuinH1K9uU2hsgHi1I23AV13fn3n25osPSXV13fLTKsr5O4o3SS3LFAsODpl5xvLvBxzwpkZVlkZtOdC+9TehFetAbBDXCen+csMdNR/H1GfWyn1uJkTEqapl5vP7gTaqWudueQ0Tx8oE4PpmNq9Fo+rYVl15xtaK0j908np6dK6rXc/id2cM3f3EKICCdrHzfjmp54mouhd/t3h/TpX7UHyh2+couGrtf4o+3ntJs5chOIZJC6C6X4vAymhpPs42w3FWYmw0PRHgdcfUr25zEGiA+LqMK0/aknLWQoD0Ek8KQOdy18Iah6iKzj0wbEbW3H1plkNsMsfMLbSV+9xMqOoH1L9LXhfNmSlTL7XlQE8vMHagiyrgH6cYQd3RRL0K4iL2We3Hd0/btGFLauWGbIAH1ubHAVT7YrZfvuaD4s+KLxhV/wgWAVKnYntLw5opRh8RqY5WWw70j7ugezrcMwQywxVX0EjqDBAXTf6y60fitqU6Uss868bu3Ddgxv6R07Pm7Mv8rPiCQZG2+xiiSSpD0YQ1U4w+wiqd7E9NDrRdjL9p8Ub4TUvDL0AcVdtut2vEtu/sv19/y/dvV/xyzRTXV/vOHh1pG49BLKdo0WyENDc4UPxzoGNskJdlPFom4kumY36m5BVm2vpXpDt7xk6K617lLZvoefGLqxJi3d59DfdhEQwHHKlAQaTNCAmWU4w+IuIU/XOgEx1GjvOcnTA8ikWhBLsnmU75mdKvKFP6udKkR0wiOVl24jqKSCfMDKQJ1W3mvW6r7vqP3IKKsyd3z3zrho0b2u1yH5M1iyNFmmd/IxM/ow/LKUYfEXGK/jnQ8FMOdDQ4RcHuTqHL9kzpvydL+lWlSvfYRLKzbMR2EpEuQJe6rn2uqsOsJ6o6D3ui84NzTt5TOrLseNuWcz/tdcKvX9498+YJe44TSArjWzmWsZyiRbMREafonwMdazOcZJcw53MIjupUum3Lkn57MqW/O1Vy4xLIamUjtqOIdCNIncn7Xd2mv1LddhSIXJA1yQ5w/s7ibf/t0KrLv25rPfKbM9K2vnnTpm1JFb4+zfKGfl7UrW7ewrCCt6OMiWPlaeD+SIz9yQaYv9vYaOmYAjfkwbTt8NUWKK02ZpH9WsGNTSw4YCPWlUbu9kzptzdT+lWnSm5CPJnZNmI6mqmkTeaWil7TPvJkj6l5XT3SvscuvlY742N3H3/aoFaY49g96nn2j9tmjZlxcJRY0RhNIStHy4ojbUQosJxilDFxrDwMPBZpO0KBnbiKNHpsz5T+xZmS50mVrgnxZLYWHO1FpNkc0IXledP/5804tMM8yLl408LjBh+aZQ4+bdCC3Qlx/vJ1nDTn4PLn796a4fCGT+D3GMIHxORoWUTCyUKNdfscfUTk9rkpOEgoS6PH9iwZUJIheZ4U6ZIYT0Zrwd5eRMKmVOBTfKeVD5q9xJd8WMjN1dlvF+B3633Hxp3eB/sdvgw5e3hy/5O/7XNgwi2bZuduropIRb67qOI7PGQhTMeooFCC8itc5KN0QHiVeNIQpuDhWapJR5hAPBkIW/HxFNW8GjaxqkOUHCsOEayZYtQxcazcDrwQaTtqw0HSgXTpmZ8lA/ZlkudLls5JcaS1EextzdIVEcOt4h5ePnjBRl/i8CPPbTi+649dE7Yc2m2uFqnuevbQgypSa2raVf/ZM+cPf9/dVyCsq6pz8ZIE3EHVIaf4J6pJB+4glheoZj8wjlguoJJ3iedLvOxHuZkYbsPFvcTSNfyrAOtytCyiMj2hxJopRh/1aUWGhRicpenSZ3uW9N+fQV9finRKjiWtrU3srTHU2KOKSrVVDi47fuUujTvKIQpeX+f4rYcJEMaqxg4rPrBqTlZqrSl+717Zavi00ak73r5h45a0Uu/A5rL7SIZhZ/sRCU3f4GGSOfO7FAcX4mIcsdgwdjYqUWKAeXjJRiLhEAGapTBZpLCcYvQRZAWUxhNL6r4M6VOQKf1LM6SPJtPJGUdKexF7NkYJhqjnoNoPDigburlEY46v7fywlLnrbaJHzWIeWLO99Tkj636LO9rFtjv1695tHnmiYPq5X+wfLhBiWd3A2IOSYzq6bIQ9GHd2dxLLpbjIQXiROG7Bxcvhv22uwXKKFs3KxlB3GEfGngzpsyNL+h/IkD446ZASS0o7EVsrWrAqz16fY9+gsqG7y3AMqKvNNTlvFwJHOcVB+8t7JHq8aysc9jpv+9Qmtkcf7jD6s19mrPnX7VviY91aZzxkOBDkUEmI0dgZbWowfIibU3GwGR8v4SYN4XFiSQxfMasd4RooHFhOMfrYjlHiIOiKfvFkFWVIn4IsGVCWIX3ESfvUGJw1zq/Z6xOHkx2+2N2Dy4aWV2GrN8bwrIwv6qz5fPW2wqJXu7VtcC1sycCk3mO+61Px8u2bZ/RfWRlWVZ1WCIX4yMFGIT6yjnB0FSgf4OF94rmGKt4gjil4mISHq8M3uQ2HaHPYsJxilHH9V+qbOFY2A73rapNAzu4M6bMzSwYczJDetiTapcXg7CAi2RxjRYRqY4M3Yfvw8sHiwVZvMLcDt6dd7I46nd6dG3b0f7VrmyqMEhX14kqwJV7/Ru6oX07eN//hJ3d0tSlhyQw/Awcf4uEOYvkQD7844iv7Em5uJoYYBBeKYARbhjmEwXKKFs3ORqBXEm13ZkjfXZnSvzxDetmSaJvhIKmDWYyrWQtc/WvzR7yZPwVV5bqO5/Cbrpfw8JqX+b7oR/ql5PLKoAcB+KDgW4qrS/lN10ua05xDLPM6N55SPijZh+Q01HZM2rS1ItQZap7u9qZ1LXfN3exMCLiw/efnZgydMyx5zzvXbVyYvdcT0rIFt+FiDj72oQyignuI4Q5iuBUX/6GC9mZITg278bEEH3dj5GbeSAxnUkmqGaYTRtaFc7DmxnKKUcgv7B8sSCTnZBFpB7QL9/irD2zmzfwp/DDiZWLFwYXz72Vk1iCWla5nzugJ3L7sWVYd2ETXpPa8k/8Vk074S1jsmuVJXf3Liv6tFQloHfSanLca3AC4e11B3G8GB1fLfW9WTKszv+jd6g/P75xx1fvFQyVEVSzr2ij5qA791tbYeNfvml/i4Jfh/0qXE8bNwXBgpTVFIUnSequIOCM1/rqybQxO602iPR6HzcGIjAF8sXsWHp8XVaXS6yLG5uCFTe/zqy4XEmNr/i/il+7MpedW9O8QqEMEOD392wbjDM/dWTzQ7tOdjbHpr79vO+rKt3J3VMbLMTVTCpL1OVp2TAU7W04xOlkRycH7JHdh7r7l7KsupcLr4tuieRRX7+f07BMYOfNmWsdnkuJwsnD/Gs5pPbLhDpvIf6pz5l9V2acXSHKg18SJqyo7pqjBTRQb2E4vLNnQULu6WNczodvo7/t0mXuCc7rCMeUcAuSYWk8EK6MlKjlw7oxY4ACN2IEOFW9t/4LXt31Kkj2eXsmdibPF8ue+dxw6f/uyZ7m58/ksK13PD3sWkJfSjXu6XxtyO16sajfnoaqux4MEtZV6TsbnSz/LOy+gwOtNSfHbR508oANNzMo5+X+lS559YHtru482TemnhXFXjpb9PdJGhBJrphiFpEweVc3htbHDzrUdz2bGyNf4avgLpMUk0y3pJ52EZaXrUZTuSR34dNc03hz8GFvKd7CpLLTKy39ydZ75UFXXE4N1iADX5LwVcLnNbuWujunVnmXBjnEk/zs5ddCpX/dO2N4+dm5T+6rhNdyMpoJRVPAqbgBuxcWpVHIqlQyhglMjmy4/K5KDNweWU4xeZkRy8D1VJQDkVxYyeddMLml32qFzT677Nw/1vAm3evCqkZYmYqPC56q1r8ZwZ2X3ac9XdxxpVHsPnlPSfkgPpv2tm3eFJL3yQKoj7fyPew576Vc5sxQONqWvNfh4BzdfkcAPJPAdHrbg41XimUoCU0ngbOycFbnyKAeBpZEavLmwnGL0ElGneM2icQyddi2Xz/8j4/vdRVqMsZw3ZfdMBqX2pE18FmkxyfRLyWXY9Oup8lbTLyU3JGNfUdF3+tvuNmMae32irbwi3VFSZ5xnbdy8ZfcgVA80dswjef3G7BEXftij5KDT1uj14Q34OA47iQgOhGHY+QLPofOKMhkvF0QuiGRejpYdM4rbNVhrilHKgXNnOIH9HENV0hpCFR1bMWDmj97ahRoC5dJW7y96r/cVg4O97qyReTOXpTlDunNk86r3qXH5M0+fWjpSgvy/XI+P63ExhQTigUtwMQAbT5lLzXPx8gjVfBu5ksuP5GjZnyI1eHNhzRSjlJTJo8qAJZG2I1x4FM9J5YPnNNUhAlyd/XZZY667f01+ULfcgeCzi/3+pzqO+fULXda4HWwL5toe2LidGC7HxZW46IvtMK/6CZ5IzhIBZkZy8ObCcorRzfRIGxAOqlSqBpcNXbTGlxQScdeRqTMblec9am9pXqzXtykUNhzJ/KHOvJO/65O5tkd8UBsTVxLDtyTwKQmk+UmDeVC+xMN5kbuRqATmRWrw5sRyitHN55E2oLkpV1t5XtkJq7ZrfEhKjqbYSw8k2w/2bOz1FxXsbbbsjIpEu/PKt7uPePqetvN8Qkkg19RIhRXg40s8XGjODGfgJRcbbSP3FZ6ao2UtTiU+ECynGN3MAooiacC/Nn/EidOv54Rp1/HS5v8C8MS6Nxg+/QZGzLiJ8+f9H7tcjZPTK1HH/j4HT9yyV2OPC5W9F2Z9vE6k8dOnu9fl90HV03DLxvPfizNPPOfTnq596fbFDbW9GRcjqeBaqniaOFJNlZxPI7vBAgH8YIvI8yJyl9/rb0Tkdb/Xz4nIH+q4dqKIXGw+3yoiRwlwiMicxpleP5ZTjGJSJo/yAZ9Fanz/HOjZo97g66K5bCov4M6ulzNn9ARmjXqDM3OG8cz6N4Pue7cvdk/fgycUHcDRxNqAh3NV9jsVTbm+dZU7u21ldYPOqqnsbh3b5rSveg/6+PyM6VpPedDPSGAmifxAAiP9fP0/iOO6yOjeglGoanIA7WYDwwHMQmVZHK7cPhxotGNT1aOU1kOB5RSjn48jNXBtOdCTd80gJean+vHlXhfB5oFs9cXv6F82tLwSe4+GWwfHCSk/Njmb5HcbdoQnJENEnvxju9HXvdFtS1WsNMtaZjMxO0fLdgfQbg5Qo0DUF1gJHBSRdDHk2noDZ4jIAhFZKSKv1lfrR0QSROQrEbnFfF1m/h0jItNE5CMRWSsi79b0IyJnmccWicg/RGRKQ0ZbTjH6+QEjNCfs1JYDvcNl3M3/ae1r9Pn+Yv6743se7HFTwH2u9iZuGVJ2vLixdQ61va1iiooTbRXBSd7UwmX5e44T1T2hsCkQVuYl9hz9fZ92iwYmtpSNtQ8DaaSqOwGPiHTEmBXOBX7EcJRDMHL8/6mqx6tqHpAAnFNHd06M2el7qvpaLecHAXcBfYCuwEkiEg+8AoxV1cEEKLRsOcUoJ2XyKDcR2nDpmdyZu7pdyfk/3s1FP95Dv9Rc7Gat+od73cLq0z7iknan8erWSQH1N9+TvG5k+WCnF2nbHPZe0urDDSJN1+CPUY0Zsbd0dShsCpTqOFv8La90G/3AYx0Wem2RXUduAC/B3b3MwXCINU5xrt/r2cDJIvKjiKwATqHuwmifARNU9a06zs9X1QJV9WFk2XTGKEOxWVW3mG3eC8Rgyym2DCZEauD6cqABLm13Op/vbjj55ntP+vJfVAxs7UOarSzCFa3+U+faXLA8uGZ72HUsAb4+M23IL77oZdvVOmZ+JMYPgC9ztGxXEO1r1hX7Ydw+z8OYKdasJ74EXKyq/YDXqFubcjZwZj2311V+z700QSvWcootgJTJo6YRIXXj2nKg/YUfvtw9i+5JHevtY5K71aJLKvJyQZq1jvJxyYs7hKqvfqUVuU63t1GzxbL3d1F0xTKKbU10uwAAGrVJREFULl9G2XuG/zjwz20UXbWckkd/qktW8dWeQ+f92ZcRk3X2Z72GTri21UyFJm0cNQMvB9l+DsYt8T5V9arqPiANwzHWbLLsNfVDL66nn4eBEuDFIMZeB3QVkc7m68sCuchyii2HVyIxaG050I+sfYUTp1/P8Ok38MOeBTzjJyl2JK9Xt5l3U2WvfiB1FpAKBe1iCwrjbVUhrbZ37bbCoGON3JsqqPisiKwJebR6pz+u2SW415dTva6C7Hf7IzGCe2MF6vJRMWUPSZfUXVXhhd+2HnnZu90LKxJsa5r0RkLHNuDrIK9ZgbHrPO+IY6WquhdjdrgS+IaGlaF+BySIyLOBDKyqlcBvgK9FZBGGgEWD6klW7nML4cC5M9KBnYRI+j4cPFvVcdbTVZ2GgTR72sXd7Z+d80zX+0IaolHqsJf2OXNILCIBJxdXTi2mau5+0h4yamodfKMAFKoWlZL5Uh/2P7wR503tcU0txpGbSMLohoXEHW51j79/2+yRsw6OkshOZB7K0bInIzh+0IiIU1XLzNvuF4ENqvp8fddYM8UWQsrkUSXAfyNtR6Dc5+o2/emqTieFwyECXNbqfV+o+0z1eFO7l1UGlX/u6JpI1dKD+Erd+FxeXHP249vvJm54OnuuWYEtKxab0071qrKAHCKAJ0Zi7nqu85i7nuu0wmOPWI1lD/BGhMZuCreIyFJgFZBKAHdc1kyxBXHg3BknYuzeRTU3VPSe/qmn1Wj/Y7rj7+iu1wBFWt+CtL8L3+b7oOQrSBqIrZexqaiF74B7L9L+rtq6rhPXiJj8GJsnZGuKNXzRJmPxrUN6BJVxU/55ERUfFSIJNhxdE5AYG6l/6Hzo/P4nN5F4UWvc68qp+nE/MbmJJN/Yvu4O/XAe9JZOvHnTyq5bq0KSJx4EH+VoWXhKNkYYa6bYgkiZPGoeUa50fF55v6MdYvlKdNdryKD5yOBl6L4paNkyKFuMbfBysMWi5StQbyVaOAHa/jaoMbvFbyxoDocIcNaufYPsPg1KUjzpl9m0eqsfWa/0xZbswNHxpxUP97pyUHB0isc1tZiMp3rgKajCsz2wNOKyZHvqxR/0OOlvt7eeowGsj4WQZ8I4VkSxnGLLIyrXdHyKb0zZoJkzvOmjjzpZsQaST0DsiYg4kNT/b+/M46Oqzj7+fWYSQkgIYCBhq6CIQkBkHcAl0OKKgFbFBVxQ6r5UrVZrtepLbXmr1WqL1RetIAVFFFQU98pANYIgm+yyCBn2BEwCSUhmnvePewNDmDAzyWwh5/v5zGfmnnvuOefCzC/3nPMsg6DgXdAKVBW8B6yMA/nPIG3vRhzhua+Nzv735gjdxlEIyEU7CsPyNvEWWmkDKneUUza3kNQLDrvtFr28laa3/gwqFfVZszRxgJaFN/t//bpWZ17yzqnFP2U465xGIQQ+zNaSRTHoJyGIqSiKiFdEltouPTNEwt+RFJExIvKPAOXZIvKBiCwTkVUiMieMNqPiWC4ic0SkeSTbzJid+zGwOJJt1pUKlYp++/stWOZrGjhAa1p3KJqPVhSg3gNo4Ry0Yg9ywlD0u17QqA04m6HFC5CWl4bd/xUtZ0T1e/zw6i2dCGOdae/D69h11TIKf7OWZg+ehKOpZTJX6i4kuWsazlaNcDRNIrlzGrtGLUMP+kg+NS1Iq0eT3z6l/S8+6Xr6hxc1n6vYCVyiw5NRbDvhiOmaooiUqGq6/XkqsFhVnw2zjTFAX1W9q1r5y8AqVX3ePu6hqssjM/LEomj4vGGE5pAfdUrVUdq7pN/KHZrS91j1dPur6PYXwZEGad3AkYKj098Onfet+xXS5g4o+Q7d+ymS1gPp8GhIYzh4TtIOp3hb1+1Ojk2P8/ssKUhJ7hXNPupC7yX7V71496bURhUaUbMkLGPtiyPcZkITz+nzfOAUETlBRN4VkeUi8o2I9ACoqfwYtAEOrf1UCaKITBCREfbnWSLyL/vzTSLylP3Z37HcLSLvichGERkvIqNFZKGIrBCRTna9SSLyT3tcG+3r/iUiq0VkUtUYqkIeiUhH+9xEEVkpIp+KbeYhIv3se1wqIk+LyPfB/uEyZud+AMTd46FInUU5xf3XBRNEAGkzFkfvxTh6zoOkFkjq4VgQWrIEVKHJaeieGThy3kLLNqClwdMxd2+yYlO0BRHgtg3bEjp24He90nJ+/mnXrO9zUiMdDbtBPSVCnERRRJKAi7CMOJ8ElqhqD+ARoMq3sabympgAvCoiX4rI70UO+dfOB6qmde2wHMaxywL5p50B3IYVweM64FRVdQGvAP5Wyi2wrPLvw/JNfg7Lb/N0EQmUb7gzMEFVu2EFeLjcLn8NuFVVe2K5J4XK78OoG3F2+5ILcooHePaRfEYo9fWg5c6rZVtgz0zIGnX43ObHkI7jQCtAq/4JHNZaYxCuzZ4S2byqNXDjpp29UI3lxkbYlDZxpl3/2innjPtduwU+oSACTX6UrSVx/+Mba2Itiqm2zdAiYAuW3dPZwBQAVf0PkCkiGccoD4iqfoIVHWMiliP4EhFphS2KIpIDrAJ2ikgbjnQz8udbVd2uquXABuBTu3wFlpN5FbPVWntYAexU1RW2M/rKavWq2KSqVekgFwMd7fXGpqpaZWYzrab7q07G7NzPgXdDrR9J8n0p208v6b9vP86QM+bpqsvxLcpBVw5HTpmAJFlLrbrnXUjvi6S0tcrSe+JbdDr4ypD04Hr7y5azjtiVuWk2ZD0L3f2s0QpL4byp0HmC9b7XfuZ7ZzV0ewnOmQwFtv5uKISrAsS3SPX5UnvtK6kXyzGzLj2h/9D3u1Tuzkyqy+ZIBfBApMZUn4i1KJaqak/7dbeqRsyBH0BVC1V1mqpeh+UylKuqHixfywuxngznA1cCJaoaKC+vv2O5z+/Yx5FO5uUB6gSqF6jdOjms+3E/ELlkyyGwzpv6Y6+Sft5yHJ3Cuc7Rcz6Ovqtw9FmGtBhyqFxaXoqj4xOH6538DI6+K3B0nRpCqz49ufGGI0KFjekBH19zZK3xX8OQjrD+Tut9vP2n8O/fwrdj4dbeMG2lVfboXPjj4MC9PbJ6a2YIgzpEQB/ol7aya/Rydl27nIK7V+PdHdGfwCF2ZSVnX/Bhlz5vXJnp1tp9R17I1pKYRgpKFBLBJGc+MBqsNT1gj1r5d2sqD4iI/KJqN1tEmgKdsJ5GwfK7vJfDovgACZCJTFX3YQXdrMpPcnU412fMzt0EhOQHGgmWeNPXD9zfN7USR2iWxlGmX9NFPzhEjxCq3A5wQjWnvPfWwg32ivQNPeBdO7SGQ6C8Eg5UQLID5m+B1unQuQZHkzMLinJSvL4fAp89kkA+0JVby0i/tg1ZU3uQ9e8epJzd3HIDjBYi8vRv2g66dlKnraUpsi6MK7fTANcSq0gEUXwC6CMiy4HxwA1BymuiD7DIrp8HvKKqVQ7m84EkVf0B+A44gQQQRZuxwER7WSGN8A1yx0N4qTNrw/zKZiuH7O/V0odkRbuvULku6/WQQljt3A9tmlqfW6dbxwC/OwvOnQqz18M13WDcfHgsSNbnkVt3h+RmV7m5lEbd0nE0diJJQkqvDErnFuJIPzxB0FIfdY/+GJzVXZt0Hvx5TocF/dLcCqGYmzyQrSWBZlENAuPmF2eqHNbtzw8DbVT11+G0UTR83uXA29EYH8AHFZlLrivN6QySHq0+asNGV4eFHRpvcVUv37wPhk2H72+1jps/DfsePHy+xTOwt9pq2evLrbXHAe3gmW+gRWN4/gJoUs2OfFdK8u5e5/VujsgxLcwrNpVS+OBaWr3aDVIcFNy5mkZd02j2wEkU/XMLB+bswZHuJPPFHJwtYpdr5dwvfvruz49uaev0UdOOvTtbSwbHbEAJSCI8KTZ0Lq4yaMfaEf9juA1kzM59B5gV8ZEBUw62XnhdaU7XSAmiep7Ht6g7vkXd0HzLTlErCvEtPw/fws74lp+HVgTP/umk0ntiypaQUplmp8F2+7lnezFkVXMZOFABk5bBnX3h8XkweQSc/TOYuuLotrLKK1q1Ly0Pmtgq+aRU0q9vS8Hdayj89RqST21izdeBjNtPpPXs3qRe0JL9M0JJdRI5Ph/SrPe5H3VNyW+bHChn80HgrgDlDQojinFGVafbG0/dVfVirX1ukFuAnZEc2wvl7b+6p6xzb5CIhCsL6ANd+gO6dTzSfAgO13qk+RB06/igbZ3V7L9rRQgpaO2IU2GyvW88eTlcUk1Kn86De1yQ7ITSChCx9OtADYlO713nCWnSeywfaIDUC1tS9mVhKE1FlJ+aJ7UYMavLgJfHZs1XKPE79WS2lgS1kz3eMaJ4nJAxO3cP8KtItfeHspPmPV5+0kCQyCUXDuQDvWcmFLwH2faScfYNll90EK7Pfj3gH49rZsLASbC2ANo/D68ugYfPhM82WSY5n2+yjqvYVgwLt8GltlDe3Q/6vQovfQejasgWMjJ/d2+HatA8KoF8oP0DP5TN20tSh5BDNUacl2/JPueKNzsXlKQ5VmKtwzeYoA/HwqwpHmcUDZ83kTqK452lp86dVtF6cGRGdBg9sBpdeQnSMw8cqejyIdC0L+ycguMsK2GhqqJftzh0XBP5/dssapOyI6gnTbQY3b/L3LlZzQcfq86eW1bi+6kSkoRm93YgpV8zCh9aZwmjQ3C2bkTzh07GmdUoRqMOjLNS9z7+x/y+Y+fkb4zrQBIEI4rHGUXD56UDy7AM2cPmygPd3J9VZh4d6SZCBPKBZsekI0TQ93ULHGfWvK6YLAcrSs9OOShC+FEUIsTKjCYbzh/UIyxbzQTmBo8rL5jHWIPBTJ+PMzJm55YAozjSWDwoquj5+3vOi6YgQg0+0I2y0XLLukbLt0Pysa1+hjT/Yk08BRGgW9GBTk0rKo+H9bepRhCPxIjicUjG7NwFWAl7QqJSqRy4v8/X33ozcqM4LKAGH+jMEbBzslVh52TIvOSYbVyX/Xok/HrrzJjNO4Nvkyc2y4Bb4z2IRMNMn49jiobP+ztBTCzKVcr7lvRblq+Nj7L3iwa+pedAZQFIMnLys0iLIVacxdVXQtkWaNwB6foWklxz/pIdA1stbZW8J1DQjYA8vxAm2oF4bu4F9/a3/JvX2tK6rwyaN4alN4d3L0VJzqKuF/ZNohZxQROAXUA/jytvS9CaDYzI7SwaEpH7gO7A4EAnS9RZ0quk3/o92igmggiWD3R1JDkT6fFFSNc3dpSWtUzaE3Igiu93WYK48CZo5IQLp8GwzjD9ssN1fvMZNEsJtcXDZFR6M7oUl361JqNJrPOl1JWDwGVGEANjps/HMRmzcyuBkcDm6uf2atK+nOL+P+7RRgkbODUQQ0+Ys1qEkCVs9R7o39byTElywKAOMHPN4fOq8NYquKZ77cbz2zVb47q2WUtu97jyvor3IBIVI4rHObb94gj8fKq3+xrtyinuv7uYpBos8RKXa7OmhOUb3j0L5m+1QoMdqIA5P8BWv7Ai87dA9jGCQATj/J17z0jy+erTE9dzHlfev+I9iETGiGIDIGN27gpgOFC60dc4/4wSV2kZzs7BrktEBjWf2zJ4rcN0bQkPDYTzp1lT557Z4PT71r+x0goGUVsE5OLthZtq30JMmUoDjZEYDmajpQGx/uK8od1KBrzkRaKSDjTapDuLS/admdFYpPZr4Y/8B9pnwB19odIH7Z6HxWOtstqyNTVl24AhPVsjksgPGTOBKz2uvHCiuzdIEvk/0RBhOn84cI4XeRArEG6949LMd9fURhB32aHCtvwEM9fCKHv98PNN0CWzboII8LPS8ratyiuWBq8ZNz4CrjGCGBpGFBsYXjfTsWI41rspwuisf++vzXWXvw05L8Hw6TDhQsv8BuDNOk6d/bljw7aYRkAPgy+xdpqjE+L7OMRMnxsozkFcA0wGYhfMr478dFbTNenOki7xHkcgyhxSdspQV5lGOM93HZkHXOxx5ZUErWk4hHlSbKB43bwBXAIET5mXALRIKtiX5ig5NXjN+NDYp4377E2oxFYzgQuMIIaPEcUGjNfNR8D5WClXE5orWr6zViSxv6+PrN7SKt5jsHkJGOlx5SXqlD6hSegvmSH6eN18BeQCsQ0BHSajsqaGFeAiHvQvLO7a2OsNJ0FUNPiDx5V3u8eVVy830xIBI4oGvG5WAP2xknolJP2aLmwb7zGEwtVbdsfrj0slcIvHlTcuTv0fNxhRNADgdbMFOAuYEu+xVCc7ecfuVGfZKfEeRyjcty6/G6oVMe52N3Cex5U3Mcb9HpcYUTQcwuumzOvmeqxAEjVkKIk9V2e9sT7eYwiVlgcrM088UL44hl0uAvp4XHlzY9jncY0RRcNReN38DWsDprZJtCLK1a3erFdGx/evy3fGqKsXgbM9rrytMeqvQWDsFA014hxEa+AV4OJ4juPA2Sk/pjgOdojnGMLBC96Ow/rv9onUlFu5rvyEtX74VpTab9CYJ0VDjXjd7PC6GYaVPjUu9m4dUjZtq0+CCOAE58937VsbpeY/ArobQYweRhQNQfG6mQicAcQ8Bt+orGn1MsPcI6u3nBjhJvcBN3lceUM9rrz8YJVFJFNEltqvHSLi8Ts+ZvpAEZkkIlcEKN8sIkdFKRKRr8O6kwTHiKIhJLxuNmLZMz5ADJ8aR7Z6K6TE84lGl+LSk5odrIyUh8uHWE+Hr4V6gaoWqGpPVe2JZcz9XNWxqh4UiVw+b1U9M3it+oMRRUPIeN34vG7+CnQF3o5FnzlpqzrGop9ocOPmHUXBax2TrcBojytvmMeV56nreOwnwJdEZAHwFxHpJCIfi8hiEZkvIkf5lYvIOPs6p19Zqoh8JCI328cl9vtgEZkrIm+LyBoRmSoiYp8bapctFpEXROSDut5PtDCiaAgbr5t8r5uRwBBgRbT6OS11zY/JUtkuWu1Hm9t/2NYT1dpE9ikBHgVO87jypkV4WO2BM1X1fuD/gLtVtQ/WDOBF/4oi8jTQCrhRVassANKB2cAbqhrILrIXcC+Qg5V7/CwRaQy8DFxk95Uo7pABMaJoqDVeN//B+hHcBgRd5wqXa7On1Kcw/0eR7vWl5xQdWBLGJT6s3f7OHlfeUx5XXmkUhjVDVb0ikg6cCcwQkaVYotXGr95jQDNVvU2PNFF5D3hNVWvKFb1QVfNV1QcsBToCXYCNqloVofyNCN5PxDGiaKgTXjder5uXgVOw0qlGTBwva/lOrOz9osZDa7aGEsJWgVlAL48r72aPKy+aroJVT64OYJ/fOmNPVfXPkvgt0EdEqmev+Qq4sGpaHAB/H3Uv9TBjqBHFOFPHXcK+IvKC/XmMiPwjQJ0xIrLbbm+NiNwXjfvwuin3uplABMWxc+r6eplHxp9zd+3rkezzba7hdAXwGpDjceVd5nHlxSz0mKoWAZtEZCSAWJzhV+VjYDzwoYg09Sv/A7AXmBBGd2uBk0Wko318VW3HHQuMKMaZuuwSquoiVb0nhG6m2+2fBfxeJHo5WqqJ41igVi5vPdOWbHCKL6HXnkJlxLaCzdWKSoDngJM9rrybPK68NUdfFRNGA2NFZBmwEiu+5iFUdQYwEXhfRFL9Tv0aSBWRv4TSiaqWAncAH4vIYqAYv+ySiYbxaEkgROQJrB9Md6AMa73uK+BN4HmgMVCKtfC9VkQGAw+o6jARGQP0VdW7qrV5RLmIfAPcA+wCPlDV7nb5A0C6qj4hInOBBcDPgebAWFU9Oot9iDgH0R/rR3GlfQ9B+evJ9827t/3fcmvbZyLhSW203TWkVzYia7FEZrLHlVcY73HFEhFJV9USe9o9AVivqs/Fe1yBqHfz/QZE1S6hV0QygHNUtVJEzgX+BFweboMiciKWKC0HgrmgJamqS0SGAo8D54bbXxVeNwuABc5B3A/cCFyLZQxeIyMy3ws54X2CU9Su9OAcV2HxK7MuWvlNvAcTR24WkRuARsASrI2dhMSIYuIyw88MohkwWUQ6Yy3Kh5tX5SoRycXaBbxLVctqXic/xEz7fTHWDmKd8bopAJ4BnnEOojPWk+NIqgmk4NWOjTcnbOqBECgCPgXeAd5lnJbNivOA4o39VJiQT4bVMaKYuPjbt40DvlTVX9qL1XPDbGu6qt4lIn2BT0XkfazQYP5rytWntVW7iFHZQfS6WQ88BTxlC+QVwEXAgAEZCzY6RE+LdJ9RZh2W58kHwHzGxTymoiFCGFGsHzQDqjwaxtS2EVVdJCJTsBbK/wBkiUgm1jrmMKwdx5hjC+SfgT87B5F+fotPBmKFLssFepOY39P1wELgG+ATxmm9ifloODaJ+GUzHM1fsKbPj2I9jdSF/8VKO/An4H+wftgeIF47oEfgdVMCT35mvYDHJB3oAZxe7dUiVkPCMi9aifVvtQBYyDhtUBslDQmz+2yonzwm7bBcydpheWJUf7XAWnttZL9XX0T1Yi1RFAOF9msPsBnYAGy03380U+GGhRFFQ8PgMXFiiWMycJBxmvDZAQ3xwYiiwWAw+GE8WgwGg8EPI4oGg8HghxFFQ4OnLkE5wugjYCj/Y9QfISIP25+fsN0wa0wVYIgcxiTH0OBR1QKgJxz2P1fVZ6rOi0iSqsY0D7aqvg+8H8s+DRbmSdFgCECooftFZLiILBCRJSLyuYhk2+WZIvKpiKwUkVewTYJEpKMdwm2SiKyzQ/afKyJfich6EXHZ9QKGgjNEHyOKBkPNhBK6/7/AAFXthRXN6Ld2+ePAf1W1G1YAWf/sfqcAf8XyRe8CjALOttt9JKp3ZAiKmT4bDDUTKHR/1bmqKD7tgeki0gbLULwq5H4ucBmAqn4oInv92t2kqisARGQl8IWqqoisIELBNwy1x4iiwVAzR4XuD1Dn78Czqvq+Hd/yiRDa9Tcc9/kd+zC/ybhjps8GQxCChO73D9Zxg99l87CmxYjIRcTOV9tQR4woGgyhUVPo/iewptWLsXynq3gSyLWnx5cB9TozYUPCuPkZDAaDH+ZJ0WAwGPwwomgwGAx+GFE0GAwGP4woGgwGgx9GFA0Gg8EPI4oGg8HghxFFg8Fg8MOIosFgMPhhRNFgMBj8MKJoMBgMfhhRNBgMBj+MKBoMBoMfRhQNBoPBDyOKBoPB4IcRRYPBYPDDiKLBYDD48f+yjubDw9mAFQAAAABJRU5ErkJggg==\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "If you just want the total;" ], "metadata": { "id": "FSG09R9n8d4R" } }, { "cell_type": "code", "source": [ "def func(pct, allvals):\n", " absolute = int(pct/100.*np.sum(allvals))\n", " return \"{:d}\".format(absolute)\n", "\n", "\n", "plt.pie(x=df.groupby('workout_type').workout_type.agg('count'),\n", " labels = df.groupby('workout_type').workout_type.agg('count').index, \n", " autopct=lambda pct: func(pct,df.groupby('workout_type').workout_type.agg('count')),\n", " colors = sns.color_palette('colorblind')[:8])\n", "plt.show()" ], "metadata": { "id": "rYJCqqE062gI", "outputId": "e5890120-9e6e-440c-cfa0-4bd1ce6ebced", "colab": { "base_uri": "https://localhost:8080/", "height": 248 } }, "execution_count": 12, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "" ], "metadata": { "id": "9fCkbffq8mvc" }, "execution_count": null, "outputs": [] } ] }