diff --git a/HANK_DSPT3_Unit_1_Sprint_Challenge_1_0919.ipynb b/HANK_DSPT3_Unit_1_Sprint_Challenge_1_0919.ipynb new file mode 100644 index 00000000..2112245f --- /dev/null +++ b/HANK_DSPT3_Unit_1_Sprint_Challenge_1_0919.ipynb @@ -0,0 +1,3994 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "HANK - DSPT3_Unit_1_Sprint_Challenge_1_0919.ipynb", + "version": "0.3.2", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "NooAiTdnafkz", + "colab_type": "text" + }, + "source": [ + "# Data Science Unit 1 Sprint Challenge 1\n", + "\n", + "## Loading, cleaning, visualizing, and analyzing data\n", + "\n", + "In this sprint challenge you will look at a dataset of the survival of patients who underwent surgery for breast cancer.\n", + "\n", + "http://archive.ics.uci.edu/ml/datasets/Haberman%27s+Survival\n", + "\n", + "Data Set Information:\n", + "The dataset contains cases from a study that was conducted between 1958 and 1970 at the University of Chicago's Billings Hospital on the survival of patients who had undergone surgery for breast cancer.\n", + "\n", + "Attribute Information:\n", + "1. Age of patient at time of operation (numerical)\n", + "2. Patient's year of operation (year - 1900, numerical)\n", + "3. Number of positive axillary nodes detected (numerical)\n", + "4. Survival status (class attribute)\n", + "-- 1 = the patient survived 5 years or longer\n", + "-- 2 = the patient died within 5 year\n", + "\n", + "Sprint challenges are evaluated based on satisfactory completion of each part. It is suggested you work through it in order, getting each aspect reasonably working, before trying to deeply explore, iterate, or refine any given step. Once you get to the end, if you want to go back and improve things, go for it!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DUjOBLFAr3A5", + "colab_type": "text" + }, + "source": [ + "## Part 0 - Revert your version of Pandas right from the start\n", + "I don't want any of you to get stuck because of Pandas bugs, so right from the get-go revert back to version `0.23.4`\n", + "- Run the cell below\n", + "- Then restart your runtime. Go to `Runtime` -> `Restart runtime...` in the top menu (or click the \"RESTART RUNTIME\" button that shows up in the output of the cell below).\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "PWq6GbkjsRYQ", + "colab_type": "code", + "outputId": "5afdca18-c64d-4453-df7c-c2e1bd728f9a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 122 + } + }, + "source": [ + "!pip install pandas==0.23.4" + ], + "execution_count": 144, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Requirement already satisfied: pandas==0.23.4 in /usr/local/lib/python3.6/dist-packages (0.23.4)\n", + "Requirement already satisfied: pytz>=2011k in /usr/local/lib/python3.6/dist-packages (from pandas==0.23.4) (2018.9)\n", + "Requirement already satisfied: python-dateutil>=2.5.0 in /usr/local/lib/python3.6/dist-packages (from pandas==0.23.4) (2.5.3)\n", + "Requirement already satisfied: numpy>=1.9.0 in /usr/local/lib/python3.6/dist-packages (from pandas==0.23.4) (1.16.5)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.6/dist-packages (from python-dateutil>=2.5.0->pandas==0.23.4) (1.12.0)\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "5wch6ksCbJtZ", + "colab_type": "text" + }, + "source": [ + "## Part 1 - Load and validate the data\n", + "\n", + "- Load the data as a `pandas` data frame.\n", + "- Validate that it has the appropriate number of observations (you can check the raw file, and also read the dataset description from UCI).\n", + "- Validate that you have no missing values.\n", + "- Add informative names to the features.\n", + "- The survival variable is encoded as 1 for surviving >5 years and 2 for not - change this to be 0 for not surviving and 1 for surviving >5 years (0/1 is a more traditional encoding of binary variables)\n", + "\n", + "At the end, print the first five rows of the dataset to demonstrate the above." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "287TpoGKFRVK", + "colab_type": "code", + "colab": { + "resources": { + "http://localhost:8080/nbextensions/google.colab/files.js": { + "data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7Ci8vIE1heCBhbW91bnQgb2YgdGltZSB0byBibG9jayB3YWl0aW5nIGZvciB0aGUgdXNlci4KY29uc3QgRklMRV9DSEFOR0VfVElNRU9VVF9NUyA9IDMwICogMTAwMDsKCmZ1bmN0aW9uIF91cGxvYWRGaWxlcyhpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IHN0ZXBzID0gdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKTsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIC8vIENhY2hlIHN0ZXBzIG9uIHRoZSBvdXRwdXRFbGVtZW50IHRvIG1ha2UgaXQgYXZhaWxhYmxlIGZvciB0aGUgbmV4dCBjYWxsCiAgLy8gdG8gdXBsb2FkRmlsZXNDb250aW51ZSBmcm9tIFB5dGhvbi4KICBvdXRwdXRFbGVtZW50LnN0ZXBzID0gc3RlcHM7CgogIHJldHVybiBfdXBsb2FkRmlsZXNDb250aW51ZShvdXRwdXRJZCk7Cn0KCi8vIFRoaXMgaXMgcm91Z2hseSBhbiBhc3luYyBnZW5lcmF0b3IgKG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXIgeWV0KSwKLy8gd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlIGFzeW5jaHJvbm91cyBzdGVwcyBhbmQgdGhlIFB5dGhvbiBzaWRlIGlzIGdvaW5nCi8vIHRvIHBvbGwgZm9yIGNvbXBsZXRpb24gb2YgZWFjaCBzdGVwLgovLyBUaGlzIHVzZXMgYSBQcm9taXNlIHRvIGJsb2NrIHRoZSBweXRob24gc2lkZSBvbiBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcCwKLy8gdGhlbiBwYXNzZXMgdGhlIHJlc3VsdCBvZiB0aGUgcHJldmlvdXMgc3RlcCBhcyB0aGUgaW5wdXQgdG8gdGhlIG5leHQgc3RlcC4KZnVuY3Rpb24gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpIHsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIGNvbnN0IHN0ZXBzID0gb3V0cHV0RWxlbWVudC5zdGVwczsKCiAgY29uc3QgbmV4dCA9IHN0ZXBzLm5leHQob3V0cHV0RWxlbWVudC5sYXN0UHJvbWlzZVZhbHVlKTsKICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5leHQudmFsdWUucHJvbWlzZSkudGhlbigodmFsdWUpID0+IHsKICAgIC8vIENhY2hlIHRoZSBsYXN0IHByb21pc2UgdmFsdWUgdG8gbWFrZSBpdCBhdmFpbGFibGUgdG8gdGhlIG5leHQKICAgIC8vIHN0ZXAgb2YgdGhlIGdlbmVyYXRvci4KICAgIG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSA9IHZhbHVlOwogICAgcmV0dXJuIG5leHQudmFsdWUucmVzcG9uc2U7CiAgfSk7Cn0KCi8qKgogKiBHZW5lcmF0b3IgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIGJldHdlZW4gZWFjaCBhc3luYyBzdGVwIG9mIHRoZSB1cGxvYWQKICogcHJvY2Vzcy4KICogQHBhcmFtIHtzdHJpbmd9IGlucHV0SWQgRWxlbWVudCBJRCBvZiB0aGUgaW5wdXQgZmlsZSBwaWNrZXIgZWxlbWVudC4KICogQHBhcmFtIHtzdHJpbmd9IG91dHB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIG91dHB1dCBkaXNwbGF5LgogKiBAcmV0dXJuIHshSXRlcmFibGU8IU9iamVjdD59IEl0ZXJhYmxlIG9mIG5leHQgc3RlcHMuCiAqLwpmdW5jdGlvbiogdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKSB7CiAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCk7CiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gZmFsc2U7CgogIGNvbnN0IG91dHB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvdXRwdXRJZCk7CiAgb3V0cHV0RWxlbWVudC5pbm5lckhUTUwgPSAnJzsKCiAgY29uc3QgcGlja2VkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgcmVzb2x2ZShlLnRhcmdldC5maWxlcyk7CiAgICB9KTsKICB9KTsKCiAgY29uc3QgY2FuY2VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgaW5wdXRFbGVtZW50LnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY2FuY2VsKTsKICBjYW5jZWwudGV4dENvbnRlbnQgPSAnQ2FuY2VsIHVwbG9hZCc7CiAgY29uc3QgY2FuY2VsUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBjYW5jZWwub25jbGljayA9ICgpID0+IHsKICAgICAgcmVzb2x2ZShudWxsKTsKICAgIH07CiAgfSk7CgogIC8vIENhbmNlbCB1cGxvYWQgaWYgdXNlciBoYXNuJ3QgcGlja2VkIGFueXRoaW5nIGluIHRpbWVvdXQuCiAgY29uc3QgdGltZW91dFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9LCBGSUxFX0NIQU5HRV9USU1FT1VUX01TKTsKICB9KTsKCiAgLy8gV2FpdCBmb3IgdGhlIHVzZXIgdG8gcGljayB0aGUgZmlsZXMuCiAgY29uc3QgZmlsZXMgPSB5aWVsZCB7CiAgICBwcm9taXNlOiBQcm9taXNlLnJhY2UoW3BpY2tlZFByb21pc2UsIHRpbWVvdXRQcm9taXNlLCBjYW5jZWxQcm9taXNlXSksCiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdzdGFydGluZycsCiAgICB9CiAgfTsKCiAgaWYgKCFmaWxlcykgewogICAgcmV0dXJuIHsKICAgICAgcmVzcG9uc2U6IHsKICAgICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICAgIH0KICAgIH07CiAgfQoKICBjYW5jZWwucmVtb3ZlKCk7CgogIC8vIERpc2FibGUgdGhlIGlucHV0IGVsZW1lbnQgc2luY2UgZnVydGhlciBwaWNrcyBhcmUgbm90IGFsbG93ZWQuCiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKCiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7CiAgICBjb25zdCBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CiAgICBsaS5hcHBlbmQoc3BhbihmaWxlLm5hbWUsIHtmb250V2VpZ2h0OiAnYm9sZCd9KSk7CiAgICBsaS5hcHBlbmQoc3BhbigKICAgICAgICBgKCR7ZmlsZS50eXBlIHx8ICduL2EnfSkgLSAke2ZpbGUuc2l6ZX0gYnl0ZXMsIGAgKwogICAgICAgIGBsYXN0IG1vZGlmaWVkOiAkewogICAgICAgICAgICBmaWxlLmxhc3RNb2RpZmllZERhdGUgPyBmaWxlLmxhc3RNb2RpZmllZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbi9hJ30gLSBgKSk7CiAgICBjb25zdCBwZXJjZW50ID0gc3BhbignMCUgZG9uZScpOwogICAgbGkuYXBwZW5kQ2hpbGQocGVyY2VudCk7CgogICAgb3V0cHV0RWxlbWVudC5hcHBlbmRDaGlsZChsaSk7CgogICAgY29uc3QgZmlsZURhdGFQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7CiAgICAgICAgcmVzb2x2ZShlLnRhcmdldC5yZXN1bHQpOwogICAgICB9OwogICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7CiAgICB9KTsKICAgIC8vIFdhaXQgZm9yIHRoZSBkYXRhIHRvIGJlIHJlYWR5LgogICAgbGV0IGZpbGVEYXRhID0geWllbGQgewogICAgICBwcm9taXNlOiBmaWxlRGF0YVByb21pc2UsCiAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgYWN0aW9uOiAnY29udGludWUnLAogICAgICB9CiAgICB9OwoKICAgIC8vIFVzZSBhIGNodW5rZWQgc2VuZGluZyB0byBhdm9pZCBtZXNzYWdlIHNpemUgbGltaXRzLiBTZWUgYi82MjExNTY2MC4KICAgIGxldCBwb3NpdGlvbiA9IDA7CiAgICB3aGlsZSAocG9zaXRpb24gPCBmaWxlRGF0YS5ieXRlTGVuZ3RoKSB7CiAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWluKGZpbGVEYXRhLmJ5dGVMZW5ndGggLSBwb3NpdGlvbiwgTUFYX1BBWUxPQURfU0laRSk7CiAgICAgIGNvbnN0IGNodW5rID0gbmV3IFVpbnQ4QXJyYXkoZmlsZURhdGEsIHBvc2l0aW9uLCBsZW5ndGgpOwogICAgICBwb3NpdGlvbiArPSBsZW5ndGg7CgogICAgICBjb25zdCBiYXNlNjQgPSBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgY2h1bmspKTsKICAgICAgeWllbGQgewogICAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgICBhY3Rpb246ICdhcHBlbmQnLAogICAgICAgICAgZmlsZTogZmlsZS5uYW1lLAogICAgICAgICAgZGF0YTogYmFzZTY0LAogICAgICAgIH0sCiAgICAgIH07CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPQogICAgICAgICAgYCR7TWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCl9JSBkb25lYDsKICAgIH0KICB9CgogIC8vIEFsbCBkb25lLgogIHlpZWxkIHsKICAgIHJlc3BvbnNlOiB7CiAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgIH0KICB9Owp9CgpzY29wZS5nb29nbGUgPSBzY29wZS5nb29nbGUgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYiA9IHNjb3BlLmdvb2dsZS5jb2xhYiB8fCB7fTsKc2NvcGUuZ29vZ2xlLmNvbGFiLl9maWxlcyA9IHsKICBfdXBsb2FkRmlsZXMsCiAgX3VwbG9hZEZpbGVzQ29udGludWUsCn07Cn0pKHNlbGYpOwo=", + "ok": true, + "headers": [ + [ + "content-type", + "application/javascript" + ] + ], + "status": 200, + "status_text": "" + } + }, + "base_uri": "https://localhost:8080/", + "height": 74 + }, + "outputId": "88fc64b2-557e-413c-b1a7-6129be5f9390" + }, + "source": [ + "import pandas as pd\n", + "from google.colab import files\n", + "uploaded = files.upload()" + ], + "execution_count": 169, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " Upload widget is only available when the cell has been executed in the\n", + " current browser session. Please rerun this cell to enable.\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "Saving haberman.data to haberman (5).data\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "OFWvBQlzTRRD", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 359 + }, + "outputId": "ea5fe190-31fa-47a1-eeb5-66fbddf686fc" + }, + "source": [ + "df = pd.read_csv('haberman.data')\n", + "df.columns = ['Age', 'Year', 'Nodes', 'Survival']\n", + "df.head(10)" + ], + "execution_count": 190, + "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", + "
AgeYearNodesSurvival
0306231
1306501
2315921
3316541
43358101
5336001
6345902
7346692
83458301
9346011
\n", + "
" + ], + "text/plain": [ + " Age Year Nodes Survival\n", + "0 30 62 3 1\n", + "1 30 65 0 1\n", + "2 31 59 2 1\n", + "3 31 65 4 1\n", + "4 33 58 10 1\n", + "5 33 60 0 1\n", + "6 34 59 0 2\n", + "7 34 66 9 2\n", + "8 34 58 30 1\n", + "9 34 60 1 1" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 190 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gluQsTDnV7nd", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "a347e8a9-9a7b-483d-b2ae-e6f324860bb6" + }, + "source": [ + "len(df)" + ], + "execution_count": 191, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "305" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 191 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "8zOyo7S6XEPC", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "cd024113-b51b-480b-cdc7-2bc1d98f1c9c" + }, + "source": [ + "df" + ], + "execution_count": 192, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AgeYearNodesSurvival
0306231
1306501
2315921
3316541
43358101
5336001
6345902
7346692
83458301
9346011
103461101
11346771
12346001
133564131
14356301
15366011
16366901
17376001
18376301
19375801
20375961
213760151
22376301
233869212
24385921
25386001
26386001
27386231
28386411
29386601
...............
275676601
276676101
277676501
278686701
279686801
280696782
281696001
282696501
283696601
284705802
285705842
2867066141
287706701
288706801
289705981
290706301
291716821
292726302
293725801
294726401
295726731
296736201
297736801
298746532
299746301
300756211
301766701
302776531
303786512
304835822
\n", + "

305 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " Age Year Nodes Survival\n", + "0 30 62 3 1\n", + "1 30 65 0 1\n", + "2 31 59 2 1\n", + "3 31 65 4 1\n", + "4 33 58 10 1\n", + "5 33 60 0 1\n", + "6 34 59 0 2\n", + "7 34 66 9 2\n", + "8 34 58 30 1\n", + "9 34 60 1 1\n", + "10 34 61 10 1\n", + "11 34 67 7 1\n", + "12 34 60 0 1\n", + "13 35 64 13 1\n", + "14 35 63 0 1\n", + "15 36 60 1 1\n", + "16 36 69 0 1\n", + "17 37 60 0 1\n", + "18 37 63 0 1\n", + "19 37 58 0 1\n", + "20 37 59 6 1\n", + "21 37 60 15 1\n", + "22 37 63 0 1\n", + "23 38 69 21 2\n", + "24 38 59 2 1\n", + "25 38 60 0 1\n", + "26 38 60 0 1\n", + "27 38 62 3 1\n", + "28 38 64 1 1\n", + "29 38 66 0 1\n", + ".. ... ... ... ...\n", + "275 67 66 0 1\n", + "276 67 61 0 1\n", + "277 67 65 0 1\n", + "278 68 67 0 1\n", + "279 68 68 0 1\n", + "280 69 67 8 2\n", + "281 69 60 0 1\n", + "282 69 65 0 1\n", + "283 69 66 0 1\n", + "284 70 58 0 2\n", + "285 70 58 4 2\n", + "286 70 66 14 1\n", + "287 70 67 0 1\n", + "288 70 68 0 1\n", + "289 70 59 8 1\n", + "290 70 63 0 1\n", + "291 71 68 2 1\n", + "292 72 63 0 2\n", + "293 72 58 0 1\n", + "294 72 64 0 1\n", + "295 72 67 3 1\n", + "296 73 62 0 1\n", + "297 73 68 0 1\n", + "298 74 65 3 2\n", + "299 74 63 0 1\n", + "300 75 62 1 1\n", + "301 76 67 0 1\n", + "302 77 65 3 1\n", + "303 78 65 1 2\n", + "304 83 58 2 2\n", + "\n", + "[305 rows x 4 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 192 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "GN3EQV6rXcey", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "ab6009ca-190c-4834-9992-da3157d04d39" + }, + "source": [ + "df.isnull()" + ], + "execution_count": 193, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AgeYearNodesSurvival
0FalseFalseFalseFalse
1FalseFalseFalseFalse
2FalseFalseFalseFalse
3FalseFalseFalseFalse
4FalseFalseFalseFalse
5FalseFalseFalseFalse
6FalseFalseFalseFalse
7FalseFalseFalseFalse
8FalseFalseFalseFalse
9FalseFalseFalseFalse
10FalseFalseFalseFalse
11FalseFalseFalseFalse
12FalseFalseFalseFalse
13FalseFalseFalseFalse
14FalseFalseFalseFalse
15FalseFalseFalseFalse
16FalseFalseFalseFalse
17FalseFalseFalseFalse
18FalseFalseFalseFalse
19FalseFalseFalseFalse
20FalseFalseFalseFalse
21FalseFalseFalseFalse
22FalseFalseFalseFalse
23FalseFalseFalseFalse
24FalseFalseFalseFalse
25FalseFalseFalseFalse
26FalseFalseFalseFalse
27FalseFalseFalseFalse
28FalseFalseFalseFalse
29FalseFalseFalseFalse
...............
275FalseFalseFalseFalse
276FalseFalseFalseFalse
277FalseFalseFalseFalse
278FalseFalseFalseFalse
279FalseFalseFalseFalse
280FalseFalseFalseFalse
281FalseFalseFalseFalse
282FalseFalseFalseFalse
283FalseFalseFalseFalse
284FalseFalseFalseFalse
285FalseFalseFalseFalse
286FalseFalseFalseFalse
287FalseFalseFalseFalse
288FalseFalseFalseFalse
289FalseFalseFalseFalse
290FalseFalseFalseFalse
291FalseFalseFalseFalse
292FalseFalseFalseFalse
293FalseFalseFalseFalse
294FalseFalseFalseFalse
295FalseFalseFalseFalse
296FalseFalseFalseFalse
297FalseFalseFalseFalse
298FalseFalseFalseFalse
299FalseFalseFalseFalse
300FalseFalseFalseFalse
301FalseFalseFalseFalse
302FalseFalseFalseFalse
303FalseFalseFalseFalse
304FalseFalseFalseFalse
\n", + "

305 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " Age Year Nodes Survival\n", + "0 False False False False\n", + "1 False False False False\n", + "2 False False False False\n", + "3 False False False False\n", + "4 False False False False\n", + "5 False False False False\n", + "6 False False False False\n", + "7 False False False False\n", + "8 False False False False\n", + "9 False False False False\n", + "10 False False False False\n", + "11 False False False False\n", + "12 False False False False\n", + "13 False False False False\n", + "14 False False False False\n", + "15 False False False False\n", + "16 False False False False\n", + "17 False False False False\n", + "18 False False False False\n", + "19 False False False False\n", + "20 False False False False\n", + "21 False False False False\n", + "22 False False False False\n", + "23 False False False False\n", + "24 False False False False\n", + "25 False False False False\n", + "26 False False False False\n", + "27 False False False False\n", + "28 False False False False\n", + "29 False False False False\n", + ".. ... ... ... ...\n", + "275 False False False False\n", + "276 False False False False\n", + "277 False False False False\n", + "278 False False False False\n", + "279 False False False False\n", + "280 False False False False\n", + "281 False False False False\n", + "282 False False False False\n", + "283 False False False False\n", + "284 False False False False\n", + "285 False False False False\n", + "286 False False False False\n", + "287 False False False False\n", + "288 False False False False\n", + "289 False False False False\n", + "290 False False False False\n", + "291 False False False False\n", + "292 False False False False\n", + "293 False False False False\n", + "294 False False False False\n", + "295 False False False False\n", + "296 False False False False\n", + "297 False False False False\n", + "298 False False False False\n", + "299 False False False False\n", + "300 False False False False\n", + "301 False False False False\n", + "302 False False False False\n", + "303 False False False False\n", + "304 False False False False\n", + "\n", + "[305 rows x 4 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 193 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "coIsGQHRZCnd", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "c0e064b9-22f2-465b-ebb7-0e5e8ca44206" + }, + "source": [ + "df.replace({'Survival':{2:0}}, inplace = True)\n", + "df" + ], + "execution_count": 194, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AgeYearNodesSurvival
0306231
1306501
2315921
3316541
43358101
5336001
6345900
7346690
83458301
9346011
103461101
11346771
12346001
133564131
14356301
15366011
16366901
17376001
18376301
19375801
20375961
213760151
22376301
233869210
24385921
25386001
26386001
27386231
28386411
29386601
...............
275676601
276676101
277676501
278686701
279686801
280696780
281696001
282696501
283696601
284705800
285705840
2867066141
287706701
288706801
289705981
290706301
291716821
292726300
293725801
294726401
295726731
296736201
297736801
298746530
299746301
300756211
301766701
302776531
303786510
304835820
\n", + "

305 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " Age Year Nodes Survival\n", + "0 30 62 3 1\n", + "1 30 65 0 1\n", + "2 31 59 2 1\n", + "3 31 65 4 1\n", + "4 33 58 10 1\n", + "5 33 60 0 1\n", + "6 34 59 0 0\n", + "7 34 66 9 0\n", + "8 34 58 30 1\n", + "9 34 60 1 1\n", + "10 34 61 10 1\n", + "11 34 67 7 1\n", + "12 34 60 0 1\n", + "13 35 64 13 1\n", + "14 35 63 0 1\n", + "15 36 60 1 1\n", + "16 36 69 0 1\n", + "17 37 60 0 1\n", + "18 37 63 0 1\n", + "19 37 58 0 1\n", + "20 37 59 6 1\n", + "21 37 60 15 1\n", + "22 37 63 0 1\n", + "23 38 69 21 0\n", + "24 38 59 2 1\n", + "25 38 60 0 1\n", + "26 38 60 0 1\n", + "27 38 62 3 1\n", + "28 38 64 1 1\n", + "29 38 66 0 1\n", + ".. ... ... ... ...\n", + "275 67 66 0 1\n", + "276 67 61 0 1\n", + "277 67 65 0 1\n", + "278 68 67 0 1\n", + "279 68 68 0 1\n", + "280 69 67 8 0\n", + "281 69 60 0 1\n", + "282 69 65 0 1\n", + "283 69 66 0 1\n", + "284 70 58 0 0\n", + "285 70 58 4 0\n", + "286 70 66 14 1\n", + "287 70 67 0 1\n", + "288 70 68 0 1\n", + "289 70 59 8 1\n", + "290 70 63 0 1\n", + "291 71 68 2 1\n", + "292 72 63 0 0\n", + "293 72 58 0 1\n", + "294 72 64 0 1\n", + "295 72 67 3 1\n", + "296 73 62 0 1\n", + "297 73 68 0 1\n", + "298 74 65 3 0\n", + "299 74 63 0 1\n", + "300 75 62 1 1\n", + "301 76 67 0 1\n", + "302 77 65 3 1\n", + "303 78 65 1 0\n", + "304 83 58 2 0\n", + "\n", + "[305 rows x 4 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 194 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "eYE_brE1gqmj", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 359 + }, + "outputId": "321916fe-8f81-421a-c813-4ccf6ea90005" + }, + "source": [ + "df.head(10)" + ], + "execution_count": 195, + "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", + "
AgeYearNodesSurvival
0306231
1306501
2315921
3316541
43358101
5336001
6345900
7346690
83458301
9346011
\n", + "
" + ], + "text/plain": [ + " Age Year Nodes Survival\n", + "0 30 62 3 1\n", + "1 30 65 0 1\n", + "2 31 59 2 1\n", + "3 31 65 4 1\n", + "4 33 58 10 1\n", + "5 33 60 0 1\n", + "6 34 59 0 0\n", + "7 34 66 9 0\n", + "8 34 58 30 1\n", + "9 34 60 1 1" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 195 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "G7rLytbrO38L", + "colab_type": "text" + }, + "source": [ + "## Part 2 - Examine the distribution and relationships of the features\n", + "\n", + "Explore the data - create at least *2* tables (can be summary statistics or crosstabulations) and *2* plots illustrating the nature of the data.\n", + "\n", + "This is open-ended, so to remind - first *complete* this task as a baseline, then go on to the remaining sections, and *then* as time allows revisit and explore further.\n", + "\n", + "Hint - you may need to bin some variables depending on your chosen tables/plots." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "IAkllgCIFVj0", + "colab_type": "code", + "colab": {} + }, + "source": [ + "import matplotlib.pyplot as plt" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "opBODDu-g_xv", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 297 + }, + "outputId": "a26b3375-4e60-4c1a-d9e1-f4182d8f551b" + }, + "source": [ + "df.describe()" + ], + "execution_count": 197, + "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", + "
AgeYearNodesSurvival
count305.000000305.000000305.000000305.000000
mean52.53114862.8491804.0360660.734426
std10.7440243.2540787.1993700.442364
min30.00000058.0000000.0000000.000000
25%44.00000060.0000000.0000000.000000
50%52.00000063.0000001.0000001.000000
75%61.00000066.0000004.0000001.000000
max83.00000069.00000052.0000001.000000
\n", + "
" + ], + "text/plain": [ + " Age Year Nodes Survival\n", + "count 305.000000 305.000000 305.000000 305.000000\n", + "mean 52.531148 62.849180 4.036066 0.734426\n", + "std 10.744024 3.254078 7.199370 0.442364\n", + "min 30.000000 58.000000 0.000000 0.000000\n", + "25% 44.000000 60.000000 0.000000 0.000000\n", + "50% 52.000000 63.000000 1.000000 1.000000\n", + "75% 61.000000 66.000000 4.000000 1.000000\n", + "max 83.000000 69.000000 52.000000 1.000000" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 197 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ZkuSWzvlhgSV", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "32d05204-73ae-48de-db35-d76236ecf015" + }, + "source": [ + "pd.crosstab(df['Nodes'], df['Survival'])" + ], + "execution_count": 198, + "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", + "
Survival01
Nodes
019117
1832
2515
3713
4310
542
634
725
825
942
1012
1131
1211
1341
1413
1521
1601
1710
1801
1921
2011
2110
2212
2330
2410
2501
2801
3001
3510
4601
5210
\n", + "
" + ], + "text/plain": [ + "Survival 0 1\n", + "Nodes \n", + "0 19 117\n", + "1 8 32\n", + "2 5 15\n", + "3 7 13\n", + "4 3 10\n", + "5 4 2\n", + "6 3 4\n", + "7 2 5\n", + "8 2 5\n", + "9 4 2\n", + "10 1 2\n", + "11 3 1\n", + "12 1 1\n", + "13 4 1\n", + "14 1 3\n", + "15 2 1\n", + "16 0 1\n", + "17 1 0\n", + "18 0 1\n", + "19 2 1\n", + "20 1 1\n", + "21 1 0\n", + "22 1 2\n", + "23 3 0\n", + "24 1 0\n", + "25 0 1\n", + "28 0 1\n", + "30 0 1\n", + "35 1 0\n", + "46 0 1\n", + "52 1 0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 198 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "QSlMJt50iW1y", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 300 + }, + "outputId": "9ee18e0f-e804-47a7-b08c-45ec9870adc9" + }, + "source": [ + "df.plot('Nodes', 'Survival')" + ], + "execution_count": 199, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 199 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "0GujILGQi1No", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 300 + }, + "outputId": "c22d2cbf-a7c6-4fe5-96ec-c38f85410204" + }, + "source": [ + "df.plot('Survival', 'Nodes')" + ], + "execution_count": 200, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 200 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\nAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "9FYPujjujis9", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 286 + }, + "outputId": "7615d65f-d381-4bbc-80f9-3ab81b6632e2" + }, + "source": [ + "df.plot.hist()" + ], + "execution_count": 201, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 201 + }, + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAD8CAYAAABthzNFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAHFxJREFUeJzt3Xl0VfX57/H3wyAoUSgQEQkQWlEG\nw2QALXLLoIJDQSsQRIGi94e3ouDVekXUQvXHWlqt/rTeK2KxoGIQGZRrrQUca4tigihDZMGtDMEo\niIKgIgSe+8fZxABbcgLZ2Sfk81orK3t/9/ScvU74sKfvNndHRETkUDXiLkBERFKTAkJEREIpIERE\nJJQCQkREQikgREQklAJCRERCKSBERCSUAkJEREIpIEREJFStuAs4Fo0bN/bMzMy4yxARqVLy8/O/\ncPf0suar0gGRmZlJXl5e3GWIiFQpZrYhmfl0iklEREIpIEREJJQCQkREQlXpaxAiUv3s3buXwsJC\ndu/eHXcpKa9u3bpkZGRQu3bto1peASEiVUphYSEnn3wymZmZmFnc5aQsd2fbtm0UFhbSqlWro1qH\nTjGJSJWye/duGjVqpHAog5nRqFGjYzrSUkCISJWjcEjOse4nBYSIiISK7BqEmdUF3gbqBNuZ4+4T\nzawVMAtoBOQDw919j5nVAZ4GzgG2ATnuvj6q+kTk+JA5/q8Vur71912a1HwvvvgiV1xxBQUFBbRp\n06ZCa0gVUV6k/h7o4+67zKw28I6Z/Q24BXjY3WeZ2RTgOuDx4PdX7n6GmQ0F7gdyoiquoE3bqFZd\nprYfF8S2bRGpGLm5uZx//vnk5uby+9//Pu5yIhHZKSZP2BWM1g5+HOgDzAnaZwCXB8MDg3GC6X1N\nJxpFJAXt2rWLd955h2nTpjFr1iwA9u/fzw033ECbNm248MILueSSS5gzJ/FPXX5+Pr/4xS8455xz\n6NevH0VFRXGWn7RIr0GYWU0zWw5sARYB/w/Y7u7FwSyFQLNguBmwCSCYvoPEaSgRkZTy0ksv0b9/\nf84880waNWpEfn4+8+bNY/369axevZpnnnmGJUuWAInnNm666SbmzJlDfn4+1157LXfeeWfMnyA5\nkT4H4e77gE5m1gCYDxzziTozGw2MBmjRosWxrk5EpNxyc3MZN24cAEOHDiU3N5fi4mIGDx5MjRo1\nOO200+jduzcAa9asYeXKlVx44YUA7Nu3j6ZNm8ZWe3lUyoNy7r7dzN4AzgMamFmt4CghA9gczLYZ\naA4UmlktoD6Ji9WHrmsqMBUgOzvbK6N+EZEDvvzyS15//XVWrFiBmbFv3z7MjCuuuCJ0fnenffv2\nJUcUVUlkp5jMLD04csDMTgQuBAqAN4BBwWwjgZeC4QXBOMH0191dASAiKWXOnDkMHz6cDRs2sH79\nejZt2kSrVq1o2LAhc+fOZf/+/Xz++ee8+eabAJx11lls3br1oFNOq1ativETJC/KI4imwAwzq0ki\niGa7+8tmthqYZWb/CXwATAvmnwY8Y2brgC+BoRHWJiLHiWRvS60oubm53H777Qe1XXnllRQUFJCR\nkUG7du1o3rw5Xbp0oX79+pxwwgnMmTOHsWPHsmPHDoqLi7n55ptp3759pdZ9NCILCHf/COgc0v5v\noFtI+25gcFT1iIhUhDfeeOOwtrFjxwKJu5vS0tLYtm0b3bp1IysrC4BOnTrx9ttvV2qdFUGd9YmI\nVJDLLruM7du3s2fPHu6++25OO+20uEs6JgoIEZEKcuC6w/FCfTGJiEgoBYSIiIRSQIiISCgFhIiI\nhNJFahGp2ibVr+D17TjiZHenZ8+e3HnnnVx88cUAvPDCC0ybNo1XX321YmuJmQJCRKQczIwpU6Yw\nePBgevfuTXFxMRMmTDjmcCguLqZWrdT6J1mnmEREyunss8/ml7/8Jffffz/33HMPI0aM4Gc/+xkz\nZsygW7dudOrUiRtuuIH9+/cDMHr0aLKzs2nfvj333HNPyXoyMjIYP348nTt3Zv78+XF9nB+VWnEl\nIlJFTJw4kS5dunDCCSeQl5fHypUrmT9/Pv/617+oVasWo0ePZtasWQwbNoz77ruPhg0bUlxcTO/e\nvRk0aBDt2rUD4NRTT+WDDz6I+dOEU0CIiByFevXqkZOTQ1paGnXq1GHx4sW8//77ZGdnA/Ddd9/R\nvHlzINF/07Rp0yguLubTTz9l9erVJQGRkxPZizOPmQJCROQo1ahRgxo1Emfq3Z1rr72We++996B5\n1q5dyyOPPMLSpUtp0KAB11xzDbt37y6ZXq9evUqtuTx0DUJEpAJccMEFzJ49my+++AKAbdu2sXHj\nRr7++mtOPvlkTjnlFIqKivj73/8ec6XJ0xGEiFRtZdyWWlmysrKYOHEiF1xwAfv376d27dpMmTKF\n7Oxs2rVrR5s2bWjZsiU9evSIu9SkWVV+J092drbn5eUd1bIFbdpWcDXJa/txQWzbFqnqCgoKaNs2\nvr/fqiZsf5lZvrtnl7WsTjGJiEgoBYSIiIRSQIiISCgFhIiIhFJAiIhIKAWEiIiE0nMQIlKlZc3I\nqtD1rRi5osx5zIxbbrmFP/7xjwA8+OCD7Nq1i0mTJiW9nbS0NHbt2nW0ZVYKHUGIiJRTnTp1mDdv\nXslT08crBYSISDkd6K314YcfPmza+vXr6dOnDx06dKBv375s3LgRgE8++YTzzjuPrKws7rrrroOW\neeCBB+jatSsdOnRg4sSJAHzzzTdceumldOzYkbPPPpvnn38++g92CAWEiMhRGDNmDDNnzmTHjoO7\n+rjpppsYOXIkH330EVdffTVjx44FYNy4cfzmN79hxYoVNG3atGT+hQsXsnbtWpYuXcry5cvJz8/n\n7bff5tVXX+X000/nww8/ZOXKlfTv379SPx9EGBBm1tzM3jCz1Wa2yszGBe2TzGyzmS0Pfi4ptcwd\nZrbOzNaYWb+oahMROVannHIKI0aM4NFHHz2ofcmSJQwbNgyA4cOH88477wDwz3/+k6uuuqqk/YCF\nCxeycOFCOnfuTJcuXfj4449Zu3YtWVlZLFq0iNtvv51//OMf1K9fwa9WTUKUF6mLgVvdfZmZnQzk\nm9miYNrD7v5g6ZnNrB0wFGgPnA4sNrMz3X1fhDWKiBy1m2++mS5dujBq1Kik5jezw9rcnTvuuIPr\nr7/+sGnLli3jlVde4a677qJv37787ne/O+aayyOyIwh3L3L3ZcHwTqAAaHaERQYCs9z9e3f/BFgH\ndIuqPhGRY9WwYUOGDBnCtGnTStp+/vOfM2vWLABmzpxJz549AejRo8dB7Qf069ePp556quSOps2b\nN7NlyxY+/fRTTjrpJK655hpuu+02li1bVlkfq0Sl3OZqZplAZ+A9oAdwo5mNAPJIHGV8RSI83i21\nWCFHDhQRkaRuS43SrbfeymOPPVYy/qc//YlRo0bxwAMPkJ6ezl/+8hcAHnnkEYYNG8b999/PwIED\nS+a/6KKLKCgo4LzzzgMSt78+++yzrFu3jttuu40aNWpQu3ZtHn/88cr9YFRCd99mlga8BUx293lm\n1gT4AnDgXqCpu19rZo8B77r7s8Fy04C/ufucQ9Y3GhgN0KJFi3M2bNhwVHWpu2+RqkndfZdPynb3\nbWa1gbnATHefB+Dun7v7PnffDzzJD6eRNgPNSy2eEbQdxN2nunu2u2enp6dHWb6ISLUW5V1MBkwD\nCtz9oVLtTUvNdgWwMhheAAw1szpm1gpoDSyNqj4RETmyKK9B9ACGAyvMbHnQNgG4ysw6kTjFtB64\nHsDdV5nZbGA1iTugxugOJhGR+EQWEO7+DnD4PV3wyhGWmQxMjqomERFJnp6kFhGRUAoIEREJpe6+\nRaRKq+hb1pO5DX3y5Mk899xz1KxZkxo1avDEE0/QvXv3Y9ruggULWL16NePHjy/3spMmTSItLY3f\n/va3x1TDoRQQIiLlsGTJEl5++WWWLVtGnTp1+OKLL9izZ09SyxYXF1OrVvg/uwMGDGDAgAEVWeox\n0ykmEZFyKCoqonHjxtSpUweAxo0bc/rpp5OZmVnyfoi8vDx69eoFJP53P3z4cHr06MHw4cM599xz\nWbVqVcn6evXqRV5eHtOnT+fGG29kx44dtGzZkv379wOJbr+bN2/O3r17efLJJ+natSsdO3bkyiuv\n5Ntvv430syogRETK4aKLLmLTpk2ceeaZ3HDDDbz11ltlLrN69WoWL15Mbm4uOTk5zJ49G0iETVFR\nEdnZPzzUXL9+fTp16lSy3pdffpl+/fpRu3ZtfvWrX/H+++/z4Ycf0rZt24P6gIqCAkJEpBzS0tLI\nz89n6tSppKenk5OTw/Tp04+4zIABAzjxxBMBGDJkCHPmJHoQmj17NoMGDTps/pycnJIXBM2aNYuc\nnBwAVq5cSc+ePcnKymLmzJkHHYlEQdcgRETKqWbNmvTq1YtevXqRlZXFjBkzqFWrVslpod27dx80\nf7169UqGmzVrRqNGjfjoo494/vnnmTJlymHrHzBgABMmTODLL78kPz+fPn36APDrX/+aF198kY4d\nOzJ9+nTefPPN6D4kOoIQESmXNWvWsHbt2pLx5cuX07JlSzIzM8nPzwdg7ty5R1xHTk4Of/jDH9ix\nYwcdOnQ4bHpaWhpdu3Zl3LhxXHbZZdSsWROAnTt30rRpU/bu3XtQl+FR0RGEiFRpld078q5du7jp\nppvYvn07tWrV4owzzmDq1KkUFBRw3XXXcffdd5dcoP4xgwYNYty4cdx9990/Ok9OTg6DBw8+6Cjh\n3nvvpXv37qSnp9O9e3d27txZQZ8qXOTdfUcpOzvb8/LyjmpZdfctUjWpu+/ySdnuvkVEpOpSQIiI\nSCgFhIhUOVX51HhlOtb9pIAQkSqlbt26bNu2TSFRBndn27Zt1K1b96jXobuYRKRiTKpfKZvJOKEB\nhV1uZ2v9n1LyypkGLSpl21VN3bp1ycjIOOrlFRAiUqXU3rOdVu/ecXDjpB3xFHOc0ykmEREJpYAQ\nEZFQCggREQmlgBARkVAKCBERCaWAEBGRUAoIEREJpYAQEZFQkQWEmTU3szfMbLWZrTKzcUF7QzNb\nZGZrg98/CdrNzB41s3Vm9pGZdYmqNhERKVuURxDFwK3u3g44FxhjZu2A8cBr7t4aeC0YB7gYaB38\njAYej7A2EREpQ2QB4e5F7r4sGN4JFADNgIHAjGC2GcDlwfBA4GlPeBdoYGZNo6pPRESOrFKuQZhZ\nJtAZeA9o4u5FwaTPgCbBcDNgU6nFCoM2ERGJQeQBYWZpwFzgZnf/uvQ0T/TXW64+e81stJnlmVne\n1q1bK7BSEREpLdKAMLPaJMJhprvPC5o/P3DqKPi9JWjfDDQvtXhG0HYQd5/q7tnunp2enh5d8SIi\n1VyUdzEZMA0ocPeHSk1aAIwMhkcCL5VqHxHczXQusKPUqSgREalkSb0Pwsyy3H1FOdfdAxgOrDCz\n5UHbBOA+YLaZXQdsAIYE014BLgHWAd8Co8q5PRERqUDJvjDo/5hZHWA6idNFZb6dw93foeR1T4fp\nGzK/A2OSrEdERCKW1Ckmd+8JXE3iGkG+mT1nZhdGWpmIiMQq6WsQ7r4WuAu4HfgF8KiZfWxmv4qq\nOBERiU9SAWFmHczsYRIPu/UBfunubYPhhyOsT0REYpLsNYg/AX8GJrj7dwca3f1TM7srkspERCRW\nyQbEpcB37r4PwMxqAHXd/Vt3fyay6kREJDbJXoNYDJxYavykoE1ERI5TyQZEXXffdWAkGD4pmpJE\nRCQVJBsQ35R+P4OZnQN8d4T5RUSkikv2GsTNwAtm9imJh99OA3Iiq0pERGKXVEC4+/tm1gY4K2ha\n4+57oytLRETiluwRBEBXIDNYpouZ4e5PR1KViIjELtnO+p4BfgYsB/YFzQ4oIEREjlPJHkFkA+2C\nDvVERKQaSPYuppUkLkyLiEg1kewRRGNgtZktBb4/0OjuAyKpSkREYpdsQEyKsggREUk9yd7m+paZ\ntQRau/tiMzsJqBltaSIiEqdku/v+D2AO8ETQ1Ax4MaqiREQkfslepB5D4h3TX0PJy4NOjaooERGJ\nX7IB8b277zkwYma1SDwHISIix6lkA+ItM5sAnBi8i/oF4P9GV5aIiMQt2YAYD2wFVgDXA6+QeD+1\niIgcp5K9i2k/8GTwIyIi1UCyfTF9Qsg1B3f/aYVXJCIiKaE8fTEdUBcYDDSs+HJERCRVJHUNwt23\nlfrZ7O7/BVx6pGXM7Ckz22JmK0u1TTKzzWa2PPi5pNS0O8xsnZmtMbN+R/2JRESkQiR7iqlLqdEa\nJI4oylp2OvAYh3cJ/rC7P3jI+tsBQ4H2wOnAYjM70933ISIisUj2FNMfSw0XA+uBIUdawN3fNrPM\nJNc/EJjl7t8Dn5jZOqAbsCTJ5UVEpIIlexdT7wrc5o1mNgLIA251969IdN3xbql5CoM2ERGJSbKn\nmG450nR3fyjJ7T0O3Evijqh7SRyZXJvksgdqGQ2MBmjRokV5FhURkXJI9kG5bOA3JP5X3wz4H0AX\n4OTgJynu/rm77yv1XEW3YNJmoHmpWTOCtrB1THX3bHfPTk9PT3bTIiJSTsleg8gAurj7TkjcjQT8\n1d2vKc/GzKypuxcFo1eQeFMdwALgOTN7iMRF6tbA0vKsW0REKlayAdEE2FNqfE/Q9qPMLBfoBTQ2\ns0JgItDLzDqROMW0nkS3Hbj7KjObDawmcRF8jO5gEhGJV7IB8TSw1MzmB+OXAzOOtIC7XxXSPO0I\n808GJidZj4iIRCzZu5gmm9nfgJ5B0yh3/yC6skREJG7JXqQGOAn42t0fAQrNrFVENYmISApI9pWj\nE4HbgTuCptrAs1EVJSIi8Uv2COIKYADwDYC7f0o5bm8VEZGqJ9mA2OPuTtDlt5nVi64kERFJBckG\nxGwzewJoYGb/ASxGLw8SETmuJXsX04PBu6i/Bs4CfufuiyKtTEREYlVmQJhZTWBx0GGfQkFEpJoo\n8xRT8ETzfjOrXwn1iIhIikj2SepdwAozW0RwJxOAu4+NpCoREYldsgExL/gREZFq4ogBYWYt3H2j\nux+x3yURETn+lHUN4sUDA2Y2N+JaREQkhZQVEFZq+KdRFiIiIqmlrIDwHxkWEZHjXFkXqTua2dck\njiRODIYJxt3dT4m0OhERic0RA8Lda1ZWISIiklrK8z4IERGpRhQQIiISSgEhIiKhFBAiIhJKASEi\nIqEUECIiEkoBISIioRQQIiISKrKAMLOnzGyLma0s1dbQzBaZ2drg90+CdjOzR81snZl9ZGZdoqpL\nRESSE+URxHSg/yFt44HX3L018FowDnAx0Dr4GQ08HmFdIiKShMgCwt3fBr48pHkgcODdEjOAy0u1\nP+0J7wINzKxpVLWJiEjZKvsaRBN3LwqGPwOaBMPNgE2l5isM2kREJCaxXaR2d+couhA3s9Fmlmdm\neVu3bo2gMhERgcoPiM8PnDoKfm8J2jcDzUvNlxG0Hcbdp7p7trtnp6enR1qsiEh1VtkBsQAYGQyP\nBF4q1T4iuJvpXGBHqVNRIiISg7JeGHTUzCwX6AU0NrNCYCJwHzDbzK4DNgBDgtlfAS4B1gHfAqOi\nqktERJITWUC4+1U/MqlvyLwOjImqFhERKT89SS0iIqEiO4IQkXhkjv9rLNtdXzeWzUqEdAQhIiKh\nFBAiIhJKASEiIqEUECIiEkoBISIioRQQIiISSgEhIiKhFBAiIhJKASEiIqEUECIiEkoBISIioRQQ\nIiISSgEhIiKh1JurSETi6lVVpKLoCEJEREIpIEREJJQCQkREQikgREQklAJCRERCKSBERCSUAkJE\nREIpIEREJJQCQkREQsXyJLWZrQd2AvuAYnfPNrOGwPNAJrAeGOLuX8VRn4iIxHsE0dvdO7l7djA+\nHnjN3VsDrwXjIiISk1Q6xTQQmBEMzwAuj7EWEZFqL66AcGChmeWb2eigrYm7FwXDnwFN4ilNREQg\nvt5cz3f3zWZ2KrDIzD4uPdHd3cw8bMEgUEYDtGjRIvpKRUSqqVgCwt03B7+3mNl8oBvwuZk1dfci\nM2sKbPmRZacCUwGys7NDQ0REqplJ9WPa7o54tltJKv0Uk5nVM7OTDwwDFwErgQXAyGC2kcBLlV2b\niIj8II4jiCbAfDM7sP3n3P1VM3sfmG1m1wEbgCEx1CbHGb20R+ToVXpAuPu/gY4h7duAvpVdj4iI\nhEul21xFRCSFKCBERCSUAkJEREIpIEREJFRcD8qJSETW1x0WdwlynNARhIiIhFJAiIhIKAWEiIiE\nUkCIiEgoBYSIiITSXUwxyJqRFct2V4xcEct2RaRq0hGEiIiEUkCIiEgoBYSIiIRSQIiISCgFhIiI\nhFJAiIhIKAWEiIiEUkCIiEgoPShXjcT1gB7oIT2RqkhHECIiEkoBISIioRQQIiISSgEhIiKhFBAi\nIhIq5e5iMrP+wCNATeDP7n5fzCVJBcgc/9e4SxCpcHF+r9ffd2nk20ipIwgzqwn8b+BioB1wlZm1\ni7cqEZHqKdWOILoB69z93wBmNgsYCKyOtSo5Zie3HR/LdncW6ABU5GilWkA0AzaVGi8EusdUixwH\n4gqmOGXRIpbtrvhkYyzbleikWkCUycxGA6OD0V1mtuYoV9UY+KJiqiqnX8ey1aMV336qOrSPADvy\n5ON0H11W0StMej/Z/ce0nZbJzJRqAbEZaF5qPCNoK+HuU4Gpx7ohM8tz9+xjXc/xTvupbNpHZdM+\nSk6q7aeUukgNvA+0NrNWZnYCMBRYEHNNIiLVUkodQbh7sZndCPydxG2uT7n7qpjLEhGpllIqIADc\n/RXglUrY1DGfpqomtJ/Kpn1UNu2j5KTUfjJ3j7sGERFJQal2DUJERFJEtQwIM+tvZmvMbJ2ZVb8b\n5UOYWXMze8PMVpvZKjMbF7Q3NLNFZrY2+P2TuGuNm5nVNLMPzOzlYLyVmb0XfJ+eD26wqNbMrIGZ\nzTGzj82swMzO03fpYGb2P4O/tZVmlmtmdVPtu1TtAkLdefyoYuBWd28HnAuMCfbLeOA1d28NvBaM\nV3fjgIJS4/cDD7v7GcBXwHWxVJVaHgFedfc2QEcS+0vfpYCZNQPGAtnufjaJm3KGkmLfpWoXEJTq\nzsPd9wAHuvOo1ty9yN2XBcM7SfxBNyOxb2YEs80ALo+nwtRgZhnApcCfg3ED+gBzglm0j8zqA/8N\nmAbg7nvcfTv6Lh2qFnCimdUCTgKKSLHvUnUMiLDuPJrFVEtKMrNMoDPwHtDE3YuCSZ8BTWIqK1X8\nF/C/gP3BeCNgu7sXB+P6PkErYCvwl+BU3J/NrB76LpVw983Ag8BGEsGwA8gnxb5L1TEg5AjMLA2Y\nC9zs7l+XnuaJW96q7W1vZnYZsMXd8+OuJcXVAroAj7t7Z+AbDjmdpO+S/YTEEVUr4HSgHtA/1qJC\nVMeAKLM7j+rKzGqTCIeZ7j4vaP7czJoG05sCW+KqLwX0AAaY2XoSpyb7kDjX3iA4TQD6PkHif76F\n7v5eMD6HRGDou/SDC4BP3H2ru+8F5pH4fqXUd6k6BoS68wgRnEufBhS4+0OlJi0ARgbDI4GXKru2\nVOHud7h7hrtnkvjevO7uVwNvAIOC2ar1PgJw98+ATWZ2VtDUl0SX/fou/WAjcK6ZnRT87R3YRyn1\nXaqWD8qZ2SUkziUf6M5jcswlxc7Mzgf+Aazgh/PrE0hch5gNtAA2AEPc/ctYikwhZtYL+K27X2Zm\nPyVxRNEQ+AC4xt2/j7O+uJlZJxIX8k8A/g2MIvEfUn2XAmb2eyCHxB2EHwD/ncQ1h5T5LlXLgBAR\nkbJVx1NMIiKSBAWEiIiEUkCIiEgoBYSIiIRSQIiISCgFhIiIhFJAiIhIKAWEiIiE+v+EUZFlaDKK\n6AAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "9Hksr-ZyqrXD", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 286 + }, + "outputId": "c13cc25a-4071-458d-c03d-e1d858fbd493" + }, + "source": [ + "df.plot()" + ], + "execution_count": 202, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 202 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sDXMio-yiWPT", + "colab_type": "text" + }, + "source": [ + "## Part 3 - DataFrame Filtering\n", + "\n", + "Use DataFrame filtering to subset the data into two smaller dataframes. You should make one dataframe for individuals who survived >5 years and a second dataframe for individuals who did not. \n", + "\n", + "Create a graph with each of the dataframes (can be the same graph type) to show the differences in Age and Number of Positive Axillary Nodes Detected between the two groups." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "mIpZglpk1tqc", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "4e089b96-5421-4bc3-9890-597230e81288" + }, + "source": [ + "df.reset_index(inplace=True)\n", + "df" + ], + "execution_count": 228, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
indexAgeYearNodesSurvival
00306231
11306501
22315921
33316541
443358101
55336001
66345900
77346690
883458301
99346011
10103461101
1111346771
1212346001
13133564131
1414356301
1515366011
1616366901
1717376001
1818376301
1919375801
2020375961
21213760151
2222376301
23233869210
2424385921
2525386001
2626386001
2727386231
2828386411
2929386601
..................
275275676601
276276676101
277277676501
278278686701
279279686801
280280696780
281281696001
282282696501
283283696601
284284705800
285285705840
2862867066141
287287706701
288288706801
289289705981
290290706301
291291716821
292292726300
293293725801
294294726401
295295726731
296296736201
297297736801
298298746530
299299746301
300300756211
301301766701
302302776531
303303786510
304304835820
\n", + "

305 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " index Age Year Nodes Survival\n", + "0 0 30 62 3 1\n", + "1 1 30 65 0 1\n", + "2 2 31 59 2 1\n", + "3 3 31 65 4 1\n", + "4 4 33 58 10 1\n", + "5 5 33 60 0 1\n", + "6 6 34 59 0 0\n", + "7 7 34 66 9 0\n", + "8 8 34 58 30 1\n", + "9 9 34 60 1 1\n", + "10 10 34 61 10 1\n", + "11 11 34 67 7 1\n", + "12 12 34 60 0 1\n", + "13 13 35 64 13 1\n", + "14 14 35 63 0 1\n", + "15 15 36 60 1 1\n", + "16 16 36 69 0 1\n", + "17 17 37 60 0 1\n", + "18 18 37 63 0 1\n", + "19 19 37 58 0 1\n", + "20 20 37 59 6 1\n", + "21 21 37 60 15 1\n", + "22 22 37 63 0 1\n", + "23 23 38 69 21 0\n", + "24 24 38 59 2 1\n", + "25 25 38 60 0 1\n", + "26 26 38 60 0 1\n", + "27 27 38 62 3 1\n", + "28 28 38 64 1 1\n", + "29 29 38 66 0 1\n", + ".. ... ... ... ... ...\n", + "275 275 67 66 0 1\n", + "276 276 67 61 0 1\n", + "277 277 67 65 0 1\n", + "278 278 68 67 0 1\n", + "279 279 68 68 0 1\n", + "280 280 69 67 8 0\n", + "281 281 69 60 0 1\n", + "282 282 69 65 0 1\n", + "283 283 69 66 0 1\n", + "284 284 70 58 0 0\n", + "285 285 70 58 4 0\n", + "286 286 70 66 14 1\n", + "287 287 70 67 0 1\n", + "288 288 70 68 0 1\n", + "289 289 70 59 8 1\n", + "290 290 70 63 0 1\n", + "291 291 71 68 2 1\n", + "292 292 72 63 0 0\n", + "293 293 72 58 0 1\n", + "294 294 72 64 0 1\n", + "295 295 72 67 3 1\n", + "296 296 73 62 0 1\n", + "297 297 73 68 0 1\n", + "298 298 74 65 3 0\n", + "299 299 74 63 0 1\n", + "300 300 75 62 1 1\n", + "301 301 76 67 0 1\n", + "302 302 77 65 3 1\n", + "303 303 78 65 1 0\n", + "304 304 83 58 2 0\n", + "\n", + "[305 rows x 5 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 228 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "DCNofqVk1338", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "e080ca2b-6530-49d9-c121-39411e2a783b" + }, + "source": [ + "df.sort_values(by=['Survival'])" + ], + "execution_count": 229, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
indexAgeYearNodesSurvival
304304835820
223223606500
108108486770
1071074858110
1061064858110
228228616250
229229616500
230230616810
9797476500
9696476200
95954763230
91914665200
9090466250
8989466930
2372376259130
238238625800
2392396265190
8181456710
8080456600
7979456560
244244636010
74744463190
7373445890
7272446460
6464436400
6363436400
2222226059170
113113496300
1141144964100
2142145962350
..................
84844559141
8585456401
8686456801
8787456711
9292466201
9393465831
9494466301
9898476101
9999476361
100100476601
101101476701
102102475831
103103476041
127127506101
104104476841
109109486181
110110486221
111111486401
112112486601
115115496111
116116496201
117117496601
118118496011
119119496211
120120496331
121121496101
122122496711
125125505901
1051054766121
152152526401
\n", + "

305 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " index Age Year Nodes Survival\n", + "304 304 83 58 2 0\n", + "223 223 60 65 0 0\n", + "108 108 48 67 7 0\n", + "107 107 48 58 11 0\n", + "106 106 48 58 11 0\n", + "228 228 61 62 5 0\n", + "229 229 61 65 0 0\n", + "230 230 61 68 1 0\n", + "97 97 47 65 0 0\n", + "96 96 47 62 0 0\n", + "95 95 47 63 23 0\n", + "91 91 46 65 20 0\n", + "90 90 46 62 5 0\n", + "89 89 46 69 3 0\n", + "237 237 62 59 13 0\n", + "238 238 62 58 0 0\n", + "239 239 62 65 19 0\n", + "81 81 45 67 1 0\n", + "80 80 45 66 0 0\n", + "79 79 45 65 6 0\n", + "244 244 63 60 1 0\n", + "74 74 44 63 19 0\n", + "73 73 44 58 9 0\n", + "72 72 44 64 6 0\n", + "64 64 43 64 0 0\n", + "63 63 43 64 0 0\n", + "222 222 60 59 17 0\n", + "113 113 49 63 0 0\n", + "114 114 49 64 10 0\n", + "214 214 59 62 35 0\n", + ".. ... ... ... ... ...\n", + "84 84 45 59 14 1\n", + "85 85 45 64 0 1\n", + "86 86 45 68 0 1\n", + "87 87 45 67 1 1\n", + "92 92 46 62 0 1\n", + "93 93 46 58 3 1\n", + "94 94 46 63 0 1\n", + "98 98 47 61 0 1\n", + "99 99 47 63 6 1\n", + "100 100 47 66 0 1\n", + "101 101 47 67 0 1\n", + "102 102 47 58 3 1\n", + "103 103 47 60 4 1\n", + "127 127 50 61 0 1\n", + "104 104 47 68 4 1\n", + "109 109 48 61 8 1\n", + "110 110 48 62 2 1\n", + "111 111 48 64 0 1\n", + "112 112 48 66 0 1\n", + "115 115 49 61 1 1\n", + "116 116 49 62 0 1\n", + "117 117 49 66 0 1\n", + "118 118 49 60 1 1\n", + "119 119 49 62 1 1\n", + "120 120 49 63 3 1\n", + "121 121 49 61 0 1\n", + "122 122 49 67 1 1\n", + "125 125 50 59 0 1\n", + "105 105 47 66 12 1\n", + "152 152 52 64 0 1\n", + "\n", + "[305 rows x 5 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 229 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ZM8JckA2bgnp", + "colab_type": "text" + }, + "source": [ + "## Part 4 - Analysis and Interpretation\n", + "\n", + "Now that you've looked at the data, answer the following questions:\n", + "\n", + "- What is at least one feature that looks to have a positive relationship with survival? (As that feature goes up in value rate of survival increases)\n", + "- What is at least one feature that looks to have a negative relationship with survival? (As that feature goes down in value rate of survival increases)\n", + "- How are those two features related with each other, and what might that mean?\n", + "\n", + "Answer with text, but feel free to intersperse example code/results or refer to it from earlier.\n", + "\n", + "I wasn't able to gather any solid survival relationships between the data, whether positive or negative. It is possible that youth, lower node numbers, and later surgery years may have had a positive impact on survival rates. However, older patients, earlier surgery years, and higher node numbers, may have had a negative impact on survival rates.\n", + "\n", + "Younger patients may have had shorter recovery times to treatment or more vigorous reation to surgery. The surgery year may have reflected the lack of procedure and technology available at the time. More nodes may imply a more malignant form of cancer.\n", + "\n", + "This was very difficult for me. I had an idea of what to do, but fell short on pandas execution. I tried to go back on the lecture notes but found them lacking in technique and relatable examples. Maybe I wasn't paying attention. Whatever the reason, I'm not impressed by my performance." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "90OSBGhOjk1b", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# Any Supplemental Code for Analysis Here" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/module1-afirstlookatdata/LS_DSPT3_111_A_First_Look_at_Data.ipynb b/module1-afirstlookatdata/LS_DSPT3_111_A_First_Look_at_Data.ipynb new file mode 100644 index 00000000..d0d2ac2a --- /dev/null +++ b/module1-afirstlookatdata/LS_DSPT3_111_A_First_Look_at_Data.ipynb @@ -0,0 +1,557 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "LS_DSPT3_111_A_First_Look_at_Data.ipynb", + "version": "0.3.2", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Okfr_uhwhS1X", + "colab_type": "text" + }, + "source": [ + "# Lambda School Data Science - A First Look at Data\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9dtJETFRhnOG", + "colab_type": "text" + }, + "source": [ + "## Lecture - let's explore Python DS libraries and examples!\n", + "\n", + "The Python Data Science ecosystem is huge. You've seen some of the big pieces - pandas, scikit-learn, matplotlib. What parts do you want to see more of?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "WiBkgmPJhmhE", + "colab_type": "code", + "colab": {} + }, + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lOqaPds9huME", + "colab_type": "text" + }, + "source": [ + "## Assignment - now it's your turn\n", + "\n", + "Pick at least one Python DS library, and using documentation/examples reproduce in this notebook something cool. It's OK if you don't fully understand it or get it 100% working, but do put in effort and look things up." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "TGUS79cOhPWj", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "dbf48541-be66-45a0-d815-ec64659667ce" + }, + "source": [ + "# TODO - your code here\n", + "# Use what we did live in lecture as an example\n", + "\n", + "np.random.randint(0, 10, size=10)" + ], + "execution_count": 39, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([9, 4, 9, 9, 6, 2, 2, 5, 0, 3])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 39 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "sWaV41AvvVW1", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "47e1b349-ee72-490a-ec36-7f039f1bd8f8" + }, + "source": [ + "np.random.randint(0, 10, size=10)" + ], + "execution_count": 40, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0, 5, 8, 8, 5, 2, 1, 0, 7, 9])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 40 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "jiuAfK2vvO5m", + "colab_type": "code", + "colab": {} + }, + "source": [ + "x = [9, 4, 9, 9, 6, 2, 2, 5, 0, 3]\n", + "y = [0, 5, 8, 8, 5, 2, 1, 0, 7, 9]" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "w28HwSlunh4f", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 359 + }, + "outputId": "9a026ae3-64c2-402d-b7c3-f57a3e4eefb3" + }, + "source": [ + "df = pd.DataFrame ({'set 1': x, \"set 2\": y})\n", + "df" + ], + "execution_count": 42, + "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", + "
set 1set 2
090
145
298
398
465
522
621
750
807
939
\n", + "
" + ], + "text/plain": [ + " set 1 set 2\n", + "0 9 0\n", + "1 4 5\n", + "2 9 8\n", + "3 9 8\n", + "4 6 5\n", + "5 2 2\n", + "6 2 1\n", + "7 5 0\n", + "8 0 7\n", + "9 3 9" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 42 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "BDqQAKRWreog", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + }, + "outputId": "1f8fc6c0-c653-4e82-f15e-79451d2aa4de" + }, + "source": [ + "df['set 1']" + ], + "execution_count": 43, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 9\n", + "1 4\n", + "2 9\n", + "3 9\n", + "4 6\n", + "5 2\n", + "6 2\n", + "7 5\n", + "8 0\n", + "9 3\n", + "Name: set 1, dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 43 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "dEjVrQdProT-", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "402663da-eb51-436f-f682-b6094c1152e2" + }, + "source": [ + "df.shape" + ], + "execution_count": 44, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(10, 2)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 44 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "_6__pg7frt2u", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 359 + }, + "outputId": "3bbee2d8-dcf3-4526-8204-f256ec8f7e2f" + }, + "source": [ + "df['set 3'] = df['set 1'] + 2*df['set 2']\n", + "df" + ], + "execution_count": 45, + "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", + "
set 1set 2set 3
0909
14514
29825
39825
46516
5226
6214
7505
80714
93921
\n", + "
" + ], + "text/plain": [ + " set 1 set 2 set 3\n", + "0 9 0 9\n", + "1 4 5 14\n", + "2 9 8 25\n", + "3 9 8 25\n", + "4 6 5 16\n", + "5 2 2 6\n", + "6 2 1 4\n", + "7 5 0 5\n", + "8 0 7 14\n", + "9 3 9 21" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 45 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "uoY7TDrasOP8", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "634a4c7c-429f-437d-ec91-360a19e4060c" + }, + "source": [ + "df.shape" + ], + "execution_count": 46, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(10, 3)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 46 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BT9gdS7viJZa", + "colab_type": "text" + }, + "source": [ + "### Assignment questions\n", + "\n", + "After you've worked on some code, answer the following questions in this text block:\n", + "\n", + "1. Describe in a paragraph of text what you did and why, as if you were writing an email to somebody interested but nontechnical.\n", + "\n", + "*# I tinkered with three of the most used libraries for python. A library is a group of tools that makes life easier for a user of any coding program.*\n", + "\n", + "2. What was the most challenging part of what you did?\n", + "\n", + "*# The precourse helped in familiarizing me with the libraries and their hidden super powers, so, that wasn't too challenging. What was challenging was the lecture and getting used to Alex's teaching style, the Zoom/Slack environment, and using GitHub.*\n", + "\n", + "3. What was the most interesting thing you learned?\n", + "\n", + "*# GitHub is pretty damn powerful.*\n", + "\n", + "4. What area would you like to explore with more time?\n", + "\n", + "*# Everything covered in this lecture. However, with time, I'll become more fluent with all tools. Just a bit excited.*\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_XXg2crAipwP", + "colab_type": "text" + }, + "source": [ + "## Stretch goals and resources\n", + "\n", + "Following are *optional* things for you to take a look at. Focus on the above assignment first, and make sure to commit and push your changes to GitHub (and since this is the first assignment of the sprint, open a PR as well).\n", + "\n", + "- [pandas documentation](https://pandas.pydata.org/pandas-docs/stable/)\n", + "- [scikit-learn documentation](http://scikit-learn.org/stable/documentation.html)\n", + "- [matplotlib documentation](https://matplotlib.org/contents.html)\n", + "- [Awesome Data Science](https://github.com/bulutyazilim/awesome-datascience) - a list of many types of DS resources\n", + "\n", + "Stretch goals:\n", + "\n", + "- Find and read blogs, walkthroughs, and other examples of people working through cool things with data science - and share with your classmates!\n", + "- Write a blog post (Medium is a popular place to publish) introducing yourself as somebody learning data science, and talking about what you've learned already and what you're excited to learn more about." + ] + } + ] +} \ No newline at end of file diff --git a/module1-join-and-reshape-data/HANK_LS_DSPT3_121_Join_and_Reshape_Data_Assignment.ipynb b/module1-join-and-reshape-data/HANK_LS_DSPT3_121_Join_and_Reshape_Data_Assignment.ipynb new file mode 100644 index 00000000..e6f4b978 --- /dev/null +++ b/module1-join-and-reshape-data/HANK_LS_DSPT3_121_Join_and_Reshape_Data_Assignment.ipynb @@ -0,0 +1,2248 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "HANK - LS_DSPT3_121_Join_and_Reshape_Data_Assignment.ipynb", + "provenance": [], + "collapsed_sections": [], + "machine_shape": "hm", + "include_colab_link": true + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "pmU5YUal1eTZ" + }, + "source": [ + "_Lambda School Data Science_\n", + "\n", + "# Join and Reshape datasets\n", + "\n", + "Objectives\n", + "- concatenate data with pandas\n", + "- merge data with pandas\n", + "- understand tidy data formatting\n", + "- melt and pivot data with pandas\n", + "\n", + "Links\n", + "- [Pandas Cheat Sheet](https://github.com/pandas-dev/pandas/blob/master/doc/cheatsheet/Pandas_Cheat_Sheet.pdf)\n", + "- [Tidy Data](https://en.wikipedia.org/wiki/Tidy_data)\n", + " - Combine Data Sets: Standard Joins\n", + " - Tidy Data\n", + " - Reshaping Data\n", + "- Python Data Science Handbook\n", + " - [Chapter 3.6](https://jakevdp.github.io/PythonDataScienceHandbook/03.06-concat-and-append.html), Combining Datasets: Concat and Append\n", + " - [Chapter 3.7](https://jakevdp.github.io/PythonDataScienceHandbook/03.07-merge-and-join.html), Combining Datasets: Merge and Join\n", + " - [Chapter 3.8](https://jakevdp.github.io/PythonDataScienceHandbook/03.08-aggregation-and-grouping.html), Aggregation and Grouping\n", + " - [Chapter 3.9](https://jakevdp.github.io/PythonDataScienceHandbook/03.09-pivot-tables.html), Pivot Tables\n", + " \n", + "Reference\n", + "- Pandas Documentation: [Reshaping and Pivot Tables](https://pandas.pydata.org/pandas-docs/stable/reshaping.html)\n", + "- Modern Pandas, Part 5: [Tidy Data](https://tomaugspurger.github.io/modern-5-tidy.html)" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "5MsWLLW4Xg_i", + "colab_type": "code", + "outputId": "af0d0447-21a1-4930-a078-6a34f48509e3", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 224 + } + }, + "source": [ + "!wget https://s3.amazonaws.com/instacart-datasets/instacart_online_grocery_shopping_2017_05_01.tar.gz" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "--2019-09-19 01:34:56-- https://s3.amazonaws.com/instacart-datasets/instacart_online_grocery_shopping_2017_05_01.tar.gz\n", + "Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.216.129.213\n", + "Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.216.129.213|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 205548478 (196M) [application/x-gzip]\n", + "Saving to: ‘instacart_online_grocery_shopping_2017_05_01.tar.gz’\n", + "\n", + "instacart_online_gr 100%[===================>] 196.03M 4.97MB/s in 47s \n", + "\n", + "2019-09-19 01:35:44 (4.15 MB/s) - ‘instacart_online_grocery_shopping_2017_05_01.tar.gz’ saved [205548478/205548478]\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gfr4_Ya0XkLI", + "colab_type": "code", + "outputId": "73f465f3-1c28-4f38-9f23-2a7dbe59ba7c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 238 + } + }, + "source": [ + "!tar --gunzip --extract --verbose --file=instacart_online_grocery_shopping_2017_05_01.tar.gz" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "instacart_2017_05_01/\n", + "instacart_2017_05_01/._aisles.csv\n", + "instacart_2017_05_01/aisles.csv\n", + "instacart_2017_05_01/._departments.csv\n", + "instacart_2017_05_01/departments.csv\n", + "instacart_2017_05_01/._order_products__prior.csv\n", + "instacart_2017_05_01/order_products__prior.csv\n", + "instacart_2017_05_01/._order_products__train.csv\n", + "instacart_2017_05_01/order_products__train.csv\n", + "instacart_2017_05_01/._orders.csv\n", + "instacart_2017_05_01/orders.csv\n", + "instacart_2017_05_01/._products.csv\n", + "instacart_2017_05_01/products.csv\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "N4YyGPNdXrT0", + "colab_type": "code", + "outputId": "525d48b9-3f3a-4f02-e50f-59e86ca40082", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "%cd instacart_2017_05_01" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/content/instacart_2017_05_01\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "b26wmLUiXtlM", + "colab_type": "code", + "outputId": "8fdd618c-daa8-4af0-a314-1fbe6a1eceba", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 119 + } + }, + "source": [ + "!ls -lh *.csv" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "-rw-r--r-- 1 502 staff 2.6K May 2 2017 aisles.csv\n", + "-rw-r--r-- 1 502 staff 270 May 2 2017 departments.csv\n", + "-rw-r--r-- 1 502 staff 551M May 2 2017 order_products__prior.csv\n", + "-rw-r--r-- 1 502 staff 24M May 2 2017 order_products__train.csv\n", + "-rw-r--r-- 1 502 staff 104M May 2 2017 orders.csv\n", + "-rw-r--r-- 1 502 staff 2.1M May 2 2017 products.csv\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "kAMtvSQWPUcj" + }, + "source": [ + "# Assignment\n", + "\n", + "## Join Data Practice\n", + "\n", + "These are the top 10 most frequently ordered products. How many times was each ordered? \n", + "\n", + "1. Banana\n", + "2. Bag of Organic Bananas\n", + "3. Organic Strawberries\n", + "4. Organic Baby Spinach \n", + "5. Organic Hass Avocado\n", + "6. Organic Avocado\n", + "7. Large Lemon \n", + "8. Strawberries\n", + "9. Limes \n", + "10. Organic Whole Milk\n", + "\n", + "First, write down which columns you need and which dataframes have them.\n", + "\n", + "Next, merge these into a single dataframe.\n", + "\n", + "Then, use pandas functions from the previous lesson to get the counts of the top 10 most frequently ordered products." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vvE0EVHgXMFO", + "colab_type": "code", + "colab": {} + }, + "source": [ + "import pandas as pd" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "6Cog4bCN9K-M", + "colab_type": "code", + "outputId": "28b1792a-d33a-4665-b7b4-e22016e97c8f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 119 + } + }, + "source": [ + "!ls -lh *.csv" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "-rw-r--r-- 1 502 staff 2.6K May 2 2017 aisles.csv\n", + "-rw-r--r-- 1 502 staff 270 May 2 2017 departments.csv\n", + "-rw-r--r-- 1 502 staff 551M May 2 2017 order_products__prior.csv\n", + "-rw-r--r-- 1 502 staff 24M May 2 2017 order_products__train.csv\n", + "-rw-r--r-- 1 502 staff 104M May 2 2017 orders.csv\n", + "-rw-r--r-- 1 502 staff 2.1M May 2 2017 products.csv\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "aHHptQzg9RBa", + "colab_type": "code", + "colab": {} + }, + "source": [ + "aisle = pd.read_csv('aisles.csv')\n", + "aisle.head(2)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "UESnDaVx9bCD", + "colab_type": "code", + "colab": {} + }, + "source": [ + "dept = pd.read_csv('departments.csv')\n", + "dept.head(2)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "I1an8RvxtMeI", + "colab_type": "code", + "colab": {} + }, + "source": [ + "ord_pro_p = pd.read_csv('order_products__prior.csv')\n", + "ord_pro_p.head(2)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "AzUZ1ol8DrBc", + "colab_type": "code", + "colab": {} + }, + "source": [ + "ord_pro_p.shape" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "3fKbBMOb83V3", + "colab_type": "code", + "colab": {} + }, + "source": [ + "ord_pro_t = pd.read_csv('order_products__train.csv')\n", + "ord_pro_t.head(2)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Hb6XW7RsDmpp", + "colab_type": "code", + "colab": {} + }, + "source": [ + "ord_pro_t.shape" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "14zTypva9tKd", + "colab_type": "code", + "colab": {} + }, + "source": [ + "ords = pd.read_csv('orders.csv')\n", + "ords.head(2)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "F17_K70SFY-u", + "colab_type": "code", + "colab": {} + }, + "source": [ + "ords = ords.drop(['eval_set', 'order_number', 'order_dow',\t'order_hour_of_day', 'days_since_prior_order'], 1)\n", + "ords.head(2)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "EPEvmRvC-E9U", + "colab_type": "code", + "colab": {} + }, + "source": [ + "prods = pd.read_csv('products.csv')\n", + "prods.head(2)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "FG8UWl4iIkH9", + "colab_type": "code", + "colab": {} + }, + "source": [ + "prods = prods.drop(['aisle_id',\t'department_id'], 1)\n", + "prods.head(2)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3bgdpE1W_RxD", + "colab_type": "text" + }, + "source": [ + "We need:\n", + "- order_id\n", + "- product_id\n", + "- add_to_cart_order\n", + "- reordered" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "brlOOAQ3_1Xt", + "colab_type": "code", + "colab": {} + }, + "source": [ + "ord_pro = pd.concat([ord_pro_p, ord_pro_t])\n", + "ord_pro.head(10)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "KWSNgkShDzSr", + "colab_type": "code", + "colab": {} + }, + "source": [ + "ord_pro.shape" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Qpx-phOSIy3S", + "colab_type": "code", + "colab": {} + }, + "source": [ + "ord_pro_main = pd.concat([ord_pro, ords, prods], sort=False)\n", + "ord_pro_main.head(10)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "UjnSsqm5JjJ3", + "colab_type": "code", + "colab": {} + }, + "source": [ + "ord_pro_main = ord_pro_main.drop(['product_name'], 1)\n", + "ord_pro_main.head(2)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "s6FQ_f0oLi9M", + "colab_type": "code", + "outputId": "dd5dd0fe-87ec-4aad-c4db-ccd22d797b61", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 111 + } + }, + "source": [ + "ord_pro_main.head(2)" + ], + "execution_count": 0, + "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", + "
order_idproduct_idadd_to_cart_orderreordered
02.033120.01.01.0
12.028985.02.01.0
\n", + "
" + ], + "text/plain": [ + " order_id product_id add_to_cart_order reordered\n", + "0 2.0 33120.0 1.0 1.0\n", + "1 2.0 28985.0 2.0 1.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 27 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "f3LudDc-LwNZ", + "colab_type": "code", + "outputId": "2dead652-34c2-4b83-bac0-e8cb2c27f02b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + } + }, + "source": [ + "ord_pro_main[ord_pro_main.add_to_cart_order == 1].nlargest(10, 'product_id')['order_id']" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "2949285 311401.0\n", + "7991850 843667.0\n", + "9253641 976732.0\n", + "12134934 1280895.0\n", + "12209321 1288677.0\n", + "13789213 1455356.0\n", + "22407979 2363598.0\n", + "23126380 2439069.0\n", + "23990392 2530161.0\n", + "26976789 2844538.0\n", + "Name: order_id, dtype: float64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 28 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RsiWi4DuXPLP", + "colab_type": "text" + }, + "source": [ + "## Reshape Data Section\n", + "\n", + "- Replicate the lesson code\n", + "- Complete the code cells we skipped near the beginning of the notebook\n", + "- Table 2 --> Tidy\n", + "- Tidy --> Table 2\n", + "- Load seaborn's `flights` dataset by running the cell below. Then create a pivot table showing the number of passengers by month and year. Use year for the index and month for the columns. You've done it right if you get 112 passengers for January 1949 and 432 passengers for December 1960." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "V_YIgPPxTGob", + "colab_type": "code", + "colab": {} + }, + "source": [ + "%matplotlib inline\n", + "import pandas as pd\n", + "import numpy as np\n", + "import seaborn as sns\n", + "\n", + "table1 = pd.DataFrame(\n", + " [[np.nan, 2],\n", + " [16, 11], \n", + " [3, 1]],\n", + " index=['John Smith', 'Jane Doe', 'Mary Johnson'], \n", + " columns=['treatmenta', 'treatmentb'])\n", + "\n", + "table2 = table1.T" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "ehrcPBTdTbr6", + "colab_type": "code", + "outputId": "e2eae785-5ebb-4d76-8b56-2d8718a6c97b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 142 + } + }, + "source": [ + "table1" + ], + "execution_count": 0, + "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", + "
treatmentatreatmentb
John SmithNaN2
Jane Doe16.011
Mary Johnson3.01
\n", + "
" + ], + "text/plain": [ + " treatmenta treatmentb\n", + "John Smith NaN 2\n", + "Jane Doe 16.0 11\n", + "Mary Johnson 3.0 1" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 33 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "221MfwnyTdXq", + "colab_type": "code", + "outputId": "c30971d6-c270-46fd-c087-756f0fa3ee87", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 111 + } + }, + "source": [ + "table2" + ], + "execution_count": 0, + "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", + "
John SmithJane DoeMary Johnson
treatmentaNaN16.03.0
treatmentb2.011.01.0
\n", + "
" + ], + "text/plain": [ + " John Smith Jane Doe Mary Johnson\n", + "treatmenta NaN 16.0 3.0\n", + "treatmentb 2.0 11.0 1.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 34 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "tjvFZVgnT01P", + "colab_type": "code", + "outputId": "03e14221-d3bf-435e-d740-72980653690d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "table1.index" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Index(['John Smith', 'Jane Doe', 'Mary Johnson'], dtype='object')" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 35 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "5hfeROT6T2dv", + "colab_type": "code", + "colab": {} + }, + "source": [ + "table1 = table1.reset_index()" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "XCpRB6udT5DH", + "colab_type": "code", + "outputId": "db83e605-04eb-4f94-e88a-fdb9e1ea95f9", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 142 + } + }, + "source": [ + "table1" + ], + "execution_count": 0, + "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", + "
indextreatmentatreatmentb
0John SmithNaN2
1Jane Doe16.011
2Mary Johnson3.01
\n", + "
" + ], + "text/plain": [ + " index treatmenta treatmentb\n", + "0 John Smith NaN 2\n", + "1 Jane Doe 16.0 11\n", + "2 Mary Johnson 3.0 1" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 37 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "KbDUSl3OUNgU", + "colab_type": "code", + "outputId": "b69c2488-64e6-4283-926b-2dd5b8314625", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + } + }, + "source": [ + "tidy = table1.melt(id_vars='index')\n", + "tidy" + ], + "execution_count": 0, + "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", + "
indexvariablevalue
0John SmithtreatmentaNaN
1Jane Doetreatmenta16.0
2Mary Johnsontreatmenta3.0
3John Smithtreatmentb2.0
4Jane Doetreatmentb11.0
5Mary Johnsontreatmentb1.0
\n", + "
" + ], + "text/plain": [ + " index variable value\n", + "0 John Smith treatmenta NaN\n", + "1 Jane Doe treatmenta 16.0\n", + "2 Mary Johnson treatmenta 3.0\n", + "3 John Smith treatmentb 2.0\n", + "4 Jane Doe treatmentb 11.0\n", + "5 Mary Johnson treatmentb 1.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 38 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "SvU89ndKUTHc", + "colab_type": "code", + "outputId": "a0351050-1362-402d-cc60-6aa44ab08a97", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + } + }, + "source": [ + "tidy.columns = ['name', 'trt', 'result']\n", + "tidy" + ], + "execution_count": 0, + "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", + "
nametrtresult
0John SmithtreatmentaNaN
1Jane Doetreatmenta16.0
2Mary Johnsontreatmenta3.0
3John Smithtreatmentb2.0
4Jane Doetreatmentb11.0
5Mary Johnsontreatmentb1.0
\n", + "
" + ], + "text/plain": [ + " name trt result\n", + "0 John Smith treatmenta NaN\n", + "1 Jane Doe treatmenta 16.0\n", + "2 Mary Johnson treatmenta 3.0\n", + "3 John Smith treatmentb 2.0\n", + "4 Jane Doe treatmentb 11.0\n", + "5 Mary Johnson treatmentb 1.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 39 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ka6zSX5GUZRL", + "colab_type": "text" + }, + "source": [ + "## Table 2 --> Tidy" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "OV1kk1K_UXTc", + "colab_type": "code", + "outputId": "529a286d-5d36-493a-9c29-18b7b3ca67f7", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "table2.index" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Index(['treatmenta', 'treatmentb'], dtype='object')" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 40 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vjYEU3A5UsEJ", + "colab_type": "code", + "colab": {} + }, + "source": [ + "table2 = table2.reset_index()" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "y-TXGTwuUwIh", + "colab_type": "code", + "outputId": "84c28bb9-1fa5-4ba5-d26a-20649b2c69b4", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 111 + } + }, + "source": [ + "table2" + ], + "execution_count": 0, + "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", + "
indexJohn SmithJane DoeMary Johnson
0treatmentaNaN16.03.0
1treatmentb2.011.01.0
\n", + "
" + ], + "text/plain": [ + " index John Smith Jane Doe Mary Johnson\n", + "0 treatmenta NaN 16.0 3.0\n", + "1 treatmentb 2.0 11.0 1.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 42 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gA0nWYa_U1sJ", + "colab_type": "code", + "outputId": "0f9567bc-83f7-4a19-9a45-8c60229544e5", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + } + }, + "source": [ + "tidy = table2.melt(id_vars='index')\n", + "tidy" + ], + "execution_count": 0, + "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", + "
indexvariablevalue
0treatmentaJohn SmithNaN
1treatmentbJohn Smith2.0
2treatmentaJane Doe16.0
3treatmentbJane Doe11.0
4treatmentaMary Johnson3.0
5treatmentbMary Johnson1.0
\n", + "
" + ], + "text/plain": [ + " index variable value\n", + "0 treatmenta John Smith NaN\n", + "1 treatmentb John Smith 2.0\n", + "2 treatmenta Jane Doe 16.0\n", + "3 treatmentb Jane Doe 11.0\n", + "4 treatmenta Mary Johnson 3.0\n", + "5 treatmentb Mary Johnson 1.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 43 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "A0irYKykU6oI", + "colab_type": "code", + "outputId": "9a2484f3-e7f4-4e5e-b08c-f71b85e83747", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + } + }, + "source": [ + "tidy.columns = ['trt', 'name', 'result']\n", + "tidy" + ], + "execution_count": 0, + "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", + "
trtnameresult
0treatmentaJohn SmithNaN
1treatmentbJohn Smith2.0
2treatmentaJane Doe16.0
3treatmentbJane Doe11.0
4treatmentaMary Johnson3.0
5treatmentbMary Johnson1.0
\n", + "
" + ], + "text/plain": [ + " trt name result\n", + "0 treatmenta John Smith NaN\n", + "1 treatmentb John Smith 2.0\n", + "2 treatmenta Jane Doe 16.0\n", + "3 treatmentb Jane Doe 11.0\n", + "4 treatmenta Mary Johnson 3.0\n", + "5 treatmentb Mary Johnson 1.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 44 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "457GDQXlVKQX", + "colab_type": "text" + }, + "source": [ + "## Tidy --> Table 1" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "aQsJAu0bVJVe", + "colab_type": "code", + "outputId": "5c75a84c-8c8b-473b-97b8-5ae861499606", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 142 + } + }, + "source": [ + "table1" + ], + "execution_count": 0, + "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", + "
indextreatmentatreatmentb
0John SmithNaN2
1Jane Doe16.011
2Mary Johnson3.01
\n", + "
" + ], + "text/plain": [ + " index treatmenta treatmentb\n", + "0 John Smith NaN 2\n", + "1 Jane Doe 16.0 11\n", + "2 Mary Johnson 3.0 1" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 45 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "eKRuyb4bVVAF", + "colab_type": "code", + "outputId": "7e79cb32-82c2-4c44-caab-2a548dec0f74", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 173 + } + }, + "source": [ + "tidy.pivot_table(index='name', columns='trt', values='result')" + ], + "execution_count": 0, + "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", + "
trttreatmentatreatmentb
name
Jane Doe16.011.0
John SmithNaN2.0
Mary Johnson3.01.0
\n", + "
" + ], + "text/plain": [ + "trt treatmenta treatmentb\n", + "name \n", + "Jane Doe 16.0 11.0\n", + "John Smith NaN 2.0\n", + "Mary Johnson 3.0 1.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 46 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tbbYpyddVgq_", + "colab_type": "text" + }, + "source": [ + "## Tidy --> Table 2" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "DwI541mVVfS9", + "colab_type": "code", + "outputId": "f44423e3-0bf9-44f0-e2dd-f365f5ffd74a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 111 + } + }, + "source": [ + "table2" + ], + "execution_count": 0, + "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", + "
indexJohn SmithJane DoeMary Johnson
0treatmentaNaN16.03.0
1treatmentb2.011.01.0
\n", + "
" + ], + "text/plain": [ + " index John Smith Jane Doe Mary Johnson\n", + "0 treatmenta NaN 16.0 3.0\n", + "1 treatmentb 2.0 11.0 1.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 47 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vSuKKbxmVnR9", + "colab_type": "code", + "outputId": "54a7bd41-39b0-40fb-81c7-2998341d6b8a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 142 + } + }, + "source": [ + "tidy.pivot_table(index='trt', columns='name', values='result')" + ], + "execution_count": 0, + "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", + "
nameJane DoeJohn SmithMary Johnson
trt
treatmenta16.0NaN3.0
treatmentb11.02.01.0
\n", + "
" + ], + "text/plain": [ + "name Jane Doe John Smith Mary Johnson\n", + "trt \n", + "treatmenta 16.0 NaN 3.0\n", + "treatmentb 11.0 2.0 1.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 48 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_1o1dllIWVbv", + "colab_type": "text" + }, + "source": [ + "# Load seaborn's `flights` dataset by running the cell below. Then create a pivot table showing the number of passengers by month and year. Use year for the index and month for the columns. You've done it right if you get 112 passengers for January 1949 and 432 passengers for December 1960." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "fgxulJQq0uLw", + "colab_type": "code", + "colab": {} + }, + "source": [ + "flights = sns.load_dataset('flights')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "CyDdChZcOlLx", + "colab_type": "code", + "colab": {} + }, + "source": [ + "flights.head(2)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "qfnzr6k3cDh6", + "colab_type": "code", + "colab": {} + }, + "source": [ + "fl = flights.set_index('year')\n", + "fl" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "-uNKbP6JeOqi", + "colab_type": "code", + "outputId": "1bc1c3ba-58d0-49ab-9ad0-b3ec464cb714", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 142 + } + }, + "source": [ + "fl.head(2)" + ], + "execution_count": 0, + "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", + "
monthpassengers
year
1949January112
1949February118
\n", + "
" + ], + "text/plain": [ + " month passengers\n", + "year \n", + "1949 January 112\n", + "1949 February 118" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 93 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "iPofB-LgfGOG", + "colab_type": "code", + "outputId": "6da7c2b5-e13f-458c-8bbc-0e3a9ca3f250", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 472 + } + }, + "source": [ + "fl.pivot_table(index='year', columns='month', values='passengers')\n" + ], + "execution_count": 0, + "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", + "
monthJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember
year
1949112118132129121135148148136119104118
1950115126141135125149170170158133114140
1951145150178163172178199199184162146166
1952171180193181183218230242209191172194
1953196196236235229243264272237211180201
1954204188235227234264302293259229203229
1955242233267269270315364347312274237278
1956284277317313318374413405355306271306
1957315301356348355422465467404347305336
1958340318362348363435491505404359310337
1959360342406396420472548559463407362405
1960417391419461472535622606508461390432
\n", + "
" + ], + "text/plain": [ + "month January February March April ... September October November December\n", + "year ... \n", + "1949 112 118 132 129 ... 136 119 104 118\n", + "1950 115 126 141 135 ... 158 133 114 140\n", + "1951 145 150 178 163 ... 184 162 146 166\n", + "1952 171 180 193 181 ... 209 191 172 194\n", + "1953 196 196 236 235 ... 237 211 180 201\n", + "1954 204 188 235 227 ... 259 229 203 229\n", + "1955 242 233 267 269 ... 312 274 237 278\n", + "1956 284 277 317 313 ... 355 306 271 306\n", + "1957 315 301 356 348 ... 404 347 305 336\n", + "1958 340 318 362 348 ... 404 359 310 337\n", + "1959 360 342 406 396 ... 463 407 362 405\n", + "1960 417 391 419 461 ... 508 461 390 432\n", + "\n", + "[12 rows x 12 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 96 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mnOuqL9K0dqh", + "colab_type": "text" + }, + "source": [ + "## Join Data Stretch Challenge\n", + "\n", + "The [Instacart blog post](https://tech.instacart.com/3-million-instacart-orders-open-sourced-d40d29ead6f2) has a visualization of \"**Popular products** purchased earliest in the day (green) and latest in the day (red).\" \n", + "\n", + "The post says,\n", + "\n", + "> \"We can also see the time of day that users purchase specific products.\n", + "\n", + "> Healthier snacks and staples tend to be purchased earlier in the day, whereas ice cream (especially Half Baked and The Tonight Dough) are far more popular when customers are ordering in the evening.\n", + "\n", + "> **In fact, of the top 25 latest ordered products, the first 24 are ice cream! The last one, of course, is a frozen pizza.**\"\n", + "\n", + "Your challenge is to reproduce the list of the top 25 latest ordered popular products.\n", + "\n", + "We'll define \"popular products\" as products with more than 2,900 orders.\n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "B-QNMrVkYap4", + "colab_type": "code", + "colab": {} + }, + "source": [ + "##### YOUR CODE HERE #####" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Ij8S60q0YXxo", + "colab_type": "text" + }, + "source": [ + "## Reshape Data Stretch Challenge\n", + "\n", + "_Try whatever sounds most interesting to you!_\n", + "\n", + "- Replicate more of Instacart's visualization showing \"Hour of Day Ordered\" vs \"Percent of Orders by Product\"\n", + "- Replicate parts of the other visualization from [Instacart's blog post](https://tech.instacart.com/3-million-instacart-orders-open-sourced-d40d29ead6f2), showing \"Number of Purchases\" vs \"Percent Reorder Purchases\"\n", + "- Get the most recent order for each user in Instacart's dataset. This is a useful baseline when [predicting a user's next order](https://www.kaggle.com/c/instacart-market-basket-analysis)\n", + "- Replicate parts of the blog post linked at the top of this notebook: [Modern Pandas, Part 5: Tidy Data](https://tomaugspurger.github.io/modern-5-tidy.html)" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "_d6IA2R0YXFY", + "colab_type": "code", + "colab": {} + }, + "source": [ + "##### YOUR CODE HERE #####" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/module2-loadingdata/HANK_LS_DSPT3_112_Loading_Data_Assignment.ipynb b/module2-loadingdata/HANK_LS_DSPT3_112_Loading_Data_Assignment.ipynb new file mode 100644 index 00000000..d227e882 --- /dev/null +++ b/module2-loadingdata/HANK_LS_DSPT3_112_Loading_Data_Assignment.ipynb @@ -0,0 +1,1512 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "HANK - LS_DSPT3_112_Loading_Data_Assignment.ipynb", + "version": "0.3.2", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "MSnsTgZLKO72" + }, + "source": [ + "# Practice Loading Datasets\n", + "\n", + "This assignment is purposely semi-open-ended you will be asked to load datasets both from github and also from CSV files from the [UC Irvine Machine Learning Repository](https://archive.ics.uci.edu/ml/index.php). \n", + "\n", + "Remember that the UCI datasets may not have a file type of `.csv` so it's important that you learn as much as you can about the dataset before you try and load it. See if you can look at the raw text of the file either locally, on github, using the `!curl` shell command, or in some other way before you try and read it in as a dataframe, this will help you catch what would otherwise be unforseen problems.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "156P6ndeKojO", + "colab_type": "text" + }, + "source": [ + "## 1) Load a dataset from Github (via its *RAW* URL)\n", + "\n", + "Pick a dataset from the following repository and load it into Google Colab. Make sure that the headers are what you would expect and check to see if missing values have been encoded as NaN values:\n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "NJdISe69ZT7E", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# TODO your work here!\n", + "# And note you should write comments, descriptions, and add new\n", + "# code and text blocks as needed\n", + "\n", + "import pandas as pd" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "zlGNPhEJvLnx", + "colab_type": "code", + "outputId": "07c6523f-7bee-47c8-df93-0d13e614bcb1", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + } + }, + "source": [ + "dat_url = \"https://raw.githubusercontent.com/ryanleeallred/datasets/master/car_regression.csv\"\n", + "df = pd.read_csv(dat_url)\n", + "df.head()" + ], + "execution_count": 2, + "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", + "
makepricebodymileageengVengTyperegistrationyeardrive
02315500.00682.51120101
15020500.031731.81120112
25035000.021355.53120082
35017800.051621.80120120
45516600.00832.03120131
\n", + "
" + ], + "text/plain": [ + " make price body mileage engV engType registration year drive\n", + "0 23 15500.0 0 68 2.5 1 1 2010 1\n", + "1 50 20500.0 3 173 1.8 1 1 2011 2\n", + "2 50 35000.0 2 135 5.5 3 1 2008 2\n", + "3 50 17800.0 5 162 1.8 0 1 2012 0\n", + "4 55 16600.0 0 83 2.0 3 1 2013 1" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 2 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-gFnZR6iLLPY", + "colab_type": "text" + }, + "source": [ + "## 2) Load a dataset from your local machine\n", + "Download a dataset from the [UC Irvine Machine Learning Repository](https://archive.ics.uci.edu/ml/index.php) and then upload the file to Google Colab either using the files tab in the left-hand sidebar or by importing `files` from `google.colab` The following link will be a useful resource if you can't remember the syntax: \n", + "\n", + "While you are free to try and load any dataset from the UCI repository, I strongly suggest starting with one of the most popular datasets like those that are featured on the right-hand side of the home page. \n", + "\n", + "Some datasets on UCI will have challenges associated with importing them far beyond what we have exposed you to in class today, so if you run into a dataset that you don't know how to deal with, struggle with it for a little bit, but ultimately feel free to simply choose a different one. \n", + "\n", + "- Make sure that your file has correct headers, and the same number of rows and columns as is specified on the UCI page. If your dataset doesn't have headers use the parameters of the `read_csv` function to add them. Likewise make sure that missing values are encoded as `NaN`." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "qUmwX-ZoM9cq", + "colab_type": "code", + "outputId": "248ac22e-173f-4400-b675-7af55bd64230", + "colab": { + "resources": { + "http://localhost:8080/nbextensions/google.colab/files.js": { + "data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7Ci8vIE1heCBhbW91bnQgb2YgdGltZSB0byBibG9jayB3YWl0aW5nIGZvciB0aGUgdXNlci4KY29uc3QgRklMRV9DSEFOR0VfVElNRU9VVF9NUyA9IDMwICogMTAwMDsKCmZ1bmN0aW9uIF91cGxvYWRGaWxlcyhpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IHN0ZXBzID0gdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKTsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIC8vIENhY2hlIHN0ZXBzIG9uIHRoZSBvdXRwdXRFbGVtZW50IHRvIG1ha2UgaXQgYXZhaWxhYmxlIGZvciB0aGUgbmV4dCBjYWxsCiAgLy8gdG8gdXBsb2FkRmlsZXNDb250aW51ZSBmcm9tIFB5dGhvbi4KICBvdXRwdXRFbGVtZW50LnN0ZXBzID0gc3RlcHM7CgogIHJldHVybiBfdXBsb2FkRmlsZXNDb250aW51ZShvdXRwdXRJZCk7Cn0KCi8vIFRoaXMgaXMgcm91Z2hseSBhbiBhc3luYyBnZW5lcmF0b3IgKG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXIgeWV0KSwKLy8gd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlIGFzeW5jaHJvbm91cyBzdGVwcyBhbmQgdGhlIFB5dGhvbiBzaWRlIGlzIGdvaW5nCi8vIHRvIHBvbGwgZm9yIGNvbXBsZXRpb24gb2YgZWFjaCBzdGVwLgovLyBUaGlzIHVzZXMgYSBQcm9taXNlIHRvIGJsb2NrIHRoZSBweXRob24gc2lkZSBvbiBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcCwKLy8gdGhlbiBwYXNzZXMgdGhlIHJlc3VsdCBvZiB0aGUgcHJldmlvdXMgc3RlcCBhcyB0aGUgaW5wdXQgdG8gdGhlIG5leHQgc3RlcC4KZnVuY3Rpb24gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpIHsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIGNvbnN0IHN0ZXBzID0gb3V0cHV0RWxlbWVudC5zdGVwczsKCiAgY29uc3QgbmV4dCA9IHN0ZXBzLm5leHQob3V0cHV0RWxlbWVudC5sYXN0UHJvbWlzZVZhbHVlKTsKICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5leHQudmFsdWUucHJvbWlzZSkudGhlbigodmFsdWUpID0+IHsKICAgIC8vIENhY2hlIHRoZSBsYXN0IHByb21pc2UgdmFsdWUgdG8gbWFrZSBpdCBhdmFpbGFibGUgdG8gdGhlIG5leHQKICAgIC8vIHN0ZXAgb2YgdGhlIGdlbmVyYXRvci4KICAgIG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSA9IHZhbHVlOwogICAgcmV0dXJuIG5leHQudmFsdWUucmVzcG9uc2U7CiAgfSk7Cn0KCi8qKgogKiBHZW5lcmF0b3IgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIGJldHdlZW4gZWFjaCBhc3luYyBzdGVwIG9mIHRoZSB1cGxvYWQKICogcHJvY2Vzcy4KICogQHBhcmFtIHtzdHJpbmd9IGlucHV0SWQgRWxlbWVudCBJRCBvZiB0aGUgaW5wdXQgZmlsZSBwaWNrZXIgZWxlbWVudC4KICogQHBhcmFtIHtzdHJpbmd9IG91dHB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIG91dHB1dCBkaXNwbGF5LgogKiBAcmV0dXJuIHshSXRlcmFibGU8IU9iamVjdD59IEl0ZXJhYmxlIG9mIG5leHQgc3RlcHMuCiAqLwpmdW5jdGlvbiogdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKSB7CiAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCk7CiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gZmFsc2U7CgogIGNvbnN0IG91dHB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvdXRwdXRJZCk7CiAgb3V0cHV0RWxlbWVudC5pbm5lckhUTUwgPSAnJzsKCiAgY29uc3QgcGlja2VkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgcmVzb2x2ZShlLnRhcmdldC5maWxlcyk7CiAgICB9KTsKICB9KTsKCiAgY29uc3QgY2FuY2VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgaW5wdXRFbGVtZW50LnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY2FuY2VsKTsKICBjYW5jZWwudGV4dENvbnRlbnQgPSAnQ2FuY2VsIHVwbG9hZCc7CiAgY29uc3QgY2FuY2VsUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBjYW5jZWwub25jbGljayA9ICgpID0+IHsKICAgICAgcmVzb2x2ZShudWxsKTsKICAgIH07CiAgfSk7CgogIC8vIENhbmNlbCB1cGxvYWQgaWYgdXNlciBoYXNuJ3QgcGlja2VkIGFueXRoaW5nIGluIHRpbWVvdXQuCiAgY29uc3QgdGltZW91dFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9LCBGSUxFX0NIQU5HRV9USU1FT1VUX01TKTsKICB9KTsKCiAgLy8gV2FpdCBmb3IgdGhlIHVzZXIgdG8gcGljayB0aGUgZmlsZXMuCiAgY29uc3QgZmlsZXMgPSB5aWVsZCB7CiAgICBwcm9taXNlOiBQcm9taXNlLnJhY2UoW3BpY2tlZFByb21pc2UsIHRpbWVvdXRQcm9taXNlLCBjYW5jZWxQcm9taXNlXSksCiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdzdGFydGluZycsCiAgICB9CiAgfTsKCiAgaWYgKCFmaWxlcykgewogICAgcmV0dXJuIHsKICAgICAgcmVzcG9uc2U6IHsKICAgICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICAgIH0KICAgIH07CiAgfQoKICBjYW5jZWwucmVtb3ZlKCk7CgogIC8vIERpc2FibGUgdGhlIGlucHV0IGVsZW1lbnQgc2luY2UgZnVydGhlciBwaWNrcyBhcmUgbm90IGFsbG93ZWQuCiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKCiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7CiAgICBjb25zdCBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CiAgICBsaS5hcHBlbmQoc3BhbihmaWxlLm5hbWUsIHtmb250V2VpZ2h0OiAnYm9sZCd9KSk7CiAgICBsaS5hcHBlbmQoc3BhbigKICAgICAgICBgKCR7ZmlsZS50eXBlIHx8ICduL2EnfSkgLSAke2ZpbGUuc2l6ZX0gYnl0ZXMsIGAgKwogICAgICAgIGBsYXN0IG1vZGlmaWVkOiAkewogICAgICAgICAgICBmaWxlLmxhc3RNb2RpZmllZERhdGUgPyBmaWxlLmxhc3RNb2RpZmllZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbi9hJ30gLSBgKSk7CiAgICBjb25zdCBwZXJjZW50ID0gc3BhbignMCUgZG9uZScpOwogICAgbGkuYXBwZW5kQ2hpbGQocGVyY2VudCk7CgogICAgb3V0cHV0RWxlbWVudC5hcHBlbmRDaGlsZChsaSk7CgogICAgY29uc3QgZmlsZURhdGFQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7CiAgICAgICAgcmVzb2x2ZShlLnRhcmdldC5yZXN1bHQpOwogICAgICB9OwogICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7CiAgICB9KTsKICAgIC8vIFdhaXQgZm9yIHRoZSBkYXRhIHRvIGJlIHJlYWR5LgogICAgbGV0IGZpbGVEYXRhID0geWllbGQgewogICAgICBwcm9taXNlOiBmaWxlRGF0YVByb21pc2UsCiAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgYWN0aW9uOiAnY29udGludWUnLAogICAgICB9CiAgICB9OwoKICAgIC8vIFVzZSBhIGNodW5rZWQgc2VuZGluZyB0byBhdm9pZCBtZXNzYWdlIHNpemUgbGltaXRzLiBTZWUgYi82MjExNTY2MC4KICAgIGxldCBwb3NpdGlvbiA9IDA7CiAgICB3aGlsZSAocG9zaXRpb24gPCBmaWxlRGF0YS5ieXRlTGVuZ3RoKSB7CiAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWluKGZpbGVEYXRhLmJ5dGVMZW5ndGggLSBwb3NpdGlvbiwgTUFYX1BBWUxPQURfU0laRSk7CiAgICAgIGNvbnN0IGNodW5rID0gbmV3IFVpbnQ4QXJyYXkoZmlsZURhdGEsIHBvc2l0aW9uLCBsZW5ndGgpOwogICAgICBwb3NpdGlvbiArPSBsZW5ndGg7CgogICAgICBjb25zdCBiYXNlNjQgPSBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgY2h1bmspKTsKICAgICAgeWllbGQgewogICAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgICBhY3Rpb246ICdhcHBlbmQnLAogICAgICAgICAgZmlsZTogZmlsZS5uYW1lLAogICAgICAgICAgZGF0YTogYmFzZTY0LAogICAgICAgIH0sCiAgICAgIH07CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPQogICAgICAgICAgYCR7TWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCl9JSBkb25lYDsKICAgIH0KICB9CgogIC8vIEFsbCBkb25lLgogIHlpZWxkIHsKICAgIHJlc3BvbnNlOiB7CiAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgIH0KICB9Owp9CgpzY29wZS5nb29nbGUgPSBzY29wZS5nb29nbGUgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYiA9IHNjb3BlLmdvb2dsZS5jb2xhYiB8fCB7fTsKc2NvcGUuZ29vZ2xlLmNvbGFiLl9maWxlcyA9IHsKICBfdXBsb2FkRmlsZXMsCiAgX3VwbG9hZEZpbGVzQ29udGludWUsCn07Cn0pKHNlbGYpOwo=", + "ok": true, + "headers": [ + [ + "content-type", + "application/javascript" + ] + ], + "status": 200, + "status_text": "" + } + }, + "base_uri": "https://localhost:8080/", + "height": 74 + } + }, + "source": [ + "# TODO your work here!\n", + "# And note you should write comments, descriptions, and add new\n", + "# code and text blocks as needed\n", + "\n", + "import pandas as pd\n", + "from google.colab import files\n", + "uploaded = files.upload()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " Upload widget is only available when the cell has been executed in the\n", + " current browser session. Please rerun this cell to enable.\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "Saving car.data to car.data\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "pr1oIJloUG1n", + "colab_type": "code", + "outputId": "01517b02-27b4-431c-e068-ca38c6e255ef", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + } + }, + "source": [ + "df2 = pd.read_csv('car.data', names = col_head)\n", + "col_head = ['BUYprice', 'MAINTprice', 'doors', 'peeps', 'boot', 'safe', 'class']\n", + "df2.head()" + ], + "execution_count": 0, + "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", + "
BUYpriceMAINTpricedoorspeepsbootsafeclass
0vhighvhigh22smalllowunacc
1vhighvhigh22smallmedunacc
2vhighvhigh22smallhighunacc
3vhighvhigh22medlowunacc
4vhighvhigh22medmedunacc
\n", + "
" + ], + "text/plain": [ + " BUYprice MAINTprice doors peeps boot safe class\n", + "0 vhigh vhigh 2 2 small low unacc\n", + "1 vhigh vhigh 2 2 small med unacc\n", + "2 vhigh vhigh 2 2 small high unacc\n", + "3 vhigh vhigh 2 2 med low unacc\n", + "4 vhigh vhigh 2 2 med med unacc" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 27 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "zXsY0RJ8bt2M", + "colab_type": "code", + "outputId": "0f19d268-0890-442a-8386-88960fdda383", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 173 + } + }, + "source": [ + "df2.describe()" + ], + "execution_count": 0, + "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", + "
BUYpriceMAINTpricedoorspeepsbootsafeclass
count1728172817281728172817281728
unique4443334
topmedmed2moremedmedunacc
freq4324324325765765761210
\n", + "
" + ], + "text/plain": [ + " BUYprice MAINTprice doors peeps boot safe class\n", + "count 1728 1728 1728 1728 1728 1728 1728\n", + "unique 4 4 4 3 3 3 4\n", + "top med med 2 more med med unacc\n", + "freq 432 432 432 576 576 576 1210" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 30 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "IlfMSmPubc_n", + "colab_type": "code", + "outputId": "5a190d11-ddd0-4b87-a099-8b449c204fdf", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 266 + } + }, + "source": [ + "df2.describe().T" + ], + "execution_count": 0, + "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", + "
countuniquetopfreq
BUYprice17284med432
MAINTprice17284med432
doors172842432
peeps17283more576
boot17283med576
safe17283med576
class17284unacc1210
\n", + "
" + ], + "text/plain": [ + " count unique top freq\n", + "BUYprice 1728 4 med 432\n", + "MAINTprice 1728 4 med 432\n", + "doors 1728 4 2 432\n", + "peeps 1728 3 more 576\n", + "boot 1728 3 med 576\n", + "safe 1728 3 med 576\n", + "class 1728 4 unacc 1210" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 31 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "EjhIqf9AcUw4", + "colab_type": "code", + "outputId": "95bdb9fd-fe3b-400d-af4a-7f72ff8d8101", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 153 + } + }, + "source": [ + "df2.dtypes" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "BUYprice object\n", + "MAINTprice object\n", + "doors object\n", + "peeps object\n", + "boot object\n", + "safe object\n", + "class object\n", + "dtype: object" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 34 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mq_aQjxlM-u5", + "colab_type": "text" + }, + "source": [ + "## 3) Load a dataset from UCI using `!wget`\n", + "\n", + "\"Shell Out\" and try loading a file directly into your google colab's memory using the `!wget` command and then read it in with `read_csv`.\n", + "\n", + "With this file we'll do a bit more to it.\n", + "\n", + "- Read it in, fix any problems with the header as make sure missing values are encoded as `NaN`.\n", + "- Use the `.fillna()` method to fill any missing values. \n", + " - [.fillna() documentation](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.fillna.html)\n", + "- Create one of each of the following plots using the Pandas plotting functionality:\n", + " - Scatterplot\n", + " - Histogram\n", + " - Density Plot\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "SELPP8i4gEo7", + "colab_type": "code", + "outputId": "5322e8e2-af63-4093-b787-bda55bf6dbfa", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 224 + } + }, + "source": [ + "!wget https://raw.githubusercontent.com/ryanleeallred/datasets/master/car_regression.csv" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "--2019-09-09 14:50:12-- https://raw.githubusercontent.com/ryanleeallred/datasets/master/car_regression.csv\n", + "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...\n", + "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 263167 (257K) [text/plain]\n", + "Saving to: ‘car_regression.csv’\n", + "\n", + "\rcar_regression.csv 0%[ ] 0 --.-KB/s \rcar_regression.csv 100%[===================>] 257.00K --.-KB/s in 0.03s \n", + "\n", + "2019-09-09 14:50:13 (8.73 MB/s) - ‘car_regression.csv’ saved [263167/263167]\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Zj-tt88thArf", + "colab_type": "code", + "outputId": "a31808b1-e679-4f6f-9a59-cdf80a989312", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + } + }, + "source": [ + "df.head()" + ], + "execution_count": 0, + "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", + "
makepricebodymileageengVengTyperegistrationyeardrive
02315500.00682.51120101
15020500.031731.81120112
25035000.021355.53120082
35017800.051621.80120120
45516600.00832.03120131
\n", + "
" + ], + "text/plain": [ + " make price body mileage engV engType registration year drive\n", + "0 23 15500.0 0 68 2.5 1 1 2010 1\n", + "1 50 20500.0 3 173 1.8 1 1 2011 2\n", + "2 50 35000.0 2 135 5.5 3 1 2008 2\n", + "3 50 17800.0 5 162 1.8 0 1 2012 0\n", + "4 55 16600.0 0 83 2.0 3 1 2013 1" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 36 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MZCxTwKuReV9", + "colab_type": "text" + }, + "source": [ + "## Stretch Goals - Other types and sources of data\n", + "\n", + "Not all data comes in a nice single file - for example, image classification involves handling lots of image files. You still will probably want labels for them, so you may have tabular data in addition to the image blobs - and the images may be reduced in resolution and even fit in a regular csv as a bunch of numbers.\n", + "\n", + "If you're interested in natural language processing and analyzing text, that is another example where, while it can be put in a csv, you may end up loading much larger raw data and generating features that can then be thought of in a more standard tabular fashion.\n", + "\n", + "Overall you will in the course of learning data science deal with loading data in a variety of ways. Another common way to get data is from a database - most modern applications are backed by one or more databases, which you can query to get data to analyze. We'll cover this more in our data engineering unit.\n", + "\n", + "How does data get in the database? Most applications generate logs - text files with lots and lots of records of each use of the application. Databases are often populated based on these files, but in some situations you may directly analyze log files. The usual way to do this is with command line (Unix) tools - command lines are intimidating, so don't expect to learn them all at once, but depending on your interests it can be useful to practice.\n", + "\n", + "One last major source of data is APIs: https://github.com/toddmotto/public-apis\n", + "\n", + "API stands for Application Programming Interface, and while originally meant e.g. the way an application interfaced with the GUI or other aspects of an operating system, now it largely refers to online services that let you query and retrieve data. You can essentially think of most of them as \"somebody else's database\" - you have (usually limited) access.\n", + "\n", + "*Stretch goal* - research one of the above extended forms of data/data loading. See if you can get a basic example working in a notebook. Image, text, or (public) APIs are probably more tractable - databases are interesting, but there aren't many publicly accessible and they require a great deal of setup." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "f4QP6--JBXNK", + "colab_type": "code", + "colab": { + "resources": { + "http://localhost:8080/nbextensions/google.colab/files.js": { + "data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7Ci8vIE1heCBhbW91bnQgb2YgdGltZSB0byBibG9jayB3YWl0aW5nIGZvciB0aGUgdXNlci4KY29uc3QgRklMRV9DSEFOR0VfVElNRU9VVF9NUyA9IDMwICogMTAwMDsKCmZ1bmN0aW9uIF91cGxvYWRGaWxlcyhpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IHN0ZXBzID0gdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKTsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIC8vIENhY2hlIHN0ZXBzIG9uIHRoZSBvdXRwdXRFbGVtZW50IHRvIG1ha2UgaXQgYXZhaWxhYmxlIGZvciB0aGUgbmV4dCBjYWxsCiAgLy8gdG8gdXBsb2FkRmlsZXNDb250aW51ZSBmcm9tIFB5dGhvbi4KICBvdXRwdXRFbGVtZW50LnN0ZXBzID0gc3RlcHM7CgogIHJldHVybiBfdXBsb2FkRmlsZXNDb250aW51ZShvdXRwdXRJZCk7Cn0KCi8vIFRoaXMgaXMgcm91Z2hseSBhbiBhc3luYyBnZW5lcmF0b3IgKG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXIgeWV0KSwKLy8gd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlIGFzeW5jaHJvbm91cyBzdGVwcyBhbmQgdGhlIFB5dGhvbiBzaWRlIGlzIGdvaW5nCi8vIHRvIHBvbGwgZm9yIGNvbXBsZXRpb24gb2YgZWFjaCBzdGVwLgovLyBUaGlzIHVzZXMgYSBQcm9taXNlIHRvIGJsb2NrIHRoZSBweXRob24gc2lkZSBvbiBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcCwKLy8gdGhlbiBwYXNzZXMgdGhlIHJlc3VsdCBvZiB0aGUgcHJldmlvdXMgc3RlcCBhcyB0aGUgaW5wdXQgdG8gdGhlIG5leHQgc3RlcC4KZnVuY3Rpb24gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpIHsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIGNvbnN0IHN0ZXBzID0gb3V0cHV0RWxlbWVudC5zdGVwczsKCiAgY29uc3QgbmV4dCA9IHN0ZXBzLm5leHQob3V0cHV0RWxlbWVudC5sYXN0UHJvbWlzZVZhbHVlKTsKICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5leHQudmFsdWUucHJvbWlzZSkudGhlbigodmFsdWUpID0+IHsKICAgIC8vIENhY2hlIHRoZSBsYXN0IHByb21pc2UgdmFsdWUgdG8gbWFrZSBpdCBhdmFpbGFibGUgdG8gdGhlIG5leHQKICAgIC8vIHN0ZXAgb2YgdGhlIGdlbmVyYXRvci4KICAgIG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSA9IHZhbHVlOwogICAgcmV0dXJuIG5leHQudmFsdWUucmVzcG9uc2U7CiAgfSk7Cn0KCi8qKgogKiBHZW5lcmF0b3IgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIGJldHdlZW4gZWFjaCBhc3luYyBzdGVwIG9mIHRoZSB1cGxvYWQKICogcHJvY2Vzcy4KICogQHBhcmFtIHtzdHJpbmd9IGlucHV0SWQgRWxlbWVudCBJRCBvZiB0aGUgaW5wdXQgZmlsZSBwaWNrZXIgZWxlbWVudC4KICogQHBhcmFtIHtzdHJpbmd9IG91dHB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIG91dHB1dCBkaXNwbGF5LgogKiBAcmV0dXJuIHshSXRlcmFibGU8IU9iamVjdD59IEl0ZXJhYmxlIG9mIG5leHQgc3RlcHMuCiAqLwpmdW5jdGlvbiogdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKSB7CiAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCk7CiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gZmFsc2U7CgogIGNvbnN0IG91dHB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvdXRwdXRJZCk7CiAgb3V0cHV0RWxlbWVudC5pbm5lckhUTUwgPSAnJzsKCiAgY29uc3QgcGlja2VkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgcmVzb2x2ZShlLnRhcmdldC5maWxlcyk7CiAgICB9KTsKICB9KTsKCiAgY29uc3QgY2FuY2VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgaW5wdXRFbGVtZW50LnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY2FuY2VsKTsKICBjYW5jZWwudGV4dENvbnRlbnQgPSAnQ2FuY2VsIHVwbG9hZCc7CiAgY29uc3QgY2FuY2VsUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBjYW5jZWwub25jbGljayA9ICgpID0+IHsKICAgICAgcmVzb2x2ZShudWxsKTsKICAgIH07CiAgfSk7CgogIC8vIENhbmNlbCB1cGxvYWQgaWYgdXNlciBoYXNuJ3QgcGlja2VkIGFueXRoaW5nIGluIHRpbWVvdXQuCiAgY29uc3QgdGltZW91dFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9LCBGSUxFX0NIQU5HRV9USU1FT1VUX01TKTsKICB9KTsKCiAgLy8gV2FpdCBmb3IgdGhlIHVzZXIgdG8gcGljayB0aGUgZmlsZXMuCiAgY29uc3QgZmlsZXMgPSB5aWVsZCB7CiAgICBwcm9taXNlOiBQcm9taXNlLnJhY2UoW3BpY2tlZFByb21pc2UsIHRpbWVvdXRQcm9taXNlLCBjYW5jZWxQcm9taXNlXSksCiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdzdGFydGluZycsCiAgICB9CiAgfTsKCiAgaWYgKCFmaWxlcykgewogICAgcmV0dXJuIHsKICAgICAgcmVzcG9uc2U6IHsKICAgICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICAgIH0KICAgIH07CiAgfQoKICBjYW5jZWwucmVtb3ZlKCk7CgogIC8vIERpc2FibGUgdGhlIGlucHV0IGVsZW1lbnQgc2luY2UgZnVydGhlciBwaWNrcyBhcmUgbm90IGFsbG93ZWQuCiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKCiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7CiAgICBjb25zdCBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CiAgICBsaS5hcHBlbmQoc3BhbihmaWxlLm5hbWUsIHtmb250V2VpZ2h0OiAnYm9sZCd9KSk7CiAgICBsaS5hcHBlbmQoc3BhbigKICAgICAgICBgKCR7ZmlsZS50eXBlIHx8ICduL2EnfSkgLSAke2ZpbGUuc2l6ZX0gYnl0ZXMsIGAgKwogICAgICAgIGBsYXN0IG1vZGlmaWVkOiAkewogICAgICAgICAgICBmaWxlLmxhc3RNb2RpZmllZERhdGUgPyBmaWxlLmxhc3RNb2RpZmllZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbi9hJ30gLSBgKSk7CiAgICBjb25zdCBwZXJjZW50ID0gc3BhbignMCUgZG9uZScpOwogICAgbGkuYXBwZW5kQ2hpbGQocGVyY2VudCk7CgogICAgb3V0cHV0RWxlbWVudC5hcHBlbmRDaGlsZChsaSk7CgogICAgY29uc3QgZmlsZURhdGFQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7CiAgICAgICAgcmVzb2x2ZShlLnRhcmdldC5yZXN1bHQpOwogICAgICB9OwogICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7CiAgICB9KTsKICAgIC8vIFdhaXQgZm9yIHRoZSBkYXRhIHRvIGJlIHJlYWR5LgogICAgbGV0IGZpbGVEYXRhID0geWllbGQgewogICAgICBwcm9taXNlOiBmaWxlRGF0YVByb21pc2UsCiAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgYWN0aW9uOiAnY29udGludWUnLAogICAgICB9CiAgICB9OwoKICAgIC8vIFVzZSBhIGNodW5rZWQgc2VuZGluZyB0byBhdm9pZCBtZXNzYWdlIHNpemUgbGltaXRzLiBTZWUgYi82MjExNTY2MC4KICAgIGxldCBwb3NpdGlvbiA9IDA7CiAgICB3aGlsZSAocG9zaXRpb24gPCBmaWxlRGF0YS5ieXRlTGVuZ3RoKSB7CiAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWluKGZpbGVEYXRhLmJ5dGVMZW5ndGggLSBwb3NpdGlvbiwgTUFYX1BBWUxPQURfU0laRSk7CiAgICAgIGNvbnN0IGNodW5rID0gbmV3IFVpbnQ4QXJyYXkoZmlsZURhdGEsIHBvc2l0aW9uLCBsZW5ndGgpOwogICAgICBwb3NpdGlvbiArPSBsZW5ndGg7CgogICAgICBjb25zdCBiYXNlNjQgPSBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgY2h1bmspKTsKICAgICAgeWllbGQgewogICAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgICBhY3Rpb246ICdhcHBlbmQnLAogICAgICAgICAgZmlsZTogZmlsZS5uYW1lLAogICAgICAgICAgZGF0YTogYmFzZTY0LAogICAgICAgIH0sCiAgICAgIH07CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPQogICAgICAgICAgYCR7TWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCl9JSBkb25lYDsKICAgIH0KICB9CgogIC8vIEFsbCBkb25lLgogIHlpZWxkIHsKICAgIHJlc3BvbnNlOiB7CiAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgIH0KICB9Owp9CgpzY29wZS5nb29nbGUgPSBzY29wZS5nb29nbGUgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYiA9IHNjb3BlLmdvb2dsZS5jb2xhYiB8fCB7fTsKc2NvcGUuZ29vZ2xlLmNvbGFiLl9maWxlcyA9IHsKICBfdXBsb2FkRmlsZXMsCiAgX3VwbG9hZEZpbGVzQ29udGludWUsCn07Cn0pKHNlbGYpOwo=", + "ok": true, + "headers": [ + [ + "content-type", + "application/javascript" + ] + ], + "status": 200, + "status_text": "" + } + }, + "base_uri": "https://localhost:8080/", + "height": 74 + }, + "outputId": "7055b83a-43ea-4308-aa8c-dd610d624ff2" + }, + "source": [ + "import pandas as pd\n", + "from google.colab import files\n", + "uploaded = files.upload()\n", + "\n", + "# succefully loaded a tsv file. i thought it was a pretty straight forward\n", + "# process but i had to save as a csv, then corrected pd.read_tsv to pd.read_table.\n", + "# learned about delimiters, specifically sep. still not sure what it means or does\n", + "# but it is necessary for pandas to read different types of files.\n", + "# i think sep just states what's separating the data, in this case,\n", + "# the file was saved as a csv but in form, it's a tsv.\n", + "\n", + "# edit: just realized the delimiter sep isn't needed. nice." + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " Upload widget is only available when the cell has been executed in the\n", + " current browser session. Please rerun this cell to enable.\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "Saving urbanareas1_1.csv to urbanareas1_1 (1).csv\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "fkZpTExaELCR", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 275 + }, + "outputId": "3a833659-7718-4f2c-8694-d15fe12860cf" + }, + "source": [ + "df3 = pd.read_table('urbanareas1_1.csv')\n", + "df3.head()" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:1: FutureWarning: read_table is deprecated, use read_csv instead, passing sep='\\t'.\n", + " \"\"\"Entry point for launching an IPython kernel.\n" + ], + "name": "stderr" + }, + { + "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", + "
CityCity_AlternateCountryLatitudeLongitudeCountry_ISO3pop1950pop1955pop1960pop1965pop1970pop1975pop1980pop1985pop1990pop1995pop2000pop2005pop2010pop2015pop2020pop2025pop2050
0SofiaNaNBulgaria42.7023.33BGR520.0620.0710.0810.0890.0980.01070.01180.01190.01170.01130.01170.01180.01210.01230.01240.01236
1MandalayNaNMyanmar21.9796.08MMR170.0200.0250.0310.0370.0440.0500.0560.0640.0720.0810.0920.0960.01030.01170.01310.01446
2Nay Pyi TawNaNMyanmar19.7596.10MMR0.00.00.00.00.00.00.00.00.00.00.060.0930.01020.01180.01320.01461
3YangonRangoonMyanmar16.8796.12MMR1300.01440.01590.01760.01950.02150.02380.02630.02910.03210.03550.03930.04090.04350.04840.05360.05869
4MinskNaNBelarus53.8927.57BLR280.0410.0550.0720.0930.01120.01320.01470.01610.01650.01700.01780.01800.01850.01880.01880.01883
\n", + "
" + ], + "text/plain": [ + " City City_Alternate Country ... pop2020 pop2025 pop2050\n", + "0 Sofia NaN Bulgaria ... 1230.0 1240.0 1236\n", + "1 Mandalay NaN Myanmar ... 1170.0 1310.0 1446\n", + "2 Nay Pyi Taw NaN Myanmar ... 1180.0 1320.0 1461\n", + "3 Yangon Rangoon Myanmar ... 4840.0 5360.0 5869\n", + "4 Minsk NaN Belarus ... 1880.0 1880.0 1883\n", + "\n", + "[5 rows x 23 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 17 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "MW2mrGN6_xRz", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 275 + }, + "outputId": "66ade67e-05e3-4a1d-a284-0a5bbc10c0d0" + }, + "source": [ + "df3 = pd.read_table('urbanareas1_1.csv', sep='\\t')\n", + "df3.head()" + ], + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:1: FutureWarning: read_table is deprecated, use read_csv instead.\n", + " \"\"\"Entry point for launching an IPython kernel.\n" + ], + "name": "stderr" + }, + { + "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", + "
CityCity_AlternateCountryLatitudeLongitudeCountry_ISO3pop1950pop1955pop1960pop1965pop1970pop1975pop1980pop1985pop1990pop1995pop2000pop2005pop2010pop2015pop2020pop2025pop2050
0SofiaNaNBulgaria42.7023.33BGR520.0620.0710.0810.0890.0980.01070.01180.01190.01170.01130.01170.01180.01210.01230.01240.01236
1MandalayNaNMyanmar21.9796.08MMR170.0200.0250.0310.0370.0440.0500.0560.0640.0720.0810.0920.0960.01030.01170.01310.01446
2Nay Pyi TawNaNMyanmar19.7596.10MMR0.00.00.00.00.00.00.00.00.00.00.060.0930.01020.01180.01320.01461
3YangonRangoonMyanmar16.8796.12MMR1300.01440.01590.01760.01950.02150.02380.02630.02910.03210.03550.03930.04090.04350.04840.05360.05869
4MinskNaNBelarus53.8927.57BLR280.0410.0550.0720.0930.01120.01320.01470.01610.01650.01700.01780.01800.01850.01880.01880.01883
\n", + "
" + ], + "text/plain": [ + " City City_Alternate Country ... pop2020 pop2025 pop2050\n", + "0 Sofia NaN Bulgaria ... 1230.0 1240.0 1236\n", + "1 Mandalay NaN Myanmar ... 1170.0 1310.0 1446\n", + "2 Nay Pyi Taw NaN Myanmar ... 1180.0 1320.0 1461\n", + "3 Yangon Rangoon Myanmar ... 4840.0 5360.0 5869\n", + "4 Minsk NaN Belarus ... 1880.0 1880.0 1883\n", + "\n", + "[5 rows x 23 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 16 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "rPpOpStN9kM0", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 374 + }, + "outputId": "f5265f38-2d42-4198-8f2e-63d56c184e00" + }, + "source": [ + "df3 = pd.read_csv('urbanareas1_1', sep='\\t')" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "error", + "ename": "FileNotFoundError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdf3\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'urbanareas1_1'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'\\t'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36mparser_f\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision)\u001b[0m\n\u001b[1;32m 700\u001b[0m skip_blank_lines=skip_blank_lines)\n\u001b[1;32m 701\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 702\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\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 703\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 704\u001b[0m \u001b[0mparser_f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m 427\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 428\u001b[0m \u001b[0;31m# Create the parser.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 429\u001b[0;31m \u001b[0mparser\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTextFileReader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\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 430\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 431\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mchunksize\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0miterator\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.6/dist-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[1;32m 893\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'has_index_names'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'has_index_names'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 894\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 895\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_make_engine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mengine\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 896\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 897\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\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.6/dist-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m_make_engine\u001b[0;34m(self, engine)\u001b[0m\n\u001b[1;32m 1120\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_make_engine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mengine\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'c'\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 1121\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'c'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1122\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mCParserWrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\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 1123\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 1124\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'python'\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.6/dist-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, src, **kwds)\u001b[0m\n\u001b[1;32m 1851\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'usecols'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0musecols\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1852\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1853\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reader\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mparsers\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTextReader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\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 1854\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munnamed_cols\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munnamed_cols\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1855\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader.__cinit__\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._setup_parser_source\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] File b'urbanareas1_1' does not exist: b'urbanareas1_1'" + ] + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "12EbUkG-81tA", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "683c7ce9-7b6f-4443-eace-429c249f7904" + }, + "source": [ + "df3 = pd.read_csv('urbanareas1_1', sep='\\t')" + ], + "execution_count": 7, + "outputs": [ + { + "output_type": "error", + "ename": "UnicodeDecodeError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mUnicodeDecodeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._convert_tokens\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._convert_with_dtype\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._string_convert\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers._string_box_utf8\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mUnicodeDecodeError\u001b[0m: 'utf-8' codec can't decode byte 0xe9 in position 7: invalid continuation byte", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mUnicodeDecodeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdf3\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'urbanareas1_1.tsv'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'\\t'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36mparser_f\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision)\u001b[0m\n\u001b[1;32m 700\u001b[0m skip_blank_lines=skip_blank_lines)\n\u001b[1;32m 701\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 702\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\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 703\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 704\u001b[0m \u001b[0mparser_f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m 433\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 434\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--> 435\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mparser\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnrows\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 436\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[1;32m 437\u001b[0m \u001b[0mparser\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose\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.6/dist-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36mread\u001b[0;34m(self, nrows)\u001b[0m\n\u001b[1;32m 1137\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnrows\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\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 1138\u001b[0m \u001b[0mnrows\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_validate_integer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'nrows'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnrows\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1139\u001b[0;31m \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnrows\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 1140\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1141\u001b[0m \u001b[0;31m# May alter columns / col_dict\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.6/dist-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36mread\u001b[0;34m(self, nrows)\u001b[0m\n\u001b[1;32m 1993\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnrows\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\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 1994\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-> 1995\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnrows\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 1996\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1997\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_first_chunk\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader.read\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._read_low_memory\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._read_rows\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._convert_column_data\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._convert_tokens\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._convert_with_dtype\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._string_convert\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers._string_box_utf8\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mUnicodeDecodeError\u001b[0m: 'utf-8' codec can't decode byte 0xe9 in position 7: invalid continuation byte" + ] + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "j8g7WUT08M7n", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 163 + }, + "outputId": "bdb90eba-6932-4df9-8ef7-3bb740f22eed" + }, + "source": [ + "df3 = pd.read_tsv('urbanareas1_1')" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "error", + "ename": "AttributeError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdf3\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_tsv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'urbanareas1_1'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m: module 'pandas' has no attribute 'read_tsv'" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/module3-databackedassertions/HANK_LS_DSPT3_113_Making_Data_backed_Assertions_Assignment.ipynb b/module3-databackedassertions/HANK_LS_DSPT3_113_Making_Data_backed_Assertions_Assignment.ipynb new file mode 100644 index 00000000..240edc97 --- /dev/null +++ b/module3-databackedassertions/HANK_LS_DSPT3_113_Making_Data_backed_Assertions_Assignment.ipynb @@ -0,0 +1,7289 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "HANK - LS_DSPT3_113_Making_Data_backed_Assertions_Assignment.ipynb", + "version": "0.3.2", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Okfr_uhwhS1X", + "colab_type": "text" + }, + "source": [ + "# Lambda School Data Science - Making Data-backed Assertions\n", + "\n", + "This is, for many, the main point of data science - to create and support reasoned arguments based on evidence. It's not a topic to master in a day, but it is worth some focused time thinking about and structuring your approach to it." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lOqaPds9huME", + "colab_type": "text" + }, + "source": [ + "## Assignment - what's going on here?\n", + "\n", + "Consider the data in `persons.csv` (already prepared for you, in the repo for the week). It has four columns - a unique id, followed by age (in years), weight (in lbs), and exercise time (in minutes/week) of 1200 (hypothetical) people.\n", + "\n", + "Try to figure out which variables are possibly related to each other, and which may be confounding relationships.\n", + "\n", + "Try and isolate the main relationships and then communicate them using crosstabs and graphs. Share any cool graphs that you make with the rest of the class in Slack!" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "TGUS79cOhPWj", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# TODO - your code here\n", + "# Use what we did live in lecture as an example\n", + "\n", + "# HINT - you can find the raw URL on GitHub and potentially use that\n", + "# to load the data with read_csv, or you can upload it yourself\n", + "import pandas as pd" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "tuWKvcfgZhLo", + "colab_type": "code", + "outputId": "200f9b92-0f5c-4c56-b1e0-7dc26e91aeee", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + } + }, + "source": [ + "dat_url = \"https://raw.githubusercontent.com/elcoreano/DS-Unit-1-Sprint-1-Dealing-With-Data/master/module3-databackedassertions/persons.csv\"\n", + "df = pd.read_csv(dat_url)\n", + "df.head()" + ], + "execution_count": 2, + "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", + "
Unnamed: 0ageweightexercise_time
0044118192
114116135
2246128220
333921657
4428116182
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 age weight exercise_time\n", + "0 0 44 118 192\n", + "1 1 41 161 35\n", + "2 2 46 128 220\n", + "3 3 39 216 57\n", + "4 4 28 116 182" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 2 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "fNEXLuV00oKF", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "b351bce5-3e71-4de8-ae45-1a20192d3bda" + }, + "source": [ + "pd.crosstab(df['weight'], df['exercise_time'])" + ], + "execution_count": 3, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
exercise_time0123456789101112131415161718192021222324252627283031323334353637383940...260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294296297298299300
weight
1000010100000000000001000000000000000000000...0000100000000000010010000010000000000000
1010000000000000000000000000000000000000000...0000000000000000000000000000000000000001
1020000000000000000000000001000000000000000...0000000000000000100010000100000000000000
1030000000000000000000001000000000000000000...0000000000000000100000001000010000000000
1040000000000100000000000000000000000010000...0000000000000000000010000000000000000000
1050001000000000100010000000000000000000000...0000000000000000000000000000010000010010
1060000000000000000000000000000000000000000...0001000000000000000000000000000000000010
1070000000000000000000000000000000000000000...0100000000000000000000000000000000000000
1080000000000000000000000000000000000000000...0110000000000000000000000001100000000100
1090000000000000000000000000100000000000000...0000000000000000000000000000000000000000
1100000000000000000100000000000000000000000...0000000000000000000000001000000000000000
1110000000000100000000000000000000000000000...0000000000000000000000100000000000001000
1120000000000000000000000000000000010000000...0000000000100000000000000000000000000000
1130000000000000000100001000000000000001000...0000000000000100100000000000000001010000
1140000000000000000000000000000000000000000...0000010000000100000000000000000200000000
1150000000000000000000000000000000000000000...0000000000000000000000000001000000000000
1160000000000000000000000001000000000001000...0000000110000000000000000000000000000000
1170000000000000000000000010000000000110000...0000000000000100000100000000020000000000
1180000000000000000000000000000000000000000...0000000000000000000000000000100000000000
1190000000000000000000000000000100000000000...0000000000000000000000100000000000000100
1200001000000000010000000000000000000000000...0000120000000000000000100001000000010000
1210000000000000000000000000000000000000000...0000000000000000000000000000010000000000
1220000000000000000000000000000000000000000...0000000000010000000000000000000000010100
1230000000010000000000000000000000000000000...0100000000000000000000000000000000000000
1240000000000000001000000000000000001000000...0000000000000000011000000000000000000000
1250000000000000000000000000000000000010000...0010001000100000000100000000000000000000
1260000000000000000010000000000000000000000...0000000000100000000000000001000000001000
1270000000000000000000010000001010000100000...1100001200000000000000000000000000000000
1280000000000000000000000000000000001000000...0000010000000000000010000000000001100001
1290000000000000000000001000000000000000000...0000000000000000000000000000010000000000
......................................................................................................................................................................................................................................................
2130000000000000000000010000000000000000000...0000000000000000000000000000000000000000
2140000000000000000000011000000000000000100...0000000000000000000000000000000000000000
2150000000000000000000000000000000000001000...0000000000000000000000000000000000000000
2160010000000000000000000100100000000000100...0000000000000000000000000000000000000000
2170000000000010000000100000000000000000000...0000000000000000000000000000000000000000
2180000001000000100000000000000100000000000...0000000000000000000000000000000000000000
2190001000000000000000000000000000000000000...0000000000000000000000000000000000000000
2200000000000000000000000000000000000000000...0000000000000000000000000000000000000000
2210000000000000000000000000000000000000000...0000000000000000000000000000000000000000
2220000000000000000000000000000000000000000...0000000000000000000000000000000000000000
2230000000000000000000000000000000000000000...0000000000000000000000000000000000000000
2240000000000000000000000000010000000000000...0000000000000000000000000000000000000000
2250000000000000000000000000000000000000000...0000000000000000000000000000000000000000
2260000010000000000000000000000010000000000...0000000000000000000000000000000000000000
2270000000000000000000000000000000010000000...0000000000000000000000000000000000000000
2280000000000000000000000000000100000000000...0000000000000000000000000000000000000000
2290000000000000000000000100001000001010000...0000000000000000000000000000000000000000
2300010000000100000000000000000000000000000...0000000000000000000000000000000000000000
2310010001000000000000000000000000000000000...0000000000000000000000000000000000000000
2330001000000000000000000000000000000000000...0000000000000000000000000000000000000000
2340000000000000000000000000000000000010000...0000000000000000000000000000000000000000
2360001000000000000000000010001000000000000...0000000000000000000000000000000000000000
2370000000000000000010000000100000000000000...0000000000000000000000000000000000000000
2380000000000000000000000000000000001000000...0000000000000000000000000000000000000000
2390000000010000000000000000000000000000000...0000000000000000000000000000000000000000
2400000000000100000000000000000000000000000...0000000000000000000000000000000000000000
2410000010000000000000001000000000000000000...0000000000000000000000000000000000000000
2420100000000000000000000000000000000000000...0000000000000000000000000000000000000000
2440000000000000000001000000000000000000000...0000000000000000000000000000000000000000
2460000010000000000000000000000000000000000...0000000000000000000000000000000000000000
\n", + "

143 rows × 294 columns

\n", + "
" + ], + "text/plain": [ + "exercise_time 0 1 2 3 4 5 ... 294 296 297 298 299 300\n", + "weight ... \n", + "100 0 0 1 0 1 0 ... 0 0 0 0 0 0\n", + "101 0 0 0 0 0 0 ... 0 0 0 0 0 1\n", + "102 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "103 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "104 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "105 0 0 0 1 0 0 ... 0 1 0 0 1 0\n", + "106 0 0 0 0 0 0 ... 0 0 0 0 1 0\n", + "107 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "108 0 0 0 0 0 0 ... 0 0 0 1 0 0\n", + "109 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "110 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "111 0 0 0 0 0 0 ... 0 0 1 0 0 0\n", + "112 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "113 0 0 0 0 0 0 ... 0 1 0 0 0 0\n", + "114 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "115 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "116 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "117 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "118 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "119 0 0 0 0 0 0 ... 0 0 0 1 0 0\n", + "120 0 0 0 1 0 0 ... 0 1 0 0 0 0\n", + "121 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "122 0 0 0 0 0 0 ... 0 1 0 1 0 0\n", + "123 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "124 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "125 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "126 0 0 0 0 0 0 ... 0 0 1 0 0 0\n", + "127 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "128 0 0 0 0 0 0 ... 1 0 0 0 0 1\n", + "129 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "... ... ... ... ... ... ... ... ... ... ... ... ... ...\n", + "213 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "214 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "215 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "216 0 0 1 0 0 0 ... 0 0 0 0 0 0\n", + "217 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "218 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "219 0 0 0 1 0 0 ... 0 0 0 0 0 0\n", + "220 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "221 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "222 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "223 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "224 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "225 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "226 0 0 0 0 0 1 ... 0 0 0 0 0 0\n", + "227 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "228 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "229 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "230 0 0 1 0 0 0 ... 0 0 0 0 0 0\n", + "231 0 0 1 0 0 0 ... 0 0 0 0 0 0\n", + "233 0 0 0 1 0 0 ... 0 0 0 0 0 0\n", + "234 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "236 0 0 0 1 0 0 ... 0 0 0 0 0 0\n", + "237 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "238 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "239 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "240 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "241 0 0 0 0 0 1 ... 0 0 0 0 0 0\n", + "242 0 1 0 0 0 0 ... 0 0 0 0 0 0\n", + "244 0 0 0 0 0 0 ... 0 0 0 0 0 0\n", + "246 0 0 0 0 0 1 ... 0 0 0 0 0 0\n", + "\n", + "[143 rows x 294 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 3 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "J9V0_W236hgs", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "7eef10b8-207a-4853-b650-4b281ebc1c51" + }, + "source": [ + "time_bins = pd.cut(df['exercise_time'], 8)\n", + "pd.crosstab(df['weight'], time_bins)" + ], + "execution_count": 4, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
exercise_time(-0.3, 37.5](37.5, 75.0](75.0, 112.5](112.5, 150.0](150.0, 187.5](187.5, 225.0](225.0, 262.5](262.5, 300.0]
weight
10032101314
10101012411
10210221223
10311102003
10421110121
10530002113
10601202102
10700133220
10803033343
10911322310
11012342101
11111021212
11211120021
11333121154
11402112104
11500021131
11622303122
11730201224
11801110201
11911130212
12020021116
12101031121
12203301123
12310301130
12421253112
12510124343
12611313323
12741001153
12810212425
12911311241
...........................
21312100000
21424300000
21510100000
21633300000
21720100000
21833000000
21912000000
22001000000
22101000000
22202100000
22300100000
22410000000
22502000000
22621000000
22710000000
22810000000
22941000000
23021000000
23121000000
23310000000
23411000000
23630000000
23720000000
23810000000
23910000000
24010000000
24120000000
24210000000
24410000000
24610000000
\n", + "

143 rows × 8 columns

\n", + "
" + ], + "text/plain": [ + "exercise_time (-0.3, 37.5] ... (262.5, 300.0]\n", + "weight ... \n", + "100 3 ... 4\n", + "101 0 ... 1\n", + "102 1 ... 3\n", + "103 1 ... 3\n", + "104 2 ... 1\n", + "105 3 ... 3\n", + "106 0 ... 2\n", + "107 0 ... 0\n", + "108 0 ... 3\n", + "109 1 ... 0\n", + "110 1 ... 1\n", + "111 1 ... 2\n", + "112 1 ... 1\n", + "113 3 ... 4\n", + "114 0 ... 4\n", + "115 0 ... 1\n", + "116 2 ... 2\n", + "117 3 ... 4\n", + "118 0 ... 1\n", + "119 1 ... 2\n", + "120 2 ... 6\n", + "121 0 ... 1\n", + "122 0 ... 3\n", + "123 1 ... 0\n", + "124 2 ... 2\n", + "125 1 ... 3\n", + "126 1 ... 3\n", + "127 4 ... 3\n", + "128 1 ... 5\n", + "129 1 ... 1\n", + "... ... ... ...\n", + "213 1 ... 0\n", + "214 2 ... 0\n", + "215 1 ... 0\n", + "216 3 ... 0\n", + "217 2 ... 0\n", + "218 3 ... 0\n", + "219 1 ... 0\n", + "220 0 ... 0\n", + "221 0 ... 0\n", + "222 0 ... 0\n", + "223 0 ... 0\n", + "224 1 ... 0\n", + "225 0 ... 0\n", + "226 2 ... 0\n", + "227 1 ... 0\n", + "228 1 ... 0\n", + "229 4 ... 0\n", + "230 2 ... 0\n", + "231 2 ... 0\n", + "233 1 ... 0\n", + "234 1 ... 0\n", + "236 3 ... 0\n", + "237 2 ... 0\n", + "238 1 ... 0\n", + "239 1 ... 0\n", + "240 1 ... 0\n", + "241 2 ... 0\n", + "242 1 ... 0\n", + "244 1 ... 0\n", + "246 1 ... 0\n", + "\n", + "[143 rows x 8 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 4 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "EQ8RwUZi7tBt", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "b4217522-53cf-4ce6-955a-9c5f246326e4" + }, + "source": [ + "pd.__version__" + ], + "execution_count": 16, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'0.24.2'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 16 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vLyX7m0E7oXO", + "colab_type": "code", + "colab": {} + }, + "source": [ + "!pip install pandas==0.23.4" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "oKx8KVRH8Nvc", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "f510e776-acaf-4cc6-af79-eaf0a2f43834" + }, + "source": [ + "pd.crosstab(df['weight'], time_bins, normalize='columns')" + ], + "execution_count": 5, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
exercise_time(-0.3, 37.5](37.5, 75.0](75.0, 112.5](112.5, 150.0](150.0, 187.5](187.5, 225.0](225.0, 262.5](262.5, 300.0]
weight
1000.0157070.0121950.0049500.0000000.0068030.0263160.0082640.033613
1010.0000000.0060980.0000000.0070420.0136050.0350880.0082640.008403
1020.0052360.0000000.0099010.0140850.0068030.0175440.0165290.025210
1030.0052360.0060980.0049500.0000000.0136050.0000000.0000000.025210
1040.0104710.0060980.0049500.0070420.0000000.0087720.0165290.008403
1050.0157070.0000000.0000000.0000000.0136050.0087720.0082640.025210
1060.0000000.0060980.0099010.0000000.0136050.0087720.0000000.016807
1070.0000000.0000000.0049500.0211270.0204080.0175440.0165290.000000
1080.0000000.0182930.0000000.0211270.0204080.0263160.0330580.025210
1090.0052360.0060980.0148510.0140850.0136050.0263160.0082640.000000
1100.0052360.0121950.0148510.0281690.0136050.0087720.0000000.008403
1110.0052360.0060980.0000000.0140850.0068030.0175440.0082640.016807
1120.0052360.0060980.0049500.0140850.0000000.0000000.0165290.008403
1130.0157070.0182930.0049500.0140850.0068030.0087720.0413220.033613
1140.0000000.0121950.0049500.0070420.0136050.0087720.0000000.033613
1150.0000000.0000000.0000000.0140850.0068030.0087720.0247930.008403
1160.0104710.0121950.0148510.0000000.0204080.0087720.0165290.016807
1170.0157070.0000000.0099010.0000000.0068030.0175440.0165290.033613
1180.0000000.0060980.0049500.0070420.0000000.0175440.0000000.008403
1190.0052360.0060980.0049500.0211270.0000000.0175440.0082640.016807
1200.0104710.0000000.0000000.0140850.0068030.0087720.0082640.050420
1210.0000000.0060980.0000000.0211270.0068030.0087720.0165290.008403
1220.0000000.0182930.0148510.0000000.0068030.0087720.0165290.025210
1230.0052360.0000000.0148510.0000000.0068030.0087720.0247930.000000
1240.0104710.0060980.0099010.0352110.0204080.0087720.0082640.016807
1250.0052360.0000000.0049500.0140850.0272110.0263160.0330580.025210
1260.0052360.0060980.0148510.0070420.0204080.0263160.0165290.025210
1270.0209420.0060980.0000000.0000000.0068030.0087720.0413220.025210
1280.0052360.0000000.0099010.0070420.0136050.0350880.0165290.042017
1290.0052360.0060980.0148510.0070420.0068030.0175440.0330580.008403
...........................
2130.0052360.0121950.0049500.0000000.0000000.0000000.0000000.000000
2140.0104710.0243900.0148510.0000000.0000000.0000000.0000000.000000
2150.0052360.0000000.0049500.0000000.0000000.0000000.0000000.000000
2160.0157070.0182930.0148510.0000000.0000000.0000000.0000000.000000
2170.0104710.0000000.0049500.0000000.0000000.0000000.0000000.000000
2180.0157070.0182930.0000000.0000000.0000000.0000000.0000000.000000
2190.0052360.0121950.0000000.0000000.0000000.0000000.0000000.000000
2200.0000000.0060980.0000000.0000000.0000000.0000000.0000000.000000
2210.0000000.0060980.0000000.0000000.0000000.0000000.0000000.000000
2220.0000000.0121950.0049500.0000000.0000000.0000000.0000000.000000
2230.0000000.0000000.0049500.0000000.0000000.0000000.0000000.000000
2240.0052360.0000000.0000000.0000000.0000000.0000000.0000000.000000
2250.0000000.0121950.0000000.0000000.0000000.0000000.0000000.000000
2260.0104710.0060980.0000000.0000000.0000000.0000000.0000000.000000
2270.0052360.0000000.0000000.0000000.0000000.0000000.0000000.000000
2280.0052360.0000000.0000000.0000000.0000000.0000000.0000000.000000
2290.0209420.0060980.0000000.0000000.0000000.0000000.0000000.000000
2300.0104710.0060980.0000000.0000000.0000000.0000000.0000000.000000
2310.0104710.0060980.0000000.0000000.0000000.0000000.0000000.000000
2330.0052360.0000000.0000000.0000000.0000000.0000000.0000000.000000
2340.0052360.0060980.0000000.0000000.0000000.0000000.0000000.000000
2360.0157070.0000000.0000000.0000000.0000000.0000000.0000000.000000
2370.0104710.0000000.0000000.0000000.0000000.0000000.0000000.000000
2380.0052360.0000000.0000000.0000000.0000000.0000000.0000000.000000
2390.0052360.0000000.0000000.0000000.0000000.0000000.0000000.000000
2400.0052360.0000000.0000000.0000000.0000000.0000000.0000000.000000
2410.0104710.0000000.0000000.0000000.0000000.0000000.0000000.000000
2420.0052360.0000000.0000000.0000000.0000000.0000000.0000000.000000
2440.0052360.0000000.0000000.0000000.0000000.0000000.0000000.000000
2460.0052360.0000000.0000000.0000000.0000000.0000000.0000000.000000
\n", + "

143 rows × 8 columns

\n", + "
" + ], + "text/plain": [ + "exercise_time (-0.3, 37.5] ... (262.5, 300.0]\n", + "weight ... \n", + "100 0.015707 ... 0.033613\n", + "101 0.000000 ... 0.008403\n", + "102 0.005236 ... 0.025210\n", + "103 0.005236 ... 0.025210\n", + "104 0.010471 ... 0.008403\n", + "105 0.015707 ... 0.025210\n", + "106 0.000000 ... 0.016807\n", + "107 0.000000 ... 0.000000\n", + "108 0.000000 ... 0.025210\n", + "109 0.005236 ... 0.000000\n", + "110 0.005236 ... 0.008403\n", + "111 0.005236 ... 0.016807\n", + "112 0.005236 ... 0.008403\n", + "113 0.015707 ... 0.033613\n", + "114 0.000000 ... 0.033613\n", + "115 0.000000 ... 0.008403\n", + "116 0.010471 ... 0.016807\n", + "117 0.015707 ... 0.033613\n", + "118 0.000000 ... 0.008403\n", + "119 0.005236 ... 0.016807\n", + "120 0.010471 ... 0.050420\n", + "121 0.000000 ... 0.008403\n", + "122 0.000000 ... 0.025210\n", + "123 0.005236 ... 0.000000\n", + "124 0.010471 ... 0.016807\n", + "125 0.005236 ... 0.025210\n", + "126 0.005236 ... 0.025210\n", + "127 0.020942 ... 0.025210\n", + "128 0.005236 ... 0.042017\n", + "129 0.005236 ... 0.008403\n", + "... ... ... ...\n", + "213 0.005236 ... 0.000000\n", + "214 0.010471 ... 0.000000\n", + "215 0.005236 ... 0.000000\n", + "216 0.015707 ... 0.000000\n", + "217 0.010471 ... 0.000000\n", + "218 0.015707 ... 0.000000\n", + "219 0.005236 ... 0.000000\n", + "220 0.000000 ... 0.000000\n", + "221 0.000000 ... 0.000000\n", + "222 0.000000 ... 0.000000\n", + "223 0.000000 ... 0.000000\n", + "224 0.005236 ... 0.000000\n", + "225 0.000000 ... 0.000000\n", + "226 0.010471 ... 0.000000\n", + "227 0.005236 ... 0.000000\n", + "228 0.005236 ... 0.000000\n", + "229 0.020942 ... 0.000000\n", + "230 0.010471 ... 0.000000\n", + "231 0.010471 ... 0.000000\n", + "233 0.005236 ... 0.000000\n", + "234 0.005236 ... 0.000000\n", + "236 0.015707 ... 0.000000\n", + "237 0.010471 ... 0.000000\n", + "238 0.005236 ... 0.000000\n", + "239 0.005236 ... 0.000000\n", + "240 0.005236 ... 0.000000\n", + "241 0.010471 ... 0.000000\n", + "242 0.005236 ... 0.000000\n", + "244 0.005236 ... 0.000000\n", + "246 0.005236 ... 0.000000\n", + "\n", + "[143 rows x 8 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 5 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BT9gdS7viJZa", + "colab_type": "text" + }, + "source": [ + "### Assignment questions\n", + "\n", + "After you've worked on some code, answer the following questions in this text block:\n", + "\n", + "1. What are the variable types in the data?\n", + "2. What are the relationships between the variables?\n", + "3. Which relationships are \"real\", and which spurious?\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_XXg2crAipwP", + "colab_type": "text" + }, + "source": [ + "## Stretch goals and resources\n", + "\n", + "Following are *optional* things for you to take a look at. Focus on the above assignment first, and make sure to commit and push your changes to GitHub.\n", + "\n", + "- [Spurious Correlations](http://tylervigen.com/spurious-correlations)\n", + "- [NIH on controlling for confounding variables](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4017459/)\n", + "\n", + "Stretch goals:\n", + "\n", + "- Produce your own plot inspired by the Spurious Correlation visualizations (and consider writing a blog post about it - both the content and how you made it)\n", + "- Pick one of the techniques that NIH highlights for confounding variables - we'll be going into many of them later, but see if you can find which Python modules may help (hint - check scikit-learn)" + ] + } + ] +} \ No newline at end of file diff --git a/module3-make-explanatory-visualizations/HANK_LS_DSPT3_123_Make_Explanatory_Visualizations_Assignment.ipynb b/module3-make-explanatory-visualizations/HANK_LS_DSPT3_123_Make_Explanatory_Visualizations_Assignment.ipynb new file mode 100644 index 00000000..a92d20fc --- /dev/null +++ b/module3-make-explanatory-visualizations/HANK_LS_DSPT3_123_Make_Explanatory_Visualizations_Assignment.ipynb @@ -0,0 +1,4637 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "HANK - LS_DSPT3_123_Make_Explanatory_Visualizations_Assignment.ipynb", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.1" + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "NMEswXWh9mqw" + }, + "source": [ + "# ASSIGNMENT\n", + "\n", + "### 1) Replicate the lesson code. I recommend that you [do not copy-paste](https://docs.google.com/document/d/1ubOw9B3Hfip27hF2ZFnW3a3z9xAgrUDRReOEo-FHCVs/edit).\n", + "\n", + "Get caught up to where we got our example in class and then try and take things further. How close to \"pixel perfect\" can you make the lecture graph?\n", + "\n", + "Once you have something that you're proud of, share your graph in the cohort channel and move on to the second exercise.\n", + "\n", + "### 2) Reproduce another example from [FiveThityEight's shared data repository](https://data.fivethirtyeight.com/).\n", + "\n", + "**WARNING**: There are a lot of very custom graphs and tables at the above link. I **highly** recommend not trying to reproduce any that look like a table of values or something really different from the graph types that we are already familiar with. Search through the posts until you find a graph type that you are more or less familiar with: histogram, bar chart, stacked bar chart, line chart, [seaborn relplot](https://seaborn.pydata.org/generated/seaborn.relplot.html), etc. Recreating some of the graphics that 538 uses would be a lot easier in Adobe photoshop/illustrator than with matplotlib. \n", + "\n", + "- If you put in some time to find a graph that looks \"easy\" to replicate you'll probably find that it's not as easy as you thought. \n", + "\n", + "- If you start with a graph that looks hard to replicate you'll probably run up against a brick wall and be disappointed with your afternoon.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vxFfYJljMFPp", + "colab_type": "code", + "outputId": "5114fdc7-e225-44b9-db06-874957a2e4d3", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 285 + } + }, + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "\n", + "plt.style.use('fivethirtyeight')\n", + "\n", + "fake = pd.Series([38, 3, 2, 1, 2, 4, 6, 5, 5, 33], \n", + " index=range(1,11))\n", + "\n", + "fake.plot.bar(color='#ed713a', width=0.9);" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "j711faZC0Omh", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 476 + }, + "outputId": "84255633-50d6-4d6a-974a-22dd523fe897" + }, + "source": [ + "style_list = ['default', 'classic'] + sorted(\n", + " style for style in plt.style.available if style != 'classic')\n", + "style_list" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "['default',\n", + " 'classic',\n", + " 'Solarize_Light2',\n", + " '_classic_test',\n", + " 'bmh',\n", + " 'dark_background',\n", + " 'fast',\n", + " 'fivethirtyeight',\n", + " 'ggplot',\n", + " 'grayscale',\n", + " 'seaborn',\n", + " 'seaborn-bright',\n", + " 'seaborn-colorblind',\n", + " 'seaborn-dark',\n", + " 'seaborn-dark-palette',\n", + " 'seaborn-darkgrid',\n", + " 'seaborn-deep',\n", + " 'seaborn-muted',\n", + " 'seaborn-notebook',\n", + " 'seaborn-paper',\n", + " 'seaborn-pastel',\n", + " 'seaborn-poster',\n", + " 'seaborn-talk',\n", + " 'seaborn-ticks',\n", + " 'seaborn-white',\n", + " 'seaborn-whitegrid',\n", + " 'tableau-colorblind10']" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 2 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "GfHi8wCp0dsT", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 119 + }, + "outputId": "5b8e6412-dc85-4837-82cd-d264bb2dd09f" + }, + "source": [ + "fake2 = pd.Series(\n", + " [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", + " 2, 2, 2, \n", + " 3, 3, 3,\n", + " 4, 4,\n", + " 5, 5, 5,\n", + " 6, 6, 6, 6,\n", + " 7, 7, 7, 7, 7,\n", + " 8, 8, 8, 8,\n", + " 9, 9, 9, 9, \n", + " 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10])\n", + "\n", + "fake2.head()" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 1\n", + "1 1\n", + "2 1\n", + "3 1\n", + "4 1\n", + "dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 3 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "UDHadRfQ0iJh", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 289 + }, + "outputId": "340c3749-c63b-4e13-99ed-cdfd841453ac" + }, + "source": [ + "plt.style.use('fivethirtyeight')\n", + "fake2.value_counts().sort_index().plot.bar(color='#ed713a', width=0.9);" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\naEmeUaNGaciQIVq4cKEkaevWrXrjjTf04Ycfyuv1aty4cRo0aJCKi4stySNJx48f14QJE1RbW6tB\ngwb5r4GsqalRZWWl4uPj5XK5lJqaalmmiC+b3/3ud43Ov7llY9Wb+9SpU9WmTRutW7dOly9f1sKF\nC3Xo0CGVl5erR48elpfNiBEjNHjwYBUWFmr79u2aN2+ecnJy9NJLL0mSlixZoj//+c966623LMlT\nUlKiTZs2afXq1frud7/rn96xY0ft3bvX0v/80o030r///e+y2+3KycmRx+PR1q1bFRcXp7q6OmVn\nZ6t9+/batGmTJXk6d+6sQ4cOKTk5Wenp6crNzdW0adP8899++2298sor+vjjjy3JI914jj766CPt\n3LlTmzdv1unTp/XII48oOztbEydO1F133WVZFknq27eviouLNWrUKB0/flyDBg3S2rVr9f3vf1+S\nVF5erpdffllHjhyxJE9iYqIqKyvVrVs3STe2vBwOh/7617+qU6dOqqioUF5eno4dO2ZJHkkaO3as\n7Ha7SktL1b59+4B5dXV1ysvL07lz5/Tuu+9alilsJwg0l7y8PP+n4Vvx+XyW5jl8+LDKy8sVFxen\nuLg4/eY3v9GiRYs0duxYlZeX6+6777Y0z/Hjx7V27VpJ0oQJEzRz5kxlZGT450+ePFlbtmyxLM/c\nuXOVnp6uH//4x5owYYIKCwsVHd0yri0+fPiwfvWrX/l3L7Rv317z589Xdna2ZRni4+N18eJFJScn\n6+zZs+rTp0/A/L59+6q6utqyPDclJiYqPz9f+fn52rVrlzZt2qR58+bpxRdf1MSJE5Wdna1+/fpZ\nksXj8ejBBx+UdGPLNCYmJuB56tu3rzwejyVZpBsflD777DN/2Xg8Hn355Zf+3Wbdu3fXpUuXLMsj\nSZ988okqKiq+UTTSjf/X+fn5evLJJy3N1DJ+y0OQmJio0tJSVVdX3/Jnx44dlua5fv36N4pv+fLl\nyszM1NixY/W3v/3N0jyS/G/m0dHRat++fcAurPj4eH3++eeW5vnOd76j3bt365///KeefPJJnThx\nwtL1f93N1+v69eu3/Mql8+fPW5blqaee0uuvvy5JSk9P19tvvx0w3+VyqUePHpbluZVhw4Zp06ZN\nqqqq0rx587Rnzx5Lj/s5HA7/VoLb7VZ9fX3A79Xx48fVsWNHy/KMGTNGc+fO1Y4dO1RRUaGcnBw9\n/vjjio2N9WdMTEy0LI8k2Ww2/eMf/7jt/BMnTviPj1ol4rds+vbtq6NHjwZ8Wv+qqKgoNTRYt6cw\nJSVFR44c+cbuoKKiIvl8Pk2fPt2yLJKUlJSkEydO+D917dy5M+CA97///e9m+ZaHe+65Rxs3btSm\nTZv8x0may5gxYxQTE6PPP/9cbrc74HhEdXW17rvvPsuy/PznP9fIkSM1evRopaWlac2aNdq/f7//\nmM3hw4ct3RJtTMeOHTV79mzNnj1be/bssWy9kydP1qxZszRq1Cjt2bNHc+fOVWFhoc6dO6fo6Gi9\n9tprt30/MKGwsFAej0c/+MEPVF9frwEDBmjNmjX++dHR0Vq8eLFleSTphz/8ofLy8uR2uzV06NCA\nYzYVFRV67bXXlJeXZ2mmiC+bn/70p7py5cpt53fv3t2yg83SjX2l27dvV1ZW1jfmFRcXq76+XuvX\nr7csz4wZM3T9+nX/7a8f2N25c2fAsROrZWdn6/HHH9ehQ4fUpUsXy9f/9bMC4+PjA27v2LFDjz32\nmGV5HA6HPvroI61atUrvvfeeGhoa9Mknn6i6ulqPPvqoXnnlFT388MOW5ZFufGAJdupuenq6RWmk\nRYsW+c/6ysnJ0Zw5c9SrVy8tXrxYV69e1ahRo/Tiiy9alic+Pl4bN25UXV2dvvzyy2/8H7Jyq++m\ngoICxcbGau3atVq6dKl/672hoUEOh0Nz587V7NmzLc0U8ScIAABu79SpUwGnPt/cy2E1ygYA/p9p\njusPI/4EAQDAnbl06VLQy0bCLeKP2QAAAjXl+kOrsRsNAFqZhISEoNcf1tXVWXZxucSWDQC0OomJ\niVqxYsVtTwE/evSoZV9RdRPHbACglbl5/eHtWH39ocSWDQC0Oi3t+kOJYzYAAAuwGw0AYBxlAwAw\njrIBABhH2QAAjKNsAADG/R+cPP+jLBRU4gAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "NDeA1ung3ylS", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 355 + }, + "outputId": "b071171b-67cc-440a-efc8-34ea61e339c7" + }, + "source": [ + "from IPython.display import display, Image\n", + "\n", + "url = 'https://fivethirtyeight.com/wp-content/uploads/2017/09/mehtahickey-inconvenient-0830-1.png'\n", + "example = Image(url=url, width=400)\n", + "\n", + "display(example)" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "_bgeLDdn42Ya", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 328 + }, + "outputId": "5e2b1ca6-5741-4038-eb64-cbb54902b22b" + }, + "source": [ + "fig = plt.figure(facecolor='black')\n", + "\n", + "ax = fake2.value_counts().sort_index().plot.bar(color='#ed713a', width=0.9);\n", + "ax.set(facecolor='black')\n", + "\n", + "plt.xlabel('Rating', color='white')\n", + "plt.ylabel('Percent of total votes', color='white')" + ], + "execution_count": 7, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Text(0, 0.5, 'Percent of total votes')" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 7 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\nAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Fx06U4IL48HI", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "d06a9294-2166-42a8-ad05-7cf2210ebd77" + }, + "source": [ + "list(range(0, 50, 10))" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[0, 10, 20, 30, 40]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 8 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "BIg1Roy049qA", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 344 + }, + "outputId": "d729e141-3da2-4b4e-978d-0b89eb3d32a3" + }, + "source": [ + "fig = plt.figure(facecolor='white', figsize=(5, 4))\n", + "\n", + "ax = fake.plot.bar(color='#ed713a', width=0.9)\n", + "ax.set(facecolor='white')\n", + "ax.patch.set_alpha(0.1)\n", + "\n", + "plt.xlabel('Rating', fontweight='bold')\n", + "plt.ylabel('Percent of total votes', fontweight='bold')\n", + "plt.title('`An Inconvenient Sequel: Truth To Power` is divisive',\n", + " fontsize=12,\n", + " loc='left',\n", + " x=-0.1,\n", + " y=1.1,\n", + " fontweight='bold')\n", + "\n", + "#ax.text(x=-1.7, y=42, s='IMDb ratings for the film as of Aug. 29')\n", + "plt.text(x=-1.7, y=fake.max() + 4, s='IMDb ratings for the film as of Aug. 29', fontsize=10)\n", + "\n", + "plt.xticks(rotation=0, color='#a7a7a7')\n", + "plt.yticks(range(0, 50, 10), labels=[f'{i}' if i!=40 else f'{i}%' for i in range(0, 50, 10)], color='#a7a7a7');" + ], + "execution_count": 36, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-kc8km5s5EVI", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 309 + }, + "outputId": "10c8d364-367b-4aab-d410-e935237996ac" + }, + "source": [ + "df = pd.read_csv('https://raw.githubusercontent.com/fivethirtyeight/data/master/inconvenient-sequel/ratings.csv')\n", + "df.head()" + ], + "execution_count": 10, + "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", + "
timestamprespondentscategorylinkaveragemeanmedian1_votes2_votes3_votes4_votes5_votes6_votes7_votes8_votes9_votes10_votes1_pct2_pct3_pct4_pct5_pct6_pct7_pct8_pct9_pct10_pct
02017-07-17 12:28:32.785639402Maleshttp://www.imdb.com/title/tt6322922/ratings-male4.65.02197773771182013549.01.71.70.71.71.72.72.05.033.6
12017-07-17 12:28:33.02560078Femaleshttp://www.imdb.com/title/tt6322922/ratings-fe...6.97.71016101103434920.51.30.01.31.30.03.85.13.862.8
22017-07-17 12:28:33.2739194Aged under 18http://www.imdb.com/title/tt6322922/ratings-age_14.24.23200010000150.00.00.00.025.00.00.00.00.025.0
32017-07-17 12:28:33.4953254Males under 18http://www.imdb.com/title/tt6322922/ratings-ma...4.24.23200010000150.00.00.00.025.00.00.00.00.025.0
42017-07-17 12:28:33.722849130Aged 18-29http://www.imdb.com/title/tt6322922/ratings-age_26.36.5941031236466431.50.02.30.81.52.34.63.14.649.2
\n", + "
" + ], + "text/plain": [ + " timestamp respondents ... 9_pct 10_pct\n", + "0 2017-07-17 12:28:32.785639 402 ... 5.0 33.6\n", + "1 2017-07-17 12:28:33.025600 78 ... 3.8 62.8\n", + "2 2017-07-17 12:28:33.273919 4 ... 0.0 25.0\n", + "3 2017-07-17 12:28:33.495325 4 ... 0.0 25.0\n", + "4 2017-07-17 12:28:33.722849 130 ... 4.6 49.2\n", + "\n", + "[5 rows x 27 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 10 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "JXLa3gxy5JTw", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 493 + }, + "outputId": "f535fb66-e902-4ebb-f7ea-c3d90abbaa24" + }, + "source": [ + "df.dtypes" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "timestamp object\n", + "respondents int64\n", + "category object\n", + "link object\n", + "average float64\n", + "mean float64\n", + "median int64\n", + "1_votes int64\n", + "2_votes int64\n", + "3_votes int64\n", + "4_votes int64\n", + "5_votes int64\n", + "6_votes int64\n", + "7_votes int64\n", + "8_votes int64\n", + "9_votes int64\n", + "10_votes int64\n", + "1_pct float64\n", + "2_pct float64\n", + "3_pct float64\n", + "4_pct float64\n", + "5_pct float64\n", + "6_pct float64\n", + "7_pct float64\n", + "8_pct float64\n", + "9_pct float64\n", + "10_pct float64\n", + "dtype: object" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 12 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "B2ARySo85Nxg", + "colab_type": "code", + "colab": {} + }, + "source": [ + "df['timestamp'] = pd.to_datetime(df['timestamp'])" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "4GIbNrJp5U9I", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 317 + }, + "outputId": "ad9ffde2-f187-4d1d-b1e9-9421c85da058" + }, + "source": [ + "df.describe()" + ], + "execution_count": 14, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
respondentsaveragemeanmedian1_votes2_votes3_votes4_votes5_votes6_votes7_votes8_votes9_votes10_votes1_pct2_pct3_pct4_pct5_pct6_pct7_pct8_pct9_pct10_pct
count80053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.00000080053.000000
mean403.3908045.3314785.6769546.023047159.45507411.5621036.9965903.2117227.79768413.44162018.83244917.95325622.565713141.57459437.3449192.2309011.7269361.0315193.1696893.5045944.7801994.8008595.97812735.431905
std544.9774001.6732791.6026803.131885227.15495116.1208698.9644254.26711810.63364819.32653726.79940925.39881828.591822187.95467320.0800972.4442951.6202331.4389293.9033914.1373293.7987145.2248085.75952015.814088
min1.0000001.0000001.0000001.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000
25%34.0000004.3000004.8000003.0000006.0000000.0000000.0000000.0000001.0000001.0000001.0000002.0000002.0000006.00000025.0000000.0000000.0000000.0000000.8000001.2000002.2000002.6000003.60000026.300000
50%244.0000005.3000005.5000006.00000081.0000003.0000004.0000002.0000004.0000006.0000008.00000010.00000016.00000085.00000038.6000002.0000001.5000000.6000001.7000002.9000004.2000004.3000005.30000035.500000
75%518.0000006.5000006.6000009.000000227.00000020.00000010.0000005.00000010.00000019.00000026.00000024.00000032.000000188.00000046.0000003.2000002.2000001.4000003.6000004.3000006.8000005.3000006.40000045.100000
max2662.0000008.5000008.60000010.0000001021.00000069.00000040.00000025.00000055.000000110.000000154.000000147.000000146.000000897.000000100.00000010.3000009.1000008.60000025.00000050.00000025.00000028.60000033.30000082.800000
\n", + "
" + ], + "text/plain": [ + " respondents average ... 9_pct 10_pct\n", + "count 80053.000000 80053.000000 ... 80053.000000 80053.000000\n", + "mean 403.390804 5.331478 ... 5.978127 35.431905\n", + "std 544.977400 1.673279 ... 5.759520 15.814088\n", + "min 1.000000 1.000000 ... 0.000000 0.000000\n", + "25% 34.000000 4.300000 ... 3.600000 26.300000\n", + "50% 244.000000 5.300000 ... 5.300000 35.500000\n", + "75% 518.000000 6.500000 ... 6.400000 45.100000\n", + "max 2662.000000 8.500000 ... 33.300000 82.800000\n", + "\n", + "[8 rows x 24 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 14 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "eMkVERMK5Zrv", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 493 + }, + "outputId": "46fdaa6a-e90c-4129-a194-80a2e0ec492d" + }, + "source": [ + "df.dtypes" + ], + "execution_count": 15, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "timestamp datetime64[ns]\n", + "respondents int64\n", + "category object\n", + "link object\n", + "average float64\n", + "mean float64\n", + "median int64\n", + "1_votes int64\n", + "2_votes int64\n", + "3_votes int64\n", + "4_votes int64\n", + "5_votes int64\n", + "6_votes int64\n", + "7_votes int64\n", + "8_votes int64\n", + "9_votes int64\n", + "10_votes int64\n", + "1_pct float64\n", + "2_pct float64\n", + "3_pct float64\n", + "4_pct float64\n", + "5_pct float64\n", + "6_pct float64\n", + "7_pct float64\n", + "8_pct float64\n", + "9_pct float64\n", + "10_pct float64\n", + "dtype: object" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 15 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "mLjbjZor6zqH", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "d81ac0fb-81c1-4ed6-af18-a3113ee18bf3" + }, + "source": [ + "df['timestamp'].min()" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Timestamp('2017-07-17 12:28:32.785639')" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 17 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ctK0Ojv464dN", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "e8301f63-4005-4571-83b6-e5e78704f3d9" + }, + "source": [ + "df['timestamp'].max()" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Timestamp('2017-08-29 23:10:06.218251')" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 18 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "RZVlRf1x68EG", + "colab_type": "code", + "colab": {} + }, + "source": [ + "df = df.set_index('timestamp')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "IMOMVTvx6_ut", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 340 + }, + "outputId": "4dc1cb4e-c077-418a-f85d-f274610e8c9f" + }, + "source": [ + "df.head()" + ], + "execution_count": 20, + "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", + "
respondentscategorylinkaveragemeanmedian1_votes2_votes3_votes4_votes5_votes6_votes7_votes8_votes9_votes10_votes1_pct2_pct3_pct4_pct5_pct6_pct7_pct8_pct9_pct10_pct
timestamp
2017-07-17 12:28:32.785639402Maleshttp://www.imdb.com/title/tt6322922/ratings-male4.65.02197773771182013549.01.71.70.71.71.72.72.05.033.6
2017-07-17 12:28:33.02560078Femaleshttp://www.imdb.com/title/tt6322922/ratings-fe...6.97.71016101103434920.51.30.01.31.30.03.85.13.862.8
2017-07-17 12:28:33.2739194Aged under 18http://www.imdb.com/title/tt6322922/ratings-age_14.24.23200010000150.00.00.00.025.00.00.00.00.025.0
2017-07-17 12:28:33.4953254Males under 18http://www.imdb.com/title/tt6322922/ratings-ma...4.24.23200010000150.00.00.00.025.00.00.00.00.025.0
2017-07-17 12:28:33.722849130Aged 18-29http://www.imdb.com/title/tt6322922/ratings-age_26.36.5941031236466431.50.02.30.81.52.34.63.14.649.2
\n", + "
" + ], + "text/plain": [ + " respondents category ... 9_pct 10_pct\n", + "timestamp ... \n", + "2017-07-17 12:28:32.785639 402 Males ... 5.0 33.6\n", + "2017-07-17 12:28:33.025600 78 Females ... 3.8 62.8\n", + "2017-07-17 12:28:33.273919 4 Aged under 18 ... 0.0 25.0\n", + "2017-07-17 12:28:33.495325 4 Males under 18 ... 0.0 25.0\n", + "2017-07-17 12:28:33.722849 130 Aged 18-29 ... 4.6 49.2\n", + "\n", + "[5 rows x 26 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 20 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "u3Mx49397KHl", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "1f3d07d6-67e7-4e82-86ca-63392108b0ea" + }, + "source": [ + "df['2017-08-29']" + ], + "execution_count": 21, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
respondentscategorylinkaveragemeanmedian1_votes2_votes3_votes4_votes5_votes6_votes7_votes8_votes9_votes10_votes1_pct2_pct3_pct4_pct5_pct6_pct7_pct8_pct9_pct10_pct
timestamp
2017-08-29 00:00:02.2488821682Maleshttp://www.imdb.com/title/tt6322922/ratings-male5.35.366715029124279107908351939.93.01.70.72.54.76.45.44.930.9
2017-08-29 00:00:02.499363257Femaleshttp://www.imdb.com/title/tt6322922/ratings-fe...6.97.310533444514132613120.61.21.61.61.61.95.45.110.151.0
2017-08-29 00:00:02.72720415Aged under 18http://www.imdb.com/title/tt6322922/ratings-age_14.55.35700010100646.70.00.00.06.70.06.70.00.040.0
2017-08-29 00:00:03.02427013Males under 18http://www.imdb.com/title/tt6322922/ratings-ma...5.35.97500010100638.50.00.00.07.70.07.70.00.046.2
2017-08-29 00:00:03.2482072Females under 18http://www.imdb.com/title/tt6322922/ratings-fe...1.01.012000000000100.00.00.00.00.00.00.00.00.00.0
2017-08-29 00:00:03.441529450Aged 18-29http://www.imdb.com/title/tt6322922/ratings-age_26.46.68117367172435282319026.00.71.31.63.85.37.86.25.142.2
2017-08-29 00:00:03.636825402Males Aged 18-29http://www.imdb.com/title/tt6322922/ratings-ma...6.36.58112346152033252116327.90.71.01.53.75.08.26.25.240.5
2017-08-29 00:00:03.83944641Females Aged 18-29http://www.imdb.com/title/tt6322922/ratings-fe...7.17.910402122232239.80.04.92.44.94.94.97.34.956.1
2017-08-29 00:00:04.030663771Aged 30-44http://www.imdb.com/title/tt6322922/ratings-age_35.65.6728721124213653384925037.22.71.60.52.74.76.94.96.432.4
2017-08-29 00:00:04.225962679Males Aged 30-44http://www.imdb.com/title/tt6322922/ratings-ma...5.55.3627020102203351343920039.82.91.50.32.94.97.55.05.729.5
2017-08-29 00:00:04.53931276Females Aged 30-44http://www.imdb.com/title/tt6322922/ratings-fe...7.58.01011022021294714.50.02.62.60.02.61.32.611.861.8
2017-08-29 00:00:04.776104539Aged 45+http://www.imdb.com/title/tt6322922/ratings-age_44.44.822452813381924323513245.55.22.40.61.53.54.55.96.524.5
2017-08-29 00:00:04.973766421Males Aged 45+http://www.imdb.com/title/tt6322922/ratings-ma...4.04.32209251336181625208649.65.93.10.71.44.33.85.94.820.4
2017-08-29 00:00:05.176998109Females Aged 45+http://www.imdb.com/title/tt6322922/ratings-fe...6.76.79313002086154428.42.80.00.01.80.07.35.513.840.4
2017-08-29 00:00:05.3665548IMDb staffhttp://www.imdb.com/title/tt6322922/ratings-im...8.47.28100001122112.50.00.00.00.012.512.525.025.012.5
2017-08-29 00:00:05.55659841Top 1000 votershttp://www.imdb.com/title/tt6322922/ratings-to...4.64.751142254511626.89.84.94.912.29.812.22.42.414.6
2017-08-29 00:00:05.767397922US usershttp://www.imdb.com/title/tt6322922/ratings-usa4.85.044053320893054465825943.93.62.20.91.03.35.95.06.328.1
2017-08-29 00:00:05.964362556Non-US usershttp://www.imdb.com/title/tt6322922/ratings-in...6.46.5712911108324450353520223.22.01.81.45.87.99.06.36.336.3
2017-08-29 00:00:06.2884862646IMDb usershttp://www.imdb.com/title/tt6322922/ratings5.45.6710206739245510715214514489338.52.51.50.92.14.05.75.55.433.7
2017-08-29 00:10:02.4376551682Maleshttp://www.imdb.com/title/tt6322922/ratings-male5.35.366715029124279107908351939.93.01.70.72.54.76.45.44.930.9
2017-08-29 00:10:02.715850257Femaleshttp://www.imdb.com/title/tt6322922/ratings-fe...6.97.310533444514132613120.61.21.61.61.61.95.45.110.151.0
2017-08-29 00:10:02.97431715Aged under 18http://www.imdb.com/title/tt6322922/ratings-age_14.55.35700010100646.70.00.00.06.70.06.70.00.040.0
2017-08-29 00:10:03.24279613Males under 18http://www.imdb.com/title/tt6322922/ratings-ma...5.35.97500010100638.50.00.00.07.70.07.70.00.046.2
2017-08-29 00:10:03.4719742Females under 18http://www.imdb.com/title/tt6322922/ratings-fe...1.01.012000000000100.00.00.00.00.00.00.00.00.00.0
2017-08-29 00:10:03.701915450Aged 18-29http://www.imdb.com/title/tt6322922/ratings-age_26.46.68117367172435282319026.00.71.31.63.85.37.86.25.142.2
2017-08-29 00:10:03.922894402Males Aged 18-29http://www.imdb.com/title/tt6322922/ratings-ma...6.36.58112346152033252116327.90.71.01.53.75.08.26.25.240.5
2017-08-29 00:10:04.16858441Females Aged 18-29http://www.imdb.com/title/tt6322922/ratings-fe...7.17.910402122232239.80.04.92.44.94.94.97.34.956.1
2017-08-29 00:10:04.391835771Aged 30-44http://www.imdb.com/title/tt6322922/ratings-age_35.65.6728721124213653384925037.22.71.60.52.74.76.94.96.432.4
2017-08-29 00:10:04.630956679Males Aged 30-44http://www.imdb.com/title/tt6322922/ratings-ma...5.55.3627020102203351343920039.82.91.50.32.94.97.55.05.729.5
2017-08-29 00:10:04.81999176Females Aged 30-44http://www.imdb.com/title/tt6322922/ratings-fe...7.58.01011022021294714.50.02.62.60.02.61.32.611.861.8
.................................................................................
2017-08-29 23:00:03.683160775Aged 30-44http://www.imdb.com/title/tt6322922/ratings-age_35.75.6728721124213853395025037.02.71.50.52.74.96.85.06.532.3
2017-08-29 23:00:03.924760682Males Aged 30-44http://www.imdb.com/title/tt6322922/ratings-ma...5.55.3627020102203551353920039.62.91.50.32.95.17.55.15.729.3
2017-08-29 23:00:04.18903477Females Aged 30-44http://www.imdb.com/title/tt6322922/ratings-fe...7.68.110110220212104714.30.02.62.60.02.61.32.613.061.0
2017-08-29 23:00:04.381826544Aged 45+http://www.imdb.com/title/tt6322922/ratings-age_44.44.822462913381925323613345.25.32.40.61.53.54.65.96.624.4
2017-08-29 23:00:04.619175424Males Aged 45+http://www.imdb.com/title/tt6322922/ratings-ma...4.04.32209261336181725208749.36.13.10.71.44.24.05.94.720.5
2017-08-29 23:00:04.820031111Females Aged 45+http://www.imdb.com/title/tt6322922/ratings-fe...6.66.69323002086164428.82.70.00.01.80.07.25.414.439.6
2017-08-29 23:00:05.0288728IMDb staffhttp://www.imdb.com/title/tt6322922/ratings-im...8.47.28100001122112.50.00.00.00.012.512.525.025.012.5
2017-08-29 23:00:05.23167441Top 1000 votershttp://www.imdb.com/title/tt6322922/ratings-to...4.64.751142254511626.89.84.94.912.29.812.22.42.414.6
2017-08-29 23:00:05.442596925US usershttp://www.imdb.com/title/tt6322922/ratings-usa4.85.044053420893054466025943.83.72.20.91.03.25.85.06.528.0
2017-08-29 23:00:05.634805565Non-US usershttp://www.imdb.com/title/tt6322922/ratings-in...6.46.5712911108324752373520422.81.91.81.45.78.39.26.56.236.1
2017-08-29 23:00:05.8295582662IMDb usershttp://www.imdb.com/title/tt6322922/ratings5.45.6710216938255511015414714689738.42.61.40.92.14.15.85.55.533.7
2017-08-29 23:10:02.2077061693Maleshttp://www.imdb.com/title/tt6322922/ratings-male5.35.466715129134282109918352239.63.01.70.82.54.86.45.44.930.8
2017-08-29 23:10:02.398710261Femaleshttp://www.imdb.com/title/tt6322922/ratings-fe...7.07.310543444514142813120.71.11.51.51.51.95.45.410.750.2
2017-08-29 23:10:02.62201915Aged under 18http://www.imdb.com/title/tt6322922/ratings-age_14.55.35700010100646.70.00.00.06.70.06.70.00.040.0
2017-08-29 23:10:02.90885713Males under 18http://www.imdb.com/title/tt6322922/ratings-ma...5.35.97500010100638.50.00.00.07.70.07.70.00.046.2
2017-08-29 23:10:03.0886352Females under 18http://www.imdb.com/title/tt6322922/ratings-fe...1.01.012000000000100.00.00.00.00.00.00.00.00.00.0
2017-08-29 23:10:03.288272455Aged 18-29http://www.imdb.com/title/tt6322922/ratings-age_26.46.68117368172536292319125.70.71.31.83.75.57.96.45.142.0
2017-08-29 23:10:03.501039406Males Aged 18-29http://www.imdb.com/title/tt6322922/ratings-ma...6.36.58112347152134252116427.60.71.01.73.75.28.46.25.240.4
2017-08-29 23:10:03.72596042Females Aged 18-29http://www.imdb.com/title/tt6322922/ratings-fe...7.17.910402122242239.50.04.82.44.84.84.89.54.854.8
2017-08-29 23:10:03.942442775Aged 30-44http://www.imdb.com/title/tt6322922/ratings-age_35.75.6728721124213853395025037.02.71.50.52.74.96.85.06.532.3
2017-08-29 23:10:04.147698682Males Aged 30-44http://www.imdb.com/title/tt6322922/ratings-ma...5.55.3627020102203551353920039.62.91.50.32.95.17.55.15.729.3
2017-08-29 23:10:04.40675977Females Aged 30-44http://www.imdb.com/title/tt6322922/ratings-fe...7.68.110110220212104714.30.02.62.60.02.61.32.613.061.0
2017-08-29 23:10:04.603751544Aged 45+http://www.imdb.com/title/tt6322922/ratings-age_44.44.822462913381925323613345.25.32.40.61.53.54.65.96.624.4
2017-08-29 23:10:04.905270424Males Aged 45+http://www.imdb.com/title/tt6322922/ratings-ma...4.04.32209261336181725208749.36.13.10.71.44.24.05.94.720.5
2017-08-29 23:10:05.172451111Females Aged 45+http://www.imdb.com/title/tt6322922/ratings-fe...6.66.69323002086164428.82.70.00.01.80.07.25.414.439.6
2017-08-29 23:10:05.3695108IMDb staffhttp://www.imdb.com/title/tt6322922/ratings-im...8.47.28100001122112.50.00.00.00.012.512.525.025.012.5
2017-08-29 23:10:05.59833141Top 1000 votershttp://www.imdb.com/title/tt6322922/ratings-to...4.64.751142254511626.89.84.94.912.29.812.22.42.414.6
2017-08-29 23:10:05.794141925US usershttp://www.imdb.com/title/tt6322922/ratings-usa4.85.044053420893054466025943.83.72.20.91.03.25.85.06.528.0
2017-08-29 23:10:06.022268565Non-US usershttp://www.imdb.com/title/tt6322922/ratings-in...6.46.5712911108324752373520422.81.91.81.45.78.39.26.56.236.1
2017-08-29 23:10:06.2182512662IMDb usershttp://www.imdb.com/title/tt6322922/ratings5.45.6710216938255511015414714689738.42.61.40.92.14.15.85.55.533.7
\n", + "

2660 rows × 26 columns

\n", + "
" + ], + "text/plain": [ + " respondents category ... 9_pct 10_pct\n", + "timestamp ... \n", + "2017-08-29 00:00:02.248882 1682 Males ... 4.9 30.9\n", + "2017-08-29 00:00:02.499363 257 Females ... 10.1 51.0\n", + "2017-08-29 00:00:02.727204 15 Aged under 18 ... 0.0 40.0\n", + "2017-08-29 00:00:03.024270 13 Males under 18 ... 0.0 46.2\n", + "2017-08-29 00:00:03.248207 2 Females under 18 ... 0.0 0.0\n", + "2017-08-29 00:00:03.441529 450 Aged 18-29 ... 5.1 42.2\n", + "2017-08-29 00:00:03.636825 402 Males Aged 18-29 ... 5.2 40.5\n", + "2017-08-29 00:00:03.839446 41 Females Aged 18-29 ... 4.9 56.1\n", + "2017-08-29 00:00:04.030663 771 Aged 30-44 ... 6.4 32.4\n", + "2017-08-29 00:00:04.225962 679 Males Aged 30-44 ... 5.7 29.5\n", + "2017-08-29 00:00:04.539312 76 Females Aged 30-44 ... 11.8 61.8\n", + "2017-08-29 00:00:04.776104 539 Aged 45+ ... 6.5 24.5\n", + "2017-08-29 00:00:04.973766 421 Males Aged 45+ ... 4.8 20.4\n", + "2017-08-29 00:00:05.176998 109 Females Aged 45+ ... 13.8 40.4\n", + "2017-08-29 00:00:05.366554 8 IMDb staff ... 25.0 12.5\n", + "2017-08-29 00:00:05.556598 41 Top 1000 voters ... 2.4 14.6\n", + "2017-08-29 00:00:05.767397 922 US users ... 6.3 28.1\n", + "2017-08-29 00:00:05.964362 556 Non-US users ... 6.3 36.3\n", + "2017-08-29 00:00:06.288486 2646 IMDb users ... 5.4 33.7\n", + "2017-08-29 00:10:02.437655 1682 Males ... 4.9 30.9\n", + "2017-08-29 00:10:02.715850 257 Females ... 10.1 51.0\n", + "2017-08-29 00:10:02.974317 15 Aged under 18 ... 0.0 40.0\n", + "2017-08-29 00:10:03.242796 13 Males under 18 ... 0.0 46.2\n", + "2017-08-29 00:10:03.471974 2 Females under 18 ... 0.0 0.0\n", + "2017-08-29 00:10:03.701915 450 Aged 18-29 ... 5.1 42.2\n", + "2017-08-29 00:10:03.922894 402 Males Aged 18-29 ... 5.2 40.5\n", + "2017-08-29 00:10:04.168584 41 Females Aged 18-29 ... 4.9 56.1\n", + "2017-08-29 00:10:04.391835 771 Aged 30-44 ... 6.4 32.4\n", + "2017-08-29 00:10:04.630956 679 Males Aged 30-44 ... 5.7 29.5\n", + "2017-08-29 00:10:04.819991 76 Females Aged 30-44 ... 11.8 61.8\n", + "... ... ... ... ... ...\n", + "2017-08-29 23:00:03.683160 775 Aged 30-44 ... 6.5 32.3\n", + "2017-08-29 23:00:03.924760 682 Males Aged 30-44 ... 5.7 29.3\n", + "2017-08-29 23:00:04.189034 77 Females Aged 30-44 ... 13.0 61.0\n", + "2017-08-29 23:00:04.381826 544 Aged 45+ ... 6.6 24.4\n", + "2017-08-29 23:00:04.619175 424 Males Aged 45+ ... 4.7 20.5\n", + "2017-08-29 23:00:04.820031 111 Females Aged 45+ ... 14.4 39.6\n", + "2017-08-29 23:00:05.028872 8 IMDb staff ... 25.0 12.5\n", + "2017-08-29 23:00:05.231674 41 Top 1000 voters ... 2.4 14.6\n", + "2017-08-29 23:00:05.442596 925 US users ... 6.5 28.0\n", + "2017-08-29 23:00:05.634805 565 Non-US users ... 6.2 36.1\n", + "2017-08-29 23:00:05.829558 2662 IMDb users ... 5.5 33.7\n", + "2017-08-29 23:10:02.207706 1693 Males ... 4.9 30.8\n", + "2017-08-29 23:10:02.398710 261 Females ... 10.7 50.2\n", + "2017-08-29 23:10:02.622019 15 Aged under 18 ... 0.0 40.0\n", + "2017-08-29 23:10:02.908857 13 Males under 18 ... 0.0 46.2\n", + "2017-08-29 23:10:03.088635 2 Females under 18 ... 0.0 0.0\n", + "2017-08-29 23:10:03.288272 455 Aged 18-29 ... 5.1 42.0\n", + "2017-08-29 23:10:03.501039 406 Males Aged 18-29 ... 5.2 40.4\n", + "2017-08-29 23:10:03.725960 42 Females Aged 18-29 ... 4.8 54.8\n", + "2017-08-29 23:10:03.942442 775 Aged 30-44 ... 6.5 32.3\n", + "2017-08-29 23:10:04.147698 682 Males Aged 30-44 ... 5.7 29.3\n", + "2017-08-29 23:10:04.406759 77 Females Aged 30-44 ... 13.0 61.0\n", + "2017-08-29 23:10:04.603751 544 Aged 45+ ... 6.6 24.4\n", + "2017-08-29 23:10:04.905270 424 Males Aged 45+ ... 4.7 20.5\n", + "2017-08-29 23:10:05.172451 111 Females Aged 45+ ... 14.4 39.6\n", + "2017-08-29 23:10:05.369510 8 IMDb staff ... 25.0 12.5\n", + "2017-08-29 23:10:05.598331 41 Top 1000 voters ... 2.4 14.6\n", + "2017-08-29 23:10:05.794141 925 US users ... 6.5 28.0\n", + "2017-08-29 23:10:06.022268 565 Non-US users ... 6.2 36.1\n", + "2017-08-29 23:10:06.218251 2662 IMDb users ... 5.5 33.7\n", + "\n", + "[2660 rows x 26 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 21 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gjxXn5dF7QMr", + "colab_type": "code", + "colab": {} + }, + "source": [ + "lastday = df['2017-08-29']\n", + "lastday_filtered = lastday[lastday['category'] == 'IMDb users']" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "7M7s7YEi7nhs", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 340 + }, + "outputId": "1bd46243-a737-4ab6-8848-e225e6447a20" + }, + "source": [ + "lastday_filtered.head()" + ], + "execution_count": 23, + "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", + "
respondentscategorylinkaveragemeanmedian1_votes2_votes3_votes4_votes5_votes6_votes7_votes8_votes9_votes10_votes1_pct2_pct3_pct4_pct5_pct6_pct7_pct8_pct9_pct10_pct
timestamp
2017-08-29 00:00:06.2884862646IMDb usershttp://www.imdb.com/title/tt6322922/ratings5.45.6710206739245510715214514489338.52.51.50.92.14.05.75.55.433.7
2017-08-29 00:10:06.7634612646IMDb usershttp://www.imdb.com/title/tt6322922/ratings5.45.6710206739245510715214514489338.52.51.50.92.14.05.75.55.433.7
2017-08-29 00:20:05.7453072646IMDb usershttp://www.imdb.com/title/tt6322922/ratings5.45.6710206739245510715214514489338.52.51.50.92.14.05.75.55.433.7
2017-08-29 00:30:05.8185522646IMDb usershttp://www.imdb.com/title/tt6322922/ratings5.45.6710206739245510715214514489338.52.51.50.92.14.05.75.55.433.7
2017-08-29 00:40:06.1809282646IMDb usershttp://www.imdb.com/title/tt6322922/ratings5.45.6710206739245510715214514489338.52.51.50.92.14.05.75.55.433.7
\n", + "
" + ], + "text/plain": [ + " respondents category ... 9_pct 10_pct\n", + "timestamp ... \n", + "2017-08-29 00:00:06.288486 2646 IMDb users ... 5.4 33.7\n", + "2017-08-29 00:10:06.763461 2646 IMDb users ... 5.4 33.7\n", + "2017-08-29 00:20:05.745307 2646 IMDb users ... 5.4 33.7\n", + "2017-08-29 00:30:05.818552 2646 IMDb users ... 5.4 33.7\n", + "2017-08-29 00:40:06.180928 2646 IMDb users ... 5.4 33.7\n", + "\n", + "[5 rows x 26 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 23 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "XxY3a3AQ8ZD7", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 340 + }, + "outputId": "922615a9-463c-4f43-e237-7e775c876470" + }, + "source": [ + "lastday_filtered.tail()" + ], + "execution_count": 24, + "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", + "
respondentscategorylinkaveragemeanmedian1_votes2_votes3_votes4_votes5_votes6_votes7_votes8_votes9_votes10_votes1_pct2_pct3_pct4_pct5_pct6_pct7_pct8_pct9_pct10_pct
timestamp
2017-08-29 22:30:06.4231812662IMDb usershttp://www.imdb.com/title/tt6322922/ratings5.45.6710216938255511015414714689738.42.61.40.92.14.15.85.55.533.7
2017-08-29 22:40:06.2336592662IMDb usershttp://www.imdb.com/title/tt6322922/ratings5.45.6710216938255511015414714689738.42.61.40.92.14.15.85.55.533.7
2017-08-29 22:50:06.5925712662IMDb usershttp://www.imdb.com/title/tt6322922/ratings5.45.6710216938255511015414714689738.42.61.40.92.14.15.85.55.533.7
2017-08-29 23:00:05.8295582662IMDb usershttp://www.imdb.com/title/tt6322922/ratings5.45.6710216938255511015414714689738.42.61.40.92.14.15.85.55.533.7
2017-08-29 23:10:06.2182512662IMDb usershttp://www.imdb.com/title/tt6322922/ratings5.45.6710216938255511015414714689738.42.61.40.92.14.15.85.55.533.7
\n", + "
" + ], + "text/plain": [ + " respondents category ... 9_pct 10_pct\n", + "timestamp ... \n", + "2017-08-29 22:30:06.423181 2662 IMDb users ... 5.5 33.7\n", + "2017-08-29 22:40:06.233659 2662 IMDb users ... 5.5 33.7\n", + "2017-08-29 22:50:06.592571 2662 IMDb users ... 5.5 33.7\n", + "2017-08-29 23:00:05.829558 2662 IMDb users ... 5.5 33.7\n", + "2017-08-29 23:10:06.218251 2662 IMDb users ... 5.5 33.7\n", + "\n", + "[5 rows x 26 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 24 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Um9ekxan8eF6", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 313 + }, + "outputId": "98f08d0e-3876-402b-ee5a-533976120809" + }, + "source": [ + "lastday_filtered['respondents'].plot()" + ], + "execution_count": 25, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 25 + }, + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAa0AAAEXCAYAAAAeBxskAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XtclHX6//HXMIDCoOIJMQRd8VSe\ntYxMMbRkEQ03S+2rla2H2lZNyzxlWq2HDoa2pavl7nbQzFRcs9RKzfMBy8gzSp4tRVEUEAGZ+f3h\nj9EBFVRk5mbez8ejx+7MfGbu63KGueZzuD+3KTU11YaIiIgBeDg7ABERkaJS0RIREcNQ0RIREcNQ\n0RIREcNQ0RIREcNQ0RIREcNQ0RIREcNQ0RIREcNQ0XKi/fv3OzuE22b0HIwePygHV2D0+ME4Oaho\niYiIYahoiYiIYahoiYiIYXg6OwARETEmq82GrZi3XDd7mG74uIqWiIjclNQsK33XnOHH37OwFnPR\nSn026IaPq2iJiMhNmbU3g5XHs5xybM1piYjITdmeku20Y6unJSIiN+VoRq7DbRNguvFUVLFR0RIR\nkZtyJM2xaG1/ohrBfiVTTjQ8KCIiRZaRYyUly2q/bTZBdV9ziR1fRUtERIrsWL6hwbssZjwLWaZe\nnFS0RESkyI6mOxatYEvJ9bJARUtERG5CgaLlp6IlIiIu6mjGJYfbJbUAI4+KloiIFFn+nlaIeloi\nIuKqNKclIiKGUbCnpeFBERFxQTlWG39kOhatIPW0RETEFR3PyHXY1b2ajwdlPUvuHC1Q0RIRkSJy\n9nJ3UNESEZEiOpqeb7m7peS3r1XREhGRIjminpaIiBhF/kuSqGiJiIjLMsScVmxsLBEREQQHBxMa\nGkqPHj3YvXt3gXZJSUn07t2bkJAQqlevTnh4OImJiQ5tfv75Z7p27UpQUBA1atSgY8eOpKSk2B9P\nTU1lwIABhISEEBISwoABA0hNTS2GNEVE5HYZYk5r/fr19O3bl++++46vv/4aT09PunbtytmzZ+1t\nDh06RGRkJDVr1uTrr79m06ZNjBkzBovFYm/z008/8Ze//IU2bdrwww8/sHr1agYOHIin55Wk+/Xr\nx/bt21mwYAELFixg+/btPPfcc8WcsoiI3CyrzcZxFxgeLLRMxsXFOdyeOXMmISEhbN68maioKADG\njx9P+/btmTBhgr1drVq1HJ43evRo+vfvz7Bhw+z31alTx/7/ExMTWbFiBcuXL6dVq1YATJkyhaio\nKPbv30/dunVvPjsRkVJu6ZFMPk3M4HyOrfDGN3Axswxl95+67uO5Vsi+cu1HKnibKO9d8jNMN923\nS09Px2q14u/vD4DVamX58uUMGTKEbt26kZCQQEhICIMGDeKxxx4D4NSpU8THx/P444/z5z//maSk\nJOrWrcvIkSNp164dAPHx8fj5+XH//ffbjxUWFobFYmHLli0qWiIi+RxKu0TvVWccTvi9dWY4n13k\n1iW9u3uemz7qyJEjady4sb03dOrUKdLT04mNjWX06NGMGzeOtWvX0r9/fywWC5GRkRw6dAiASZMm\n8eabb9KkSRMWL17MY489xurVq2ncuDHJyclUrlwZk+nK2dUmk4kqVaqQnJx83Xj2799/sym4FKPH\nD8bPwejxg3JwBc6I//tTZqy2MiV+XIDqHpl3JOfCOig3VbRGjx7N5s2bWb58OWbz5bFMq/Vyf7FT\np04MHDgQgCZNmpCQkMDHH39MZGSkvc2zzz7LU089BUDTpk1Zt24d//3vf4mNjb25rK5i5B5YaRj2\nNHoORo8flIMrcFb8m2wZkFjyi9XKeZkYEVadulW9S/zYRS5ao0aNIi4ujiVLljjMV1WuXBlPT0/q\n16/v0L5evXr2+bBq1aoBFGhTv359jh07BkBAQAApKSnYbDZ7b8tms3H69GkCAgJuPjMRkVLuwiXH\nccEuNcvy/D1+t/Rax44do0aNGoW28zDBPRW9qOCE+SwoYtEaMWIEixYtYsmSJdSrV8/hMW9vb1q0\naFGgm5iUlERwcDAANWvWpHr16gXa/Pbbb9xzzz0AtGrVivT0dOLj4+3zWvHx8WRkZDjMc4mIyGWZ\n+YpW7XKePBh4a8OF+9Os1L3F55akQovWsGHDmDdvHrNnz8bf35+TJ08CYLFY8PO7XNEHDx7Ms88+\nS+vWrQkPD2fdunXExcUxZ84c4PLc1KBBg3jrrbdo1KgRTZo0YdGiRWzdupV33nkHuNzrevjhhxk6\ndChTp04FYOjQoURGRhp62EBE5E7JyFe0fL1Kdsd1Zyi0aM2aNQuAmJgYh/tHjBjBqFGjAOjcuTNT\np04lNjaWkSNHUrt2bWbMmEFkZKS9/QsvvEB2djZjxozhzJkzNGjQgAULFtC4cWOHYw0fPpxu3boB\nEBUVZS9qIiLiKH9Py9esolXkHSl69epFr169bthmyJAhDBky5LqP+/v789FHHxXpeCIi7i5/0fIp\n4WtbOYP2HhQRMaiMS1aH274qWiIi4qoKDA96lv6v9NKfoYhIKZV/ybt6WiIi4rLyFy3NaYmIiMvK\nzFVPS0REDOJCjoqWiIgYxIVcDQ+KiIhBqKclIiKGoTktERExBJvNVnD1oBts46SiJSJiQPl7WWXM\nYPZQ0RIRERdUcDeM0l+wQEVLRMSQCuyGYXaPr3P3yFJEpJQpULTc4FpaoKIlImJIBS5L4gaLMEBF\nS0TEkApctVhzWiIi4qq0EENERAzDHXd4BxUtERFDcsdraYGKloiIIWl4UEREDMMdd3gHFS0REUO6\nkGN1uK2eloiIuKyCO7y7x9e5e2QpIlLKZORoeFBERAwif0/LoqIlIiKuqsA2TipaIiLiqvJv46S9\nB0VExGXl72lZtMu7iIi4Ku3yLiIihqFd3kVExDC0jZOIiBjGhUuOO2Jo9aCIiLgs7fIuIiKGoW2c\nRETEEHKtNrJyr9w2AWXNTgunRKloiYgYTP7Lkvh6mjCZNDwoIiIu6IKbbpYLKloiIoaTfz5LRUtE\nRFxW/pWD7rLDO6hoiYgYTv6ipZ6WiIi4rAJFy032HQQVLRERwymww7t6WiIi4qrcdQsnUNESETEc\nzWndQGxsLBEREQQHBxMaGkqPHj3YvXt3gXZJSUn07t2bkJAQqlevTnh4OImJifbHo6Oj8ff3d/jv\nr3/9q8NrNG7cuECb119//fazFBEpRQquHnSf/odnYQ3Wr19P3759adGiBTabjYkTJ9K1a1e2bNlC\nxYoVATh06BCRkZH07NmTr7/+Gn9/f/bt24fFYnF4rV69ejF27Fj77bJlyxY43vDhw+nbt6/9dv7X\nEBFxdwUuAOlGPa1Ci1ZcXJzD7ZkzZxISEsLmzZuJiooCYPz48bRv354JEybY29WqVavAa/n6+lKt\nWrUbHq9cuXKFthERcWfuusM73MKcVnp6OlarFX9/fwCsVivLly+nfv36dOvWjdDQUCIiIgoUO4CF\nCxdSu3ZtwsLCGDNmDGlpaQXafPDBB/zpT3+iTZs2TJ48mezs7FtIS0Sk9HLnolVoTyu/kSNH0rhx\nY1q1agXAqVOnSE9PJzY2ltGjRzNu3DjWrl1L//79sVgsREZGAvDEE08QHBxMYGAge/fu5Y033mDX\nrl0sWrTI/trPPfccTZo0oVKlSmzbto3XX3+dw4cP88EHHxRTuiIixufOw4Om1NRUW+HNLhs9ejRx\ncXEsX77cPvz3xx9/cPfdd/P4448za9Yse9t+/fqRmprKggULrvlaP//8Mx06dGD16tU0a9bsmm0W\nLVrEs88+y4EDB6hUqdI12+zfv7+o4YuIlApv7vNmSfKVPseYOlnEBObe4BnGUbdu3Rs+XuSe1qhR\no4iLi2PJkiUO81WVK1fG09OT+vXrO7SvV6/eNYcI8zRv3hyz2cyBAweuW7RatmwJcMOiVViCrmz/\n/v2Gjh+Mn4PR4wfl4ApKOn7PY2eATPvtWkGB1K3te1uvaZT3oEhFa8SIESxatIglS5ZQr149h8e8\nvb1p0aJFgR5PUlISwcHB133NXbt2kZube8NFFzt27ADQwgwRkavkv56WO23jVGjRGjZsGPPmzWP2\n7Nn4+/tz8uRJ4PJSdD8/PwAGDx7Ms88+S+vWrQkPD2fdunXExcUxZ84cAA4ePMhXX31Fx44dqVSp\nEomJiYwZM4YmTZoQFhYGQHx8PFu3bqVt27aUL1+eX375hdGjRxMVFXXD4ici4m4u5DjuiGHxUtGy\ny5uniomJcbh/xIgRjBo1CoDOnTszdepUYmNjGTlyJLVr12bGjBn2RRheXl6sWbOGGTNmkJGRQVBQ\nEB07dmTkyJGYzZevEe3t7c2iRYt4++23yc7OJjg4mKeffpoXX3yxWBMWETG6AtfTUk/ritTU1CK9\nUK9evejVq9c1H6tRowZLly694fObNWvGihUrinQsERF3pm2cRETEMNx5Gyf3yVREpJRw5/O0VLRE\nRAwmf9HSjhgiInJNVpuNoRtTWXAgkwx78fCF9cedFpOKloiIXNO83zL5dN8FZ4dhZzaBlxuNmblR\nqiIit++7oxedHYKDOuU9MZncp6eloiUiUkQ2m40NJ7KcHYZdrXJm3mvt7+wwSpSGB0VEiijp/CVO\nXbyyG4XF08ShXtU5mJRE3bp1Sjwed+ph5VHREhEpoo0nHK/vd3+AN14eJkwm9ywgzqDhQRGRItpw\n0nFosHVgGSdF4r5UtEREiih/T6t1NW8nReK+VLRERIrgSPoljmVcudBiGTO0rKqiVdJUtEREiiB/\nL+veqt6UcaPd1V2FipaISBFszD+fVU3zWc6g1YMiYliLDl7g/R3pnM2yFt74Np3IzHW4/WCghgad\nQUVLRAzpVGYu/decJd/esSXC0wT3aT7LKTQ8KCKG9MvpHKcULIBWAd5Y3GnDPxeif3URMaSjGZec\nctwgXzMTW1VwyrFFw4MiYlBH0x3nmP52j4Xn7vG748cN8TPjod0vnEZFS0QMKX/RalTJi1rl9JVW\n2ml4UEQMKX/RCvZTwXIHKloiYkhH0h3ntEL8zE6KREqSipaIGE5Wro0TmVfOzTIBd/mqaLkDFS0R\nMZzjGY5Dg9V9PfDWlkpuQUVLRAznaL6hQc1nuQ8VLRExnCMFFmFoaNBdqGiJiOEczTc8GGxR0XIX\nKloiYjha7u6+VLRExHAKzmmpp+UuVLRExHA0p+W+VLRExFByrTZ+15yW21LREhFD+eNCrsMlSSqV\n8dBlQtyI3mkRMZT8Kwe1fZN7UdESEUMpuHJQRcudqGiJiKGoaLk3FS0RMZQCy90tOkfLnejdFpGb\n8mtKNvN/yyQ121p44yI6f96b8ifPFqnt6t+zHG6rp+VeVLREpMiOZ+TSedlp0nJshTe+KZ5w8sIt\nPVNFy71oeFBEimz+bxfuQMG6dSagprZwcisqWiJSZBtPZhXeqAQ9UdsH/zL6GnMn+okiIkWSa7Wx\n+WS2w31v3FueisVQNJJPniSgWrWbek51XzMRd5W57WOLsahoiUiR7DiTw/mrhgYrl/FgcCM/TKbb\nv2LwflMudetabvt1pPRTv1pEimRjvl7WA9W8i6VgidwMFS0RKZKNJxzns1oHamhOSp6KlogUymaz\nFehpta7m7aRoxJ0VWrRiY2OJiIggODiY0NBQevTowe7duwu0S0pKonfv3oSEhFC9enXCw8NJTEy0\nPx4dHY2/v7/Df3/9618dXiM1NZUBAwYQEhJCSEgIAwYMIDU1tRjSFJHbkXjuEmeyrpxMXN7LRONK\nXk6MSNxVoQsx1q9fT9++fWnRogU2m42JEyfStWtXtmzZQsWKFQE4dOgQkZGR9OzZk6+//hp/f3/2\n7duHxeI4sdqrVy/Gjh1rv122bFmHx/v168exY8dYsGABAIMHD+a5555j3rx5t52oiNy6jScce1lh\n1bwxe2g+S0peoUUrLi7O4fbMmTMJCQlh8+bNREVFATB+/Hjat2/PhAkT7O1q1apV4LV8fX2pdp1l\nrYmJiaxYsYLly5fTqlUrAKZMmUJUVBT79++nbt26RU5KxB2k5VhZdDCT3Uc9qZxx/o4ea9nRiw63\nW1fTfJY4x00veU9PT8dqteLv7w+A1Wpl+fLlDBkyhG7dupGQkEBISAiDBg3isccec3juwoULWbhw\nIQEBATz88MOMGDGCcuXKARAfH4+fnx/333+/vX1YWBgWi4UtW7aoaInk0/2HFDadzAa84UhaiR67\ndaDms8Q5brpojRw5ksaNG9t7Q6dOnSI9PZ3Y2FhGjx7NuHHjWLt2Lf3798disRAZGQnAE088QXBw\nMIGBgezdu5c33niDXbt2sWjRIgCSk5OpXLmywxJak8lElSpVSE5OLo5cRUqNI+mX/n/BKnk+ZhPN\nKqtoiXPcVNEaPXo0mzdvZvny5ZjNlzeptFovT8526tSJgQMHAtCkSRMSEhL4+OOP7UWrT58+9tdp\n2LAhtWrVokOHDiQkJNCsWbNbTmD//v23/FxXYPT4wfg5GDH+n1I9gLKFtrsTngjM5vCBpGJ/XSO+\nD1czevzgGjkUNqpW5KI1atQo4uLiWLJkicN8VeXKlfH09KR+/foO7evVq1dgPuxqzZs3x2w2c+DA\nAZo1a0ZAQAApKSnYbDZ7b8tms3H69GkCAgKu+zpGHjYsDXN1Rs/BqPHH788ArqysvaeiJ52Cfe74\ncZtV8aJjjbJ4m4t3EYZR34c8Ro8fjJNDkYrWiBEjWLRoEUuWLKFevXoOj3l7e9OiRYsCFTopKYng\n4ODrvuauXbvIzc21L8xo1aoV6enpxMfH2+e14uPjycjIcJjnEpGCV+/tWKMsY1qWd1I0IiWn0KI1\nbNgw5s2bx+zZs/H39+fkyZMAWCwW/Pz8gMtL05999llat25NeHg469atIy4ujjlz5gBw8OBBvvrq\nKzp27EilSpVITExkzJgxNGnShLCwMADq16/Pww8/zNChQ5k6dSoAQ4cOJTIy0hDVX6QkHc3QJefF\nPRVatGbNmgVATEyMw/0jRoxg1KhRAHTu3JmpU6cSGxvLyJEjqV27NjNmzLDPZ3l5ebFmzRpmzJhB\nRkYGQUFBdOzYkZEjR9rnxvKONXz4cLp16wZAVFQU77zzTvFkKlKKHEnTJefFPRX6SS/qjhS9evWi\nV69e13ysRo0aLF26tNDX8Pf356OPPirS8UTcmXpa4q6096CIwVhtNo6raImbUtESMZgTF6zkXNkG\nkAqeNvy89Kcs7kGfdBGDOZruOJ8VWMZ2nZYipY+KlojB5J/Pql7Wep2WIqWPipaIweQ/R6u6elri\nRlS0RAzmiIYHxY2paIkYjHpa4s5UtEQMpkDR0pyWuBEVLREDsdlsBRZiaHhQ3ImKloiBnMmycuHS\nlSJl8TRRQTs4iRtR0RIxkPxDg8F+ZkzFe5UQEZemoiViIEfyFa0Qbd8kbkZFS8RACm6Uq7FBcS/6\nxBvIJauN7Sk5ZFtdZ+L92HkPUk5mOTuMW2a0+H8+le1wO9iinpa4FxUtg/g9I5f2S5I5kelqy5vL\nwvbTzg7iNhg7/mA/M+QW3k6ktNDwoEFM/jXNBQuWOJsuSSLuRkXLINb+YZwhLCkZ5b1NNKrk5eww\nREqUhgcN4MSFXJLOX9lvzmyCe6t6OzGiKzIzM/Hx8XF2GLfMqPFXLuvBkMZ++Hrqd6e4FxUtA9iU\nb6FA8ypefBdd1UnRONq/fz9164Y4O4xbZvT4RdyNfqYZwMYTjivGWlcr46RIREScS0XLADbk62m1\nDnSNoUERkZKmouXizmZZ2X32ynyWCQgLUE9LRNyTipaLyz+f1bCSF/5l9LaJiHvSt5+L21BgPktD\ngyLivrR68CZk59pIySq+E3xPZZnwu3Dj7QzW5Ts/68FADQ2KiPtS0SqiuUkXGLkllXPZxbnvnw9s\nPXFTz1BPS0TcmYpWEWTkWBm+OZW0HOduVFuvgidVfbRtj4i4L81pFcHWU9lOL1gAnWuWdXYIIiJO\npZ5WEeRfDOHnacLP6/YvF3sp9xKe5sLfAk8PEw/dVYaXm5S77WOKiBiZilYRbMy37HzyA/70rON7\n2697eQuhurf9OiIi7kLDg4W4eMnGT/kuvKcdKUREnENFqxDbTmeTddWq9BoWMyG6xLmIiFOoaBVi\n40n1skREXIWKViE2nsh3cq92WBcRcRoVrRu4ZLWxJVk9LRERV6GidQPbU3LIuHTl/KyqZT2oU17z\nWSIizmL4b+Cqnx6/Y69tzXc+cetAb0ym2z8/S0REbo3hi1ZO8e1fWyjNZ4mIOJeGB4vIwwTtg1S0\nREScyfA9rZJQuYwHLzctR50KXs4ORUTErRm+aCU/fdcdP4anB3hoLktExOkMX7S8zSomIiLuQnNa\nIiJiGCpaIiJiGCpaIiJiGCpaIiJiGKbU1FTnX0deRESkCNTTEhERw1DREhERw1DREhERw1DREhER\nw1DRklLLZjP2GiOjxy9yJ6hoFbNLly6RnJxsv23EL56LFy8yadIkvvjiC2eHcssuXbrEuXPnnB3G\nLTN6/ACZmZmMHz+elStXOjuUW5aVlcX69es5cOCAs0O5JXnfP5cuXXJyJMVHRasYffjhh7Rr147e\nvXvz9NNPs2fPHkwmE1ZrCV706zZ98skn1KtXjw0bNmC1WsnMzHR2SDftww8/pG3btjz11FOMHj2a\nffv2OTukmzJt2jQ6duzIk08+ycCBA9m/fz+AoT5H77//PiEhIWzatImGDRs6O5xbMn36dBo3bsyI\nESMIDw9n6tSpZGRkODusIpsxYwbt2rUDwNPT05A/oK9F52kVg19//ZVhw4aRkpLCqFGjOH36NEuW\nLKFs2bLExcU5O7wiS0hI4JVXXuGZZ56hd+/ezg7npmVnZzNs2DA2bNjAa6+9xu+//86qVatITEzk\nm2++oWbNms4O8YZ+++03XnrpJY4dO8Yrr7zCwYMHWbVqFTabjRUrVjg7vCLZunUrf/vb38jIyOC9\n996jU6dOzg7plkyYMIFFixYxYcIEGjZsyFdffcXkyZPZsWMHlStXdnZ4N3T8+HHGjx/P6tWrOXHi\nBMOGDePVV18lNzcXs9ns7PBum+F3eXcFa9asoW7dusyfPx9/f38A/vjjDw4fPmz/oNhsNkwuenmT\nvNi++eYbfH196d27N0ePHuWrr76iVq1ahIaG0qxZM2eHWagDBw6wdetW3n//fdq0aQPAY489RlhY\nGJMnT2bUqFHcddedv5TNrbBarSxbtgxvb2+WLFlij7NVq1a88sorbN++nSZNmjg5ysItW7aMQ4cO\n8b///Y82bdrwxx9/8Msvv1CzZk2qVatGlSpVXPpvAeDMmTP8+OOP9O7dm8jISACefPJJ5syZQ3Z2\nNoBL55CYmEhGRgZvv/02v/32GxMmTKB///4EBASUisKl4cFi8OSTT/Lyyy/bCxbA3r17qVOnjn1o\nx1U/4IB9CHPnzp1ERkayYsUK2rZty/r165k8eTJRUVEsWLDA/gfrqs6fP8/hw4cJCgqy33fx4kV7\nj3fTpk1OjO7GbDYboaGh9O/fn7vuuss+FOjl5UV6errL/7rPi3f48OE0aNCA+fPn89JLL/Hwww8z\nefJkoqOj6dGjBykpKS79twDg6+vL7t278fb2tt83ZswYAgICWLx4McePH3didNeXN/wXHh7O3//+\ndx599FG6d+/O3XffzdChQwHX/h4qKvPIkSNfd3YQRjJ37ly++OILTp06RbVq1bBYLFgsFipVqgTA\n0qVLiYqKIiMjg5MnT/LZZ5+xa9culxomuTqHwMBALBYLJpOJdevWsWzZMnJycnjmmWcYN24cAwYM\n4NChQ3z77bc0atSIGjVqODt84Nrvw4kTJ/j11185deoU7du3By7P0YWEhHDp0iUSExPp0aMHVqvV\n6X+8P/zwA1WqVKFs2bIAeHh4EBoaSp06dextTCYTO3bsID4+nr59+9rbuoqrczCZTOTm5uLt7Y2X\nlxfvvvsu5cqVY9y4cfTp04f27duzfPly1qxZQ0xMDJ6erjHIk/99yMshKyuL999/n/j4eF566SVy\nc3O5//77WbhwId9++y1VqlShXr16To4eFi9ezPfff09KSgpVq1bFx8cHDw8P+9+pr68vFStW5L33\n3iM8PNz+t+DhYdz+iua0iig5OZn+/fuzf/9+mjdvTkJCAhaLhenTp3Pvvffa282ZMwdvb2+6dOnC\nxYsX2bFjB48++ijLly/n/vvvd+qwwvVymDZtGvfddx+LFy/mlVdeITs7m++++4769esDkJqaSsuW\nLXnjjTfo3bu3y+Xg4+PDrFmzaNq0KdOmTWPixIk0a9aMQ4cOkZmZycKFC0lJSaFPnz7s2LHD/gPD\nGfbt28dLL73Ehg0bGDx4MG+88cY12+X9G48ZM4bjx4/z3//+F6vV6hJfNtfL4erPxTvvvENERAT3\n3Xef/Xlbt26lY8eOrF69mqZNmzol9jxFeR+OHDlCbGwsaWlpfPTRR/Zh/oceeoiHHnqIsWPHOm2o\nLSEhgYEDB5KRkUHNmjXZuXMnjRo14n//+5+9Td77kZKSwqBBgzh06BAbN250SrzFyfl/AQaxadMm\nTpw4werVq5k9ezZbt27Fx8eHd999l23bttnb9erViyeeeIKyZcvi7+9PnTp1qFKlCj///DPg3O75\n9XJ455132LVrFw8++CAtWrQAoGLFigDk5OTg7+9PYGAge/fudckcLBYLEyZMYNeuXQwcOJB58+bR\nsWNHhg8fzt69e2nRogVpaWnUqFGD3Nxcp8V++PBhpkyZQtWqVXnxxReZNWsWSUlJ12yb92+8cuVK\nwsPDgcu9sUOHDrlsDnm9LYBBgwY5FCyA8uXLU6FCBXbv3l3icV+tsPchb5itUqVK/Pzzz/To0QOz\n2czFixcxmUxUrFiRXbt2Oa1g/fLLL7zyyiu0a9eOtWvXMnv2bObOncu6dev47rvv7DnkfYYqV67M\nCy+8wMGDB/n0008B2Lx5M7///rtT4r9dKlpFYLPZ2LhxI5UqVcLPzw+43O1+6623OHHiBPPmzXOY\noL1afHw8d911F9HR0SUe99VulMPJkyf5/PPPqVSpEv369cPDw4M333yT8+fP4+Xlxc6dOzGbzXTt\n2tVlc0hOTubzzz8nKyuLtm09ggzfAAATk0lEQVTbMnjwYPr06UOZMmUA2LZtGzVq1HCYdyxpVatW\npXHjxrzwwgu89NJLNGjQgHHjxl2zrc1mY/fu3aSkpPDwww9z9uxZBg4cSPPmzfnll19KOPIrCssh\n74vcx8enwHO3bt1KcHAwHTp0KLF4r6WwHPK+7MuWLUtaWhoJCQn220lJSWRkZPCXv/zFKbHD5c9G\nQEAA/fv3p1y5cvj5+VG3bl2aN29uP70j/w/L5s2b069fP1577TWeeuopoqKi7D9CjcY1BpZdWN4v\nFl9fX06fPo2vr699Bc4DDzxAREQEGzZsYNOmTbRr1w6TyURqaipZWVl8+eWXfPTRR/Tu3Zu77rrL\nacNqheXQvn171q5dy5YtW3j44YeZMmUKAwcO5JdffqFx48b88MMPPPLII9x9990lHntRc8h7HzZv\n3ky7du3w8PDg6NGjAMyfP5+4uDgmTZqEl5eX0+L39fWlX79+9gn+kSNH0qNHD1atWmWfg8tjMpnY\nt28fQUFBzJ8/n6lTp9KoUSM2b95sH7YtaTebA8DJkyfJzs5m0aJFzJgxg759+1K5cmWn/i0UlkNe\nbDabjb59+zJ27Fj27t1L1apViYuLIywszKk/Qu+++26mT59OhQoV7Pf5+/tz4sQJ6tate83nZGdn\nc+rUKdLS0sjOzmbLli0uMSd3K9TT+v8KO/EuJibGft6M2WwmKysLgD59+vDHH3/YhxeSkpL49NNP\niYmJ4bPPPuO9995j1KhReHl53fE/0tvJITk5mV27dtnbffnll/Tp0wdfX1/+9a9/MWPGDCwWyx2N\n/3ZzuPp9gMvDKNHR0cyZM4epU6cSExNzR2OH68ef9957e3vb20RERBATE8Nrr712zR0Lvv/+exIS\nEvjiiy/48MMPWbp0aYkUrOLKITk5mXnz5tGlSxc+++wzYmNjefnllzGbzU77WyhKDnltvLy8GDRo\nEOPHj6d8+fIcP36c6dOn8/nnn9/xHvuN/g58fHyoUKGCQ5vt27djs9lo2LBhgZPQjx07xjPPPMOq\nVauYP38+8+bNM2zBAi3EAC7P21itVvtQ0rWcOXOGwYMHk5SUxObNmwHsv/Qff/xxypcvz3/+8x8u\nXrxIfHw8Z8+eLZEvyTzFmYOzFHcOVquVFStW0LFjR5eJP79du3bRsWNHXn/9dfr374/NZiM9PZ1y\n5coxe/ZscnNzeeaZZ+5g1I6KK4fMzEx8fX359ddfOXLkCF26dLmDUTsqrhzS0tIoX778HYz02m4m\n/rxe4UcffcTs2bNZuXKlfTTh6nNE165da98dw+jcfsn75MmTef311/nuu+84c+YMNWvWxGKxFFgW\n7ePjQ+XKlfnss8/Izs6mTZs2eHh4kJWVxdy5c6lfvz4RERF4enpSs2ZNGjRoYNgcnKG4c8j7gw0N\nDXWp+PMLCAggMzOTGTNm0Lp1a8aOHUtiYiJhYWE0b968RE/qLs4c9uzZw7333ktwcHCJDmcWZw77\n9u2jZcuWDudruVr8eStKp06dSv369YmKiiI9PZ2RI0eSnJxMw4YNMZvN1KpVq8RyuNPctqd17tw5\nnn/+eQ4cOMCIESP46aef+OmnnzCbzSxbtuyaz8nOzubzzz9n2LBhPP/88/bJzClTpjjs86Uc3CeH\nW4k/v8TERFq3bo3VaqVevXp89tlnJfpFrxwuc2YOtxN/Tk4ODz30EJMmTeLYsWO8+uqrVKxYkS+/\n/NLQw4DX47Y9rS1btrBw4ULmzp1L69at6dChAzVr1mTy5MmULVuW5s2bFzgB0mw206JFCywWC2vX\nrmXx4sWsX7+eSZMm2bd7UQ7ulcOtxJ8nb9imV69eVKhQgY8//pi33nqLKlWqKAc3y+F24l+zZg3T\npk3j22+/ZeXKlbzzzjv885//dPldVG6V2y3EyJukPHbsGOfOnbOfjwRXlutOmzbtmjuD5z130KBB\nLF++nM8//5ydO3eW6NzV1XEoB+flcDvx58nNzWXbtm306dPHvoVWSVIOlzkzh+KI39PTE19fX4YO\nHcrhw4fp3r37nQ3aydyip7Vs2TL27NmDh4cH5cuXx2w2s3PnTpKSkvD29rbPG3zyySe0bNmSw4cP\nc+7cOSIjIx3GkvP+N+++kvwlphycn0NxxQ+Xf92bzWbuv/9+2rZtWyLxKwfXyKE444fLGwG8+OKL\n9pPQS7tSfZ7Wxo0befHFF+1vck5ODj179mTEiBFER0ezefNmxo4dyw8//MDPP/+M2Wzmyy+/pFKl\nSsydO5esrKxrruApya10lIPzc7gT8ee9lnJwnxzu1N+BM1Y4OlOp7WktXbqUV199lUcffZTp06cT\nHR2NzWYjLi6O8PBwgoKCaNmyJU2bNuX8+fPExMQwffp0qlevzpo1azhz5gxPPfWUU7csUg7Oz8Ho\n8SsH18jB6PG7klLZ08rJyeH48eM89NBDDBw4ED8/P8qVK0dYWBgLFiwgJycHuLzMtUuXLvZzSGw2\nG1lZWezZs4datWo59QOiHJyfg9HjVw6ukYPR43c1pbJoeXl50aZNG3r27Em5cuXs99euXZu0tDT7\nvnVX+/333/Hw8GDWrFkkJCQwY8aMkgy5AOXg/ByMHj8oB1fIwejxu5pSWbQA+z55V+9xtmrVKgIC\nAggJCXG4gmdubi4rV67krbfewtfXlw8//JAHHnjAabHnUQ7Oz8Ho8YNycIUcjB6/KzFs0crJycHT\n0/OaXea8D0De2eJ5H5QNGzYQFhZWYNLVbDbzyCOPUKVKFaKiokoqBeXgAjkYPX5QDq6Qg9HjNxJD\nnqf19ttv07t3b55//nk2btxo36gzb2w47xdL3ochb2PJ3bt38+CDDwKXL2w4cOBAjhw5AkBgYGCJ\nfkCUg/NzMHr8ysE1cjB6/EZjqKKVkJBAWFgY3377LW3atGHPnj2MGDHCvjt53kaRcXFxNGrUiKVL\nlwKXPyx79uwhMzOTVq1a8dFHH9G0aVM2bdpk31BSObhPDkaPXzm4Rg5Gj9+oDDU8+NVXXxEaGsrs\n2bMxmUz06tWL0NBQLl68CEBKSgoDBgxg+/btDB06lEceecT+3OXLl3P06FE6duzIxYsX+ec//1ni\nu0AoB9fIwejxKwfXyMHo8RuVYYpWSkoKP/74I507d7aPG588eZLIyEiqVq0KgJ+fH506dWLatGkE\nBgY6PP/cuXP4+Pjw/PPPM2jQoBKPH5QDOD8Ho8cPygGcn4PR4zcyl93lfdOmTdSoUYPg4GD7fT16\n9ODQoUP06dOHjIwM3nvvPapVq8b58+fp0qULf/3rX2natOk1X2/Hjh3UqVPnmpcBv1OUQ0ElnYPR\n4wflcC36HLkvl9sRY82aNcTExPD111/z3//+l507dxIUFET16tV58MEHyc7OZvfu3SxcuJCpU6fy\n6quv0qhRI7777jsOHz5Mx44dr7klS7Vq1UrsUuvKwfk5GD1+5eAaORg9/tLIpYrW8ePHefnll+nU\nqRPvvPMOLVq0YMGCBWzdupX77ruPmjVr0qZNG7Zs2cKf/vQnhgwZgsVioX79+vz0008cPHiQmJiY\nEr1om3JwvRyMHr9ycI0cjB5/aeVSqwf37dvHr7/+Ss+ePQkJCaFTp0688cYb5OTkMHHiRODyctH1\n69fTpEkT+224fC5EuXLlrnl2eUlSDs7Pwejxg3JwhRyMHn9p5VJF6+zZs4SGhtrPcwBo3749MTEx\nxMfH88MPP2AymWjZsiXvvvsuS5Ys4bfffmP8+PGsWLGCnj17OjH6y5SD83MwevygHFwhB6PHX1q5\n1PAgwJQpU2jdujUNGjQAsF9zZufOnRw+fJjo6GjCwsL4/vvvWbx4MQsXLuTo0aNMmzaNDh06ODn6\ny5SD83MwevygHFwhB6PHXxq53OrB7t27k5aWxty5c/H397ffP2zYMA4cOMDnn3+OxWIhLS2NlJQU\nUlJSaNmypRMjLkg5OJ/R4wfl4AqMHn9p5FLDgwBjx45l69atzJs3z36SHlzetn/fvn32i6CVK1eO\nWrVqueQHRDk4n9HjB+XgCowef2nkcsODAQEBZGdnM2PGDMqXL0+9evW4ePEiM2fOJCIigoiICGeH\nWCjl4HxGjx+UgyswevylkcsND+Z55ZVXWLx4MUFBQZw+fRpfX18++eQT+xb/RqAcnM/o8YNycAVG\nj780cdmilZWVxd69e9mxYwfe3t50797d2SHdNOXgfEaPH5SDKzB6/KWJyxYtERGR/FxuIYaIiMj1\nqGiJiIhhqGiJiIhhqGiJiIhhqGiJiIhhqGiJiIhhqGiJiIhhqGiJXCU6Opro6GhnhyEi16GiJW5p\ny5YtTJo0idTUVGeHclNmzZrFnDlznB2GiNNoRwxxSx988AGvvfYav/76KzVr1rTfn52dDeCyl0h/\n4IEHqFSpEt9++62zQxFxCk9nByDiSly1WInIZRoeFLczadIkXnvtNQCaNm2Kv78//v7+rFu3rsCc\n1uHDh/H392fKlCnMmjWLpk2bUr16dWJiYjhy5Ag2m4333nuPhg0bEhgYSM+ePUlJSSlwzFWrVtGp\nUyeCgoIICgqiW7dubN++3aFNcnIygwYNomHDhgQEBFC3bl0ef/xx9uzZA0Djxo3Zs2cPGzZssMfc\nuHFj4HIPceLEiURERFCzZk0CAwNp374933zzTYFY/P39GTp0KIsXLyYsLIzAwEA6dOhgj+fTTz+l\nRYsWVKtWjU6dOnHo0CGH50dHR3PfffexY8cOoqKiqF69Oo0aNeKDDz649TdFpIg0PChuZ+fOnUyd\nOpUFCxYwceJEKleuDEBERATPPvssgH347fDhwzRt2pRGjRqRnZ3N008/TWpqKv/85z9p1KgRHTp0\nYPXq1Tz++OMcPHiQmTNn0r17d2bOnGk/3vz58xkwYAARERFERkaSnZ3NJ598wsmTJ1m1ahX16tUD\nICoqil27djFgwABCQkJISUlhw4YNPPPMM3Tp0oVvvvmGESNGYLFYePnllwGwWCx07tyZlJQUHnjg\nAR577DHq1KnDxYsXWbBgAQkJCcyfP59HHnnEHo+/vz/33HMP586do1+/fphMJmJjY/Hz82PYsGHM\nnDmTp556inPnzvH+++/TsmVLli1bZn9+dHQ0SUlJ2Gw2OnfuTIMGDVi6dCmrV6/m9ddfZ8iQIXf2\nDRS3pqIlbul6c1p5vaz8RatSpUps27bNfsn1N998k9jYWO6++27Wrl2Ll5cXAP369WPx4sUcOXIE\nHx8fMjIyaNiwIdHR0UybNs1+nNTUVO69914eeughZs2aRWpqKrVq1eIf//gHgwYNum7c15vTys3N\n5dKlS/Yr6cLl3le7du0ICAhg8eLF9vv9/f3x8vIiPj6eP/3pTwB88sknDBkyhCpVqvDzzz9ToUIF\nhzy3bdtG7dq17f9GGzZsYOzYsbz00kv248fExLBt2zb27Nljf75IcdPwoEgRPProo/aCBdgvq969\ne3d7wcq7Pycnh+PHjwPw448/kpqayhNPPEFKSor9v9zcXB544AHWrVsHgI+PD97e3qxfv56zZ8/e\ndHxms9lesLKzszl79ixpaWm0bt2ahISEAu3btm1rL1hX59OlSxeHgpN3f/4hQg8PD/r16+dw/P79\n+3PhwgV7TiJ3ghZiiBRBjRo1HG6XL18egKCgoGven7eU/rfffgOga9eu13xdD4/LvxvLlCnD66+/\nzmuvvUbdunW59957eeSRR+jRo0eBY1/PZ599xvTp00lMTMRmuzKAYjKZii2fPAEBAfbH8oSGhgJw\n5MiRIsUrcitUtESKwGw239T9eUXDarUCMH36dO66664bHuOFF16gU6dO9vmhd999l9jYWL788kva\ntm17w+d+9dVXDB48mD//+c+8+OKLVK1aFU9PT+bMmcP8+fOLLR8RZ1PRErmD8obgqlSpwkMPPVRo\n+1q1avHCCy/wwgsvcPz4cdq2bct7771nL1rX6jUB/O9//6NWrVrMnTvXoc2dOhE5OTmZ8+fPO/S2\n8nqVISEhd+SYIqA5LXFTFosFKDjsVdzat29PhQoViI2NtZ+4fLXTp08DcOHCBTIzMx0eCwoKomrV\nqpw7d85+n6+v7zVjzushXd0jOnTo0DWXvBcHq9XKrFmzHG5//PHH+Pj4FNorFLkd6mmJW2revDlw\neXXc448/jre3N+Hh4cV+nPLlyzNlyhT69+9PeHg43bp1IyAggKNHj7Jy5UoaNGjAv/71L5KSknj0\n0Ufp2rUrDRo0oEyZMnz//fckJibyj3/8wyHuWbNm8dZbb1GnTh0sFgtRUVFERUWxZMkSnnzySaKi\novj999/597//TZ06ddixY0ex51WtWjVmzJjBsWPHuPvuu/n2229Zv349Y8eO1cpBuaNUtMQtNW/e\nnHHjxvHvf/+bv//971itVpYsWXJHjvXYY48RGBhIbGwsH374IVlZWQQGBnL//ffbzwurUaMGTzzx\nBGvXrmXBggWYTCZCQ0P54IMPeOqpp+yvNXz4cI4dO8b06dM5f/48wcHBREVF8X//93+cPn2af//7\n36xevZratWszceJEDhw4cEeKVvny5fnPf/7D8OHD+eKLL6hcuTJvvPEGL774YrEfS+RqOk9LRG5K\ndHQ0ycnJbN261dmhiBvSnJaIiBiGipaIiBiGipaIiBiG5rRERMQw1NMSERHDUNESERHDUNESERHD\nUNESERHDUNESERHDUNESERHD+H8EhC5qC2Gu2AAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "GGNXjTYD8pUa", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "87657bad-794a-47a1-aadd-5bc7ba75e010" + }, + "source": [ + "lastday_filtered['category'].value_counts()" + ], + "execution_count": 26, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "IMDb users 140\n", + "Name: category, dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 26 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "C-GYiiSx8uoj", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 187 + }, + "outputId": "283fd113-0566-4a5e-a964-d78c255cd4f8" + }, + "source": [ + "pct_columns = [f'{i}_pct' for i in range (1,11)]\n", + "pct_columns" + ], + "execution_count": 27, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "['1_pct',\n", + " '2_pct',\n", + " '3_pct',\n", + " '4_pct',\n", + " '5_pct',\n", + " '6_pct',\n", + " '7_pct',\n", + " '8_pct',\n", + " '9_pct',\n", + " '10_pct']" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 27 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "jjNjCRKt9FVp", + "colab_type": "code", + "colab": {} + }, + "source": [ + "final = lastday_filtered.tail(1)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "oPBqAmfL9GPa", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 148 + }, + "outputId": "4d1ba593-7703-4a56-ad1b-dce29166c6c2" + }, + "source": [ + "final" + ], + "execution_count": 29, + "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", + "
respondentscategorylinkaveragemeanmedian1_votes2_votes3_votes4_votes5_votes6_votes7_votes8_votes9_votes10_votes1_pct2_pct3_pct4_pct5_pct6_pct7_pct8_pct9_pct10_pct
timestamp
2017-08-29 23:10:06.2182512662IMDb usershttp://www.imdb.com/title/tt6322922/ratings5.45.6710216938255511015414714689738.42.61.40.92.14.15.85.55.533.7
\n", + "
" + ], + "text/plain": [ + " respondents category ... 9_pct 10_pct\n", + "timestamp ... \n", + "2017-08-29 23:10:06.218251 2662 IMDb users ... 5.5 33.7\n", + "\n", + "[1 rows x 26 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 29 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "0Lg0zWxM9ImR", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 359 + }, + "outputId": "45983361-20ed-4cf2-c802-f4dfbb6a472b" + }, + "source": [ + "final[pct_columns].T" + ], + "execution_count": 30, + "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", + "
timestamp2017-08-29 23:10:06.218251
1_pct38.4
2_pct2.6
3_pct1.4
4_pct0.9
5_pct2.1
6_pct4.1
7_pct5.8
8_pct5.5
9_pct5.5
10_pct33.7
\n", + "
" + ], + "text/plain": [ + "timestamp 2017-08-29 23:10:06.218251\n", + "1_pct 38.4\n", + "2_pct 2.6\n", + "3_pct 1.4\n", + "4_pct 0.9\n", + "5_pct 2.1\n", + "6_pct 4.1\n", + "7_pct 5.8\n", + "8_pct 5.5\n", + "9_pct 5.5\n", + "10_pct 33.7" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 30 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "D0704jg59UPR", + "colab_type": "code", + "colab": {} + }, + "source": [ + "plot_data = final[pct_columns].T\n", + "plot_data.index = range(1, 11)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "3CjKetL69V0s", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 359 + }, + "outputId": "ac3cb4ac-ece4-4a16-9305-ee77d2eaa735" + }, + "source": [ + "plot_data" + ], + "execution_count": 32, + "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", + "
timestamp2017-08-29 23:10:06.218251
138.4
22.6
31.4
40.9
52.1
64.1
75.8
85.5
95.5
1033.7
\n", + "
" + ], + "text/plain": [ + "timestamp 2017-08-29 23:10:06.218251\n", + "1 38.4\n", + "2 2.6\n", + "3 1.4\n", + "4 0.9\n", + "5 2.1\n", + "6 4.1\n", + "7 5.8\n", + "8 5.5\n", + "9 5.5\n", + "10 33.7" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 32 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "dIqbLnQI9a65", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 355 + }, + "outputId": "b12afc6b-6f59-4bfb-d9ec-565d7f19e4f0" + }, + "source": [ + "display(example)" + ], + "execution_count": 33, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "U1J5Er729dnZ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 336 + }, + "outputId": "047d0546-5859-42d7-cac2-e74d8c20e9cf" + }, + "source": [ + "plt.style.use('fivethirtyeight')\n", + "\n", + "ax= plot_data.plot.bar(color='#ed713a', width=0.9)\n", + "\n", + "plt.xlabel('Rating', fontsize=10, fontweight='bold')\n", + "plt.ylabel('Percent of total votes', fontsize=10, fontweight='bold')\n", + "plt.title('`An Inconvenient Sequel: Truth to Power` is divisive', \n", + " fontsize=12, \n", + " x=-0.1, y=1.1, loc='left',\n", + " fontweight='bold')\n", + "plt.text(x=-1.7, y=plot_data.max() + 4, s='IMDB ratings for the film as of Aug. 29')\n", + "plt.xticks(rotation=0, color='#a7a7a7')\n", + "plt.yticks(range(0, 50, 10), labels=[f'{i}' if i!=40 else f'{i}%' for i in range(0, 50, 10)], color='#a7a7a7');\n", + "legend = ax.legend()\n", + "legend.remove()" + ], + "execution_count": 35, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n/ffluuC5W15eHjY2NnTv3p1x48axc+dOxo4de99t9eehiRMn8s033/Djjz+WWraZmRl9+/YFYO3a\nteTn5yvHp1+/fhWOR58c165dC/yTNPUXzvPnzwcKv08ODg6EhoYCVPiYmZJK7WMrif6L8/jjj2Nm\nZsaTTz7JqlWrWL9+PZ999hnW1tbKtvqmSicnJwClWaQs7i3j9u3bQGFzCBQ2e9jZ2SnbW1paKk2e\n9erVw97eHoDAwECAIk2FpZVvZmZGv379mDlzJuvXr1euyPRfSP0+YmNjiw2eSUxMLHUfJR0HfZlH\njhzhyJEjxcoMCQkpc5klCQ0N5ciRIxw9epR9+/axcuVKTp06xfvvv8+QIUOUWFJTU/n222+LxaKv\n2Xl6eirH39/f3+B+725S0+/jfhcc9x5DPUtLS+VvWVEqlYpWrVqVuk1Zm4RK+j49iCtXrnDnzh0A\nZaCC/rNevHiR/Px8zM3NS3z/8OHDsba2xt3dnU6dOtG4cWPgn+OsL8vV1RW1Ws3169c5f/487du3\nx8/Pj4SEBNavX09BQQGvvfYaY8eOVZKVPvnpy7pw4cJ9vxd30190VdTs2bOZPHkyQ4cOBQovDL74\n4gt69epVbNu0tDTgn+/ig3wnBw4cyOzZs1m3bh0tWrTg+vXrdO3albp161Y4nkcffRQ3Nzf27NlD\nUlIS27dvR61W8/jjjwP/HE99y5Beamoqd+7cwcbGxmD8pq7Ka2yZmZn88ccfwD99DEOGDAHg5s2b\n/P7770W21/8IVSpVufdZUhk+Pj5AYfNdTk6O8rxWq8Xb2xsoPBlkZ2cDKDWe+vXrP3CM+qut1atX\ns2XLFmrVqqX0F+n38eSTT5KZman8i42NVY7Jg+zjbvoyX3nllSJl/vXXX8oPQc/CwuK+Zer3ZahP\nZv/+/Wi1Wpo3b86YMWOYN28eADk5OeTn5yuxNG3alIyMDCWWc+fO8eabb+Lh4QEU/gD1x/js2bNF\n9qG/qMjKygIgPT2dy5cvF/u8VlZWJCQkKPu4evUqS5cuvW/ceXl5xMXFERcX90D9TqUxMzNTjiOg\nJGh9vLm5uUrz1N3vgZKPb0l/l/vtGyjSxFy3bl3lRBYXFwf8872tV69eqUkNUJox9X3LevrjrC/r\n2rVrSv+k/jV94pozZw7e3t706tULlUqlNIHqX9dv36JFiyLf0XPnzhWrtVhZWZUa74Pq1q0bx44d\nIyEhgUWLFnH9+vUSuzX030v9d/He7+T9BAcH07RpU2JiYpSWm5KaIcsaj77rIj8/n1deeYU7d+7Q\np08fpQKgP56rV68u9puXpFaoymts69evR6PRUKtWLaVjFQprLQkJCaxcubJSh66X5rHHHlOuMtu3\nb09UVBRxcXG8+uqrdO/enRYtWnDkyBG6d+9OcHAwa9asQaVSFWs6Kk1gYCDNmjVTBqQ899xz2Nra\nAtC3b1+++OILfv31V/r06YO3tzdJSUns3buX//u//1MSb1kMHTqUn376ifnz55OcnEydOnWIi4vj\n4MGDxfovSqLvqD9+/DgTJkwgPDxcubK826RJk0hLS6Nly5bKFSUU9qNYWFjw2GOP4ePjw19//UW3\nbt1o1KgRFy5cYM+ePaxevZo2bdrQoEEDzp07pwx2uXcEXuPGjVGpVJw8eZI333yTY8eOodVqlddd\nXFzo3bs369ato3PnznTq1In09HT279/PsGHDlEExd0tNTSUiIgKAc+fOKTXHyhAYGIiNjQ3Xrl1j\n9OjRpKamKp3+el5eXkBhU+3EiRNp3759uUaRurm5YWFhgVar5aWXXsLb25vJkyczbNgw5s2bx4sv\nvsijjz6qHNO7B/WU1fDhw9m5cyefffYZCQkJHDt2jPz8fB577DEaNGgAFP7dFy9eTFxcHP369UOt\nVhMUFKS0VOh/7926daN+/focOXKExx9/nJCQEOV7sXbtWtq0aVPuOEsSFRWlNPnrazj6GvG9+vbt\ny969e/nss884e/bsA98QPmDAAP766y/279+v9I1VRjz6sufMmcP+/fuVx3ojRozg7bffZvjw4Tz5\n5JNotVr++usvPDw8lLEM/3ZVXmPTjwp64YUXWL58ufJv9uzZAPz555/FTgRVxc7Ojg0bNtC/f39y\ncnJYsWIF165dw8PDAzMzM1asWMHgwYO5du0amzdvJjw8nBUrVpT5h6dveoSiX0gPDw82b95Mt27d\nOHnyJKtXryYtLY3hw4eX+96ksLAw1q9fT2RkJPv27WPt2rVkZWUxfvz4By4jKiqKvn37Ym5uzvff\nf1/icO/nn38ePz8/Dh48yOLFi7l58yYDBgxQmpfs7e3ZuHEjzz77LBcuXGDFihXEx8fTr18/AgIC\nsLCwYPny5TRv3pwzZ86QnZ3Niy++WGQf/v7+fPjhhzg7O7NlyxY6deqkJAa9r7/+mnHjxmFmZsby\n5cs5dOgQLVu2pEuXLmU8ehWnVqv54osvcHd3588//1QubO7Wu3dvHn30UW7dusXChQvvO2jqQdja\n2jJ58mRcXFxYs2YN33//PVBY65o0aRI2Njb88ssv1KlTh6lTp/Laa6+V+3M98cQTLFq0iMDAQDZs\n2EBWVhYvvfRSkeZffY0MUJpn9f+7uLgQHBwMgKOjI5s2baJPnz4kJyezYsUKzp49S//+/fHz8yt3\njKXp2LEjcXFxLFu2jEOHDtGuXTvlnHOv559/nnHjxmFnZ8eOHTtK7Pu6V9++fZVbEnr16lVqbaks\n8UDhBZ5+dLKfn59yYQYwcuRIZs2aRf369Vm/fj1//vknrq6uxVp9/s1UsoK2MKZp06YxY8YMevTo\nwfLly40djhDCBMgkyEIIIUyKJDYhhBAmRZoihRBCmBSpsQkhhDApktiEEEKYFElslWDatGlVci9O\nWV2+fJnevXvj6elZqfdqleaJJ55g4sSJlV5uQUEBY8eOpWHDhsoEyKNHj6Z///7KNvc+fthNmzaN\ngIAA1Go1y5YtM3Y4Qjy0Kj2x3XuymTZtGmq1utjErwDff/89arW6SFK4e20sZ2dnvL296dixI1Om\nTOHq1atF3q8vW//P29ubJ598ksOHD1f2xwL+mSX+2LFjRZ4fM2ZMiTOHV6evv/6aS5cuER0dXSnr\n3d0tOjpamVKpOmzbto1ly5axcuVKYmNjadWqFdOnT1fmyTM1MTExzJgxg5kzZxIbG0ufPn1K3f6t\nt97C2dlZmU3fWH766Se6d++Oj4+P8vvT31Ssl5WVpazj5+7uTteuXZUJDISoCtVSY3Nzc+PAgQPK\nXI16S5YsKXbzLRTeSB0bG0tMTAzbt29n9OjR/Pbbb7Rp06bYCTsgIECZe3Hr1q24ubnx7LPPKvPn\nPQitVltsJvyycHBwwNnZudzvryyJiYk0adIEPz8/3NzcylVGRY9FZUlMTMTNzY1WrVrh5uaGlZUV\nTk5O1VYTrW76OROffPJJ3NzclNlq7kej0fDzzz8zbtw4ZQJqY9mzZw+9e/dm48aNbN++nYCAAJ55\n5pki04q9/vrr7Nixg3nz5rFv3z46depEr169SE1NNWLkwpRVS2JzdnZWZsTX+/vvv4mPj7/vdFoq\nlQo3Nzfc3d0JCAigf//+bNu2DScnJ8aNG1dkWwsLC9zc3HBzcyMkJIQJEyZw48aNYkn0bvqmw2XL\nltG0aVPq1q3L7du3+fPPP5WrzwYNGtCnT58iibRJkyYAdOrUqciaYfc2ReprrfPmzSMkJAQfHx9e\neeUVZX5EKJzo9uWXX6ZevXoEBAQwc+ZM+vfvz+jRo5VtNm7cSGRkJO7u7jRo0IAePXqUuMJxWFgY\nW7ZsYeXKlajVaqWclJQUBg8ejJeXF15eXjz33HNcvHjR4LG4W3JyMj179gQKZ0G4u3wobDb8+OOP\n8fX1xd/fn/fff7/IvIi5ublMnjyZ0NBQPDw86NSpE9u3by/x7zN69GjeffddLly4UGR9OENNj088\n8QTjx4/nvffeo0GDBvj5+TFv3jw0Gg1vvvkm3t7eNG7cuMQlgPSOHj1K79698fX1pX79+jz++OPK\n8ix6P/zwA82bN8fNzQ1fX1/69OlTZOqve506dYqnn35a+VuOHj1aWdts2rRpylJBtWvXNpi8N23a\nhLe3NxMmTFAuAO92v6bxZcuWFVvjbObMmQQEBFCvXj1efvllpk+fXuJafCXRL2XTpEkT5Xvs4OCg\nrGOYk5PDxo0bmTx5Mu3atcPX15dJkybRsGFDmY1eVJlq62MbMmQIK1asUE54S5YsoVevXjg4ODzQ\n+x0cHBg2bBj79u3j2rVr993mzp07rFq1CldXV2Wi0JIkJyfzyy+/8OOPP7Jnzx5sbGy4ffs2o0aN\nYseOHfz666/UqlWLAQMGKIt87tixA4A1a9YQGxtb4qS7UDhh8OnTp1m/fj0//PADv/76a5GZzd9/\n/3327t3L0qVL2bhxI3///XeRJpzLly/z0ksvMXDgQA4ePMiWLVtKnWR1586ddOzYkd69exMbG8v0\n6dMpKChg0KBBXL16lU2bNrFp0yYuXbrE4MGDi9TK7ncs7ubl5aXUDA4cOKCUr/fzzz9jbm7Otm3b\n+Oyzz5g3b56y5AbAq6++yt69e1m4cCH79+9n4MCBDBgwoMSleKZPn85bb71FvXr1iI2NZefOnSV+\n7nv9/PPPODg4sH37dsaOHcukSZMYPHgwfn5+7Nq1iwEDBvD6669z6dKlEsvIysqif//+/Pbbb2zf\nvp2wsDD69u2rTP127Ngx3nzzTd5++20OHz7Mhg0b6Ny5c4nl3b59m2eeeQZ7e3u2b9/O0qVLOXTo\nkDLl1ZgxY5RVou+38sO9Fi9eTL9+/bCzs6Nnz57lqrWtWbOGGTNm8MEHH7B7926CgoKURUMrIjc3\nlzt37ijJWavVkp+fX+w7ZWtrW6zJUojKUi3L1gB06dIFrVbL7t27iYyMZPXq1Sxfvpxdu3Y9cBn6\nueeSk5NxcXEBCk8E+ivR7OxsZRXf0ppyoPAHOH/+/CLLTNxbe5w7dy7169fn//7v/2jTpo0yn6Oz\ns7PBpj5HR0e+/PJLzM3NCQoKolevXuzevZvx48dz69Ytli5dyrfffqus1fX1118r6ypB4VIaeXl5\nPP3000qSvvv1e7m4uGBtbY2NjY0S286dOzl16hTHjh1TJlj+7rvveOSRR9i9ezcdO3Ys8Vjczdzc\nnNq1awOFy5fcO69lUFAQ7733HlA41+NPP/3E7t27efbZZ0lKSuKXX37hxIkTyioJI0eOZNeuXfz4\n44988cUXxfbn5OSEo6MjZmZmZW5SDQ4OViZCfu2115g1axYWFhZKDfPtt99m9uzZHDx4sMTJtzt0\n6FDk8aeffsrGjRv5448/6N+/PykpKdjb29O9e3ccHR0BSq3p/PLLL2RnZzN//nxl+1mzZtGzZ08S\nExPx9fVVJsQ19HnPnTvH/v37lTkbBwwYwLBhw/joo4+KLP9kyLfffsugQYN4/vnnARg/fjzR0dEP\nNLN9aaZOnYqDg4MyybOjoyMRERF8/vnnhISE4Obmxi+//MKhQ4fw9fWt0L6EKEm11djMzc0ZOHAg\nS5cuZfPmzbi4uJR5JKG+lnH38h4NGzYkOjqa6Ohodu3axdChQxk8eDB//fVXqWV5enoWO5EnJSUx\nfPhwmjZtSv369QkMDKSgoIALFy6UKU4oPNnfvWSIu7u7MvglKSmJvLw8ZWVlKJxA+O7EFRYWRseO\nHYmMjGTIkCF8//33JdZUSxIbG4uHh0eRVQMaNGiAh4dHkdV773csyqJRo0ZFHt/9WY8fP45Op6N1\n69bUq1dP+adflLSy3R2LSqXC1dW1yHOWlpao1epiA5HudvXqVcaOHUvz5s3x9vbGy8uLq1evKt8D\n/cTMTZo0YcSIESxfvlxZtuZ+YmNjadSokZLUoHCyYDMzsxJXdS7J0qVL6dChg5IA27Vrh52dXZkH\nL8XFxRWbrPnu72N5zJs3jx9//JElS5YUWdB1/vz5qFQqQkNDqVu3LvPnz+fZZ59VluERorJVW40N\nYPDgwURFRXH+/HkGDx5c5vefOXMGlUpVpJnRysqqyJVfkyZN2Lx5M998802pKwjr1/26W//+/fH0\n9GTWrFl4eHhgYWFBq1atlKbIstDP+q2nUqnKNCjD3NycdevWcfjwYXbs2MGSJUv46KOP2Lx5c5n7\nQe7n7ouD+x2LsijtsxYUFKBSqdixY0ex7api7aj7xXL3+mn650pbl2306NFcuXKFTz75BG9vb6yt\nrXnqqaeU74GjoyP/+9//2Lt3L7t27eLLL79kypQp7NixQ1nb60GVZd3B/Px8li9fTlpaWpFac0FB\nAYsXL1ZGUpqZmRX7rpXW/1cZvvnmGz755BN+/vnnYgmyYcOGbNmyhdu3b5OVlYW7uzvDhg1Tlr8R\norJV6yWTn58fzZo149ixY0WWdnkQt27d4ocffiAqKkpphiyJubl5kYVEH0R6ejpxcXGMHz+ejh07\nEhQURFZWVpETgn4RxLKukHyvhg0bYmlpWWTIc3Z2drFBACqVioiICN555x127tyJh4eHskz8gwgK\nCiItLa3IQJpz586RlpamNOs+qPJ+9vDwcHQ6HZcvX8bX17fIP09PzzKVVV0OHDjAyJEj6datGyEh\nITg4OBRZ7BQKBy116NCByZMns3fvXm7fvs3WrVvvW15QUBCnTp0qUqs7ePAgBQUFyqrXD0K/xNPO\nnTuVVoro6GhWrVrF7t27lb+zi4sLV65cKZLc7u3PDAwMLHbbSnmH4M+ZM4dPPvmEVatWldoKY29v\nj7u7O5mZmWzfvr3U9cuEqIhqrbFBYX9Dbm5uqSO/9CdCKFxl++jRo8yePZubN2+yYsWKIttqtVpl\n21u3brF27VrOnDnDG2+8Uaa41Go1derUYfHixXh5eZGamsp//vOfIlf7rq6u2Nrasn37duVKvrTF\nAkvi4ODAc889x+TJk6lTpw5ubm58/vnn6HQ65Qr+8OHD7Nq1i86dO+Pq6sqJEye4ePFimU6EHTt2\npFGjRowcOVIZ7PHWW2/RpEkT2rdvX6aY69evj0qlYuvWrXTv3h0bG5sHGvjj7+9Pv379eOWVV/jv\nf/9LkyZNyMjIYM+ePfj4+Nz3/kZj8/PzY/Xq1bRo0YLs7Gz+85//FFnZ+ffffycpKYnIyEhq165N\ndHQ0t27dIjAw8L7l9e3bl2nTpjFq1CjeffddMjMzGTduHD179ixTP9PixYvp0qULTZs2LfJ8aGgo\nAQEBLF26lPfee4+2bduSkZHBF198wTPPPEN0dHSxBShHjRrFq6++yiOPPEJkZCS//vorR44cKfK7\n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\nZqjVaoKCgnB0dDRKPMnJyaSkpJCdnQ2Ao6Mjfn5+1K1b1yjx3C0hIYG4uDi8vb1p1KiRUWKIj4/n\n7NmzRZ6zsrKic+fORokH4M6dO8TFxXHlyhXy8/OxtbWlUaNG1KlTp9pj2bVr133vS3V1daVFixbV\nHo9OpyM+Pp7U1FQ0Gg3W1tZ4enri7++PmZlxGr60Wi1xcXFcvnyZ3NxcatWqRUhICGq1ulr2b+gc\nqNPpOHv2LCkpKeTl5aFWqwkNDa2Wc9JDmdgAfHx88PHxMdr+tVotDg4OeHp6cuLECaPFoZeeno63\ntzdOTk5A4Ynz0KFDtGvXzih9jzY2NgQFBWFnZwfAxYsXOXr0KJGRkdSqVava49HLyMggJSXFaAn/\nbvb29rRq1crYYQCQl5fHgQMHqF27Ni1atMDKyors7Oxio4+rS5s2bYo8vnPnDvv27cPd3d0o8SQm\nJnL+/HnCwsJwdHQkKyuLEydOYGZmhr+/v1FiOnnyJFlZWYSHh2NjY0NqaiqHDx+mXbt22NjYVPn+\nDZ0DExMTSUpKIjw8HHt7e86ePcvhw4dp3749FhZVm3oeuj62mqJu3boEBQXh4eGBSqUydji0bNkS\nLy8vHB0dcXR0JDw8nNzcXDIyMowSj5ubG66urtjb22Nvb09gYCAWFhZkZmYaJR4oPHkfP36csLAw\nLC0tjRaHnkqlwtrausg/Y0lMTMTa2pomTZqgVquxs7PDxcUFBwcHo8Rz73G5evUqFhYWRe5drU4Z\nGRnUrVsXNzc37OzscHNzw83NzWjf5/z8fC5fvkxQUBB16tTB3t6egIAA7Ozsqm2iitLOgTqdjuTk\nZHx9fXF3d1fOSVqtltTU1CqP7aGtsYnSabVagBpxAtfpdKSlpaHVao06wOfvv//G3d2dOnXqFGsG\nNIbs7Gx27NihNB0HBgYqNdzqdvnyZVxdXTl27Bjp6elYW1tTv359vL29jX7hptPpuHDhAp6enpib\nmxslBn1f/q1bt3BwcCArK4vr16/j6+trlHh0Oh06na5YM6i5ubnRLmbvlpOTg0ajwcXFRXnO3Nwc\nZ2dnMjMzq3w8hCQ2E3X69GkcHR2NmkiysrLYv38/BQUFmJub06xZM6M1Aer7+5o0aWKU/d9LrVYr\nTTT6/uL9+/cbrek4JyeH8+fP06BBA3x9fcnKyiImJgbAqE3+UDjiOScnh/r16xstBl9fX/Lz84mO\njkalUqHT6fDz8zPasbGwsECtVpOQkICjoyPW1takpqaSkZGBvb29UWK6m/52rPtNpHHvrVpVQRKb\nCTp9+jQZGRm0bt3aqFfb9vb2REVFodVquXTpEidOnKBVq1bVntxu3bpFbGwsrVu3NlpH/71cXV2L\nPFar1ezevZuLFy/SsK8hl7EAAAYgSURBVGHDao9Hp9Ph5OREUFAQAE5OTty+fZvk5GSjJ7YLFy7g\n5ORk1L7ZtLQ0Ll68SJMmTXB0dOTmzZucPn0aW1tboyXc8PBwTp48yc6dO1GpVNSqVQtPT09u3Lhh\nlHhqEklsJub06dOkpaURERFhtGYtPTMzM+Xq0cnJiRs3bnDu3DnCwsKqNY7MzEzy8vLYs2eP8pxO\npyM9PZ2UlBQee+wxozVx6VlYWODg4MDt27eNsn9ra+ti/WkODg4kJycbJR49jUbD5cuXjTZ6VS82\nNpaGDRvi6ekJFI7yzcnJITEx0WiJzd7entatW6PVatFqtdjY2HDs2DGj/+7hn5qaRqMpMlo9Nze3\nWvqSJbGZkJiYGNLS0mjVqpXROv1Lo9PpKCgoqPb9urm5KaNF9U6ePImdnR1+fn41ohaXn5/P7du3\njbamYO3atYsl1du3b1fL6LrSXLx4ETMzM6MNGtHLz88v1vqhb5I0NgsLCywsLMjLy+PatWtKrduY\nbG1tsba25vr168rtB/n5+aSnpxMcHFzl+5fEVk5arVa5R0un05GTk8PNmzextLSs1vvp9E6dOsXF\nixdp3rw5lpaWSju2ubl5lQ+tvZ/Y2FhcXV2xsbEhPz+f1NRU0tPTjXIPkqWlZbFBNObm5lhaWhqt\nz+/MmTO4urpia2tLbm4uZ8+eRavVGu1eyAYNGnDgwAHOnj2Lh4cHN2/eJDk5mcDAQKPEA4W/q5SU\nFDw8PIzyHb5b3bp1SUhIwNbWFgcHB27evKksn2UsV69eBQprbtnZ2Zw5cwZ7e/tq+w4ZOgf6+PiQ\nmJiojIxOSEjAwsJCqfVWpYdu2Zqa4vr16xw6dKjY8/Xq1SM8PLza4/ntt9/u+7y/vz8BAQHVHA2c\nOHGC69evo9FolATSsGHDYn1LxnLw4EEcHByM1sT1119/kZ6ersxxqlarCQgIMOr9dVeuXCEuLk6p\nqenvFTVWP63+N9amTZtqu+m4JPfeDG1tbY2Hhwf+/v5Ga8ZOS0sjNjaWO3fuYGVlhZubG4GBgdU2\nEtrQOfDeG7SdnJxo1KhRtXzHJbEJIYQwKcbvXBBCCCEqkSQ2IYQQJkUSmxBCCJMiiU0IIYRJkcQm\nhBDCpEhiE0IIYVIksQlRAyQnJ6NWq1Gr1dSuXZuAgADe+n/t3U8oNHEcx/H3wU1qakttbQrlgFhy\ncMBeHLQXJdmr9SdJHBzIYUuRmd0UR4nZUkJsSQkXifInN8oJOUq5iFKbOMjWpsfzyLN2rM/r/Gtm\nfqdPv5np+xkY+OukluXlZUzTTKpPMQzjXZ+ZyG+iYBNxkLKyMqampsjPz2d6epq1tbUP16+srBAO\nh5MG387OzjIyMpLqRxVxLAWbiIO43W4CgQAdHR0AXF1dsbi4SGlpKbm5uRQVFdHf38/T0xOmabK1\ntQVAeXl5Yrh0e3s7oVAIANM0MQyDvr4+KisrKSwsZHV1FXgdUNvV1YXH46G5uRm/349hGGkffCzy\nVQo2EQeJx+Pc3NwkmggqKipwuVz09vZiWRY+nw/btonFYjQ2NibGt4XDYSKRyB+ve3BwQGdnJ3d3\ndwwPDwMQjUZZWlqirq6OmpoaDg8PU74/ke+gIcgiDrK9vZ0YPNzd3Y3P5yMWizExMcH19XVi3dnZ\nGS0tLbjdbk5OTmhoaPiwN62np4fW1lZs2+bi4gKAvb09AEZHRykoKGBjY4Ojo6MU7k7ke+jEJuIg\nVVVV2LZNXl4eMzMznJ6eMjQ0xMPDA9FoFMuyAHh8fPzUdd+a1LOyst79kJLOMlqRVFCwiTiIy+Wi\nqakJy7KIx+OMjY0BrwWNt7e3rK+vJ61/m3q/sLCQOIH9q9raWgBCoRCTk5McHx//hx2IpJ+CTcSB\n/H4/Xq+Xzc1N2trayMnJIRKJUF1dnbQuGAzi8XiwLIvx8fFP3SMYDBIIBNjd3WV/fx+v1wvwrpRV\n5KdRbY3IL3V/f8/c3BwlJSVcXl4yODhIcXExOzs76X40kS/RzyMiv9Tz8zPz8/Ocn5+TnZ1NfX19\n4tWnyE+mE5uIiGQUfWMTEZGMomATEZGMomATEZGMomATEZGMomATEZGMomATEZGM8gLUVzJqxcyd\nIwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "l7RaGCl_9_Sd", + "colab_type": "text" + }, + "source": [ + "# 2) Reproduce another example from FiveThityEight's shared data repository.\n", + "WARNING: There are a lot of very custom graphs and tables at the above link. I highly recommend not trying to reproduce any that look like a table of values or something really different from the graph types that we are already familiar with. Search through the posts until you find a graph type that you are more or less familiar with: histogram, bar chart, stacked bar chart, line chart, seaborn relplot, etc. Recreating some of the graphics that 538 uses would be a lot easier in Adobe photoshop/illustrator than with matplotlib.\n", + "\n", + "If you put in some time to find a graph that looks \"easy\" to replicate you'll probably find that it's not as easy as you thought.\n", + "\n", + "If you start with a graph that looks hard to replicate you'll probably run up against a brick wall and be disappointed with your afternoon." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "BjUuxmpDEalQ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 295 + }, + "outputId": "75507d5e-7608-4c84-c45a-2deff38e1522" + }, + "source": [ + "from IPython.display import display, Image\n", + "\n", + "url = 'https://fivethirtyeight.com/wp-content/uploads/2015/04/barry-jester-datalab-boomersdruguse-actual.png?w=575'\n", + "mj001 = Image(url=url, width=400)\n", + "\n", + "display(mj001)" + ], + "execution_count": 39, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6yEghYY7HAcD", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 285 + }, + "outputId": "7ed0e8e9-d405-4641-e0c7-3513946c063f" + }, + "source": [ + "plt.style.use('fivethirtyeight')\n", + "\n", + "mj002 = pd.Series([7.29, 2.52, 1.43, 0.87, 0.36, 0.36, 0.28, 0.25, 0.23, 0.15, 0.15, 0.05], \n", + " index=range(0,12))\n", + "\n", + "mj002.plot.bar(color='#ed713a', width=0.9);" + ], + "execution_count": 43, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n5eTkKDMzU61bt7asSGJjYxUTE6Pk5GRt27ZNM2bM0NixYzVnzhxJ0vz58/X3v/9dO3bs8GjukiVL\nlJ6erpUrV+r5558vXt60aVMdOnRI4eHhHs17WFBQkL788ksFBwdr7Nixys/P1+bNmxUQEKA7d+4o\nISFB9evXV3p6ukdzmzdvrpycHLVs2VI9e/bU5MmTNXLkyOL1O3fu1DvvvKNjx455NDcoKEgHDhzQ\nnj17tHHjRv3rX/9S586dlZCQoKFDh6phw4YezXsgIiJCixYtUr9+/XT27Fn16NFDq1at0quvvipJ\nyszM1Ntvv60TJ054PLtFixY6evSoWrVqJen+1pHdbtepU6fUrFkzZWVlKTExUWfOnPF49tmzZzV4\n8GDdvHlTPXr0KLFH5ejRowoMDNT27dst/W/8cax6E/ywKnUbebvdruzs7FKLJDs7W3a73ZLsxMTE\n4nfDj1NYWGhJ7vHjx5WZmamAgAAFBATo/fff1+zZszVgwABlZmbqySeftCT37NmzWrVqlSRp8ODB\nmjhxon76058Wrx82bJg2bdrk8dzp06erZ8+emjBhggYPHqzk5GTVquX962KPHz+u5cuXF79DrF+/\nvt58883i+8l5UmBgoK5fv66WLVvq0qVL6tixY4n1ERERysvL83iudP8Pa1JSkpKSkvTXv/5V6enp\nmjFjht566y0NHTpUCQkJioyM9Ghmfn6+OnToIOn+VqC/v3+JnzkiIkL5+fkezXygadOmunjxYnGR\n5Ofn67vvvivelRUaGqobN25Ykp2UlKTo6Gi99957ql+/fol1d+7cUWJiopKSkvThhx96NPfw4cNl\nrj9//rxH8x6nShXJG2+8oenTp+vzzz9Xr169ii94vHz5svbv36+MjAwtXLjQkuwWLVro3XffLfHH\n9GEnT570+G4e6f69zL5fXgsWLFBRUZEGDBigtWvXejzzgQd/wGvVqqX69euX2N0UGBiob775xpLc\nH//4x9q/f7+mTZumPn36KDU11ZKcx3nwu7579+5jb/tz9epVj2f27dtXa9asUUpKinr27KmdO3eW\n+MO6fft2tW7d2uO539e7d2/17t1bV69e1aZNm7Rhwwalp6d7/J2q3W7XmTNnFBISIofDoYKCAv3z\nn/9Uu3btJN1/E9O0aVOPZj4QHx+v6dOna968eapXr54WL16s5557Tg0aNJAkORwOtWjRwpLszz77\nTFlZWY+UiHT/jUpSUpL69Onj8dwBAwbIz89PRUWl71wq7Q2yp1SpIhk3bpwaN26slJQUbdiwQQUF\n9+9f6e/vr8jISK1atUqDBw+2JDsiIkInT54stUhc/UNV1DPPPKMTJ048srm7cOFCFRYWatSoUR7P\nlKSQkBCdP3+++J3bnj17Shxo/vrrry29c0GjRo20fv16paenFx+r8Ib4+Hj5+/vrm2++kcPhKHHM\nIC8vT02aNPF45rx58xQXF6f+/furS5cuSklJ0ZEjR4qPkRw/ftySrb/SNG3aVFOnTtXUqVN18OBB\nj7/+sGHDNGnSJPXr108HDx7U9OnTlZycrMuXL6tWrVpaunRpqf+fmUpOTlZ+fr5+9rOfqaCgQFFR\nUUpJSSleX6tWLcvuWG6z2XTu3LlSd12dP3+++GQST2rSpIkWLFign/zkJ49df+rUKQ0cONDjuQ+r\nUkUi3b9mZciQIbp3756uXbsm6f4vyuprDN544w3dunWr1PWhoaGWHAAeMGCAtm3bphEjRjyybtGi\nRSooKNC6des8njtmzBjdvXu3+PvvH4Tds2dPiWMYVklISNBzzz2nnJwcPfXUU5Zmff9gY2BgYInv\nd+/ere7du3s8126368CBA1q2bJl27dqloqIiffbZZ8rLy1N0dLTeeecdderUyeO5ISEhLk917dmz\np8dzZ8+eXXzG1NixYzVt2jS1a9dOc+fO1e3bt9WvXz+99dZbHs+V7v+brl+/Xnfu3NF33333yL+x\nFWciPvD6668rMTFRDodDL7744iNnnS5dulSJiYkez42IiNCFCxfUuHHjx6632WyWvAl+WJU62A4A\nvmzp0qVatWqV8vPzi3cnFRUVyW63a/LkyZo6darHMzMzM3X79m0NHz78seudTqd27dpV4gQPT6NI\nAMDDLly4UOL03we7kKsrbiMPAB7WqlUrRUVFKSoqqrhE8vLyNGXKFK/P4o1cigQAvODGjRsur1fz\n1dwqd7AdAHyROxc1V6fch3GMBAA8ICgoyOVFzXfu3PH4dTuVlfswtkgAwAMq66Lmysp9GMdIAMAD\nHlzUXBqrLmqurNyHsUUCAB5QWRc1V1buwzhGAgAwwq4tAIARigQAYIQiAQAYoUgAAEb+D2+stiEw\nYpUQAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "66ALacdsGRmZ", + "colab_type": "code", + "colab": {} + }, + "source": [ + "fig = plt.figure(facecolor='black')\n", + "\n", + "ax = fake2.value_counts().sort_index().plot.bar(color='#ed713a', width=0.9);\n", + "ax.set(facecolor='black')\n", + "\n", + "plt.xlabel('Rating', color='white')\n", + "plt.ylabel('Percent of total votes', color='white')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0wSrBzmJyWaV", + "colab_type": "text" + }, + "source": [ + "# STRETCH OPTIONS\n", + "\n", + "### 1) Reproduce one of the following using the matplotlib or seaborn libraries:\n", + "\n", + "- [thanksgiving-2015](https://fivethirtyeight.com/features/heres-what-your-part-of-america-eats-on-thanksgiving/) \n", + "- [candy-power-ranking](https://fivethirtyeight.com/features/the-ultimate-halloween-candy-power-ranking/) \n", + "- or another example of your choice!\n", + "\n", + "### 2) Make more charts!\n", + "\n", + "Choose a chart you want to make, from [Visual Vocabulary - Vega Edition](http://ft.com/vocabulary).\n", + "\n", + "Find the chart in an example gallery of a Python data visualization library:\n", + "- [Seaborn](http://seaborn.pydata.org/examples/index.html)\n", + "- [Altair](https://altair-viz.github.io/gallery/index.html)\n", + "- [Matplotlib](https://matplotlib.org/gallery.html)\n", + "- [Pandas](https://pandas.pydata.org/pandas-docs/stable/visualization.html)\n", + "\n", + "Reproduce the chart. [Optionally, try the \"Ben Franklin Method.\"](https://docs.google.com/document/d/1ubOw9B3Hfip27hF2ZFnW3a3z9xAgrUDRReOEo-FHCVs/edit) If you want, experiment and make changes.\n", + "\n", + "Take notes. Consider sharing your work with your cohort!" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "dRJkKftiy5BJ", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# More Work Here" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/module4-makefeatures/HANK_LS_DSPT3_114_Make_Features_Assignment.ipynb b/module4-makefeatures/HANK_LS_DSPT3_114_Make_Features_Assignment.ipynb new file mode 100644 index 00000000..6fcbc67a --- /dev/null +++ b/module4-makefeatures/HANK_LS_DSPT3_114_Make_Features_Assignment.ipynb @@ -0,0 +1,11546 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "HANK - LS_DSPT3_114_Make_Features_Assignment.ipynb", + "version": "0.3.2", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.1" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "SnDJqBLi0FYW", + "colab_type": "text" + }, + "source": [ + " " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "W5GjI1z5yNG4", + "colab_type": "text" + }, + "source": [ + "# ASSIGNMENT\n", + "\n", + "- Replicate the lesson code.\n", + "\n", + " - This means that if you haven't followed along already, type out the things that we did in class. Forcing your fingers to hit each key will help you internalize the syntax of what we're doing.\n", + " - [Lambda Learning Method for DS - By Ryan Herr](https://docs.google.com/document/d/1ubOw9B3Hfip27hF2ZFnW3a3z9xAgrUDRReOEo-FHCVs/edit?usp=sharing)\n", + "- Convert the `term` column from string to integer.\n", + "- Make a column named `loan_status_is_great`. It should contain the integer 1 if `loan_status` is \"Current\" or \"Fully Paid.\" Else it should contain the integer 0.\n", + "\n", + "- Make `last_pymnt_d_month` and `last_pymnt_d_year` columns." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "AazB4eFwym2p", + "colab_type": "code", + "colab": {} + }, + "source": [ + "##### Begin Working Here #####\n", + "\n", + "import pandas as pd\n", + "import numpy as np" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "o_3xKyCn-sTM", + "colab_type": "code", + "colab": {} + }, + "source": [ + "url = \"https://raw.githubusercontent.com/jvns/pandas-cookbook/master/data/weather_2012.csv\"" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "XhFSZn8h-xPD", + "colab_type": "code", + "outputId": "4b1542a6-0c9d-4fe5-afe8-3ea0916a74d0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 306 + } + }, + "source": [ + "df_weather = pd.read_csv(url)\n", + "df_weather.head()" + ], + "execution_count": 81, + "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", + "
Date/TimeTemp (C)Dew Point Temp (C)Rel Hum (%)Wind Spd (km/h)Visibility (km)Stn Press (kPa)Weather
02012-01-01 00:00:00-1.8-3.98648.0101.24Fog
12012-01-01 01:00:00-1.8-3.78748.0101.24Fog
22012-01-01 02:00:00-1.8-3.48974.0101.26Freezing Drizzle,Fog
32012-01-01 03:00:00-1.5-3.28864.0101.27Freezing Drizzle,Fog
42012-01-01 04:00:00-1.5-3.38874.8101.23Fog
\n", + "
" + ], + "text/plain": [ + " Date/Time Temp (C) Dew Point Temp (C) Rel Hum (%) \\\n", + "0 2012-01-01 00:00:00 -1.8 -3.9 86 \n", + "1 2012-01-01 01:00:00 -1.8 -3.7 87 \n", + "2 2012-01-01 02:00:00 -1.8 -3.4 89 \n", + "3 2012-01-01 03:00:00 -1.5 -3.2 88 \n", + "4 2012-01-01 04:00:00 -1.5 -3.3 88 \n", + "\n", + " Wind Spd (km/h) Visibility (km) Stn Press (kPa) Weather \n", + "0 4 8.0 101.24 Fog \n", + "1 4 8.0 101.24 Fog \n", + "2 7 4.0 101.26 Freezing Drizzle,Fog \n", + "3 6 4.0 101.27 Freezing Drizzle,Fog \n", + "4 7 4.8 101.23 Fog " + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 81 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "DKfgoyLm_Wxi", + "colab_type": "code", + "colab": {} + }, + "source": [ + "df_weather['Date/Time'] = pd.to_datetime(df_weather['Date/Time'])" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "72zn0AUW_hDi", + "colab_type": "code", + "outputId": "76012fdd-be6c-47d2-af30-f761c0f5b049", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "df_weather.set_index('Date/Time')" + ], + "execution_count": 83, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Temp (C)Dew Point Temp (C)Rel Hum (%)Wind Spd (km/h)Visibility (km)Stn Press (kPa)Weather
Date/Time
2012-01-01 00:00:00-1.8-3.98648.0101.24Fog
2012-01-01 01:00:00-1.8-3.78748.0101.24Fog
2012-01-01 02:00:00-1.8-3.48974.0101.26Freezing Drizzle,Fog
2012-01-01 03:00:00-1.5-3.28864.0101.27Freezing Drizzle,Fog
2012-01-01 04:00:00-1.5-3.38874.8101.23Fog
2012-01-01 05:00:00-1.4-3.38796.4101.27Fog
2012-01-01 06:00:00-1.5-3.18976.4101.29Fog
2012-01-01 07:00:00-1.4-3.68578.0101.26Fog
2012-01-01 08:00:00-1.4-3.68598.0101.23Fog
2012-01-01 09:00:00-1.3-3.188154.0101.20Fog
2012-01-01 10:00:00-1.0-2.39191.2101.15Fog
2012-01-01 11:00:00-0.5-2.18974.0100.98Fog
2012-01-01 12:00:00-0.2-2.08894.8100.79Fog
2012-01-01 13:00:000.2-1.787134.8100.58Fog
2012-01-01 14:00:000.8-1.187204.8100.31Fog
2012-01-01 15:00:001.8-0.485226.4100.07Fog
2012-01-01 16:00:002.6-0.2821312.999.93Mostly Cloudy
2012-01-01 17:00:003.00.0811316.199.81Cloudy
2012-01-01 18:00:003.81.0821512.999.74Rain
2012-01-01 19:00:003.11.3881512.999.68Rain
2012-01-01 20:00:003.21.3871925.099.50Cloudy
2012-01-01 21:00:004.01.7852025.099.39Cloudy
2012-01-01 22:00:004.41.9842419.399.32Rain Showers
2012-01-01 23:00:005.32.0793025.099.31Cloudy
2012-01-02 00:00:005.21.5773525.099.26Rain Showers
........................
2012-12-30 23:00:00-12.1-15.1782825.0101.52Mostly Cloudy
2012-12-31 00:00:00-11.1-14.4772625.0101.51Cloudy
2012-12-31 01:00:00-10.7-14.0771525.0101.50Cloudy
2012-12-31 02:00:00-10.1-13.477925.0101.45Cloudy
2012-12-31 03:00:00-11.8-14.481625.0101.42Mostly Cloudy
2012-12-31 04:00:00-10.5-12.8831125.0101.34Cloudy
2012-12-31 05:00:00-10.2-12.484625.0101.28Cloudy
2012-12-31 06:00:00-9.7-11.785425.0101.23Cloudy
2012-12-31 07:00:00-9.3-11.385019.3101.19Snow Showers
2012-12-31 08:00:00-8.6-10.38743.2101.14Snow Showers
2012-12-31 09:00:00-8.1-9.68942.4101.09Snow
2012-12-31 10:00:00-7.4-8.98946.4101.05Snow,Fog
2012-12-31 11:00:00-6.7-7.99199.7100.93Snow
2012-12-31 12:00:00-5.8-7.588412.9100.78Snow
2012-12-31 13:00:00-4.6-6.686412.9100.63Snow
2012-12-31 14:00:00-3.4-5.784611.3100.57Snow
2012-12-31 15:00:00-2.3-4.68499.7100.47Snow
2012-12-31 16:00:00-1.4-4.0821312.9100.40Snow
2012-12-31 17:00:00-1.1-3.385199.7100.30Snow
2012-12-31 18:00:00-1.3-3.188179.7100.19Snow
2012-12-31 19:00:000.1-2.781309.7100.13Snow
2012-12-31 20:00:000.2-2.483249.7100.03Snow
2012-12-31 21:00:00-0.5-1.593284.899.95Snow
2012-12-31 22:00:00-0.2-1.889289.799.91Snow
2012-12-31 23:00:000.0-2.1863011.399.89Snow
\n", + "

8784 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " Temp (C) Dew Point Temp (C) Rel Hum (%) \\\n", + "Date/Time \n", + "2012-01-01 00:00:00 -1.8 -3.9 86 \n", + "2012-01-01 01:00:00 -1.8 -3.7 87 \n", + "2012-01-01 02:00:00 -1.8 -3.4 89 \n", + "2012-01-01 03:00:00 -1.5 -3.2 88 \n", + "2012-01-01 04:00:00 -1.5 -3.3 88 \n", + "2012-01-01 05:00:00 -1.4 -3.3 87 \n", + "2012-01-01 06:00:00 -1.5 -3.1 89 \n", + "2012-01-01 07:00:00 -1.4 -3.6 85 \n", + "2012-01-01 08:00:00 -1.4 -3.6 85 \n", + "2012-01-01 09:00:00 -1.3 -3.1 88 \n", + "2012-01-01 10:00:00 -1.0 -2.3 91 \n", + "2012-01-01 11:00:00 -0.5 -2.1 89 \n", + "2012-01-01 12:00:00 -0.2 -2.0 88 \n", + "2012-01-01 13:00:00 0.2 -1.7 87 \n", + "2012-01-01 14:00:00 0.8 -1.1 87 \n", + "2012-01-01 15:00:00 1.8 -0.4 85 \n", + "2012-01-01 16:00:00 2.6 -0.2 82 \n", + "2012-01-01 17:00:00 3.0 0.0 81 \n", + "2012-01-01 18:00:00 3.8 1.0 82 \n", + "2012-01-01 19:00:00 3.1 1.3 88 \n", + "2012-01-01 20:00:00 3.2 1.3 87 \n", + "2012-01-01 21:00:00 4.0 1.7 85 \n", + "2012-01-01 22:00:00 4.4 1.9 84 \n", + "2012-01-01 23:00:00 5.3 2.0 79 \n", + "2012-01-02 00:00:00 5.2 1.5 77 \n", + "... ... ... ... \n", + "2012-12-30 23:00:00 -12.1 -15.1 78 \n", + "2012-12-31 00:00:00 -11.1 -14.4 77 \n", + "2012-12-31 01:00:00 -10.7 -14.0 77 \n", + "2012-12-31 02:00:00 -10.1 -13.4 77 \n", + "2012-12-31 03:00:00 -11.8 -14.4 81 \n", + "2012-12-31 04:00:00 -10.5 -12.8 83 \n", + "2012-12-31 05:00:00 -10.2 -12.4 84 \n", + "2012-12-31 06:00:00 -9.7 -11.7 85 \n", + "2012-12-31 07:00:00 -9.3 -11.3 85 \n", + "2012-12-31 08:00:00 -8.6 -10.3 87 \n", + "2012-12-31 09:00:00 -8.1 -9.6 89 \n", + "2012-12-31 10:00:00 -7.4 -8.9 89 \n", + "2012-12-31 11:00:00 -6.7 -7.9 91 \n", + "2012-12-31 12:00:00 -5.8 -7.5 88 \n", + "2012-12-31 13:00:00 -4.6 -6.6 86 \n", + "2012-12-31 14:00:00 -3.4 -5.7 84 \n", + "2012-12-31 15:00:00 -2.3 -4.6 84 \n", + "2012-12-31 16:00:00 -1.4 -4.0 82 \n", + "2012-12-31 17:00:00 -1.1 -3.3 85 \n", + "2012-12-31 18:00:00 -1.3 -3.1 88 \n", + "2012-12-31 19:00:00 0.1 -2.7 81 \n", + "2012-12-31 20:00:00 0.2 -2.4 83 \n", + "2012-12-31 21:00:00 -0.5 -1.5 93 \n", + "2012-12-31 22:00:00 -0.2 -1.8 89 \n", + "2012-12-31 23:00:00 0.0 -2.1 86 \n", + "\n", + " Wind Spd (km/h) Visibility (km) Stn Press (kPa) \\\n", + "Date/Time \n", + "2012-01-01 00:00:00 4 8.0 101.24 \n", + "2012-01-01 01:00:00 4 8.0 101.24 \n", + "2012-01-01 02:00:00 7 4.0 101.26 \n", + "2012-01-01 03:00:00 6 4.0 101.27 \n", + "2012-01-01 04:00:00 7 4.8 101.23 \n", + "2012-01-01 05:00:00 9 6.4 101.27 \n", + "2012-01-01 06:00:00 7 6.4 101.29 \n", + "2012-01-01 07:00:00 7 8.0 101.26 \n", + "2012-01-01 08:00:00 9 8.0 101.23 \n", + "2012-01-01 09:00:00 15 4.0 101.20 \n", + "2012-01-01 10:00:00 9 1.2 101.15 \n", + "2012-01-01 11:00:00 7 4.0 100.98 \n", + "2012-01-01 12:00:00 9 4.8 100.79 \n", + "2012-01-01 13:00:00 13 4.8 100.58 \n", + "2012-01-01 14:00:00 20 4.8 100.31 \n", + "2012-01-01 15:00:00 22 6.4 100.07 \n", + "2012-01-01 16:00:00 13 12.9 99.93 \n", + "2012-01-01 17:00:00 13 16.1 99.81 \n", + "2012-01-01 18:00:00 15 12.9 99.74 \n", + "2012-01-01 19:00:00 15 12.9 99.68 \n", + "2012-01-01 20:00:00 19 25.0 99.50 \n", + "2012-01-01 21:00:00 20 25.0 99.39 \n", + "2012-01-01 22:00:00 24 19.3 99.32 \n", + "2012-01-01 23:00:00 30 25.0 99.31 \n", + "2012-01-02 00:00:00 35 25.0 99.26 \n", + "... ... ... ... \n", + "2012-12-30 23:00:00 28 25.0 101.52 \n", + "2012-12-31 00:00:00 26 25.0 101.51 \n", + "2012-12-31 01:00:00 15 25.0 101.50 \n", + "2012-12-31 02:00:00 9 25.0 101.45 \n", + "2012-12-31 03:00:00 6 25.0 101.42 \n", + "2012-12-31 04:00:00 11 25.0 101.34 \n", + "2012-12-31 05:00:00 6 25.0 101.28 \n", + "2012-12-31 06:00:00 4 25.0 101.23 \n", + "2012-12-31 07:00:00 0 19.3 101.19 \n", + "2012-12-31 08:00:00 4 3.2 101.14 \n", + "2012-12-31 09:00:00 4 2.4 101.09 \n", + "2012-12-31 10:00:00 4 6.4 101.05 \n", + "2012-12-31 11:00:00 9 9.7 100.93 \n", + "2012-12-31 12:00:00 4 12.9 100.78 \n", + "2012-12-31 13:00:00 4 12.9 100.63 \n", + "2012-12-31 14:00:00 6 11.3 100.57 \n", + "2012-12-31 15:00:00 9 9.7 100.47 \n", + "2012-12-31 16:00:00 13 12.9 100.40 \n", + "2012-12-31 17:00:00 19 9.7 100.30 \n", + "2012-12-31 18:00:00 17 9.7 100.19 \n", + "2012-12-31 19:00:00 30 9.7 100.13 \n", + "2012-12-31 20:00:00 24 9.7 100.03 \n", + "2012-12-31 21:00:00 28 4.8 99.95 \n", + "2012-12-31 22:00:00 28 9.7 99.91 \n", + "2012-12-31 23:00:00 30 11.3 99.89 \n", + "\n", + " Weather \n", + "Date/Time \n", + "2012-01-01 00:00:00 Fog \n", + "2012-01-01 01:00:00 Fog \n", + "2012-01-01 02:00:00 Freezing Drizzle,Fog \n", + "2012-01-01 03:00:00 Freezing Drizzle,Fog \n", + "2012-01-01 04:00:00 Fog \n", + "2012-01-01 05:00:00 Fog \n", + "2012-01-01 06:00:00 Fog \n", + "2012-01-01 07:00:00 Fog \n", + "2012-01-01 08:00:00 Fog \n", + "2012-01-01 09:00:00 Fog \n", + "2012-01-01 10:00:00 Fog \n", + "2012-01-01 11:00:00 Fog \n", + "2012-01-01 12:00:00 Fog \n", + "2012-01-01 13:00:00 Fog \n", + "2012-01-01 14:00:00 Fog \n", + "2012-01-01 15:00:00 Fog \n", + "2012-01-01 16:00:00 Mostly Cloudy \n", + "2012-01-01 17:00:00 Cloudy \n", + "2012-01-01 18:00:00 Rain \n", + "2012-01-01 19:00:00 Rain \n", + "2012-01-01 20:00:00 Cloudy \n", + "2012-01-01 21:00:00 Cloudy \n", + "2012-01-01 22:00:00 Rain Showers \n", + "2012-01-01 23:00:00 Cloudy \n", + "2012-01-02 00:00:00 Rain Showers \n", + "... ... \n", + "2012-12-30 23:00:00 Mostly Cloudy \n", + "2012-12-31 00:00:00 Cloudy \n", + "2012-12-31 01:00:00 Cloudy \n", + "2012-12-31 02:00:00 Cloudy \n", + "2012-12-31 03:00:00 Mostly Cloudy \n", + "2012-12-31 04:00:00 Cloudy \n", + "2012-12-31 05:00:00 Cloudy \n", + "2012-12-31 06:00:00 Cloudy \n", + "2012-12-31 07:00:00 Snow Showers \n", + "2012-12-31 08:00:00 Snow Showers \n", + "2012-12-31 09:00:00 Snow \n", + "2012-12-31 10:00:00 Snow,Fog \n", + "2012-12-31 11:00:00 Snow \n", + "2012-12-31 12:00:00 Snow \n", + "2012-12-31 13:00:00 Snow \n", + "2012-12-31 14:00:00 Snow \n", + "2012-12-31 15:00:00 Snow \n", + "2012-12-31 16:00:00 Snow \n", + "2012-12-31 17:00:00 Snow \n", + "2012-12-31 18:00:00 Snow \n", + "2012-12-31 19:00:00 Snow \n", + "2012-12-31 20:00:00 Snow \n", + "2012-12-31 21:00:00 Snow \n", + "2012-12-31 22:00:00 Snow \n", + "2012-12-31 23:00:00 Snow \n", + "\n", + "[8784 rows x 7 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 83 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "l-i9GDW3COKT", + "colab_type": "code", + "outputId": "332f7390-4656-4f5f-b648-9410519769ee", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "type(df_weather['Date/Time'])" + ], + "execution_count": 84, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "pandas.core.series.Series" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 84 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "nch-yiaTCVIL", + "colab_type": "code", + "colab": {} + }, + "source": [ + "x_list = [1,2,3]\n", + "x_arr = np.array([1,2,3])\n", + "x_series = pd.Series([1,2,3])" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Op-TtIoYCh4c", + "colab_type": "code", + "outputId": "58ae7880-d44b-4866-b2ea-fee068c7cca4", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "for i in x_series:\n", + " print(i)" + ], + "execution_count": 86, + "outputs": [ + { + "output_type": "stream", + "text": [ + "1\n", + "2\n", + "3\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "5buRcHQjFDyl", + "colab_type": "code", + "outputId": "ef8b9271-a038-49b4-cc5d-3e545c374e6b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 901 + } + }, + "source": [ + "df_weather['Weather'].str.contains('Snow')" + ], + "execution_count": 87, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 False\n", + "1 False\n", + "2 False\n", + "3 False\n", + "4 False\n", + "5 False\n", + "6 False\n", + "7 False\n", + "8 False\n", + "9 False\n", + "10 False\n", + "11 False\n", + "12 False\n", + "13 False\n", + "14 False\n", + "15 False\n", + "16 False\n", + "17 False\n", + "18 False\n", + "19 False\n", + "20 False\n", + "21 False\n", + "22 False\n", + "23 False\n", + "24 False\n", + " ... \n", + "8759 False\n", + "8760 False\n", + "8761 False\n", + "8762 False\n", + "8763 False\n", + "8764 False\n", + "8765 False\n", + "8766 False\n", + "8767 True\n", + "8768 True\n", + "8769 True\n", + "8770 True\n", + "8771 True\n", + "8772 True\n", + "8773 True\n", + "8774 True\n", + "8775 True\n", + "8776 True\n", + "8777 True\n", + "8778 True\n", + "8779 True\n", + "8780 True\n", + "8781 True\n", + "8782 True\n", + "8783 True\n", + "Name: Weather, Length: 8784, dtype: bool" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 87 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "jL7ytRS_FNsN", + "colab_type": "code", + "outputId": "fece641e-0992-427f-da05-7e66fa8052c4", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 901 + } + }, + "source": [ + "df_weather['Weather'].str.contains('Rain')" + ], + "execution_count": 88, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 False\n", + "1 False\n", + "2 False\n", + "3 False\n", + "4 False\n", + "5 False\n", + "6 False\n", + "7 False\n", + "8 False\n", + "9 False\n", + "10 False\n", + "11 False\n", + "12 False\n", + "13 False\n", + "14 False\n", + "15 False\n", + "16 False\n", + "17 False\n", + "18 True\n", + "19 True\n", + "20 False\n", + "21 False\n", + "22 True\n", + "23 False\n", + "24 True\n", + " ... \n", + "8759 False\n", + "8760 False\n", + "8761 False\n", + "8762 False\n", + "8763 False\n", + "8764 False\n", + "8765 False\n", + "8766 False\n", + "8767 False\n", + "8768 False\n", + "8769 False\n", + "8770 False\n", + "8771 False\n", + "8772 False\n", + "8773 False\n", + "8774 False\n", + "8775 False\n", + "8776 False\n", + "8777 False\n", + "8778 False\n", + "8779 False\n", + "8780 False\n", + "8781 False\n", + "8782 False\n", + "8783 False\n", + "Name: Weather, Length: 8784, dtype: bool" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 88 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "rtGJ644QFTPV", + "colab_type": "code", + "outputId": "51a5ac8b-1853-4bdf-b775-32b1bfcb0da5", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 901 + } + }, + "source": [ + "is_precipitation = df_weather['Weather'].str.contains('Rain') | df_weather['Weather'].str.contains('Snow')\n", + "is_precipitation" + ], + "execution_count": 89, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 False\n", + "1 False\n", + "2 False\n", + "3 False\n", + "4 False\n", + "5 False\n", + "6 False\n", + "7 False\n", + "8 False\n", + "9 False\n", + "10 False\n", + "11 False\n", + "12 False\n", + "13 False\n", + "14 False\n", + "15 False\n", + "16 False\n", + "17 False\n", + "18 True\n", + "19 True\n", + "20 False\n", + "21 False\n", + "22 True\n", + "23 False\n", + "24 True\n", + " ... \n", + "8759 False\n", + "8760 False\n", + "8761 False\n", + "8762 False\n", + "8763 False\n", + "8764 False\n", + "8765 False\n", + "8766 False\n", + "8767 True\n", + "8768 True\n", + "8769 True\n", + "8770 True\n", + "8771 True\n", + "8772 True\n", + "8773 True\n", + "8774 True\n", + "8775 True\n", + "8776 True\n", + "8777 True\n", + "8778 True\n", + "8779 True\n", + "8780 True\n", + "8781 True\n", + "8782 True\n", + "8783 True\n", + "Name: Weather, Length: 8784, dtype: bool" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 89 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "kPHp1w5zFmlM", + "colab_type": "code", + "colab": {} + }, + "source": [ + "df_weather['is_precipitation'] = is_precipitation" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "ro8yyOPxFt_U", + "colab_type": "code", + "outputId": "af334a89-7322-4e59-8122-d1c1c6cad8f3", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 306 + } + }, + "source": [ + "df_weather.head()" + ], + "execution_count": 91, + "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", + "
Date/TimeTemp (C)Dew Point Temp (C)Rel Hum (%)Wind Spd (km/h)Visibility (km)Stn Press (kPa)Weatheris_precipitation
02012-01-01 00:00:00-1.8-3.98648.0101.24FogFalse
12012-01-01 01:00:00-1.8-3.78748.0101.24FogFalse
22012-01-01 02:00:00-1.8-3.48974.0101.26Freezing Drizzle,FogFalse
32012-01-01 03:00:00-1.5-3.28864.0101.27Freezing Drizzle,FogFalse
42012-01-01 04:00:00-1.5-3.38874.8101.23FogFalse
\n", + "
" + ], + "text/plain": [ + " Date/Time Temp (C) Dew Point Temp (C) Rel Hum (%) \\\n", + "0 2012-01-01 00:00:00 -1.8 -3.9 86 \n", + "1 2012-01-01 01:00:00 -1.8 -3.7 87 \n", + "2 2012-01-01 02:00:00 -1.8 -3.4 89 \n", + "3 2012-01-01 03:00:00 -1.5 -3.2 88 \n", + "4 2012-01-01 04:00:00 -1.5 -3.3 88 \n", + "\n", + " Wind Spd (km/h) Visibility (km) Stn Press (kPa) Weather \\\n", + "0 4 8.0 101.24 Fog \n", + "1 4 8.0 101.24 Fog \n", + "2 7 4.0 101.26 Freezing Drizzle,Fog \n", + "3 6 4.0 101.27 Freezing Drizzle,Fog \n", + "4 7 4.8 101.23 Fog \n", + "\n", + " is_precipitation \n", + "0 False \n", + "1 False \n", + "2 False \n", + "3 False \n", + "4 False " + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 91 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "juRu5LIJH2hQ", + "colab_type": "code", + "colab": {} + }, + "source": [ + "df_weather['Visibility (mi)'] = df_weather['Visibility (km)']*0.621" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "_E0Td3I5IGXv", + "colab_type": "code", + "outputId": "d2dc329a-885c-4a4a-fb65-7b11872a0ee8", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 323 + } + }, + "source": [ + "df_weather.head()" + ], + "execution_count": 93, + "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", + "
Date/TimeTemp (C)Dew Point Temp (C)Rel Hum (%)Wind Spd (km/h)Visibility (km)Stn Press (kPa)Weatheris_precipitationVisibility (mi)
02012-01-01 00:00:00-1.8-3.98648.0101.24FogFalse4.9680
12012-01-01 01:00:00-1.8-3.78748.0101.24FogFalse4.9680
22012-01-01 02:00:00-1.8-3.48974.0101.26Freezing Drizzle,FogFalse2.4840
32012-01-01 03:00:00-1.5-3.28864.0101.27Freezing Drizzle,FogFalse2.4840
42012-01-01 04:00:00-1.5-3.38874.8101.23FogFalse2.9808
\n", + "
" + ], + "text/plain": [ + " Date/Time Temp (C) Dew Point Temp (C) Rel Hum (%) \\\n", + "0 2012-01-01 00:00:00 -1.8 -3.9 86 \n", + "1 2012-01-01 01:00:00 -1.8 -3.7 87 \n", + "2 2012-01-01 02:00:00 -1.8 -3.4 89 \n", + "3 2012-01-01 03:00:00 -1.5 -3.2 88 \n", + "4 2012-01-01 04:00:00 -1.5 -3.3 88 \n", + "\n", + " Wind Spd (km/h) Visibility (km) Stn Press (kPa) Weather \\\n", + "0 4 8.0 101.24 Fog \n", + "1 4 8.0 101.24 Fog \n", + "2 7 4.0 101.26 Freezing Drizzle,Fog \n", + "3 6 4.0 101.27 Freezing Drizzle,Fog \n", + "4 7 4.8 101.23 Fog \n", + "\n", + " is_precipitation Visibility (mi) \n", + "0 False 4.9680 \n", + "1 False 4.9680 \n", + "2 False 2.4840 \n", + "3 False 2.4840 \n", + "4 False 2.9808 " + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 93 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hDu2Eqn_IVwe", + "colab_type": "code", + "outputId": "89b2ccf4-063b-4972-b14d-4e5f690ced47", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + } + }, + "source": [ + "# Get LendingClub data\n", + "\n", + "!wget https://resources.lendingclub.com/LoanStats_2018Q4.csv.zip" + ], + "execution_count": 94, + "outputs": [ + { + "output_type": "stream", + "text": [ + "--2019-09-13 02:04:23-- https://resources.lendingclub.com/LoanStats_2018Q4.csv.zip\n", + "Resolving resources.lendingclub.com (resources.lendingclub.com)... 64.48.1.20\n", + "Connecting to resources.lendingclub.com (resources.lendingclub.com)|64.48.1.20|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: unspecified [application/zip]\n", + "Saving to: ‘LoanStats_2018Q4.csv.zip.2’\n", + "\n", + "LoanStats_2018Q4.cs [ <=> ] 21.58M 1.70MB/s in 13s \n", + "\n", + "2019-09-13 02:04:36 (1.62 MB/s) - ‘LoanStats_2018Q4.csv.zip.2’ saved [22631049]\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "fa1cUOsAPinK", + "colab_type": "code", + "outputId": "e91a2699-2b2c-4f1e-a042-3c2e27efeb29", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "!unzip LoanStats_2018Q4.csv.zip" + ], + "execution_count": 95, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Archive: LoanStats_2018Q4.csv.zip\n", + "replace LoanStats_2018Q4.csv? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n", + " inflating: LoanStats_2018Q4.csv \n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "w7Ik-nFNQXCc", + "colab_type": "code", + "outputId": "2cc480fa-3138-4138-dd6c-76f8c061dde3", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 207 + } + }, + "source": [ + "!head LoanStats_2018Q4.csv" + ], + "execution_count": 96, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Notes offered by Prospectus (https://www.lendingclub.com/info/prospectus.action)\n", + "\"id\",\"member_id\",\"loan_amnt\",\"funded_amnt\",\"funded_amnt_inv\",\"term\",\"int_rate\",\"installment\",\"grade\",\"sub_grade\",\"emp_title\",\"emp_length\",\"home_ownership\",\"annual_inc\",\"verification_status\",\"issue_d\",\"loan_status\",\"pymnt_plan\",\"url\",\"desc\",\"purpose\",\"title\",\"zip_code\",\"addr_state\",\"dti\",\"delinq_2yrs\",\"earliest_cr_line\",\"inq_last_6mths\",\"mths_since_last_delinq\",\"mths_since_last_record\",\"open_acc\",\"pub_rec\",\"revol_bal\",\"revol_util\",\"total_acc\",\"initial_list_status\",\"out_prncp\",\"out_prncp_inv\",\"total_pymnt\",\"total_pymnt_inv\",\"total_rec_prncp\",\"total_rec_int\",\"total_rec_late_fee\",\"recoveries\",\"collection_recovery_fee\",\"last_pymnt_d\",\"last_pymnt_amnt\",\"next_pymnt_d\",\"last_credit_pull_d\",\"collections_12_mths_ex_med\",\"mths_since_last_major_derog\",\"policy_code\",\"application_type\",\"annual_inc_joint\",\"dti_joint\",\"verification_status_joint\",\"acc_now_delinq\",\"tot_coll_amt\",\"tot_cur_bal\",\"open_acc_6m\",\"open_act_il\",\"open_il_12m\",\"open_il_24m\",\"mths_since_rcnt_il\",\"total_bal_il\",\"il_util\",\"open_rv_12m\",\"open_rv_24m\",\"max_bal_bc\",\"all_util\",\"total_rev_hi_lim\",\"inq_fi\",\"total_cu_tl\",\"inq_last_12m\",\"acc_open_past_24mths\",\"avg_cur_bal\",\"bc_open_to_buy\",\"bc_util\",\"chargeoff_within_12_mths\",\"delinq_amnt\",\"mo_sin_old_il_acct\",\"mo_sin_old_rev_tl_op\",\"mo_sin_rcnt_rev_tl_op\",\"mo_sin_rcnt_tl\",\"mort_acc\",\"mths_since_recent_bc\",\"mths_since_recent_bc_dlq\",\"mths_since_recent_inq\",\"mths_since_recent_revol_delinq\",\"num_accts_ever_120_pd\",\"num_actv_bc_tl\",\"num_actv_rev_tl\",\"num_bc_sats\",\"num_bc_tl\",\"num_il_tl\",\"num_op_rev_tl\",\"num_rev_accts\",\"num_rev_tl_bal_gt_0\",\"num_sats\",\"num_tl_120dpd_2m\",\"num_tl_30dpd\",\"num_tl_90g_dpd_24m\",\"num_tl_op_past_12m\",\"pct_tl_nvr_dlq\",\"percent_bc_gt_75\",\"pub_rec_bankruptcies\",\"tax_liens\",\"tot_hi_cred_lim\",\"total_bal_ex_mort\",\"total_bc_limit\",\"total_il_high_credit_limit\",\"revol_bal_joint\",\"sec_app_earliest_cr_line\",\"sec_app_inq_last_6mths\",\"sec_app_mort_acc\",\"sec_app_open_acc\",\"sec_app_revol_util\",\"sec_app_open_act_il\",\"sec_app_num_rev_accts\",\"sec_app_chargeoff_within_12_mths\",\"sec_app_collections_12_mths_ex_med\",\"sec_app_mths_since_last_major_derog\",\"hardship_flag\",\"hardship_type\",\"hardship_reason\",\"hardship_status\",\"deferral_term\",\"hardship_amount\",\"hardship_start_date\",\"hardship_end_date\",\"payment_plan_start_date\",\"hardship_length\",\"hardship_dpd\",\"hardship_loan_status\",\"orig_projected_additional_accrued_interest\",\"hardship_payoff_balance_amount\",\"hardship_last_payment_amount\",\"debt_settlement_flag\",\"debt_settlement_flag_date\",\"settlement_status\",\"settlement_date\",\"settlement_amount\",\"settlement_percentage\",\"settlement_term\"\n", + "\"\",\"\",\"10000\",\"10000\",\"10000\",\" 36 months\",\" 10.33%\",\"324.23\",\"B\",\"B1\",\"\",\"< 1 year\",\"MORTGAGE\",\"280000\",\"Not Verified\",\"Dec-2018\",\"Current\",\"n\",\"\",\"\",\"debt_consolidation\",\"Debt consolidation\",\"974xx\",\"OR\",\"6.15\",\"2\",\"Jan-1996\",\"0\",\"18\",\"\",\"14\",\"0\",\"9082\",\"38%\",\"23\",\"w\",\"8289.30\",\"8289.30\",\"2261.0\",\"2261.00\",\"1710.70\",\"550.30\",\"0.0\",\"0.0\",\"0.0\",\"Jul-2019\",\"324.23\",\"Sep-2019\",\"Aug-2019\",\"0\",\"\",\"1\",\"Individual\",\"\",\"\",\"\",\"0\",\"671\",\"246828\",\"1\",\"3\",\"2\",\"3\",\"1\",\"48552\",\"62\",\"1\",\"3\",\"4923\",\"46\",\"23900\",\"2\",\"7\",\"1\",\"7\",\"17631\",\"11897\",\"43.1\",\"0\",\"0\",\"158\",\"275\",\"11\",\"1\",\"1\",\"11\",\"\",\"11\",\"\",\"0\",\"3\",\"4\",\"7\",\"7\",\"10\",\"9\",\"11\",\"4\",\"14\",\"0\",\"0\",\"0\",\"4\",\"91.3\",\"28.6\",\"0\",\"0\",\"367828\",\"61364\",\"20900\",\"54912\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\"\n", + "\"\",\"\",\"4000\",\"4000\",\"4000\",\" 36 months\",\" 23.40%\",\"155.68\",\"E\",\"E1\",\"Security\",\"3 years\",\"RENT\",\"90000\",\"Source Verified\",\"Dec-2018\",\"Current\",\"n\",\"\",\"\",\"debt_consolidation\",\"Debt consolidation\",\"070xx\",\"NJ\",\"26.33\",\"0\",\"Sep-2006\",\"4\",\"59\",\"\",\"15\",\"0\",\"5199\",\"19.2%\",\"20\",\"w\",\"3423.38\",\"3423.38\",\"1081.96\",\"1081.96\",\"576.62\",\"505.34\",\"0.0\",\"0.0\",\"0.0\",\"Jul-2019\",\"155.68\",\"Sep-2019\",\"Aug-2019\",\"0\",\"\",\"1\",\"Individual\",\"\",\"\",\"\",\"0\",\"0\",\"66926\",\"5\",\"4\",\"3\",\"4\",\"5\",\"61727\",\"86\",\"6\",\"11\",\"1353\",\"68\",\"27100\",\"4\",\"0\",\"4\",\"15\",\"4462\",\"20174\",\"7.9\",\"0\",\"0\",\"147\",\"118\",\"2\",\"2\",\"0\",\"2\",\"\",\"0\",\"\",\"0\",\"5\",\"7\",\"9\",\"9\",\"8\",\"11\",\"12\",\"7\",\"15\",\"0\",\"0\",\"0\",\"9\",\"95\",\"0\",\"0\",\"0\",\"98655\",\"66926\",\"21900\",\"71555\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\"\n", + "\"\",\"\",\"5000\",\"5000\",\"5000\",\" 36 months\",\" 17.97%\",\"180.69\",\"D\",\"D1\",\"Administrative\",\"6 years\",\"MORTGAGE\",\"59280\",\"Source Verified\",\"Dec-2018\",\"Late (31-120 days)\",\"n\",\"\",\"\",\"debt_consolidation\",\"Debt consolidation\",\"490xx\",\"MI\",\"10.51\",\"0\",\"Apr-2011\",\"0\",\"\",\"\",\"8\",\"0\",\"4599\",\"19.1%\",\"13\",\"w\",\"4456.17\",\"4456.17\",\"895.96\",\"895.96\",\"543.83\",\"352.13\",\"0.0\",\"0.0\",\"0.0\",\"Jun-2019\",\"180.69\",\"Sep-2019\",\"Aug-2019\",\"0\",\"\",\"1\",\"Individual\",\"\",\"\",\"\",\"0\",\"0\",\"110299\",\"0\",\"1\",\"0\",\"2\",\"14\",\"7150\",\"72\",\"0\",\"2\",\"0\",\"35\",\"24100\",\"1\",\"5\",\"0\",\"4\",\"18383\",\"13800\",\"0\",\"0\",\"0\",\"87\",\"92\",\"15\",\"14\",\"2\",\"77\",\"\",\"14\",\"\",\"0\",\"0\",\"3\",\"3\",\"3\",\"4\",\"6\",\"7\",\"3\",\"8\",\"0\",\"0\",\"0\",\"0\",\"100\",\"0\",\"0\",\"0\",\"136927\",\"11749\",\"13800\",\"10000\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\"\n", + "\"\",\"\",\"23000\",\"23000\",\"23000\",\" 60 months\",\" 20.89%\",\"620.81\",\"D\",\"D4\",\"Operator\",\"5 years\",\"RENT\",\"68107\",\"Source Verified\",\"Dec-2018\",\"Current\",\"n\",\"\",\"\",\"debt_consolidation\",\"Debt consolidation\",\"672xx\",\"KS\",\"0.52\",\"0\",\"Feb-1997\",\"0\",\"\",\"\",\"5\",\"0\",\"976\",\"13%\",\"10\",\"w\",\"21353.16\",\"21353.16\",\"4307.45\",\"4307.45\",\"1646.84\",\"2660.61\",\"0.0\",\"0.0\",\"0.0\",\"Jul-2019\",\"620.81\",\"Sep-2019\",\"Aug-2019\",\"1\",\"\",\"1\",\"Individual\",\"\",\"\",\"\",\"0\",\"2693\",\"976\",\"0\",\"0\",\"0\",\"0\",\"36\",\"0\",\"\",\"3\",\"4\",\"0\",\"13\",\"7500\",\"2\",\"2\",\"4\",\"4\",\"195\",\"3300\",\"0\",\"0\",\"0\",\"237\",\"262\",\"10\",\"10\",\"0\",\"10\",\"\",\"9\",\"\",\"0\",\"0\",\"1\",\"3\",\"4\",\"3\",\"5\",\"7\",\"1\",\"5\",\"0\",\"0\",\"0\",\"3\",\"100\",\"0\",\"0\",\"0\",\"7500\",\"976\",\"3300\",\"0\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\"\n", + "\"\",\"\",\"8000\",\"8000\",\"8000\",\" 36 months\",\" 23.40%\",\"311.35\",\"E\",\"E1\",\"Manager\",\"10+ years\",\"OWN\",\"43000\",\"Source Verified\",\"Dec-2018\",\"Current\",\"n\",\"\",\"\",\"debt_consolidation\",\"Debt consolidation\",\"357xx\",\"AL\",\"33.24\",\"0\",\"Jan-1995\",\"0\",\"\",\"107\",\"8\",\"1\",\"9019\",\"81.3%\",\"16\",\"w\",\"6846.83\",\"6846.83\",\"2163.85\",\"2163.85\",\"1153.17\",\"1010.68\",\"0.0\",\"0.0\",\"0.0\",\"Jul-2019\",\"311.35\",\"Sep-2019\",\"Aug-2019\",\"0\",\"\",\"1\",\"Individual\",\"\",\"\",\"\",\"0\",\"0\",\"169223\",\"0\",\"3\",\"2\",\"2\",\"7\",\"22059\",\"69\",\"0\",\"0\",\"2174\",\"72\",\"11100\",\"1\",\"1\",\"1\",\"2\",\"21153\",\"126\",\"94.5\",\"0\",\"0\",\"148\",\"287\",\"44\",\"7\",\"1\",\"51\",\"\",\"7\",\"\",\"0\",\"1\",\"4\",\"1\",\"2\",\"8\",\"4\",\"7\",\"4\",\"8\",\"0\",\"0\",\"0\",\"2\",\"100\",\"100\",\"1\",\"0\",\"199744\",\"31078\",\"2300\",\"32206\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\"\n", + "\"\",\"\",\"32075\",\"32075\",\"32075\",\" 60 months\",\" 11.80%\",\"710.26\",\"B\",\"B4\",\"Nursing Supervisor\",\"10+ years\",\"MORTGAGE\",\"150000\",\"Not Verified\",\"Dec-2018\",\"Current\",\"n\",\"\",\"\",\"credit_card\",\"Credit card refinancing\",\"231xx\",\"VA\",\"22.21\",\"0\",\"Aug-2005\",\"0\",\"\",\"\",\"17\",\"0\",\"19077\",\"32%\",\"24\",\"w\",\"29228.12\",\"29228.12\",\"4940.28\",\"4940.28\",\"2846.88\",\"2093.40\",\"0.0\",\"0.0\",\"0.0\",\"Jul-2019\",\"710.26\",\"Sep-2019\",\"Aug-2019\",\"0\",\"\",\"1\",\"Individual\",\"\",\"\",\"\",\"0\",\"0\",\"272667\",\"1\",\"4\",\"1\",\"1\",\"9\",\"37558\",\"47\",\"1\",\"1\",\"3910\",\"41\",\"59600\",\"1\",\"2\",\"0\",\"3\",\"16039\",\"10446\",\"47.8\",\"0\",\"0\",\"160\",\"70\",\"4\",\"4\",\"2\",\"27\",\"\",\"14\",\"\",\"0\",\"4\",\"10\",\"4\",\"4\",\"8\",\"12\",\"14\",\"10\",\"17\",\"0\",\"0\",\"0\",\"2\",\"100\",\"50\",\"0\",\"0\",\"360433\",\"56635\",\"20000\",\"80125\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\"\n", + "\"\",\"\",\"9600\",\"9600\",\"9600\",\" 36 months\",\" 12.98%\",\"323.37\",\"B\",\"B5\",\"\",\"n/a\",\"MORTGAGE\",\"35704\",\"Not Verified\",\"Dec-2018\",\"Current\",\"n\",\"\",\"\",\"home_improvement\",\"Home improvement\",\"401xx\",\"KY\",\"0.84\",\"0\",\"Nov-2003\",\"0\",\"69\",\"\",\"5\",\"0\",\"748\",\"11.5%\",\"23\",\"w\",\"8012.51\",\"8012.51\",\"2287.83\",\"2287.83\",\"1587.49\",\"700.34\",\"0.0\",\"0.0\",\"0.0\",\"Aug-2019\",\"323.37\",\"Sep-2019\",\"Aug-2019\",\"0\",\"\",\"1\",\"Individual\",\"\",\"\",\"\",\"0\",\"0\",\"748\",\"0\",\"0\",\"0\",\"0\",\"44\",\"0\",\"\",\"0\",\"3\",\"748\",\"12\",\"6500\",\"0\",\"0\",\"1\",\"3\",\"150\",\"3452\",\"17.8\",\"0\",\"0\",\"181\",\"100\",\"13\",\"13\",\"0\",\"16\",\"\",\"3\",\"\",\"0\",\"1\",\"1\",\"2\",\"2\",\"16\",\"5\",\"7\",\"1\",\"5\",\"0\",\"0\",\"0\",\"0\",\"95.5\",\"0\",\"0\",\"0\",\"6500\",\"748\",\"4200\",\"0\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\"\n", + "\"\",\"\",\"30000\",\"30000\",\"30000\",\" 60 months\",\" 18.94%\",\"777.23\",\"D\",\"D2\",\"Postmaster \",\"10+ years\",\"MORTGAGE\",\"90000\",\"Source Verified\",\"Dec-2018\",\"Current\",\"n\",\"\",\"\",\"debt_consolidation\",\"Debt consolidation\",\"713xx\",\"LA\",\"26.52\",\"0\",\"Jun-1987\",\"0\",\"71\",\"75\",\"13\",\"1\",\"12315\",\"24.2%\",\"44\",\"w\",\"19969.40\",\"19969.40\",\"12893.26\",\"12893.26\",\"10030.60\",\"2862.66\",\"0.0\",\"0.0\",\"0.0\",\"Jul-2019\",\"777.23\",\"Sep-2019\",\"Aug-2019\",\"0\",\"\",\"1\",\"Individual\",\"\",\"\",\"\",\"0\",\"1208\",\"321915\",\"4\",\"4\",\"2\",\"3\",\"3\",\"87153\",\"88\",\"4\",\"5\",\"998\",\"57\",\"50800\",\"2\",\"15\",\"2\",\"10\",\"24763\",\"13761\",\"8.3\",\"0\",\"0\",\"163\",\"378\",\"4\",\"3\",\"3\",\"4\",\"\",\"4\",\"\",\"0\",\"2\",\"4\",\"4\",\"9\",\"27\",\"8\",\"14\",\"4\",\"13\",\"0\",\"0\",\"0\",\"6\",\"95\",\"0\",\"1\",\"0\",\"372872\",\"99468\",\"15000\",\"94072\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\"\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "uI8WUOqcQf97", + "colab_type": "code", + "outputId": "d5baaaa2-bf30-4b66-ba59-f873d3fa7c95", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 343 + } + }, + "source": [ + "# Load LendingClub data\n", + "\n", + "df = pd.read_csv('LoanStats_2018Q4.csv')\n", + "df.head()" + ], + "execution_count": 97, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.6/dist-packages/IPython/core/interactiveshell.py:2718: DtypeWarning: Columns (0,1,2,3,4,7,13,18,19,24,25,27,28,29,30,31,32,34,36,37,38,39,40,41,42,43,44,46,49,50,51,53,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,113,114,115,116,117,118,119,120,121,123,124,125,126,127,128,129,130,131,132,133,134,135,136,138,139,140,141,142,143) have mixed types. Specify dtype option on import or set low_memory=False.\n", + " interactivity=interactivity, compiler=compiler, result=result)\n" + ], + "name": "stderr" + }, + { + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Notes offered by Prospectus (https://www.lendingclub.com/info/prospectus.action)
idmember_idloan_amntfunded_amntfunded_amnt_invtermint_rateinstallmentgradesub_gradeemp_titleemp_lengthhome_ownershipannual_incverification_statusissue_dloan_statuspymnt_planurldescpurposetitlezip_codeaddr_statedtidelinq_2yrsearliest_cr_lineinq_last_6mthsmths_since_last_delinqmths_since_last_recordopen_accpub_recrevol_balrevol_utiltotal_accinitial_list_statusout_prncpout_prncp_invtotal_pymnttotal_pymnt_invtotal_rec_prncptotal_rec_inttotal_rec_late_feerecoveriescollection_recovery_feelast_pymnt_dlast_pymnt_amntnext_pymnt_dlast_credit_pull_dcollections_12_mths_ex_medmths_since_last_major_derogpolicy_codeapplication_typeannual_inc_jointdti_jointverification_status_jointacc_now_delinqtot_coll_amttot_cur_balopen_acc_6mopen_act_ilopen_il_12mopen_il_24mmths_since_rcnt_iltotal_bal_ilil_utilopen_rv_12mopen_rv_24mmax_bal_bcall_utiltotal_rev_hi_liminq_fitotal_cu_tlinq_last_12macc_open_past_24mthsavg_cur_balbc_open_to_buybc_utilchargeoff_within_12_mthsdelinq_amntmo_sin_old_il_acctmo_sin_old_rev_tl_opmo_sin_rcnt_rev_tl_opmo_sin_rcnt_tlmort_accmths_since_recent_bcmths_since_recent_bc_dlqmths_since_recent_inqmths_since_recent_revol_delinqnum_accts_ever_120_pdnum_actv_bc_tlnum_actv_rev_tlnum_bc_satsnum_bc_tlnum_il_tlnum_op_rev_tlnum_rev_acctsnum_rev_tl_bal_gt_0num_satsnum_tl_120dpd_2mnum_tl_30dpdnum_tl_90g_dpd_24mnum_tl_op_past_12mpct_tl_nvr_dlqpercent_bc_gt_75pub_rec_bankruptciestax_lienstot_hi_cred_limtotal_bal_ex_morttotal_bc_limittotal_il_high_credit_limitrevol_bal_jointsec_app_earliest_cr_linesec_app_inq_last_6mthssec_app_mort_accsec_app_open_accsec_app_revol_utilsec_app_open_act_ilsec_app_num_rev_acctssec_app_chargeoff_within_12_mthssec_app_collections_12_mths_ex_medsec_app_mths_since_last_major_deroghardship_flaghardship_typehardship_reasonhardship_statusdeferral_termhardship_amounthardship_start_datehardship_end_datepayment_plan_start_datehardship_lengthhardship_dpdhardship_loan_statusorig_projected_additional_accrued_interesthardship_payoff_balance_amounthardship_last_payment_amountdebt_settlement_flagdebt_settlement_flag_datesettlement_statussettlement_datesettlement_amountsettlement_percentagesettlement_term
NaNNaN10000100001000036 months10.33%324.23BB1NaN< 1 yearMORTGAGE280000Not VerifiedDec-2018CurrentnNaNNaNdebt_consolidationDebt consolidation974xxOR6.152Jan-1996018NaN140908238%23w8289.308289.302261.02261.001710.70550.300.00.00.0Jul-2019324.23Sep-2019Aug-20190NaN1IndividualNaNNaNNaN067124682813231485526213492346239002717176311189743.100158275111111NaN11NaN0347710911414000491.328.600367828613642090054912NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
40004000400036 months23.40%155.68EE1Security3 yearsRENT90000Source VerifiedDec-2018CurrentnNaNNaNdebt_consolidationDebt consolidation070xxNJ26.330Sep-2006459NaN150519919.2%20w3423.383423.381081.961081.96576.62505.340.00.00.0Jul-2019155.68Sep-2019Aug-20190NaN1IndividualNaNNaNNaN006692654345617278661113536827100404154462201747.9001471182202NaN0NaN057998111271500099500098655669262190071555NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
50005000500036 months17.97%180.69DD1Administrative6 yearsMORTGAGE59280Source VerifiedDec-2018Late (31-120 days)nNaNNaNdebt_consolidationDebt consolidation490xxMI10.510Apr-20110NaNNaN80459919.1%13w4456.174456.17895.96895.96543.83352.130.00.00.0Jun-2019180.69Sep-2019Aug-20190NaN1IndividualNaNNaNNaN0011029901021471507202035241001504183831380000087921514277NaN14NaN00333467380000100000136927117491380010000NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
23000230002300060 months20.89%620.81DD4Operator5 yearsRENT68107Source VerifiedDec-2018CurrentnNaNNaNdebt_consolidationDebt consolidation672xxKS0.520Feb-19970NaNNaN5097613%10w21353.1621353.164307.454307.451646.842660.610.00.00.0Jul-2019620.81Sep-2019Aug-20191NaN1IndividualNaNNaNNaN026939760000360NaN340137500224419533000002372621010010NaN9NaN00134357150003100000750097633000NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " Notes offered by Prospectus (https://www.lendingclub.com/info/prospectus.action)\n", + "id member_id loan_amnt funded_amnt funded_amnt_inv term int_rate installment grade sub_grade emp_title emp_length home_ownership annual_inc verification_status issue_d loan_status pymnt_plan url desc purpose title zip_code addr_state dti delinq_2yrs earliest_cr_line inq_last_6mths mths_since_last_delinq mths_since_last_record open_acc pub_rec revol_bal revol_util total_acc initial_list_status out_prncp out_prncp_inv total_pymnt total_pymnt_inv total_rec_prncp total_rec_int total_rec_late_fee recoveries collection_recovery_fee last_pymnt_d last_pymnt_amnt next_pymnt_d last_credit_pull_d collections_12_mths_ex_med mths_since_last_major_derog policy_code application_type annual_inc_joint dti_joint verification_status_joint acc_now_delinq tot_coll_amt tot_cur_bal open_acc_6m open_act_il open_il_12m open_il_24m mths_since_rcnt_il total_bal_il il_util open_rv_12m open_rv_24m max_bal_bc all_util total_rev_hi_lim inq_fi total_cu_tl inq_last_12m acc_open_past_24mths avg_cur_bal bc_open_to_buy bc_util chargeoff_within_12_mths delinq_amnt mo_sin_old_il_acct mo_sin_old_rev_tl_op mo_sin_rcnt_rev_tl_op mo_sin_rcnt_tl mort_acc mths_since_recent_bc mths_since_recent_bc_dlq mths_since_recent_inq mths_since_recent_revol_delinq num_accts_ever_120_pd num_actv_bc_tl num_actv_rev_tl num_bc_sats num_bc_tl num_il_tl num_op_rev_tl num_rev_accts num_rev_tl_bal_gt_0 num_sats num_tl_120dpd_2m num_tl_30dpd num_tl_90g_dpd_24m num_tl_op_past_12m pct_tl_nvr_dlq percent_bc_gt_75 pub_rec_bankruptcies tax_liens tot_hi_cred_lim total_bal_ex_mort total_bc_limit total_il_high_credit_limit revol_bal_joint sec_app_earliest_cr_line sec_app_inq_last_6mths sec_app_mort_acc sec_app_open_acc sec_app_revol_util sec_app_open_act_il sec_app_num_rev_accts sec_app_chargeoff_within_12_mths sec_app_collections_12_mths_ex_med sec_app_mths_since_last_major_derog hardship_flag hardship_type hardship_reason hardship_status deferral_term hardship_amount hardship_start_date hardship_end_date payment_plan_start_date hardship_length hardship_dpd hardship_loan_status orig_projected_additional_accrued_interest hardship_payoff_balance_amount hardship_last_payment_amount debt_settlement_flag debt_settlement_flag_date settlement_status settlement_date settlement_amount settlement_percentage settlement_term \n", + "NaN NaN 10000 10000 10000 36 months 10.33% 324.23 B B1 NaN < 1 year MORTGAGE 280000 Not Verified Dec-2018 Current n NaN NaN debt_consolidation Debt consolidation 974xx OR 6.15 2 Jan-1996 0 18 NaN 14 0 9082 38% 23 w 8289.30 8289.30 2261.0 2261.00 1710.70 550.30 0.0 0.0 0.0 Jul-2019 324.23 Sep-2019 Aug-2019 0 NaN 1 Individual NaN NaN NaN 0 671 246828 1 3 2 3 1 48552 62 1 3 4923 46 23900 2 7 1 7 17631 11897 43.1 0 0 158 275 11 1 1 11 NaN 11 NaN 0 3 4 7 7 10 9 11 4 14 0 0 0 4 91.3 28.6 0 0 367828 61364 20900 54912 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN N NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN N NaN NaN NaN NaN NaN NaN \n", + " 4000 4000 4000 36 months 23.40% 155.68 E E1 Security 3 years RENT 90000 Source Verified Dec-2018 Current n NaN NaN debt_consolidation Debt consolidation 070xx NJ 26.33 0 Sep-2006 4 59 NaN 15 0 5199 19.2% 20 w 3423.38 3423.38 1081.96 1081.96 576.62 505.34 0.0 0.0 0.0 Jul-2019 155.68 Sep-2019 Aug-2019 0 NaN 1 Individual NaN NaN NaN 0 0 66926 5 4 3 4 5 61727 86 6 11 1353 68 27100 4 0 4 15 4462 20174 7.9 0 0 147 118 2 2 0 2 NaN 0 NaN 0 5 7 9 9 8 11 12 7 15 0 0 0 9 95 0 0 0 98655 66926 21900 71555 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN N NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN N NaN NaN NaN NaN NaN NaN \n", + " 5000 5000 5000 36 months 17.97% 180.69 D D1 Administrative 6 years MORTGAGE 59280 Source Verified Dec-2018 Late (31-120 days) n NaN NaN debt_consolidation Debt consolidation 490xx MI 10.51 0 Apr-2011 0 NaN NaN 8 0 4599 19.1% 13 w 4456.17 4456.17 895.96 895.96 543.83 352.13 0.0 0.0 0.0 Jun-2019 180.69 Sep-2019 Aug-2019 0 NaN 1 Individual NaN NaN NaN 0 0 110299 0 1 0 2 14 7150 72 0 2 0 35 24100 1 5 0 4 18383 13800 0 0 0 87 92 15 14 2 77 NaN 14 NaN 0 0 3 3 3 4 6 7 3 8 0 0 0 0 100 0 0 0 136927 11749 13800 10000 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN N NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN N NaN NaN NaN NaN NaN NaN \n", + " 23000 23000 23000 60 months 20.89% 620.81 D D4 Operator 5 years RENT 68107 Source Verified Dec-2018 Current n NaN NaN debt_consolidation Debt consolidation 672xx KS 0.52 0 Feb-1997 0 NaN NaN 5 0 976 13% 10 w 21353.16 21353.16 4307.45 4307.45 1646.84 2660.61 0.0 0.0 0.0 Jul-2019 620.81 Sep-2019 Aug-2019 1 NaN 1 Individual NaN NaN NaN 0 2693 976 0 0 0 0 36 0 NaN 3 4 0 13 7500 2 2 4 4 195 3300 0 0 0 237 262 10 10 0 10 NaN 9 NaN 0 0 1 3 4 3 5 7 1 5 0 0 0 3 100 0 0 0 7500 976 3300 0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN N NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN N NaN NaN NaN NaN NaN NaN " + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 97 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "9YPNBdXhQxPz", + "colab_type": "code", + "outputId": "3e109fe3-ade4-45ea-ac54-0c3a69c5abd4", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 372 + } + }, + "source": [ + "df = pd.read_csv('LoanStats_2018Q4.csv', header=1)\n", + "df.head()" + ], + "execution_count": 98, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.6/dist-packages/IPython/core/interactiveshell.py:2718: DtypeWarning: Columns (0,123,124,125,128,129,130,133,138,139,140) have mixed types. Specify dtype option on import or set low_memory=False.\n", + " interactivity=interactivity, compiler=compiler, result=result)\n" + ], + "name": "stderr" + }, + { + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idmember_idloan_amntfunded_amntfunded_amnt_invtermint_rateinstallmentgradesub_gradeemp_titleemp_lengthhome_ownershipannual_incverification_statusissue_dloan_statuspymnt_planurldescpurposetitlezip_codeaddr_statedti...sec_app_chargeoff_within_12_mthssec_app_collections_12_mths_ex_medsec_app_mths_since_last_major_deroghardship_flaghardship_typehardship_reasonhardship_statusdeferral_termhardship_amounthardship_start_datehardship_end_datepayment_plan_start_datehardship_lengthhardship_dpdhardship_loan_statusorig_projected_additional_accrued_interesthardship_payoff_balance_amounthardship_last_payment_amountdebt_settlement_flagdebt_settlement_flag_datesettlement_statussettlement_datesettlement_amountsettlement_percentagesettlement_term
0NaNNaN10000.010000.010000.036 months10.33%324.23BB1NaN< 1 yearMORTGAGE280000.0Not VerifiedDec-2018CurrentnNaNNaNdebt_consolidationDebt consolidation974xxOR6.15...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
1NaNNaN4000.04000.04000.036 months23.40%155.68EE1Security3 yearsRENT90000.0Source VerifiedDec-2018CurrentnNaNNaNdebt_consolidationDebt consolidation070xxNJ26.33...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
2NaNNaN5000.05000.05000.036 months17.97%180.69DD1Administrative6 yearsMORTGAGE59280.0Source VerifiedDec-2018Late (31-120 days)nNaNNaNdebt_consolidationDebt consolidation490xxMI10.51...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
3NaNNaN23000.023000.023000.060 months20.89%620.81DD4Operator5 yearsRENT68107.0Source VerifiedDec-2018CurrentnNaNNaNdebt_consolidationDebt consolidation672xxKS0.52...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
4NaNNaN8000.08000.08000.036 months23.40%311.35EE1Manager10+ yearsOWN43000.0Source VerifiedDec-2018CurrentnNaNNaNdebt_consolidationDebt consolidation357xxAL33.24...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
\n", + "

5 rows × 144 columns

\n", + "
" + ], + "text/plain": [ + " id member_id loan_amnt funded_amnt funded_amnt_inv term \\\n", + "0 NaN NaN 10000.0 10000.0 10000.0 36 months \n", + "1 NaN NaN 4000.0 4000.0 4000.0 36 months \n", + "2 NaN NaN 5000.0 5000.0 5000.0 36 months \n", + "3 NaN NaN 23000.0 23000.0 23000.0 60 months \n", + "4 NaN NaN 8000.0 8000.0 8000.0 36 months \n", + "\n", + " int_rate installment grade sub_grade emp_title emp_length \\\n", + "0 10.33% 324.23 B B1 NaN < 1 year \n", + "1 23.40% 155.68 E E1 Security 3 years \n", + "2 17.97% 180.69 D D1 Administrative 6 years \n", + "3 20.89% 620.81 D D4 Operator 5 years \n", + "4 23.40% 311.35 E E1 Manager 10+ years \n", + "\n", + " home_ownership annual_inc verification_status issue_d \\\n", + "0 MORTGAGE 280000.0 Not Verified Dec-2018 \n", + "1 RENT 90000.0 Source Verified Dec-2018 \n", + "2 MORTGAGE 59280.0 Source Verified Dec-2018 \n", + "3 RENT 68107.0 Source Verified Dec-2018 \n", + "4 OWN 43000.0 Source Verified Dec-2018 \n", + "\n", + " loan_status pymnt_plan url desc purpose \\\n", + "0 Current n NaN NaN debt_consolidation \n", + "1 Current n NaN NaN debt_consolidation \n", + "2 Late (31-120 days) n NaN NaN debt_consolidation \n", + "3 Current n NaN NaN debt_consolidation \n", + "4 Current n NaN NaN debt_consolidation \n", + "\n", + " title zip_code addr_state dti ... \\\n", + "0 Debt consolidation 974xx OR 6.15 ... \n", + "1 Debt consolidation 070xx NJ 26.33 ... \n", + "2 Debt consolidation 490xx MI 10.51 ... \n", + "3 Debt consolidation 672xx KS 0.52 ... \n", + "4 Debt consolidation 357xx AL 33.24 ... \n", + "\n", + " sec_app_chargeoff_within_12_mths sec_app_collections_12_mths_ex_med \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " sec_app_mths_since_last_major_derog hardship_flag hardship_type \\\n", + "0 NaN N NaN \n", + "1 NaN N NaN \n", + "2 NaN N NaN \n", + "3 NaN N NaN \n", + "4 NaN N NaN \n", + "\n", + " hardship_reason hardship_status deferral_term hardship_amount \\\n", + "0 NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN \n", + "\n", + " hardship_start_date hardship_end_date payment_plan_start_date \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " hardship_length hardship_dpd hardship_loan_status \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " orig_projected_additional_accrued_interest hardship_payoff_balance_amount \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " hardship_last_payment_amount debt_settlement_flag \\\n", + "0 NaN N \n", + "1 NaN N \n", + "2 NaN N \n", + "3 NaN N \n", + "4 NaN N \n", + "\n", + " debt_settlement_flag_date settlement_status settlement_date \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " settlement_amount settlement_percentage settlement_term \n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + "[5 rows x 144 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 98 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "SypT0dBWRFaU", + "colab_type": "code", + "outputId": "23fe46de-e2e2-4604-edc8-0fc3a2a68498", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 491 + } + }, + "source": [ + "df.tail()" + ], + "execution_count": 99, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idmember_idloan_amntfunded_amntfunded_amnt_invtermint_rateinstallmentgradesub_gradeemp_titleemp_lengthhome_ownershipannual_incverification_statusissue_dloan_statuspymnt_planurldescpurposetitlezip_codeaddr_statedti...sec_app_chargeoff_within_12_mthssec_app_collections_12_mths_ex_medsec_app_mths_since_last_major_deroghardship_flaghardship_typehardship_reasonhardship_statusdeferral_termhardship_amounthardship_start_datehardship_end_datepayment_plan_start_datehardship_lengthhardship_dpdhardship_loan_statusorig_projected_additional_accrued_interesthardship_payoff_balance_amounthardship_last_payment_amountdebt_settlement_flagdebt_settlement_flag_datesettlement_statussettlement_datesettlement_amountsettlement_percentagesettlement_term
128409NaNNaN5000.05000.05000.036 months13.56%169.83CC1Payoff Clerk10+ yearsMORTGAGE35360.0Not VerifiedOct-2018CurrentnNaNNaNdebt_consolidationDebt consolidation381xxTN11.30...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128410NaNNaN10000.010000.09750.036 months11.06%327.68BB3NaNNaNRENT44400.0Source VerifiedOct-2018CurrentnNaNNaNcredit_cardCredit card refinancing980xxWA11.78...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128411NaNNaN10000.010000.010000.036 months16.91%356.08CC5Key Accounts Manager2 yearsRENT80000.0Not VerifiedOct-2018CurrentnNaNNaNotherOther021xxMA17.72...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128412Total amount funded in policy code 1: 2050909275NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
128413Total amount funded in policy code 2: 820109297NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", + "

5 rows × 144 columns

\n", + "
" + ], + "text/plain": [ + " id member_id \\\n", + "128409 NaN NaN \n", + "128410 NaN NaN \n", + "128411 NaN NaN \n", + "128412 Total amount funded in policy code 1: 2050909275 NaN \n", + "128413 Total amount funded in policy code 2: 820109297 NaN \n", + "\n", + " loan_amnt funded_amnt funded_amnt_inv term int_rate \\\n", + "128409 5000.0 5000.0 5000.0 36 months 13.56% \n", + "128410 10000.0 10000.0 9750.0 36 months 11.06% \n", + "128411 10000.0 10000.0 10000.0 36 months 16.91% \n", + "128412 NaN NaN NaN NaN NaN \n", + "128413 NaN NaN NaN NaN NaN \n", + "\n", + " installment grade sub_grade emp_title emp_length \\\n", + "128409 169.83 C C1 Payoff Clerk 10+ years \n", + "128410 327.68 B B3 NaN NaN \n", + "128411 356.08 C C5 Key Accounts Manager 2 years \n", + "128412 NaN NaN NaN NaN NaN \n", + "128413 NaN NaN NaN NaN NaN \n", + "\n", + " home_ownership annual_inc verification_status issue_d loan_status \\\n", + "128409 MORTGAGE 35360.0 Not Verified Oct-2018 Current \n", + "128410 RENT 44400.0 Source Verified Oct-2018 Current \n", + "128411 RENT 80000.0 Not Verified Oct-2018 Current \n", + "128412 NaN NaN NaN NaN NaN \n", + "128413 NaN NaN NaN NaN NaN \n", + "\n", + " pymnt_plan url desc purpose title \\\n", + "128409 n NaN NaN debt_consolidation Debt consolidation \n", + "128410 n NaN NaN credit_card Credit card refinancing \n", + "128411 n NaN NaN other Other \n", + "128412 NaN NaN NaN NaN NaN \n", + "128413 NaN NaN NaN NaN NaN \n", + "\n", + " zip_code addr_state dti ... sec_app_chargeoff_within_12_mths \\\n", + "128409 381xx TN 11.30 ... NaN \n", + "128410 980xx WA 11.78 ... NaN \n", + "128411 021xx MA 17.72 ... NaN \n", + "128412 NaN NaN NaN ... NaN \n", + "128413 NaN NaN NaN ... NaN \n", + "\n", + " sec_app_collections_12_mths_ex_med \\\n", + "128409 NaN \n", + "128410 NaN \n", + "128411 NaN \n", + "128412 NaN \n", + "128413 NaN \n", + "\n", + " sec_app_mths_since_last_major_derog hardship_flag hardship_type \\\n", + "128409 NaN N NaN \n", + "128410 NaN N NaN \n", + "128411 NaN N NaN \n", + "128412 NaN NaN NaN \n", + "128413 NaN NaN NaN \n", + "\n", + " hardship_reason hardship_status deferral_term hardship_amount \\\n", + "128409 NaN NaN NaN NaN \n", + "128410 NaN NaN NaN NaN \n", + "128411 NaN NaN NaN NaN \n", + "128412 NaN NaN NaN NaN \n", + "128413 NaN NaN NaN NaN \n", + "\n", + " hardship_start_date hardship_end_date payment_plan_start_date \\\n", + "128409 NaN NaN NaN \n", + "128410 NaN NaN NaN \n", + "128411 NaN NaN NaN \n", + "128412 NaN NaN NaN \n", + "128413 NaN NaN NaN \n", + "\n", + " hardship_length hardship_dpd hardship_loan_status \\\n", + "128409 NaN NaN NaN \n", + "128410 NaN NaN NaN \n", + "128411 NaN NaN NaN \n", + "128412 NaN NaN NaN \n", + "128413 NaN NaN NaN \n", + "\n", + " orig_projected_additional_accrued_interest \\\n", + "128409 NaN \n", + "128410 NaN \n", + "128411 NaN \n", + "128412 NaN \n", + "128413 NaN \n", + "\n", + " hardship_payoff_balance_amount hardship_last_payment_amount \\\n", + "128409 NaN NaN \n", + "128410 NaN NaN \n", + "128411 NaN NaN \n", + "128412 NaN NaN \n", + "128413 NaN NaN \n", + "\n", + " debt_settlement_flag debt_settlement_flag_date settlement_status \\\n", + "128409 N NaN NaN \n", + "128410 N NaN NaN \n", + "128411 N NaN NaN \n", + "128412 NaN NaN NaN \n", + "128413 NaN NaN NaN \n", + "\n", + " settlement_date settlement_amount settlement_percentage \\\n", + "128409 NaN NaN NaN \n", + "128410 NaN NaN NaN \n", + "128411 NaN NaN NaN \n", + "128412 NaN NaN NaN \n", + "128413 NaN NaN NaN \n", + "\n", + " settlement_term \n", + "128409 NaN \n", + "128410 NaN \n", + "128411 NaN \n", + "128412 NaN \n", + "128413 NaN \n", + "\n", + "[5 rows x 144 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 99 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "yQyT7nf5RLMU", + "colab_type": "code", + "outputId": "56aa0e0b-a416-4458-bf2f-751509d84720", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 207 + } + }, + "source": [ + "!tail LoanStats_2018Q4.csv" + ], + "execution_count": 100, + "outputs": [ + { + "output_type": "stream", + "text": [ + "\"\",\"\",\"5600\",\"5600\",\"5600\",\" 36 months\",\" 13.56%\",\"190.21\",\"C\",\"C1\",\"\",\"n/a\",\"RENT\",\"15600\",\"Not Verified\",\"Oct-2018\",\"Current\",\"n\",\"\",\"\",\"credit_card\",\"Credit card refinancing\",\"836xx\",\"ID\",\"15.31\",\"0\",\"Aug-2012\",\"0\",\"\",\"97\",\"9\",\"1\",\"5996\",\"34.5%\",\"11\",\"w\",\"4264.17\",\"4264.17\",\"1891.55\",\"1891.55\",\"1335.83\",\"555.72\",\"0.0\",\"0.0\",\"0.0\",\"Aug-2019\",\"190.21\",\"Sep-2019\",\"Aug-2019\",\"0\",\"\",\"1\",\"Individual\",\"\",\"\",\"\",\"0\",\"0\",\"5996\",\"0\",\"0\",\"0\",\"1\",\"20\",\"0\",\"\",\"0\",\"2\",\"3017\",\"35\",\"17400\",\"1\",\"0\",\"0\",\"3\",\"750\",\"4689\",\"45.5\",\"0\",\"0\",\"20\",\"73\",\"13\",\"13\",\"0\",\"13\",\"\",\"20\",\"\",\"0\",\"3\",\"5\",\"4\",\"4\",\"1\",\"9\",\"10\",\"5\",\"9\",\"0\",\"0\",\"0\",\"0\",\"100\",\"25\",\"1\",\"0\",\"17400\",\"5996\",\"8600\",\"0\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\"\n", + "\"\",\"\",\"23000\",\"23000\",\"23000\",\" 36 months\",\" 15.02%\",\"797.53\",\"C\",\"C3\",\"Tax Consultant\",\"10+ years\",\"MORTGAGE\",\"75000\",\"Source Verified\",\"Oct-2018\",\"Charged Off\",\"n\",\"\",\"\",\"debt_consolidation\",\"Debt consolidation\",\"352xx\",\"AL\",\"20.95\",\"1\",\"Aug-1985\",\"2\",\"22\",\"\",\"12\",\"0\",\"22465\",\"43.6%\",\"28\",\"w\",\"0.00\",\"0.00\",\"1547.08\",\"1547.08\",\"1025.67\",\"521.41\",\"0.0\",\"0.0\",\"0.0\",\"Dec-2018\",\"797.53\",\"\",\"Nov-2018\",\"0\",\"\",\"1\",\"Individual\",\"\",\"\",\"\",\"0\",\"0\",\"259658\",\"4\",\"2\",\"3\",\"3\",\"6\",\"18149\",\"86\",\"4\",\"6\",\"12843\",\"56\",\"51500\",\"2\",\"2\",\"5\",\"11\",\"21638\",\"26321\",\"44.1\",\"0\",\"0\",\"12\",\"397\",\"4\",\"4\",\"6\",\"5\",\"22\",\"4\",\"22\",\"0\",\"4\",\"5\",\"7\",\"14\",\"3\",\"9\",\"19\",\"5\",\"12\",\"0\",\"0\",\"0\",\"7\",\"96.4\",\"14.3\",\"0\",\"0\",\"296500\",\"40614\",\"47100\",\"21000\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\"\n", + "\"\",\"\",\"10000\",\"10000\",\"10000\",\" 36 months\",\" 15.02%\",\"346.76\",\"C\",\"C3\",\"security guard\",\"5 years\",\"MORTGAGE\",\"38000\",\"Not Verified\",\"Oct-2018\",\"Current\",\"n\",\"\",\"\",\"debt_consolidation\",\"Debt consolidation\",\"443xx\",\"OH\",\"13.16\",\"3\",\"Jul-1982\",\"0\",\"6\",\"\",\"11\",\"0\",\"5634\",\"37.1%\",\"16\",\"w\",\"7655.00\",\"7655.00\",\"3459.26\",\"3459.26\",\"2345.00\",\"1114.26\",\"0.0\",\"0.0\",\"0.0\",\"Aug-2019\",\"346.76\",\"Sep-2019\",\"Aug-2019\",\"0\",\"\",\"1\",\"Individual\",\"\",\"\",\"\",\"0\",\"155\",\"77424\",\"0\",\"1\",\"0\",\"0\",\"34\",\"200\",\"10\",\"1\",\"1\",\"1866\",\"42\",\"15200\",\"2\",\"0\",\"0\",\"2\",\"7039\",\"4537\",\"50.1\",\"0\",\"0\",\"34\",\"434\",\"11\",\"11\",\"3\",\"11\",\"6\",\"17\",\"6\",\"0\",\"3\",\"5\",\"5\",\"6\",\"1\",\"8\",\"11\",\"5\",\"11\",\"0\",\"0\",\"0\",\"1\",\"73.3\",\"40\",\"0\",\"0\",\"91403\",\"9323\",\"9100\",\"2000\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\"\n", + "\"\",\"\",\"5000\",\"5000\",\"5000\",\" 36 months\",\" 13.56%\",\"169.83\",\"C\",\"C1\",\"Payoff Clerk\",\"10+ years\",\"MORTGAGE\",\"35360\",\"Not Verified\",\"Oct-2018\",\"Current\",\"n\",\"\",\"\",\"debt_consolidation\",\"Debt consolidation\",\"381xx\",\"TN\",\"11.3\",\"1\",\"Jun-2006\",\"0\",\"21\",\"\",\"9\",\"0\",\"2597\",\"27.3%\",\"15\",\"f\",\"3807.30\",\"3807.30\",\"1694.53\",\"1694.53\",\"1192.70\",\"501.83\",\"0.0\",\"0.0\",\"0.0\",\"Aug-2019\",\"169.83\",\"Sep-2019\",\"Aug-2019\",\"0\",\"\",\"1\",\"Individual\",\"\",\"\",\"\",\"0\",\"1413\",\"69785\",\"0\",\"2\",\"0\",\"1\",\"16\",\"2379\",\"40\",\"3\",\"4\",\"1826\",\"32\",\"9500\",\"0\",\"0\",\"1\",\"5\",\"8723\",\"1174\",\"60.9\",\"0\",\"0\",\"147\",\"85\",\"9\",\"9\",\"2\",\"10\",\"21\",\"9\",\"21\",\"0\",\"1\",\"3\",\"2\",\"2\",\"6\",\"6\",\"7\",\"3\",\"9\",\"0\",\"0\",\"0\",\"3\",\"92.9\",\"50\",\"0\",\"0\",\"93908\",\"4976\",\"3000\",\"6028\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\"\n", + "\"\",\"\",\"10000\",\"10000\",\"9750\",\" 36 months\",\" 11.06%\",\"327.68\",\"B\",\"B3\",\"\",\"n/a\",\"RENT\",\"44400\",\"Source Verified\",\"Oct-2018\",\"Current\",\"n\",\"\",\"\",\"credit_card\",\"Credit card refinancing\",\"980xx\",\"WA\",\"11.78\",\"0\",\"Oct-2008\",\"2\",\"40\",\"\",\"15\",\"0\",\"6269\",\"13.1%\",\"25\",\"f\",\"7544.75\",\"7356.13\",\"3261.44\",\"3179.90\",\"2455.25\",\"806.19\",\"0.0\",\"0.0\",\"0.0\",\"Aug-2019\",\"327.68\",\"Sep-2019\",\"Aug-2019\",\"0\",\"53\",\"1\",\"Individual\",\"\",\"\",\"\",\"0\",\"520\",\"16440\",\"3\",\"1\",\"1\",\"1\",\"2\",\"10171\",\"100\",\"2\",\"5\",\"404\",\"28\",\"47700\",\"0\",\"3\",\"5\",\"6\",\"1265\",\"20037\",\"2.3\",\"0\",\"0\",\"61\",\"119\",\"1\",\"1\",\"0\",\"1\",\"\",\"1\",\"40\",\"1\",\"2\",\"4\",\"6\",\"8\",\"3\",\"14\",\"22\",\"4\",\"15\",\"0\",\"0\",\"0\",\"3\",\"92\",\"0\",\"0\",\"0\",\"57871\",\"16440\",\"20500\",\"10171\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\"\n", + "\"\",\"\",\"10000\",\"10000\",\"10000\",\" 36 months\",\" 16.91%\",\"356.08\",\"C\",\"C5\",\"Key Accounts Manager\",\"2 years\",\"RENT\",\"80000\",\"Not Verified\",\"Oct-2018\",\"Current\",\"n\",\"\",\"\",\"other\",\"Other\",\"021xx\",\"MA\",\"17.72\",\"1\",\"Sep-2006\",\"0\",\"14\",\"\",\"17\",\"0\",\"1942\",\"30.8%\",\"31\",\"w\",\"7706.67\",\"7706.67\",\"3551.41\",\"3551.41\",\"2293.33\",\"1258.08\",\"0.0\",\"0.0\",\"0.0\",\"Aug-2019\",\"356.08\",\"Sep-2019\",\"Aug-2019\",\"0\",\"25\",\"1\",\"Individual\",\"\",\"\",\"\",\"0\",\"0\",\"59194\",\"0\",\"15\",\"1\",\"1\",\"12\",\"57252\",\"85\",\"0\",\"0\",\"1942\",\"80\",\"6300\",\"0\",\"5\",\"0\",\"1\",\"3482\",\"2058\",\"48.5\",\"0\",\"0\",\"144\",\"142\",\"40\",\"12\",\"0\",\"131\",\"30\",\"\",\"30\",\"3\",\"1\",\"1\",\"1\",\"5\",\"22\",\"2\",\"9\",\"1\",\"17\",\"0\",\"0\",\"0\",\"1\",\"74.2\",\"0\",\"0\",\"0\",\"73669\",\"59194\",\"4000\",\"67369\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"N\",\"\",\"\",\"\",\"\",\"\",\"\"\n", + "\n", + "\n", + "Total amount funded in policy code 1: 2050909275\n", + "Total amount funded in policy code 2: 820109297\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "a5LOjtqBRRta", + "colab_type": "code", + "outputId": "b6724342-9a41-4366-d0ae-7b3d77cc9884", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 338 + } + }, + "source": [ + "df = pd.read_csv('LoanStats_2018Q4.csv', header=1, skipfooter=2, engine='python')\n", + "df.head()" + ], + "execution_count": 101, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idmember_idloan_amntfunded_amntfunded_amnt_invtermint_rateinstallmentgradesub_gradeemp_titleemp_lengthhome_ownershipannual_incverification_statusissue_dloan_statuspymnt_planurldescpurposetitlezip_codeaddr_statedti...sec_app_chargeoff_within_12_mthssec_app_collections_12_mths_ex_medsec_app_mths_since_last_major_deroghardship_flaghardship_typehardship_reasonhardship_statusdeferral_termhardship_amounthardship_start_datehardship_end_datepayment_plan_start_datehardship_lengthhardship_dpdhardship_loan_statusorig_projected_additional_accrued_interesthardship_payoff_balance_amounthardship_last_payment_amountdebt_settlement_flagdebt_settlement_flag_datesettlement_statussettlement_datesettlement_amountsettlement_percentagesettlement_term
0NaNNaN100001000010000.036 months10.33%324.23BB1NaN< 1 yearMORTGAGE280000.0Not VerifiedDec-2018CurrentnNaNNaNdebt_consolidationDebt consolidation974xxOR6.15...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
1NaNNaN400040004000.036 months23.40%155.68EE1Security3 yearsRENT90000.0Source VerifiedDec-2018CurrentnNaNNaNdebt_consolidationDebt consolidation070xxNJ26.33...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
2NaNNaN500050005000.036 months17.97%180.69DD1Administrative6 yearsMORTGAGE59280.0Source VerifiedDec-2018Late (31-120 days)nNaNNaNdebt_consolidationDebt consolidation490xxMI10.51...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
3NaNNaN230002300023000.060 months20.89%620.81DD4Operator5 yearsRENT68107.0Source VerifiedDec-2018CurrentnNaNNaNdebt_consolidationDebt consolidation672xxKS0.52...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
4NaNNaN800080008000.036 months23.40%311.35EE1Manager10+ yearsOWN43000.0Source VerifiedDec-2018CurrentnNaNNaNdebt_consolidationDebt consolidation357xxAL33.24...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
\n", + "

5 rows × 144 columns

\n", + "
" + ], + "text/plain": [ + " id member_id loan_amnt funded_amnt funded_amnt_inv term \\\n", + "0 NaN NaN 10000 10000 10000.0 36 months \n", + "1 NaN NaN 4000 4000 4000.0 36 months \n", + "2 NaN NaN 5000 5000 5000.0 36 months \n", + "3 NaN NaN 23000 23000 23000.0 60 months \n", + "4 NaN NaN 8000 8000 8000.0 36 months \n", + "\n", + " int_rate installment grade sub_grade emp_title emp_length \\\n", + "0 10.33% 324.23 B B1 NaN < 1 year \n", + "1 23.40% 155.68 E E1 Security 3 years \n", + "2 17.97% 180.69 D D1 Administrative 6 years \n", + "3 20.89% 620.81 D D4 Operator 5 years \n", + "4 23.40% 311.35 E E1 Manager 10+ years \n", + "\n", + " home_ownership annual_inc verification_status issue_d \\\n", + "0 MORTGAGE 280000.0 Not Verified Dec-2018 \n", + "1 RENT 90000.0 Source Verified Dec-2018 \n", + "2 MORTGAGE 59280.0 Source Verified Dec-2018 \n", + "3 RENT 68107.0 Source Verified Dec-2018 \n", + "4 OWN 43000.0 Source Verified Dec-2018 \n", + "\n", + " loan_status pymnt_plan url desc purpose \\\n", + "0 Current n NaN NaN debt_consolidation \n", + "1 Current n NaN NaN debt_consolidation \n", + "2 Late (31-120 days) n NaN NaN debt_consolidation \n", + "3 Current n NaN NaN debt_consolidation \n", + "4 Current n NaN NaN debt_consolidation \n", + "\n", + " title zip_code addr_state dti ... \\\n", + "0 Debt consolidation 974xx OR 6.15 ... \n", + "1 Debt consolidation 070xx NJ 26.33 ... \n", + "2 Debt consolidation 490xx MI 10.51 ... \n", + "3 Debt consolidation 672xx KS 0.52 ... \n", + "4 Debt consolidation 357xx AL 33.24 ... \n", + "\n", + " sec_app_chargeoff_within_12_mths sec_app_collections_12_mths_ex_med \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " sec_app_mths_since_last_major_derog hardship_flag hardship_type \\\n", + "0 NaN N NaN \n", + "1 NaN N NaN \n", + "2 NaN N NaN \n", + "3 NaN N NaN \n", + "4 NaN N NaN \n", + "\n", + " hardship_reason hardship_status deferral_term hardship_amount \\\n", + "0 NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN \n", + "\n", + " hardship_start_date hardship_end_date payment_plan_start_date \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " hardship_length hardship_dpd hardship_loan_status \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " orig_projected_additional_accrued_interest hardship_payoff_balance_amount \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " hardship_last_payment_amount debt_settlement_flag \\\n", + "0 NaN N \n", + "1 NaN N \n", + "2 NaN N \n", + "3 NaN N \n", + "4 NaN N \n", + "\n", + " debt_settlement_flag_date settlement_status settlement_date \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " settlement_amount settlement_percentage settlement_term \n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + "[5 rows x 144 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 101 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "dV__dqAfS3jW", + "colab_type": "code", + "outputId": "30f067cc-9720-460c-8c22-1f259b0ff000", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 355 + } + }, + "source": [ + "df.tail()" + ], + "execution_count": 102, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idmember_idloan_amntfunded_amntfunded_amnt_invtermint_rateinstallmentgradesub_gradeemp_titleemp_lengthhome_ownershipannual_incverification_statusissue_dloan_statuspymnt_planurldescpurposetitlezip_codeaddr_statedti...sec_app_chargeoff_within_12_mthssec_app_collections_12_mths_ex_medsec_app_mths_since_last_major_deroghardship_flaghardship_typehardship_reasonhardship_statusdeferral_termhardship_amounthardship_start_datehardship_end_datepayment_plan_start_datehardship_lengthhardship_dpdhardship_loan_statusorig_projected_additional_accrued_interesthardship_payoff_balance_amounthardship_last_payment_amountdebt_settlement_flagdebt_settlement_flag_datesettlement_statussettlement_datesettlement_amountsettlement_percentagesettlement_term
128407NaNNaN230002300023000.036 months15.02%797.53CC3Tax Consultant10+ yearsMORTGAGE75000.0Source VerifiedOct-2018Charged OffnNaNNaNdebt_consolidationDebt consolidation352xxAL20.95...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128408NaNNaN100001000010000.036 months15.02%346.76CC3security guard5 yearsMORTGAGE38000.0Not VerifiedOct-2018CurrentnNaNNaNdebt_consolidationDebt consolidation443xxOH13.16...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128409NaNNaN500050005000.036 months13.56%169.83CC1Payoff Clerk10+ yearsMORTGAGE35360.0Not VerifiedOct-2018CurrentnNaNNaNdebt_consolidationDebt consolidation381xxTN11.30...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128410NaNNaN10000100009750.036 months11.06%327.68BB3NaNNaNRENT44400.0Source VerifiedOct-2018CurrentnNaNNaNcredit_cardCredit card refinancing980xxWA11.78...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128411NaNNaN100001000010000.036 months16.91%356.08CC5Key Accounts Manager2 yearsRENT80000.0Not VerifiedOct-2018CurrentnNaNNaNotherOther021xxMA17.72...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
\n", + "

5 rows × 144 columns

\n", + "
" + ], + "text/plain": [ + " id member_id loan_amnt funded_amnt funded_amnt_inv term \\\n", + "128407 NaN NaN 23000 23000 23000.0 36 months \n", + "128408 NaN NaN 10000 10000 10000.0 36 months \n", + "128409 NaN NaN 5000 5000 5000.0 36 months \n", + "128410 NaN NaN 10000 10000 9750.0 36 months \n", + "128411 NaN NaN 10000 10000 10000.0 36 months \n", + "\n", + " int_rate installment grade sub_grade emp_title emp_length \\\n", + "128407 15.02% 797.53 C C3 Tax Consultant 10+ years \n", + "128408 15.02% 346.76 C C3 security guard 5 years \n", + "128409 13.56% 169.83 C C1 Payoff Clerk 10+ years \n", + "128410 11.06% 327.68 B B3 NaN NaN \n", + "128411 16.91% 356.08 C C5 Key Accounts Manager 2 years \n", + "\n", + " home_ownership annual_inc verification_status issue_d loan_status \\\n", + "128407 MORTGAGE 75000.0 Source Verified Oct-2018 Charged Off \n", + "128408 MORTGAGE 38000.0 Not Verified Oct-2018 Current \n", + "128409 MORTGAGE 35360.0 Not Verified Oct-2018 Current \n", + "128410 RENT 44400.0 Source Verified Oct-2018 Current \n", + "128411 RENT 80000.0 Not Verified Oct-2018 Current \n", + "\n", + " pymnt_plan url desc purpose title \\\n", + "128407 n NaN NaN debt_consolidation Debt consolidation \n", + "128408 n NaN NaN debt_consolidation Debt consolidation \n", + "128409 n NaN NaN debt_consolidation Debt consolidation \n", + "128410 n NaN NaN credit_card Credit card refinancing \n", + "128411 n NaN NaN other Other \n", + "\n", + " zip_code addr_state dti ... sec_app_chargeoff_within_12_mths \\\n", + "128407 352xx AL 20.95 ... NaN \n", + "128408 443xx OH 13.16 ... NaN \n", + "128409 381xx TN 11.30 ... NaN \n", + "128410 980xx WA 11.78 ... NaN \n", + "128411 021xx MA 17.72 ... NaN \n", + "\n", + " sec_app_collections_12_mths_ex_med \\\n", + "128407 NaN \n", + "128408 NaN \n", + "128409 NaN \n", + "128410 NaN \n", + "128411 NaN \n", + "\n", + " sec_app_mths_since_last_major_derog hardship_flag hardship_type \\\n", + "128407 NaN N NaN \n", + "128408 NaN N NaN \n", + "128409 NaN N NaN \n", + "128410 NaN N NaN \n", + "128411 NaN N NaN \n", + "\n", + " hardship_reason hardship_status deferral_term hardship_amount \\\n", + "128407 NaN NaN NaN NaN \n", + "128408 NaN NaN NaN NaN \n", + "128409 NaN NaN NaN NaN \n", + "128410 NaN NaN NaN NaN \n", + "128411 NaN NaN NaN NaN \n", + "\n", + " hardship_start_date hardship_end_date payment_plan_start_date \\\n", + "128407 NaN NaN NaN \n", + "128408 NaN NaN NaN \n", + "128409 NaN NaN NaN \n", + "128410 NaN NaN NaN \n", + "128411 NaN NaN NaN \n", + "\n", + " hardship_length hardship_dpd hardship_loan_status \\\n", + "128407 NaN NaN NaN \n", + "128408 NaN NaN NaN \n", + "128409 NaN NaN NaN \n", + "128410 NaN NaN NaN \n", + "128411 NaN NaN NaN \n", + "\n", + " orig_projected_additional_accrued_interest \\\n", + "128407 NaN \n", + "128408 NaN \n", + "128409 NaN \n", + "128410 NaN \n", + "128411 NaN \n", + "\n", + " hardship_payoff_balance_amount hardship_last_payment_amount \\\n", + "128407 NaN NaN \n", + "128408 NaN NaN \n", + "128409 NaN NaN \n", + "128410 NaN NaN \n", + "128411 NaN NaN \n", + "\n", + " debt_settlement_flag debt_settlement_flag_date settlement_status \\\n", + "128407 N NaN NaN \n", + "128408 N NaN NaN \n", + "128409 N NaN NaN \n", + "128410 N NaN NaN \n", + "128411 N NaN NaN \n", + "\n", + " settlement_date settlement_amount settlement_percentage \\\n", + "128407 NaN NaN NaN \n", + "128408 NaN NaN NaN \n", + "128409 NaN NaN NaN \n", + "128410 NaN NaN NaN \n", + "128411 NaN NaN NaN \n", + "\n", + " settlement_term \n", + "128407 NaN \n", + "128408 NaN \n", + "128409 NaN \n", + "128410 NaN \n", + "128411 NaN \n", + "\n", + "[5 rows x 144 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 102 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "kpKkfle0S7Gv", + "colab_type": "code", + "outputId": "0fa79d1f-199c-4694-fd01-bc64e8b8dae4", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "df.shape" + ], + "execution_count": 103, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(128412, 144)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 103 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6Q4VDQMAS9A3", + "colab_type": "code", + "colab": {} + }, + "source": [ + "pd.set_option('display.max_rows', 50)\n", + "pd.set_option('display.max_columns', 50)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "80wp2j5ZTIxG", + "colab_type": "code", + "outputId": "26793326-2eb3-44df-8c4f-5cf927c15347", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 901 + } + }, + "source": [ + "df.isnull().sum()" + ], + "execution_count": 105, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "id 128412\n", + "member_id 128412\n", + "loan_amnt 0\n", + "funded_amnt 0\n", + "funded_amnt_inv 0\n", + "term 0\n", + "int_rate 0\n", + "installment 0\n", + "grade 0\n", + "sub_grade 0\n", + "emp_title 20947\n", + "emp_length 11704\n", + "home_ownership 0\n", + "annual_inc 0\n", + "verification_status 0\n", + "issue_d 0\n", + "loan_status 0\n", + "pymnt_plan 0\n", + "url 128412\n", + "desc 128412\n", + "purpose 0\n", + "title 0\n", + "zip_code 0\n", + "addr_state 0\n", + "dti 237\n", + " ... \n", + "sec_app_chargeoff_within_12_mths 111630\n", + "sec_app_collections_12_mths_ex_med 111630\n", + "sec_app_mths_since_last_major_derog 123258\n", + "hardship_flag 0\n", + "hardship_type 128385\n", + "hardship_reason 128385\n", + "hardship_status 128385\n", + "deferral_term 128385\n", + "hardship_amount 128385\n", + "hardship_start_date 128385\n", + "hardship_end_date 128385\n", + "payment_plan_start_date 128385\n", + "hardship_length 128385\n", + "hardship_dpd 128385\n", + "hardship_loan_status 128385\n", + "orig_projected_additional_accrued_interest 128386\n", + "hardship_payoff_balance_amount 128385\n", + "hardship_last_payment_amount 128385\n", + "debt_settlement_flag 0\n", + "debt_settlement_flag_date 128301\n", + "settlement_status 128301\n", + "settlement_date 128301\n", + "settlement_amount 128301\n", + "settlement_percentage 128301\n", + "settlement_term 128301\n", + "Length: 144, dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 105 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "w7gHF--IUPiM", + "colab_type": "code", + "outputId": "f97e99de-8264-4693-9061-f7dfe6ee212d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 901 + } + }, + "source": [ + "df.isnull().sum().sort_values(ascending=False)" + ], + "execution_count": 106, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "id 128412\n", + "desc 128412\n", + "member_id 128412\n", + "url 128412\n", + "orig_projected_additional_accrued_interest 128386\n", + "hardship_type 128385\n", + "hardship_last_payment_amount 128385\n", + "hardship_payoff_balance_amount 128385\n", + "hardship_reason 128385\n", + "hardship_loan_status 128385\n", + "hardship_dpd 128385\n", + "hardship_length 128385\n", + "payment_plan_start_date 128385\n", + "hardship_end_date 128385\n", + "hardship_start_date 128385\n", + "hardship_amount 128385\n", + "deferral_term 128385\n", + "hardship_status 128385\n", + "settlement_percentage 128301\n", + "settlement_term 128301\n", + "settlement_status 128301\n", + "settlement_amount 128301\n", + "settlement_date 128301\n", + "debt_settlement_flag_date 128301\n", + "sec_app_mths_since_last_major_derog 123258\n", + " ... \n", + "total_il_high_credit_limit 0\n", + "mort_acc 0\n", + "mo_sin_rcnt_tl 0\n", + "mo_sin_rcnt_rev_tl_op 0\n", + "mo_sin_old_rev_tl_op 0\n", + "policy_code 0\n", + "application_type 0\n", + "acc_now_delinq 0\n", + "tot_coll_amt 0\n", + "tot_cur_bal 0\n", + "open_acc_6m 0\n", + "open_act_il 0\n", + "hardship_flag 0\n", + "open_il_24m 0\n", + "total_bal_il 0\n", + "open_rv_12m 0\n", + "open_rv_24m 0\n", + "max_bal_bc 0\n", + "total_rev_hi_lim 0\n", + "total_cu_tl 0\n", + "inq_last_12m 0\n", + "acc_open_past_24mths 0\n", + "chargeoff_within_12_mths 0\n", + "delinq_amnt 0\n", + "inq_fi 0\n", + "Length: 144, dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 106 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gz8cSyrMUi87", + "colab_type": "code", + "outputId": "345e6062-7478-4801-e6d1-a1c08359270c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "# Work with strings\n", + "\n", + "df.drop(columns=['id', 'member_id', 'desc', 'url'])" + ], + "execution_count": 107, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
loan_amntfunded_amntfunded_amnt_invtermint_rateinstallmentgradesub_gradeemp_titleemp_lengthhome_ownershipannual_incverification_statusissue_dloan_statuspymnt_planpurposetitlezip_codeaddr_statedtidelinq_2yrsearliest_cr_lineinq_last_6mthsmths_since_last_delinq...sec_app_chargeoff_within_12_mthssec_app_collections_12_mths_ex_medsec_app_mths_since_last_major_deroghardship_flaghardship_typehardship_reasonhardship_statusdeferral_termhardship_amounthardship_start_datehardship_end_datepayment_plan_start_datehardship_lengthhardship_dpdhardship_loan_statusorig_projected_additional_accrued_interesthardship_payoff_balance_amounthardship_last_payment_amountdebt_settlement_flagdebt_settlement_flag_datesettlement_statussettlement_datesettlement_amountsettlement_percentagesettlement_term
0100001000010000.036 months10.33%324.23BB1NaN< 1 yearMORTGAGE280000.0Not VerifiedDec-2018Currentndebt_consolidationDebt consolidation974xxOR6.152Jan-1996018.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
1400040004000.036 months23.40%155.68EE1Security3 yearsRENT90000.0Source VerifiedDec-2018Currentndebt_consolidationDebt consolidation070xxNJ26.330Sep-2006459.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
2500050005000.036 months17.97%180.69DD1Administrative6 yearsMORTGAGE59280.0Source VerifiedDec-2018Late (31-120 days)ndebt_consolidationDebt consolidation490xxMI10.510Apr-20110NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
3230002300023000.060 months20.89%620.81DD4Operator5 yearsRENT68107.0Source VerifiedDec-2018Currentndebt_consolidationDebt consolidation672xxKS0.520Feb-19970NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
4800080008000.036 months23.40%311.35EE1Manager10+ yearsOWN43000.0Source VerifiedDec-2018Currentndebt_consolidationDebt consolidation357xxAL33.240Jan-19950NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
5320753207532075.060 months11.80%710.26BB4Nursing Supervisor10+ yearsMORTGAGE150000.0Not VerifiedDec-2018Currentncredit_cardCredit card refinancing231xxVA22.210Aug-20050NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
6960096009600.036 months12.98%323.37BB5NaNNaNMORTGAGE35704.0Not VerifiedDec-2018Currentnhome_improvementHome improvement401xxKY0.840Nov-2003069.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
7300003000030000.060 months18.94%777.23DD2Postmaster10+ yearsMORTGAGE90000.0Source VerifiedDec-2018Currentndebt_consolidationDebt consolidation713xxLA26.520Jun-1987071.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
8250025002500.036 months13.56%84.92CC1Chef10+ yearsRENT55000.0Not VerifiedDec-2018Fully Paidndebt_consolidationDebt consolidation109xxNY18.240Apr-20011NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
9120001200012000.060 months13.56%276.49CC1NaN< 1 yearMORTGAGE40000.0Not VerifiedDec-2018Currentndebt_consolidationDebt consolidation180xxPA19.230Aug-20052NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
10100001000010000.060 months19.92%264.50DD3Material Handler10+ yearsMORTGAGE80000.0Not VerifiedDec-2018Currentndebt_consolidationDebt consolidation648xxMO20.670Apr-2005037.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
11160001600016000.060 months17.97%406.04DD1Instructional Coordinator5 yearsMORTGAGE51000.0Not VerifiedDec-2018Currentndebt_consolidationDebt consolidation284xxNC21.910Oct-2005152.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
12160001600016000.060 months26.31%481.99EE4Financial Relationship Associate< 1 yearRENT33000.0Source VerifiedDec-2018Currentncredit_cardCredit card refinancing290xxSC33.620Sep-20101NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
13150001500014975.060 months14.47%352.69CC2NaNNaNMORTGAGE30000.0Source VerifiedDec-2018Currentndebt_consolidationDebt consolidation756xxTX41.600Oct-19990NaN...0.00.0NaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
14130001300013000.036 months23.40%505.95EE1Sale Representative2 yearsMORTGAGE90000.0VerifiedDec-2018CurrentnotherOther191xxPA39.730May-20070NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
15960096009600.036 months23.40%373.62EE1driver coordinator9 yearsRENT65000.0Not VerifiedDec-2018Currentncredit_cardCredit card refinancing265xxWV23.011Sep-2003016.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
16350035003500.036 months20.89%131.67DD4gas attendant10+ yearsMORTGAGE40000.0Source VerifiedDec-2018CurrentncarCar financing078xxNJ9.090Oct-2004124.0...0.00.046.0NNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
17250002500025000.060 months16.91%620.11CC5Processor10+ yearsMORTGAGE23878.0Not VerifiedDec-2018Currentndebt_consolidationDebt consolidation453xxOH6.260Oct-20100NaN...0.00.0NaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
18160001600016000.060 months20.89%431.87DD4Neonatal Nurse Practitioner4 yearsMORTGAGE120000.0Not VerifiedDec-2018Currentncredit_cardCredit card refinancing720xxAR27.571Jul-200508.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
19130001300013000.060 months14.47%305.67CC2Stationary Engineer10+ yearsMORTGAGE75000.0Not VerifiedDec-2018Fully Paidndebt_consolidationDebt consolidation741xxOK26.160Feb-20011NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
20100001000010000.036 months13.56%339.65CC1NaN< 1 yearMORTGAGE65000.0Not VerifiedDec-2018Currentncredit_cardCredit card refinancing937xxCA10.620Dec-2004130.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
21130001300013000.036 months14.47%447.29CC2Exhibits director10+ yearsMORTGAGE55000.0VerifiedDec-2018Currentncredit_cardCredit card refinancing611xxIL10.580Oct-20010NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
22700070007000.036 months12.98%235.80BB5Worship Director4 yearsMORTGAGE102500.0Not VerifiedDec-2018CurrentnhouseHome buying436xxOH15.200Dec-2002038.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
23330033003300.036 months23.40%128.44EE1Program Manager3 yearsRENT49700.0Source VerifiedDec-2018CurrentnvacationVacation310xxGA14.320Nov-2006143.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
24200002000020000.060 months11.80%442.88BB4NaNNaNMORTGAGE47590.0VerifiedDec-2018Currentncredit_cardCredit card refinancing156xxPA9.530Sep-1999062.0...0.00.0NaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
............................................................................................................................................................
128387600060006000.036 months11.55%198.00BB4ENGINEER2 yearsRENT90000.0Not VerifiedOct-2018Currentncredit_cardCredit card refinancing076xxNJ1.640Sep-2010153.0...0.00.0NaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128388200002000020000.036 months8.46%630.99AA5Welder/Blacksmith10+ yearsMORTGAGE97000.0Source VerifiedOct-2018Currentndebt_consolidationDebt consolidation604xxIL15.590Jul-1999164.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128389600060005750.036 months11.55%198.00BB4RN Supervisor6 yearsRENT70000.0Not VerifiedOct-2018Charged OffnmedicalMedical expenses912xxCA11.524Dec-1993017.0...0.00.0NaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128390240002400024000.036 months19.92%890.95DD3Corrections officer10+ yearsRENT34000.0VerifiedOct-2018Late (31-120 days)ndebt_consolidationDebt consolidation344xxFL74.090Jun-20060NaN...0.01.075.0NNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128391350003500034975.036 months6.67%1075.43AA2NaNNaNMORTGAGE85000.0Source VerifiedOct-2018Fully Paidndebt_consolidationDebt consolidation301xxGA22.150Apr-1997254.0...0.00.0NaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128392650065006500.036 months26.31%262.97EE4Merchandise Team Captain10+ yearsMORTGAGE35000.0VerifiedOct-2018Currentnhome_improvementHome improvement328xxFL39.510Mar-2004070.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128393650065006500.036 months16.91%231.46CC5Senior Accountant, Fixed Assets Acctg7 yearsRENT74160.0Source VerifiedOct-2018Currentndebt_consolidationDebt consolidation600xxIL27.790Jun-2006038.0...0.00.058.0NNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128394500050005000.036 months6.11%152.36AA1Implementation Manager9 yearsMORTGAGE82000.0Not VerifiedOct-2018CurrentnotherOther750xxTX1.350Feb-2005033.0...0.00.013.0NNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128395220002200022000.036 months11.55%726.00BB4Sr. application analyst10+ yearsMORTGAGE72000.0Source VerifiedOct-2018Currentndebt_consolidationDebt consolidation481xxMI46.980Jun-1999026.0...0.00.0NaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128396240002400024000.060 months15.02%571.22CC3Instructional Technology Specialist10+ yearsMORTGAGE60000.0Not VerifiedOct-2018Currentndebt_consolidationDebt consolidation750xxTX9.720Apr-1999143.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128397200002000020000.060 months15.02%476.01CC3Technical Supvervisor10+ yearsMORTGAGE75000.0VerifiedOct-2018Fully Paidncredit_cardCredit card refinancing786xxTX24.820Apr-19912NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128398120001200012000.060 months18.94%310.90DD2Senior Business Account Executive6 yearsRENT128000.0VerifiedOct-2018Currentndebt_consolidationDebt consolidation937xxCA13.320Nov-2007146.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128399500050005000.036 months15.02%173.38CC3Tech10+ yearsMORTGAGE35000.0Source VerifiedOct-2018Currentndebt_consolidationDebt consolidation324xxFL31.762Jun-2003015.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128400200002000020000.060 months15.02%476.01CC3production supervisor10+ yearsMORTGAGE80000.0Not VerifiedOct-2018Currentndebt_consolidationDebt consolidation117xxNY16.940Oct-20050NaN...0.00.0NaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128401200002000020000.036 months11.55%660.00BB4secondary opps/lead coater10+ yearsOWN45000.0Not VerifiedOct-2018Currentnhome_improvementHome improvement015xxMA22.130Dec-2003041.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128402175001750017500.060 months22.35%486.82DD5NaNNaNRENT25000.0VerifiedOct-2018Currentndebt_consolidationDebt consolidation640xxMO27.750Oct-20010NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128403500050005000.036 months16.14%176.14CC4NaNNaNOWN9200.0Source VerifiedOct-2018Currentndebt_consolidationDebt consolidation365xxAL23.500Apr-20151NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128404500050005000.036 months16.14%176.14CC4Oncology Medical Assistant3 yearsMORTGAGE46400.0Source VerifiedOct-2018Fully Paidndebt_consolidationDebt consolidation338xxFL16.850Nov-2003029.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128405220002200022000.060 months7.84%444.40AA4Owner10+ yearsMORTGAGE55000.0Not VerifiedOct-2018CurrentnotherOther982xxWA2.180Apr-19870NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128406560056005600.036 months13.56%190.21CC1NaNNaNRENT15600.0Not VerifiedOct-2018Currentncredit_cardCredit card refinancing836xxID15.310Aug-20120NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128407230002300023000.036 months15.02%797.53CC3Tax Consultant10+ yearsMORTGAGE75000.0Source VerifiedOct-2018Charged Offndebt_consolidationDebt consolidation352xxAL20.951Aug-1985222.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128408100001000010000.036 months15.02%346.76CC3security guard5 yearsMORTGAGE38000.0Not VerifiedOct-2018Currentndebt_consolidationDebt consolidation443xxOH13.163Jul-198206.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128409500050005000.036 months13.56%169.83CC1Payoff Clerk10+ yearsMORTGAGE35360.0Not VerifiedOct-2018Currentndebt_consolidationDebt consolidation381xxTN11.301Jun-2006021.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
12841010000100009750.036 months11.06%327.68BB3NaNNaNRENT44400.0Source VerifiedOct-2018Currentncredit_cardCredit card refinancing980xxWA11.780Oct-2008240.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
128411100001000010000.036 months16.91%356.08CC5Key Accounts Manager2 yearsRENT80000.0Not VerifiedOct-2018CurrentnotherOther021xxMA17.721Sep-2006014.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
\n", + "

128412 rows × 140 columns

\n", + "
" + ], + "text/plain": [ + " loan_amnt funded_amnt funded_amnt_inv term int_rate \\\n", + "0 10000 10000 10000.0 36 months 10.33% \n", + "1 4000 4000 4000.0 36 months 23.40% \n", + "2 5000 5000 5000.0 36 months 17.97% \n", + "3 23000 23000 23000.0 60 months 20.89% \n", + "4 8000 8000 8000.0 36 months 23.40% \n", + "5 32075 32075 32075.0 60 months 11.80% \n", + "6 9600 9600 9600.0 36 months 12.98% \n", + "7 30000 30000 30000.0 60 months 18.94% \n", + "8 2500 2500 2500.0 36 months 13.56% \n", + "9 12000 12000 12000.0 60 months 13.56% \n", + "10 10000 10000 10000.0 60 months 19.92% \n", + "11 16000 16000 16000.0 60 months 17.97% \n", + "12 16000 16000 16000.0 60 months 26.31% \n", + "13 15000 15000 14975.0 60 months 14.47% \n", + "14 13000 13000 13000.0 36 months 23.40% \n", + "15 9600 9600 9600.0 36 months 23.40% \n", + "16 3500 3500 3500.0 36 months 20.89% \n", + "17 25000 25000 25000.0 60 months 16.91% \n", + "18 16000 16000 16000.0 60 months 20.89% \n", + "19 13000 13000 13000.0 60 months 14.47% \n", + "20 10000 10000 10000.0 36 months 13.56% \n", + "21 13000 13000 13000.0 36 months 14.47% \n", + "22 7000 7000 7000.0 36 months 12.98% \n", + "23 3300 3300 3300.0 36 months 23.40% \n", + "24 20000 20000 20000.0 60 months 11.80% \n", + "... ... ... ... ... ... \n", + "128387 6000 6000 6000.0 36 months 11.55% \n", + "128388 20000 20000 20000.0 36 months 8.46% \n", + "128389 6000 6000 5750.0 36 months 11.55% \n", + "128390 24000 24000 24000.0 36 months 19.92% \n", + "128391 35000 35000 34975.0 36 months 6.67% \n", + "128392 6500 6500 6500.0 36 months 26.31% \n", + "128393 6500 6500 6500.0 36 months 16.91% \n", + "128394 5000 5000 5000.0 36 months 6.11% \n", + "128395 22000 22000 22000.0 36 months 11.55% \n", + "128396 24000 24000 24000.0 60 months 15.02% \n", + "128397 20000 20000 20000.0 60 months 15.02% \n", + "128398 12000 12000 12000.0 60 months 18.94% \n", + "128399 5000 5000 5000.0 36 months 15.02% \n", + "128400 20000 20000 20000.0 60 months 15.02% \n", + "128401 20000 20000 20000.0 36 months 11.55% \n", + "128402 17500 17500 17500.0 60 months 22.35% \n", + "128403 5000 5000 5000.0 36 months 16.14% \n", + "128404 5000 5000 5000.0 36 months 16.14% \n", + "128405 22000 22000 22000.0 60 months 7.84% \n", + "128406 5600 5600 5600.0 36 months 13.56% \n", + "128407 23000 23000 23000.0 36 months 15.02% \n", + "128408 10000 10000 10000.0 36 months 15.02% \n", + "128409 5000 5000 5000.0 36 months 13.56% \n", + "128410 10000 10000 9750.0 36 months 11.06% \n", + "128411 10000 10000 10000.0 36 months 16.91% \n", + "\n", + " installment grade sub_grade emp_title \\\n", + "0 324.23 B B1 NaN \n", + "1 155.68 E E1 Security \n", + "2 180.69 D D1 Administrative \n", + "3 620.81 D D4 Operator \n", + "4 311.35 E E1 Manager \n", + "5 710.26 B B4 Nursing Supervisor \n", + "6 323.37 B B5 NaN \n", + "7 777.23 D D2 Postmaster \n", + "8 84.92 C C1 Chef \n", + "9 276.49 C C1 NaN \n", + "10 264.50 D D3 Material Handler \n", + "11 406.04 D D1 Instructional Coordinator \n", + "12 481.99 E E4 Financial Relationship Associate \n", + "13 352.69 C C2 NaN \n", + "14 505.95 E E1 Sale Representative \n", + "15 373.62 E E1 driver coordinator \n", + "16 131.67 D D4 gas attendant \n", + "17 620.11 C C5 Processor \n", + "18 431.87 D D4 Neonatal Nurse Practitioner \n", + "19 305.67 C C2 Stationary Engineer \n", + "20 339.65 C C1 NaN \n", + "21 447.29 C C2 Exhibits director \n", + "22 235.80 B B5 Worship Director \n", + "23 128.44 E E1 Program Manager \n", + "24 442.88 B B4 NaN \n", + "... ... ... ... ... \n", + "128387 198.00 B B4 ENGINEER \n", + "128388 630.99 A A5 Welder/Blacksmith \n", + "128389 198.00 B B4 RN Supervisor \n", + "128390 890.95 D D3 Corrections officer \n", + "128391 1075.43 A A2 NaN \n", + "128392 262.97 E E4 Merchandise Team Captain \n", + "128393 231.46 C C5 Senior Accountant, Fixed Assets Acctg \n", + "128394 152.36 A A1 Implementation Manager \n", + "128395 726.00 B B4 Sr. application analyst \n", + "128396 571.22 C C3 Instructional Technology Specialist \n", + "128397 476.01 C C3 Technical Supvervisor \n", + "128398 310.90 D D2 Senior Business Account Executive \n", + "128399 173.38 C C3 Tech \n", + "128400 476.01 C C3 production supervisor \n", + "128401 660.00 B B4 secondary opps/lead coater \n", + "128402 486.82 D D5 NaN \n", + "128403 176.14 C C4 NaN \n", + "128404 176.14 C C4 Oncology Medical Assistant \n", + "128405 444.40 A A4 Owner \n", + "128406 190.21 C C1 NaN \n", + "128407 797.53 C C3 Tax Consultant \n", + "128408 346.76 C C3 security guard \n", + "128409 169.83 C C1 Payoff Clerk \n", + "128410 327.68 B B3 NaN \n", + "128411 356.08 C C5 Key Accounts Manager \n", + "\n", + " emp_length home_ownership annual_inc verification_status issue_d \\\n", + "0 < 1 year MORTGAGE 280000.0 Not Verified Dec-2018 \n", + "1 3 years RENT 90000.0 Source Verified Dec-2018 \n", + "2 6 years MORTGAGE 59280.0 Source Verified Dec-2018 \n", + "3 5 years RENT 68107.0 Source Verified Dec-2018 \n", + "4 10+ years OWN 43000.0 Source Verified Dec-2018 \n", + "5 10+ years MORTGAGE 150000.0 Not Verified Dec-2018 \n", + "6 NaN MORTGAGE 35704.0 Not Verified Dec-2018 \n", + "7 10+ years MORTGAGE 90000.0 Source Verified Dec-2018 \n", + "8 10+ years RENT 55000.0 Not Verified Dec-2018 \n", + "9 < 1 year MORTGAGE 40000.0 Not Verified Dec-2018 \n", + "10 10+ years MORTGAGE 80000.0 Not Verified Dec-2018 \n", + "11 5 years MORTGAGE 51000.0 Not Verified Dec-2018 \n", + "12 < 1 year RENT 33000.0 Source Verified Dec-2018 \n", + "13 NaN MORTGAGE 30000.0 Source Verified Dec-2018 \n", + "14 2 years MORTGAGE 90000.0 Verified Dec-2018 \n", + "15 9 years RENT 65000.0 Not Verified Dec-2018 \n", + "16 10+ years MORTGAGE 40000.0 Source Verified Dec-2018 \n", + "17 10+ years MORTGAGE 23878.0 Not Verified Dec-2018 \n", + "18 4 years MORTGAGE 120000.0 Not Verified Dec-2018 \n", + "19 10+ years MORTGAGE 75000.0 Not Verified Dec-2018 \n", + "20 < 1 year MORTGAGE 65000.0 Not Verified Dec-2018 \n", + "21 10+ years MORTGAGE 55000.0 Verified Dec-2018 \n", + "22 4 years MORTGAGE 102500.0 Not Verified Dec-2018 \n", + "23 3 years RENT 49700.0 Source Verified Dec-2018 \n", + "24 NaN MORTGAGE 47590.0 Verified Dec-2018 \n", + "... ... ... ... ... ... \n", + "128387 2 years RENT 90000.0 Not Verified Oct-2018 \n", + "128388 10+ years MORTGAGE 97000.0 Source Verified Oct-2018 \n", + "128389 6 years RENT 70000.0 Not Verified Oct-2018 \n", + "128390 10+ years RENT 34000.0 Verified Oct-2018 \n", + "128391 NaN MORTGAGE 85000.0 Source Verified Oct-2018 \n", + "128392 10+ years MORTGAGE 35000.0 Verified Oct-2018 \n", + "128393 7 years RENT 74160.0 Source Verified Oct-2018 \n", + "128394 9 years MORTGAGE 82000.0 Not Verified Oct-2018 \n", + "128395 10+ years MORTGAGE 72000.0 Source Verified Oct-2018 \n", + "128396 10+ years MORTGAGE 60000.0 Not Verified Oct-2018 \n", + "128397 10+ years MORTGAGE 75000.0 Verified Oct-2018 \n", + "128398 6 years RENT 128000.0 Verified Oct-2018 \n", + "128399 10+ years MORTGAGE 35000.0 Source Verified Oct-2018 \n", + "128400 10+ years MORTGAGE 80000.0 Not Verified Oct-2018 \n", + "128401 10+ years OWN 45000.0 Not Verified Oct-2018 \n", + "128402 NaN RENT 25000.0 Verified Oct-2018 \n", + "128403 NaN OWN 9200.0 Source Verified Oct-2018 \n", + "128404 3 years MORTGAGE 46400.0 Source Verified Oct-2018 \n", + "128405 10+ years MORTGAGE 55000.0 Not Verified Oct-2018 \n", + "128406 NaN RENT 15600.0 Not Verified Oct-2018 \n", + "128407 10+ years MORTGAGE 75000.0 Source Verified Oct-2018 \n", + "128408 5 years MORTGAGE 38000.0 Not Verified Oct-2018 \n", + "128409 10+ years MORTGAGE 35360.0 Not Verified Oct-2018 \n", + "128410 NaN RENT 44400.0 Source Verified Oct-2018 \n", + "128411 2 years RENT 80000.0 Not Verified Oct-2018 \n", + "\n", + " loan_status pymnt_plan purpose \\\n", + "0 Current n debt_consolidation \n", + "1 Current n debt_consolidation \n", + "2 Late (31-120 days) n debt_consolidation \n", + "3 Current n debt_consolidation \n", + "4 Current n debt_consolidation \n", + "5 Current n credit_card \n", + "6 Current n home_improvement \n", + "7 Current n debt_consolidation \n", + "8 Fully Paid n debt_consolidation \n", + "9 Current n debt_consolidation \n", + "10 Current n debt_consolidation \n", + "11 Current n debt_consolidation \n", + "12 Current n credit_card \n", + "13 Current n debt_consolidation \n", + "14 Current n other \n", + "15 Current n credit_card \n", + "16 Current n car \n", + "17 Current n debt_consolidation \n", + "18 Current n credit_card \n", + "19 Fully Paid n debt_consolidation \n", + "20 Current n credit_card \n", + "21 Current n credit_card \n", + "22 Current n house \n", + "23 Current n vacation \n", + "24 Current n credit_card \n", + "... ... ... ... \n", + "128387 Current n credit_card \n", + "128388 Current n debt_consolidation \n", + "128389 Charged Off n medical \n", + "128390 Late (31-120 days) n debt_consolidation \n", + "128391 Fully Paid n debt_consolidation \n", + "128392 Current n home_improvement \n", + "128393 Current n debt_consolidation \n", + "128394 Current n other \n", + "128395 Current n debt_consolidation \n", + "128396 Current n debt_consolidation \n", + "128397 Fully Paid n credit_card \n", + "128398 Current n debt_consolidation \n", + "128399 Current n debt_consolidation \n", + "128400 Current n debt_consolidation \n", + "128401 Current n home_improvement \n", + "128402 Current n debt_consolidation \n", + "128403 Current n debt_consolidation \n", + "128404 Fully Paid n debt_consolidation \n", + "128405 Current n other \n", + "128406 Current n credit_card \n", + "128407 Charged Off n debt_consolidation \n", + "128408 Current n debt_consolidation \n", + "128409 Current n debt_consolidation \n", + "128410 Current n credit_card \n", + "128411 Current n other \n", + "\n", + " title zip_code addr_state dti delinq_2yrs \\\n", + "0 Debt consolidation 974xx OR 6.15 2 \n", + "1 Debt consolidation 070xx NJ 26.33 0 \n", + "2 Debt consolidation 490xx MI 10.51 0 \n", + "3 Debt consolidation 672xx KS 0.52 0 \n", + "4 Debt consolidation 357xx AL 33.24 0 \n", + "5 Credit card refinancing 231xx VA 22.21 0 \n", + "6 Home improvement 401xx KY 0.84 0 \n", + "7 Debt consolidation 713xx LA 26.52 0 \n", + "8 Debt consolidation 109xx NY 18.24 0 \n", + "9 Debt consolidation 180xx PA 19.23 0 \n", + "10 Debt consolidation 648xx MO 20.67 0 \n", + "11 Debt consolidation 284xx NC 21.91 0 \n", + "12 Credit card refinancing 290xx SC 33.62 0 \n", + "13 Debt consolidation 756xx TX 41.60 0 \n", + "14 Other 191xx PA 39.73 0 \n", + "15 Credit card refinancing 265xx WV 23.01 1 \n", + "16 Car financing 078xx NJ 9.09 0 \n", + "17 Debt consolidation 453xx OH 6.26 0 \n", + "18 Credit card refinancing 720xx AR 27.57 1 \n", + "19 Debt consolidation 741xx OK 26.16 0 \n", + "20 Credit card refinancing 937xx CA 10.62 0 \n", + "21 Credit card refinancing 611xx IL 10.58 0 \n", + "22 Home buying 436xx OH 15.20 0 \n", + "23 Vacation 310xx GA 14.32 0 \n", + "24 Credit card refinancing 156xx PA 9.53 0 \n", + "... ... ... ... ... ... \n", + "128387 Credit card refinancing 076xx NJ 1.64 0 \n", + "128388 Debt consolidation 604xx IL 15.59 0 \n", + "128389 Medical expenses 912xx CA 11.52 4 \n", + "128390 Debt consolidation 344xx FL 74.09 0 \n", + "128391 Debt consolidation 301xx GA 22.15 0 \n", + "128392 Home improvement 328xx FL 39.51 0 \n", + "128393 Debt consolidation 600xx IL 27.79 0 \n", + "128394 Other 750xx TX 1.35 0 \n", + "128395 Debt consolidation 481xx MI 46.98 0 \n", + "128396 Debt consolidation 750xx TX 9.72 0 \n", + "128397 Credit card refinancing 786xx TX 24.82 0 \n", + "128398 Debt consolidation 937xx CA 13.32 0 \n", + "128399 Debt consolidation 324xx FL 31.76 2 \n", + "128400 Debt consolidation 117xx NY 16.94 0 \n", + "128401 Home improvement 015xx MA 22.13 0 \n", + "128402 Debt consolidation 640xx MO 27.75 0 \n", + "128403 Debt consolidation 365xx AL 23.50 0 \n", + "128404 Debt consolidation 338xx FL 16.85 0 \n", + "128405 Other 982xx WA 2.18 0 \n", + "128406 Credit card refinancing 836xx ID 15.31 0 \n", + "128407 Debt consolidation 352xx AL 20.95 1 \n", + "128408 Debt consolidation 443xx OH 13.16 3 \n", + "128409 Debt consolidation 381xx TN 11.30 1 \n", + "128410 Credit card refinancing 980xx WA 11.78 0 \n", + "128411 Other 021xx MA 17.72 1 \n", + "\n", + " earliest_cr_line inq_last_6mths mths_since_last_delinq ... \\\n", + "0 Jan-1996 0 18.0 ... \n", + "1 Sep-2006 4 59.0 ... \n", + "2 Apr-2011 0 NaN ... \n", + "3 Feb-1997 0 NaN ... \n", + "4 Jan-1995 0 NaN ... \n", + "5 Aug-2005 0 NaN ... \n", + "6 Nov-2003 0 69.0 ... \n", + "7 Jun-1987 0 71.0 ... \n", + "8 Apr-2001 1 NaN ... \n", + "9 Aug-2005 2 NaN ... \n", + "10 Apr-2005 0 37.0 ... \n", + "11 Oct-2005 1 52.0 ... \n", + "12 Sep-2010 1 NaN ... \n", + "13 Oct-1999 0 NaN ... \n", + "14 May-2007 0 NaN ... \n", + "15 Sep-2003 0 16.0 ... \n", + "16 Oct-2004 1 24.0 ... \n", + "17 Oct-2010 0 NaN ... \n", + "18 Jul-2005 0 8.0 ... \n", + "19 Feb-2001 1 NaN ... \n", + "20 Dec-2004 1 30.0 ... \n", + "21 Oct-2001 0 NaN ... \n", + "22 Dec-2002 0 38.0 ... \n", + "23 Nov-2006 1 43.0 ... \n", + "24 Sep-1999 0 62.0 ... \n", + "... ... ... ... ... \n", + "128387 Sep-2010 1 53.0 ... \n", + "128388 Jul-1999 1 64.0 ... \n", + "128389 Dec-1993 0 17.0 ... \n", + "128390 Jun-2006 0 NaN ... \n", + "128391 Apr-1997 2 54.0 ... \n", + "128392 Mar-2004 0 70.0 ... \n", + "128393 Jun-2006 0 38.0 ... \n", + "128394 Feb-2005 0 33.0 ... \n", + "128395 Jun-1999 0 26.0 ... \n", + "128396 Apr-1999 1 43.0 ... \n", + "128397 Apr-1991 2 NaN ... \n", + "128398 Nov-2007 1 46.0 ... \n", + "128399 Jun-2003 0 15.0 ... \n", + "128400 Oct-2005 0 NaN ... \n", + "128401 Dec-2003 0 41.0 ... \n", + "128402 Oct-2001 0 NaN ... \n", + "128403 Apr-2015 1 NaN ... \n", + "128404 Nov-2003 0 29.0 ... \n", + "128405 Apr-1987 0 NaN ... \n", + "128406 Aug-2012 0 NaN ... \n", + "128407 Aug-1985 2 22.0 ... \n", + "128408 Jul-1982 0 6.0 ... \n", + "128409 Jun-2006 0 21.0 ... \n", + "128410 Oct-2008 2 40.0 ... \n", + "128411 Sep-2006 0 14.0 ... \n", + "\n", + " sec_app_chargeoff_within_12_mths sec_app_collections_12_mths_ex_med \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "5 NaN NaN \n", + "6 NaN NaN \n", + "7 NaN NaN \n", + "8 NaN NaN \n", + "9 NaN NaN \n", + "10 NaN NaN \n", + "11 NaN NaN \n", + "12 NaN NaN \n", + "13 0.0 0.0 \n", + "14 NaN NaN \n", + "15 NaN NaN \n", + "16 0.0 0.0 \n", + "17 0.0 0.0 \n", + "18 NaN NaN \n", + "19 NaN NaN \n", + "20 NaN NaN \n", + "21 NaN NaN \n", + "22 NaN NaN \n", + "23 NaN NaN \n", + "24 0.0 0.0 \n", + "... ... ... \n", + "128387 0.0 0.0 \n", + "128388 NaN NaN \n", + "128389 0.0 0.0 \n", + "128390 0.0 1.0 \n", + "128391 0.0 0.0 \n", + "128392 NaN NaN \n", + "128393 0.0 0.0 \n", + "128394 0.0 0.0 \n", + "128395 0.0 0.0 \n", + "128396 NaN NaN \n", + "128397 NaN NaN \n", + "128398 NaN NaN \n", + "128399 NaN NaN \n", + "128400 0.0 0.0 \n", + "128401 NaN NaN \n", + "128402 NaN NaN \n", + "128403 NaN NaN \n", + "128404 NaN NaN \n", + "128405 NaN NaN \n", + "128406 NaN NaN \n", + "128407 NaN NaN \n", + "128408 NaN NaN \n", + "128409 NaN NaN \n", + "128410 NaN NaN \n", + "128411 NaN NaN \n", + "\n", + " sec_app_mths_since_last_major_derog hardship_flag hardship_type \\\n", + "0 NaN N NaN \n", + "1 NaN N NaN \n", + "2 NaN N NaN \n", + "3 NaN N NaN \n", + "4 NaN N NaN \n", + "5 NaN N NaN \n", + "6 NaN N NaN \n", + "7 NaN N NaN \n", + "8 NaN N NaN \n", + "9 NaN N NaN \n", + "10 NaN N NaN \n", + "11 NaN N NaN \n", + "12 NaN N NaN \n", + "13 NaN N NaN \n", + "14 NaN N NaN \n", + "15 NaN N NaN \n", + "16 46.0 N NaN \n", + "17 NaN N NaN \n", + "18 NaN N NaN \n", + "19 NaN N NaN \n", + "20 NaN N NaN \n", + "21 NaN N NaN \n", + "22 NaN N NaN \n", + "23 NaN N NaN \n", + "24 NaN N NaN \n", + "... ... ... ... \n", + "128387 NaN N NaN \n", + "128388 NaN N NaN \n", + "128389 NaN N NaN \n", + "128390 75.0 N NaN \n", + "128391 NaN N NaN \n", + "128392 NaN N NaN \n", + "128393 58.0 N NaN \n", + "128394 13.0 N NaN \n", + "128395 NaN N NaN \n", + "128396 NaN N NaN \n", + "128397 NaN N NaN \n", + "128398 NaN N NaN \n", + "128399 NaN N NaN \n", + "128400 NaN N NaN \n", + "128401 NaN N NaN \n", + "128402 NaN N NaN \n", + "128403 NaN N NaN \n", + "128404 NaN N NaN \n", + "128405 NaN N NaN \n", + "128406 NaN N NaN \n", + "128407 NaN N NaN \n", + "128408 NaN N NaN \n", + "128409 NaN N NaN \n", + "128410 NaN N NaN \n", + "128411 NaN N NaN \n", + "\n", + " hardship_reason hardship_status deferral_term hardship_amount \\\n", + "0 NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN \n", + "5 NaN NaN NaN NaN \n", + "6 NaN NaN NaN NaN \n", + "7 NaN NaN NaN NaN \n", + "8 NaN NaN NaN NaN \n", + "9 NaN NaN NaN NaN \n", + "10 NaN NaN NaN NaN \n", + "11 NaN NaN NaN NaN \n", + "12 NaN NaN NaN NaN \n", + "13 NaN NaN NaN NaN \n", + "14 NaN NaN NaN NaN \n", + "15 NaN NaN NaN NaN \n", + "16 NaN NaN NaN NaN \n", + "17 NaN NaN NaN NaN \n", + "18 NaN NaN NaN NaN \n", + "19 NaN NaN NaN NaN \n", + "20 NaN NaN NaN NaN \n", + "21 NaN NaN NaN NaN \n", + "22 NaN NaN NaN NaN \n", + "23 NaN NaN NaN NaN \n", + "24 NaN NaN NaN NaN \n", + "... ... ... ... ... \n", + "128387 NaN NaN NaN NaN \n", + "128388 NaN NaN NaN NaN \n", + "128389 NaN NaN NaN NaN \n", + "128390 NaN NaN NaN NaN \n", + "128391 NaN NaN NaN NaN \n", + "128392 NaN NaN NaN NaN \n", + "128393 NaN NaN NaN NaN \n", + "128394 NaN NaN NaN NaN \n", + "128395 NaN NaN NaN NaN \n", + "128396 NaN NaN NaN NaN \n", + "128397 NaN NaN NaN NaN \n", + "128398 NaN NaN NaN NaN \n", + "128399 NaN NaN NaN NaN \n", + "128400 NaN NaN NaN NaN \n", + "128401 NaN NaN NaN NaN \n", + "128402 NaN NaN NaN NaN \n", + "128403 NaN NaN NaN NaN \n", + "128404 NaN NaN NaN NaN \n", + "128405 NaN NaN NaN NaN \n", + "128406 NaN NaN NaN NaN \n", + "128407 NaN NaN NaN NaN \n", + "128408 NaN NaN NaN NaN \n", + "128409 NaN NaN NaN NaN \n", + "128410 NaN NaN NaN NaN \n", + "128411 NaN NaN NaN NaN \n", + "\n", + " hardship_start_date hardship_end_date payment_plan_start_date \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "5 NaN NaN NaN \n", + "6 NaN NaN NaN \n", + "7 NaN NaN NaN \n", + "8 NaN NaN NaN \n", + "9 NaN NaN NaN \n", + "10 NaN NaN NaN \n", + "11 NaN NaN NaN \n", + "12 NaN NaN NaN \n", + "13 NaN NaN NaN \n", + "14 NaN NaN NaN \n", + "15 NaN NaN NaN \n", + "16 NaN NaN NaN \n", + "17 NaN NaN NaN \n", + "18 NaN NaN NaN \n", + "19 NaN NaN NaN \n", + "20 NaN NaN NaN \n", + "21 NaN NaN NaN \n", + "22 NaN NaN NaN \n", + "23 NaN NaN NaN \n", + "24 NaN NaN NaN \n", + "... ... ... ... \n", + "128387 NaN NaN NaN \n", + "128388 NaN NaN NaN \n", + "128389 NaN NaN NaN \n", + "128390 NaN NaN NaN \n", + "128391 NaN NaN NaN \n", + "128392 NaN NaN NaN \n", + "128393 NaN NaN NaN \n", + "128394 NaN NaN NaN \n", + "128395 NaN NaN NaN \n", + "128396 NaN NaN NaN \n", + "128397 NaN NaN NaN \n", + "128398 NaN NaN NaN \n", + "128399 NaN NaN NaN \n", + "128400 NaN NaN NaN \n", + "128401 NaN NaN NaN \n", + "128402 NaN NaN NaN \n", + "128403 NaN NaN NaN \n", + "128404 NaN NaN NaN \n", + "128405 NaN NaN NaN \n", + "128406 NaN NaN NaN \n", + "128407 NaN NaN NaN \n", + "128408 NaN NaN NaN \n", + "128409 NaN NaN NaN \n", + "128410 NaN NaN NaN \n", + "128411 NaN NaN NaN \n", + "\n", + " hardship_length hardship_dpd hardship_loan_status \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "5 NaN NaN NaN \n", + "6 NaN NaN NaN \n", + "7 NaN NaN NaN \n", + "8 NaN NaN NaN \n", + "9 NaN NaN NaN \n", + "10 NaN NaN NaN \n", + "11 NaN NaN NaN \n", + "12 NaN NaN NaN \n", + "13 NaN NaN NaN \n", + "14 NaN NaN NaN \n", + "15 NaN NaN NaN \n", + "16 NaN NaN NaN \n", + "17 NaN NaN NaN \n", + "18 NaN NaN NaN \n", + "19 NaN NaN NaN \n", + "20 NaN NaN NaN \n", + "21 NaN NaN NaN \n", + "22 NaN NaN NaN \n", + "23 NaN NaN NaN \n", + "24 NaN NaN NaN \n", + "... ... ... ... \n", + "128387 NaN NaN NaN \n", + "128388 NaN NaN NaN \n", + "128389 NaN NaN NaN \n", + "128390 NaN NaN NaN \n", + "128391 NaN NaN NaN \n", + "128392 NaN NaN NaN \n", + "128393 NaN NaN NaN \n", + "128394 NaN NaN NaN \n", + "128395 NaN NaN NaN \n", + "128396 NaN NaN NaN \n", + "128397 NaN NaN NaN \n", + "128398 NaN NaN NaN \n", + "128399 NaN NaN NaN \n", + "128400 NaN NaN NaN \n", + "128401 NaN NaN NaN \n", + "128402 NaN NaN NaN \n", + "128403 NaN NaN NaN \n", + "128404 NaN NaN NaN \n", + "128405 NaN NaN NaN \n", + "128406 NaN NaN NaN \n", + "128407 NaN NaN NaN \n", + "128408 NaN NaN NaN \n", + "128409 NaN NaN NaN \n", + "128410 NaN NaN NaN \n", + "128411 NaN NaN NaN \n", + "\n", + " orig_projected_additional_accrued_interest \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "5 NaN \n", + "6 NaN \n", + "7 NaN \n", + "8 NaN \n", + "9 NaN \n", + "10 NaN \n", + "11 NaN \n", + "12 NaN \n", + "13 NaN \n", + "14 NaN \n", + "15 NaN \n", + "16 NaN \n", + "17 NaN \n", + "18 NaN \n", + "19 NaN \n", + "20 NaN \n", + "21 NaN \n", + "22 NaN \n", + "23 NaN \n", + "24 NaN \n", + "... ... \n", + "128387 NaN \n", + "128388 NaN \n", + "128389 NaN \n", + "128390 NaN \n", + "128391 NaN \n", + "128392 NaN \n", + "128393 NaN \n", + "128394 NaN \n", + "128395 NaN \n", + "128396 NaN \n", + "128397 NaN \n", + "128398 NaN \n", + "128399 NaN \n", + "128400 NaN \n", + "128401 NaN \n", + "128402 NaN \n", + "128403 NaN \n", + "128404 NaN \n", + "128405 NaN \n", + "128406 NaN \n", + "128407 NaN \n", + "128408 NaN \n", + "128409 NaN \n", + "128410 NaN \n", + "128411 NaN \n", + "\n", + " hardship_payoff_balance_amount hardship_last_payment_amount \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "5 NaN NaN \n", + "6 NaN NaN \n", + "7 NaN NaN \n", + "8 NaN NaN \n", + "9 NaN NaN \n", + "10 NaN NaN \n", + "11 NaN NaN \n", + "12 NaN NaN \n", + "13 NaN NaN \n", + "14 NaN NaN \n", + "15 NaN NaN \n", + "16 NaN NaN \n", + "17 NaN NaN \n", + "18 NaN NaN \n", + "19 NaN NaN \n", + "20 NaN NaN \n", + "21 NaN NaN \n", + "22 NaN NaN \n", + "23 NaN NaN \n", + "24 NaN NaN \n", + "... ... ... \n", + "128387 NaN NaN \n", + "128388 NaN NaN \n", + "128389 NaN NaN \n", + "128390 NaN NaN \n", + "128391 NaN NaN \n", + "128392 NaN NaN \n", + "128393 NaN NaN \n", + "128394 NaN NaN \n", + "128395 NaN NaN \n", + "128396 NaN NaN \n", + "128397 NaN NaN \n", + "128398 NaN NaN \n", + "128399 NaN NaN \n", + "128400 NaN NaN \n", + "128401 NaN NaN \n", + "128402 NaN NaN \n", + "128403 NaN NaN \n", + "128404 NaN NaN \n", + "128405 NaN NaN \n", + "128406 NaN NaN \n", + "128407 NaN NaN \n", + "128408 NaN NaN \n", + "128409 NaN NaN \n", + "128410 NaN NaN \n", + "128411 NaN NaN \n", + "\n", + " debt_settlement_flag debt_settlement_flag_date settlement_status \\\n", + "0 N NaN NaN \n", + "1 N NaN NaN \n", + "2 N NaN NaN \n", + "3 N NaN NaN \n", + "4 N NaN NaN \n", + "5 N NaN NaN \n", + "6 N NaN NaN \n", + "7 N NaN NaN \n", + "8 N NaN NaN \n", + "9 N NaN NaN \n", + "10 N NaN NaN \n", + "11 N NaN NaN \n", + "12 N NaN NaN \n", + "13 N NaN NaN \n", + "14 N NaN NaN \n", + "15 N NaN NaN \n", + "16 N NaN NaN \n", + "17 N NaN NaN \n", + "18 N NaN NaN \n", + "19 N NaN NaN \n", + "20 N NaN NaN \n", + "21 N NaN NaN \n", + "22 N NaN NaN \n", + "23 N NaN NaN \n", + "24 N NaN NaN \n", + "... ... ... ... \n", + "128387 N NaN NaN \n", + "128388 N NaN NaN \n", + "128389 N NaN NaN \n", + "128390 N NaN NaN \n", + "128391 N NaN NaN \n", + "128392 N NaN NaN \n", + "128393 N NaN NaN \n", + "128394 N NaN NaN \n", + "128395 N NaN NaN \n", + "128396 N NaN NaN \n", + "128397 N NaN NaN \n", + "128398 N NaN NaN \n", + "128399 N NaN NaN \n", + "128400 N NaN NaN \n", + "128401 N NaN NaN \n", + "128402 N NaN NaN \n", + "128403 N NaN NaN \n", + "128404 N NaN NaN \n", + "128405 N NaN NaN \n", + "128406 N NaN NaN \n", + "128407 N NaN NaN \n", + "128408 N NaN NaN \n", + "128409 N NaN NaN \n", + "128410 N NaN NaN \n", + "128411 N NaN NaN \n", + "\n", + " settlement_date settlement_amount settlement_percentage \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "5 NaN NaN NaN \n", + "6 NaN NaN NaN \n", + "7 NaN NaN NaN \n", + "8 NaN NaN NaN \n", + "9 NaN NaN NaN \n", + "10 NaN NaN NaN \n", + "11 NaN NaN NaN \n", + "12 NaN NaN NaN \n", + "13 NaN NaN NaN \n", + "14 NaN NaN NaN \n", + "15 NaN NaN NaN \n", + "16 NaN NaN NaN \n", + "17 NaN NaN NaN \n", + "18 NaN NaN NaN \n", + "19 NaN NaN NaN \n", + "20 NaN NaN NaN \n", + "21 NaN NaN NaN \n", + "22 NaN NaN NaN \n", + "23 NaN NaN NaN \n", + "24 NaN NaN NaN \n", + "... ... ... ... \n", + "128387 NaN NaN NaN \n", + "128388 NaN NaN NaN \n", + "128389 NaN NaN NaN \n", + "128390 NaN NaN NaN \n", + "128391 NaN NaN NaN \n", + "128392 NaN NaN NaN \n", + "128393 NaN NaN NaN \n", + "128394 NaN NaN NaN \n", + "128395 NaN NaN NaN \n", + "128396 NaN NaN NaN \n", + "128397 NaN NaN NaN \n", + "128398 NaN NaN NaN \n", + "128399 NaN NaN NaN \n", + "128400 NaN NaN NaN \n", + "128401 NaN NaN NaN \n", + "128402 NaN NaN NaN \n", + "128403 NaN NaN NaN \n", + "128404 NaN NaN NaN \n", + "128405 NaN NaN NaN \n", + "128406 NaN NaN NaN \n", + "128407 NaN NaN NaN \n", + "128408 NaN NaN NaN \n", + "128409 NaN NaN NaN \n", + "128410 NaN NaN NaN \n", + "128411 NaN NaN NaN \n", + "\n", + " settlement_term \n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "5 NaN \n", + "6 NaN \n", + "7 NaN \n", + "8 NaN \n", + "9 NaN \n", + "10 NaN \n", + "11 NaN \n", + "12 NaN \n", + "13 NaN \n", + "14 NaN \n", + "15 NaN \n", + "16 NaN \n", + "17 NaN \n", + "18 NaN \n", + "19 NaN \n", + "20 NaN \n", + "21 NaN \n", + "22 NaN \n", + "23 NaN \n", + "24 NaN \n", + "... ... \n", + "128387 NaN \n", + "128388 NaN \n", + "128389 NaN \n", + "128390 NaN \n", + "128391 NaN \n", + "128392 NaN \n", + "128393 NaN \n", + "128394 NaN \n", + "128395 NaN \n", + "128396 NaN \n", + "128397 NaN \n", + "128398 NaN \n", + "128399 NaN \n", + "128400 NaN \n", + "128401 NaN \n", + "128402 NaN \n", + "128403 NaN \n", + "128404 NaN \n", + "128405 NaN \n", + "128406 NaN \n", + "128407 NaN \n", + "128408 NaN \n", + "128409 NaN \n", + "128410 NaN \n", + "128411 NaN \n", + "\n", + "[128412 rows x 140 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 107 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gic0TZrTU1ra", + "colab_type": "code", + "colab": {} + }, + "source": [ + "df = df.drop(columns=['id', 'member_id', 'desc', 'url'])" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "pSzOYjq0WvWX", + "colab_type": "code", + "outputId": "0d2822f4-5f9a-47c6-9645-2e44dab4f493", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 338 + } + }, + "source": [ + "df.head()" + ], + "execution_count": 109, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
loan_amntfunded_amntfunded_amnt_invtermint_rateinstallmentgradesub_gradeemp_titleemp_lengthhome_ownershipannual_incverification_statusissue_dloan_statuspymnt_planpurposetitlezip_codeaddr_statedtidelinq_2yrsearliest_cr_lineinq_last_6mthsmths_since_last_delinq...sec_app_chargeoff_within_12_mthssec_app_collections_12_mths_ex_medsec_app_mths_since_last_major_deroghardship_flaghardship_typehardship_reasonhardship_statusdeferral_termhardship_amounthardship_start_datehardship_end_datepayment_plan_start_datehardship_lengthhardship_dpdhardship_loan_statusorig_projected_additional_accrued_interesthardship_payoff_balance_amounthardship_last_payment_amountdebt_settlement_flagdebt_settlement_flag_datesettlement_statussettlement_datesettlement_amountsettlement_percentagesettlement_term
0100001000010000.036 months10.33%324.23BB1NaN< 1 yearMORTGAGE280000.0Not VerifiedDec-2018Currentndebt_consolidationDebt consolidation974xxOR6.152Jan-1996018.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
1400040004000.036 months23.40%155.68EE1Security3 yearsRENT90000.0Source VerifiedDec-2018Currentndebt_consolidationDebt consolidation070xxNJ26.330Sep-2006459.0...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
2500050005000.036 months17.97%180.69DD1Administrative6 yearsMORTGAGE59280.0Source VerifiedDec-2018Late (31-120 days)ndebt_consolidationDebt consolidation490xxMI10.510Apr-20110NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
3230002300023000.060 months20.89%620.81DD4Operator5 yearsRENT68107.0Source VerifiedDec-2018Currentndebt_consolidationDebt consolidation672xxKS0.520Feb-19970NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
4800080008000.036 months23.40%311.35EE1Manager10+ yearsOWN43000.0Source VerifiedDec-2018Currentndebt_consolidationDebt consolidation357xxAL33.240Jan-19950NaN...NaNNaNNaNNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
\n", + "

5 rows × 140 columns

\n", + "
" + ], + "text/plain": [ + " loan_amnt funded_amnt funded_amnt_inv term int_rate installment \\\n", + "0 10000 10000 10000.0 36 months 10.33% 324.23 \n", + "1 4000 4000 4000.0 36 months 23.40% 155.68 \n", + "2 5000 5000 5000.0 36 months 17.97% 180.69 \n", + "3 23000 23000 23000.0 60 months 20.89% 620.81 \n", + "4 8000 8000 8000.0 36 months 23.40% 311.35 \n", + "\n", + " grade sub_grade emp_title emp_length home_ownership annual_inc \\\n", + "0 B B1 NaN < 1 year MORTGAGE 280000.0 \n", + "1 E E1 Security 3 years RENT 90000.0 \n", + "2 D D1 Administrative 6 years MORTGAGE 59280.0 \n", + "3 D D4 Operator 5 years RENT 68107.0 \n", + "4 E E1 Manager 10+ years OWN 43000.0 \n", + "\n", + " verification_status issue_d loan_status pymnt_plan \\\n", + "0 Not Verified Dec-2018 Current n \n", + "1 Source Verified Dec-2018 Current n \n", + "2 Source Verified Dec-2018 Late (31-120 days) n \n", + "3 Source Verified Dec-2018 Current n \n", + "4 Source Verified Dec-2018 Current n \n", + "\n", + " purpose title zip_code addr_state dti \\\n", + "0 debt_consolidation Debt consolidation 974xx OR 6.15 \n", + "1 debt_consolidation Debt consolidation 070xx NJ 26.33 \n", + "2 debt_consolidation Debt consolidation 490xx MI 10.51 \n", + "3 debt_consolidation Debt consolidation 672xx KS 0.52 \n", + "4 debt_consolidation Debt consolidation 357xx AL 33.24 \n", + "\n", + " delinq_2yrs earliest_cr_line inq_last_6mths mths_since_last_delinq ... \\\n", + "0 2 Jan-1996 0 18.0 ... \n", + "1 0 Sep-2006 4 59.0 ... \n", + "2 0 Apr-2011 0 NaN ... \n", + "3 0 Feb-1997 0 NaN ... \n", + "4 0 Jan-1995 0 NaN ... \n", + "\n", + " sec_app_chargeoff_within_12_mths sec_app_collections_12_mths_ex_med \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " sec_app_mths_since_last_major_derog hardship_flag hardship_type \\\n", + "0 NaN N NaN \n", + "1 NaN N NaN \n", + "2 NaN N NaN \n", + "3 NaN N NaN \n", + "4 NaN N NaN \n", + "\n", + " hardship_reason hardship_status deferral_term hardship_amount \\\n", + "0 NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN \n", + "\n", + " hardship_start_date hardship_end_date payment_plan_start_date \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " hardship_length hardship_dpd hardship_loan_status \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " orig_projected_additional_accrued_interest hardship_payoff_balance_amount \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " hardship_last_payment_amount debt_settlement_flag \\\n", + "0 NaN N \n", + "1 NaN N \n", + "2 NaN N \n", + "3 NaN N \n", + "4 NaN N \n", + "\n", + " debt_settlement_flag_date settlement_status settlement_date \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " settlement_amount settlement_percentage settlement_term \n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + "[5 rows x 140 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 109 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6_u206RcWyUu", + "colab_type": "code", + "outputId": "3bb93ba8-5e46-4e1b-f128-25878164278a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 221 + } + }, + "source": [ + "hardship_cols = [col for col in df.columns if col.startswith('hardship_')]\n", + "hardship_cols" + ], + "execution_count": 110, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "['hardship_flag',\n", + " 'hardship_type',\n", + " 'hardship_reason',\n", + " 'hardship_status',\n", + " 'hardship_amount',\n", + " 'hardship_start_date',\n", + " 'hardship_end_date',\n", + " 'hardship_length',\n", + " 'hardship_dpd',\n", + " 'hardship_loan_status',\n", + " 'hardship_payoff_balance_amount',\n", + " 'hardship_last_payment_amount']" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 110 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "BqTsG2rClOpj", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "8934c62b-b9b6-4793-e55b-ef3faa7f787b" + }, + "source": [ + "df.shape" + ], + "execution_count": 114, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(128412, 140)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 114 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "cPZ8j_ePlXHN", + "colab_type": "code", + "colab": {} + }, + "source": [ + "df = df.drop(columns=hardship_cols)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "TJl-Gc-UlcA9", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "24d168ab-e567-4b44-b0e7-85a0b93a7d8b" + }, + "source": [ + "df.shape" + ], + "execution_count": 116, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(128412, 128)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 116 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ve1KF-j6lew8", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 210 + }, + "outputId": "c1536746-20d1-4841-ecbd-437318b30563" + }, + "source": [ + "df.describe(exclude='number')" + ], + "execution_count": 117, + "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", + "
termint_rategradesub_gradeemp_titleemp_lengthhome_ownershipverification_statusissue_dloan_statuspymnt_planpurposetitlezip_codeaddr_stateearliest_cr_linerevol_utilinitial_list_statuslast_pymnt_dnext_pymnt_dlast_credit_pull_dapplication_typeverification_status_jointsec_app_earliest_cr_linepayment_plan_start_datedebt_settlement_flagdebt_settlement_flag_datesettlement_statussettlement_date
count128412128412128412128412107465116708128412128412128412128412128412128412128412128412128412128412128256128412128253112289128411128412148481678227128412111111111
unique24673543892114337212128805064410742123122357332637
top36 months13.56%AA4Teacher10+ yearsMORTGAGENot VerifiedOct-2018Currentndebt_consolidationDebt consolidation112xxCAAug-20060%wAug-2019Sep-2019Aug-2019IndividualNot VerifiedAug-2006Aug-2019NAug-2019ACTIVEJul-2019
freq881796974380119770209038826634905835046305108584128398706037060313701787911301132114498105424112228117910111630636015515128301489943
\n", + "
" + ], + "text/plain": [ + " term int_rate grade sub_grade emp_title emp_length \\\n", + "count 128412 128412 128412 128412 107465 116708 \n", + "unique 2 46 7 35 43892 11 \n", + "top 36 months 13.56% A A4 Teacher 10+ years \n", + "freq 88179 6974 38011 9770 2090 38826 \n", + "\n", + " home_ownership verification_status issue_d loan_status pymnt_plan \\\n", + "count 128412 128412 128412 128412 128412 \n", + "unique 4 3 3 7 2 \n", + "top MORTGAGE Not Verified Oct-2018 Current n \n", + "freq 63490 58350 46305 108584 128398 \n", + "\n", + " purpose title zip_code addr_state \\\n", + "count 128412 128412 128412 128412 \n", + "unique 12 12 880 50 \n", + "top debt_consolidation Debt consolidation 112xx CA \n", + "freq 70603 70603 1370 17879 \n", + "\n", + " earliest_cr_line revol_util initial_list_status last_pymnt_d \\\n", + "count 128412 128256 128412 128253 \n", + "unique 644 1074 2 12 \n", + "top Aug-2006 0% w Aug-2019 \n", + "freq 1130 1132 114498 105424 \n", + "\n", + " next_pymnt_d last_credit_pull_d application_type \\\n", + "count 112289 128411 128412 \n", + "unique 3 12 2 \n", + "top Sep-2019 Aug-2019 Individual \n", + "freq 112228 117910 111630 \n", + "\n", + " verification_status_joint sec_app_earliest_cr_line \\\n", + "count 14848 16782 \n", + "unique 3 573 \n", + "top Not Verified Aug-2006 \n", + "freq 6360 155 \n", + "\n", + " payment_plan_start_date debt_settlement_flag debt_settlement_flag_date \\\n", + "count 27 128412 111 \n", + "unique 3 2 6 \n", + "top Aug-2019 N Aug-2019 \n", + "freq 15 128301 48 \n", + "\n", + " settlement_status settlement_date \n", + "count 111 111 \n", + "unique 3 7 \n", + "top ACTIVE Jul-2019 \n", + "freq 99 43 " + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 117 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "NHFp51U7ls_d", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 901 + }, + "outputId": "ee0d666d-d613-4d77-d21e-dc524f91b37a" + }, + "source": [ + "# Convert int-rate\n", + "\n", + "df['int_rate']" + ], + "execution_count": 118, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 10.33%\n", + "1 23.40%\n", + "2 17.97%\n", + "3 20.89%\n", + "4 23.40%\n", + "5 11.80%\n", + "6 12.98%\n", + "7 18.94%\n", + "8 13.56%\n", + "9 13.56%\n", + "10 19.92%\n", + "11 17.97%\n", + "12 26.31%\n", + "13 14.47%\n", + "14 23.40%\n", + "15 23.40%\n", + "16 20.89%\n", + "17 16.91%\n", + "18 20.89%\n", + "19 14.47%\n", + "20 13.56%\n", + "21 14.47%\n", + "22 12.98%\n", + "23 23.40%\n", + "24 11.80%\n", + " ... \n", + "128387 11.55%\n", + "128388 8.46%\n", + "128389 11.55%\n", + "128390 19.92%\n", + "128391 6.67%\n", + "128392 26.31%\n", + "128393 16.91%\n", + "128394 6.11%\n", + "128395 11.55%\n", + "128396 15.02%\n", + "128397 15.02%\n", + "128398 18.94%\n", + "128399 15.02%\n", + "128400 15.02%\n", + "128401 11.55%\n", + "128402 22.35%\n", + "128403 16.14%\n", + "128404 16.14%\n", + "128405 7.84%\n", + "128406 13.56%\n", + "128407 15.02%\n", + "128408 15.02%\n", + "128409 13.56%\n", + "128410 11.06%\n", + "128411 16.91%\n", + "Name: int_rate, Length: 128412, dtype: object" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 118 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "RnyfXx-7l2UM", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "524872e0-4910-4fe8-da0b-6a55d43a36f4" + }, + "source": [ + "a = '16.91%'\n", + "a[:-1]" + ], + "execution_count": 119, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'16.91'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 119 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "RwtmqTsEl7f0", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "7c9fbc29-2990-49bd-b6fa-cf0b45ef4925" + }, + "source": [ + "a.strip('%')" + ], + "execution_count": 121, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'16.91'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 121 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "qGtsPvYumCDl", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "d9a2f33c-d3ac-4195-af0e-f8f778365785" + }, + "source": [ + "b = '%16%.91%'\n", + "b.strip('%')" + ], + "execution_count": 122, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'16%.91'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 122 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "NyRyUY_bmJyz", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "488b2c19-879a-4589-f320-3163d7f7713b" + }, + "source": [ + "b[:-1]" + ], + "execution_count": 123, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'%16%.91'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 123 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "NS5h9UOkmN57", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "ac1e2144-6085-4f73-86ab-56f94f97a385" + }, + "source": [ + "b.replace('%', '')" + ], + "execution_count": 124, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'16.91'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 124 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "4hTZBFBRmS0j", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "0d5b0d2c-3791-4512-bb3a-aad00e27c2fc" + }, + "source": [ + "float(b.replace(\"%\", ''))" + ], + "execution_count": 125, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "16.91" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 125 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2NMsqhuEmZFb", + "colab_type": "code", + "colab": {} + }, + "source": [ + "def remove_percent_to_float(x):\n", + " return float(x[:-1])" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "lPWQ7mRjmi78", + "colab_type": "code", + "colab": {} + }, + "source": [ + "remove_percent_to_float_v2 = lambda x: float(x[:-1])" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "YQcdpOQfmp8q", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "68daa171-9d58-4f76-c29a-4828c626dc54" + }, + "source": [ + "remove_percent_to_float('16.91%')" + ], + "execution_count": 129, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "16.91" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 129 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "AiE_OxzQmzfq", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "ef32563a-983b-4aa5-eced-ef4e19cc82f8" + }, + "source": [ + "remove_percent_to_float_v2('16.91%')" + ], + "execution_count": 130, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "16.91" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 130 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vath3jHNm8VV", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "f9ebda45-a840-415c-de89-2a6a30e28b0c" + }, + "source": [ + "a = ['16.91%', '12.23%', '15.75%']\n", + "[remove_percent_to_float(i) for i in a]" + ], + "execution_count": 131, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[16.91, 12.23, 15.75]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 131 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "BZAS_kZ1nL8R", + "colab_type": "code", + "colab": {} + }, + "source": [ + "df['int_rate'] = df['int_rate'].apply(remove_percent_to_float)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "BxCuXEaFnVaJ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 338 + }, + "outputId": "3b9aafb7-13e0-4797-82ad-71cd0943ce44" + }, + "source": [ + "df.head()" + ], + "execution_count": 133, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
loan_amntfunded_amntfunded_amnt_invtermint_rateinstallmentgradesub_gradeemp_titleemp_lengthhome_ownershipannual_incverification_statusissue_dloan_statuspymnt_planpurposetitlezip_codeaddr_statedtidelinq_2yrsearliest_cr_lineinq_last_6mthsmths_since_last_delinq...tot_hi_cred_limtotal_bal_ex_morttotal_bc_limittotal_il_high_credit_limitrevol_bal_jointsec_app_earliest_cr_linesec_app_inq_last_6mthssec_app_mort_accsec_app_open_accsec_app_revol_utilsec_app_open_act_ilsec_app_num_rev_acctssec_app_chargeoff_within_12_mthssec_app_collections_12_mths_ex_medsec_app_mths_since_last_major_derogdeferral_termpayment_plan_start_dateorig_projected_additional_accrued_interestdebt_settlement_flagdebt_settlement_flag_datesettlement_statussettlement_datesettlement_amountsettlement_percentagesettlement_term
0100001000010000.036 months10.33324.23BB1NaN< 1 yearMORTGAGE280000.0Not VerifiedDec-2018Currentndebt_consolidationDebt consolidation974xxOR6.152Jan-1996018.0...367828613642090054912NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
1400040004000.036 months23.40155.68EE1Security3 yearsRENT90000.0Source VerifiedDec-2018Currentndebt_consolidationDebt consolidation070xxNJ26.330Sep-2006459.0...98655669262190071555NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
2500050005000.036 months17.97180.69DD1Administrative6 yearsMORTGAGE59280.0Source VerifiedDec-2018Late (31-120 days)ndebt_consolidationDebt consolidation490xxMI10.510Apr-20110NaN...136927117491380010000NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
3230002300023000.060 months20.89620.81DD4Operator5 yearsRENT68107.0Source VerifiedDec-2018Currentndebt_consolidationDebt consolidation672xxKS0.520Feb-19970NaN...750097633000NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
4800080008000.036 months23.40311.35EE1Manager10+ yearsOWN43000.0Source VerifiedDec-2018Currentndebt_consolidationDebt consolidation357xxAL33.240Jan-19950NaN...19974431078230032206NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaN
\n", + "

5 rows × 128 columns

\n", + "
" + ], + "text/plain": [ + " loan_amnt funded_amnt funded_amnt_inv term int_rate installment \\\n", + "0 10000 10000 10000.0 36 months 10.33 324.23 \n", + "1 4000 4000 4000.0 36 months 23.40 155.68 \n", + "2 5000 5000 5000.0 36 months 17.97 180.69 \n", + "3 23000 23000 23000.0 60 months 20.89 620.81 \n", + "4 8000 8000 8000.0 36 months 23.40 311.35 \n", + "\n", + " grade sub_grade emp_title emp_length home_ownership annual_inc \\\n", + "0 B B1 NaN < 1 year MORTGAGE 280000.0 \n", + "1 E E1 Security 3 years RENT 90000.0 \n", + "2 D D1 Administrative 6 years MORTGAGE 59280.0 \n", + "3 D D4 Operator 5 years RENT 68107.0 \n", + "4 E E1 Manager 10+ years OWN 43000.0 \n", + "\n", + " verification_status issue_d loan_status pymnt_plan \\\n", + "0 Not Verified Dec-2018 Current n \n", + "1 Source Verified Dec-2018 Current n \n", + "2 Source Verified Dec-2018 Late (31-120 days) n \n", + "3 Source Verified Dec-2018 Current n \n", + "4 Source Verified Dec-2018 Current n \n", + "\n", + " purpose title zip_code addr_state dti \\\n", + "0 debt_consolidation Debt consolidation 974xx OR 6.15 \n", + "1 debt_consolidation Debt consolidation 070xx NJ 26.33 \n", + "2 debt_consolidation Debt consolidation 490xx MI 10.51 \n", + "3 debt_consolidation Debt consolidation 672xx KS 0.52 \n", + "4 debt_consolidation Debt consolidation 357xx AL 33.24 \n", + "\n", + " delinq_2yrs earliest_cr_line inq_last_6mths mths_since_last_delinq ... \\\n", + "0 2 Jan-1996 0 18.0 ... \n", + "1 0 Sep-2006 4 59.0 ... \n", + "2 0 Apr-2011 0 NaN ... \n", + "3 0 Feb-1997 0 NaN ... \n", + "4 0 Jan-1995 0 NaN ... \n", + "\n", + " tot_hi_cred_lim total_bal_ex_mort total_bc_limit \\\n", + "0 367828 61364 20900 \n", + "1 98655 66926 21900 \n", + "2 136927 11749 13800 \n", + "3 7500 976 3300 \n", + "4 199744 31078 2300 \n", + "\n", + " total_il_high_credit_limit revol_bal_joint sec_app_earliest_cr_line \\\n", + "0 54912 NaN NaN \n", + "1 71555 NaN NaN \n", + "2 10000 NaN NaN \n", + "3 0 NaN NaN \n", + "4 32206 NaN NaN \n", + "\n", + " sec_app_inq_last_6mths sec_app_mort_acc sec_app_open_acc \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " sec_app_revol_util sec_app_open_act_il sec_app_num_rev_accts \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " sec_app_chargeoff_within_12_mths sec_app_collections_12_mths_ex_med \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " sec_app_mths_since_last_major_derog deferral_term payment_plan_start_date \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " orig_projected_additional_accrued_interest debt_settlement_flag \\\n", + "0 NaN N \n", + "1 NaN N \n", + "2 NaN N \n", + "3 NaN N \n", + "4 NaN N \n", + "\n", + " debt_settlement_flag_date settlement_status settlement_date \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " settlement_amount settlement_percentage settlement_term \n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + "[5 rows x 128 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 133 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "h392lyE9nYmR", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 374 + }, + "outputId": "b4e4f4e3-aa5d-432e-c8de-62a8f372c17a" + }, + "source": [ + "# Clean emp_title\n", + "\n", + "df['emp_title'].value_counts(dropna=False).head(20)" + ], + "execution_count": 134, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "NaN 20947\n", + "Teacher 2090\n", + "Manager 1773\n", + "Registered Nurse 952\n", + "Driver 924\n", + "RN 726\n", + "Supervisor 697\n", + "Sales 580\n", + "Project Manager 526\n", + "General Manager 523\n", + "Office Manager 521\n", + "Owner 420\n", + "Director 402\n", + "Truck Driver 387\n", + "Operations Manager 387\n", + "Nurse 326\n", + "Engineer 325\n", + "Sales Manager 304\n", + "manager 301\n", + "Supervisor 270\n", + "Name: emp_title, dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 134 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "zRX5e1gSpCZH", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "909dbc04-4cbd-429b-fa50-8b80e97d58b1" + }, + "source": [ + "df['emp_title'].nunique()" + ], + "execution_count": 135, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "43892" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 135 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "UHxC89xQpJP9", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 210 + }, + "outputId": "310b760d-db4b-42ac-b9dc-3c65988e18a5" + }, + "source": [ + "df.describe(exclude='number')" + ], + "execution_count": 136, + "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", + "
termgradesub_gradeemp_titleemp_lengthhome_ownershipverification_statusissue_dloan_statuspymnt_planpurposetitlezip_codeaddr_stateearliest_cr_linerevol_utilinitial_list_statuslast_pymnt_dnext_pymnt_dlast_credit_pull_dapplication_typeverification_status_jointsec_app_earliest_cr_linepayment_plan_start_datedebt_settlement_flagdebt_settlement_flag_datesettlement_statussettlement_date
count128412128412128412107465116708128412128412128412128412128412128412128412128412128412128412128256128412128253112289128411128412148481678227128412111111111
unique273543892114337212128805064410742123122357332637
top36 monthsAA4Teacher10+ yearsMORTGAGENot VerifiedOct-2018Currentndebt_consolidationDebt consolidation112xxCAAug-20060%wAug-2019Sep-2019Aug-2019IndividualNot VerifiedAug-2006Aug-2019NAug-2019ACTIVEJul-2019
freq88179380119770209038826634905835046305108584128398706037060313701787911301132114498105424112228117910111630636015515128301489943
\n", + "
" + ], + "text/plain": [ + " term grade sub_grade emp_title emp_length home_ownership \\\n", + "count 128412 128412 128412 107465 116708 128412 \n", + "unique 2 7 35 43892 11 4 \n", + "top 36 months A A4 Teacher 10+ years MORTGAGE \n", + "freq 88179 38011 9770 2090 38826 63490 \n", + "\n", + " verification_status issue_d loan_status pymnt_plan \\\n", + "count 128412 128412 128412 128412 \n", + "unique 3 3 7 2 \n", + "top Not Verified Oct-2018 Current n \n", + "freq 58350 46305 108584 128398 \n", + "\n", + " purpose title zip_code addr_state \\\n", + "count 128412 128412 128412 128412 \n", + "unique 12 12 880 50 \n", + "top debt_consolidation Debt consolidation 112xx CA \n", + "freq 70603 70603 1370 17879 \n", + "\n", + " earliest_cr_line revol_util initial_list_status last_pymnt_d \\\n", + "count 128412 128256 128412 128253 \n", + "unique 644 1074 2 12 \n", + "top Aug-2006 0% w Aug-2019 \n", + "freq 1130 1132 114498 105424 \n", + "\n", + " next_pymnt_d last_credit_pull_d application_type \\\n", + "count 112289 128411 128412 \n", + "unique 3 12 2 \n", + "top Sep-2019 Aug-2019 Individual \n", + "freq 112228 117910 111630 \n", + "\n", + " verification_status_joint sec_app_earliest_cr_line \\\n", + "count 14848 16782 \n", + "unique 3 573 \n", + "top Not Verified Aug-2006 \n", + "freq 6360 155 \n", + "\n", + " payment_plan_start_date debt_settlement_flag debt_settlement_flag_date \\\n", + "count 27 128412 111 \n", + "unique 3 2 6 \n", + "top Aug-2019 N Aug-2019 \n", + "freq 15 128301 48 \n", + "\n", + " settlement_status settlement_date \n", + "count 111 111 \n", + "unique 3 7 \n", + "top ACTIVE Jul-2019 \n", + "freq 99 43 " + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 136 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "D0aG8ctxpOE8", + "colab_type": "code", + "colab": {} + }, + "source": [ + "def clean_title(title):\n", + " if isinstance(title, str):\n", + " return title.strip().lower()\n", + " else:\n", + " return 'unknown'" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "8ITzlJd-pafd", + "colab_type": "code", + "colab": {} + }, + "source": [ + "df['emp_title'] = df['emp_title'].apply(clean_title)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "lmWLfXsEpiEV", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 374 + }, + "outputId": "c3267528-1bc6-44e7-f991-c89cd852b5d7" + }, + "source": [ + "df['emp_title'].value_counts(dropna=False).head(20)" + ], + "execution_count": 139, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "unknown 20947\n", + "teacher 2557\n", + "manager 2395\n", + "registered nurse 1418\n", + "driver 1258\n", + "supervisor 1160\n", + "truck driver 920\n", + "rn 834\n", + "office manager 805\n", + "sales 803\n", + "general manager 791\n", + "project manager 720\n", + "owner 625\n", + "director 523\n", + "operations manager 518\n", + "sales manager 500\n", + "police officer 440\n", + "nurse 425\n", + "technician 420\n", + "engineer 412\n", + "Name: emp_title, dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 139 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "wR6mbl4Mpq-L", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "241fa794-a822-46d6-b8ab-5c6f9aef2fad" + }, + "source": [ + "type(np.NaN)" + ], + "execution_count": 140, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "float" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 140 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "LstEG6NWptfX", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# Create emp_title_manager\n", + "\n", + "df['emp_title_manager'] = df['emp_title'].str.contains('manager')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "CtFt8Izlp-wT", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 153 + }, + "outputId": "a39d1c53-465d-46c6-9d34-9bb3960d4a70" + }, + "source": [ + "df.columns" + ], + "execution_count": 142, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Index(['loan_amnt', 'funded_amnt', 'funded_amnt_inv', 'term', 'int_rate',\n", + " 'installment', 'grade', 'sub_grade', 'emp_title', 'emp_length',\n", + " ...\n", + " 'payment_plan_start_date', 'orig_projected_additional_accrued_interest',\n", + " 'debt_settlement_flag', 'debt_settlement_flag_date',\n", + " 'settlement_status', 'settlement_date', 'settlement_amount',\n", + " 'settlement_percentage', 'settlement_term', 'emp_title_manager'],\n", + " dtype='object', length=129)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 142 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "7t1r__IZqBaD", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 338 + }, + "outputId": "b7bb8a84-1651-484f-b6bc-3fd19a14b971" + }, + "source": [ + "df.head()" + ], + "execution_count": 143, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
loan_amntfunded_amntfunded_amnt_invtermint_rateinstallmentgradesub_gradeemp_titleemp_lengthhome_ownershipannual_incverification_statusissue_dloan_statuspymnt_planpurposetitlezip_codeaddr_statedtidelinq_2yrsearliest_cr_lineinq_last_6mthsmths_since_last_delinq...total_bal_ex_morttotal_bc_limittotal_il_high_credit_limitrevol_bal_jointsec_app_earliest_cr_linesec_app_inq_last_6mthssec_app_mort_accsec_app_open_accsec_app_revol_utilsec_app_open_act_ilsec_app_num_rev_acctssec_app_chargeoff_within_12_mthssec_app_collections_12_mths_ex_medsec_app_mths_since_last_major_derogdeferral_termpayment_plan_start_dateorig_projected_additional_accrued_interestdebt_settlement_flagdebt_settlement_flag_datesettlement_statussettlement_datesettlement_amountsettlement_percentagesettlement_termemp_title_manager
0100001000010000.036 months10.33324.23BB1unknown< 1 yearMORTGAGE280000.0Not VerifiedDec-2018Currentndebt_consolidationDebt consolidation974xxOR6.152Jan-1996018.0...613642090054912NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaNFalse
1400040004000.036 months23.40155.68EE1security3 yearsRENT90000.0Source VerifiedDec-2018Currentndebt_consolidationDebt consolidation070xxNJ26.330Sep-2006459.0...669262190071555NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaNFalse
2500050005000.036 months17.97180.69DD1administrative6 yearsMORTGAGE59280.0Source VerifiedDec-2018Late (31-120 days)ndebt_consolidationDebt consolidation490xxMI10.510Apr-20110NaN...117491380010000NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaNFalse
3230002300023000.060 months20.89620.81DD4operator5 yearsRENT68107.0Source VerifiedDec-2018Currentndebt_consolidationDebt consolidation672xxKS0.520Feb-19970NaN...97633000NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaNFalse
4800080008000.036 months23.40311.35EE1manager10+ yearsOWN43000.0Source VerifiedDec-2018Currentndebt_consolidationDebt consolidation357xxAL33.240Jan-19950NaN...31078230032206NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNNaNNaNNaNNaNNaNNaNTrue
\n", + "

5 rows × 129 columns

\n", + "
" + ], + "text/plain": [ + " loan_amnt funded_amnt funded_amnt_inv term int_rate installment \\\n", + "0 10000 10000 10000.0 36 months 10.33 324.23 \n", + "1 4000 4000 4000.0 36 months 23.40 155.68 \n", + "2 5000 5000 5000.0 36 months 17.97 180.69 \n", + "3 23000 23000 23000.0 60 months 20.89 620.81 \n", + "4 8000 8000 8000.0 36 months 23.40 311.35 \n", + "\n", + " grade sub_grade emp_title emp_length home_ownership annual_inc \\\n", + "0 B B1 unknown < 1 year MORTGAGE 280000.0 \n", + "1 E E1 security 3 years RENT 90000.0 \n", + "2 D D1 administrative 6 years MORTGAGE 59280.0 \n", + "3 D D4 operator 5 years RENT 68107.0 \n", + "4 E E1 manager 10+ years OWN 43000.0 \n", + "\n", + " verification_status issue_d loan_status pymnt_plan \\\n", + "0 Not Verified Dec-2018 Current n \n", + "1 Source Verified Dec-2018 Current n \n", + "2 Source Verified Dec-2018 Late (31-120 days) n \n", + "3 Source Verified Dec-2018 Current n \n", + "4 Source Verified Dec-2018 Current n \n", + "\n", + " purpose title zip_code addr_state dti \\\n", + "0 debt_consolidation Debt consolidation 974xx OR 6.15 \n", + "1 debt_consolidation Debt consolidation 070xx NJ 26.33 \n", + "2 debt_consolidation Debt consolidation 490xx MI 10.51 \n", + "3 debt_consolidation Debt consolidation 672xx KS 0.52 \n", + "4 debt_consolidation Debt consolidation 357xx AL 33.24 \n", + "\n", + " delinq_2yrs earliest_cr_line inq_last_6mths mths_since_last_delinq ... \\\n", + "0 2 Jan-1996 0 18.0 ... \n", + "1 0 Sep-2006 4 59.0 ... \n", + "2 0 Apr-2011 0 NaN ... \n", + "3 0 Feb-1997 0 NaN ... \n", + "4 0 Jan-1995 0 NaN ... \n", + "\n", + " total_bal_ex_mort total_bc_limit total_il_high_credit_limit \\\n", + "0 61364 20900 54912 \n", + "1 66926 21900 71555 \n", + "2 11749 13800 10000 \n", + "3 976 3300 0 \n", + "4 31078 2300 32206 \n", + "\n", + " revol_bal_joint sec_app_earliest_cr_line sec_app_inq_last_6mths \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " sec_app_mort_acc sec_app_open_acc sec_app_revol_util sec_app_open_act_il \\\n", + "0 NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN \n", + "\n", + " sec_app_num_rev_accts sec_app_chargeoff_within_12_mths \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " sec_app_collections_12_mths_ex_med sec_app_mths_since_last_major_derog \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " deferral_term payment_plan_start_date \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " orig_projected_additional_accrued_interest debt_settlement_flag \\\n", + "0 NaN N \n", + "1 NaN N \n", + "2 NaN N \n", + "3 NaN N \n", + "4 NaN N \n", + "\n", + " debt_settlement_flag_date settlement_status settlement_date \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "\n", + " settlement_amount settlement_percentage settlement_term emp_title_manager \n", + "0 NaN NaN NaN False \n", + "1 NaN NaN NaN False \n", + "2 NaN NaN NaN False \n", + "3 NaN NaN NaN False \n", + "4 NaN NaN NaN True \n", + "\n", + "[5 rows x 129 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 143 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "qdwcHMmBqGWD", + "colab_type": "code", + "colab": {} + }, + "source": [ + "mask = df['emp_title_manager'] == True\n", + "managers = df[mask]\n", + "plebians = df[~mask]" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "hgAGLuzKqUh9", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "10b25bcb-ab06-405f-d717-d275d0ee3999" + }, + "source": [ + "managers.shape[0]" + ], + "execution_count": 145, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "17885" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 145 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hauzQfWvqXeh", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "12b7975e-52c5-4a3a-e8ad-108f9106fbc3" + }, + "source": [ + "plebians.shape[0]" + ], + "execution_count": 146, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "110527" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 146 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "4Vgk_3HRqbMr", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "3a51db6a-c37a-4b83-d2d3-94370ba77a40" + }, + "source": [ + "df.shape[0]" + ], + "execution_count": 147, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "128412" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 147 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "rWK2JvNoqdxn", + "colab_type": "code", + "colab": {} + }, + "source": [ + "assert managers.shape[0] + plebians.shape[0] == df.shape[0]" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "dvXX2vhaqnoK", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 901 + }, + "outputId": "091e90ba-d4ff-4314-97bc-c0b2fb2b6110" + }, + "source": [ + "# Work with dates\n", + "\n", + "df['issue_d']" + ], + "execution_count": 149, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 Dec-2018\n", + "1 Dec-2018\n", + "2 Dec-2018\n", + "3 Dec-2018\n", + "4 Dec-2018\n", + "5 Dec-2018\n", + "6 Dec-2018\n", + "7 Dec-2018\n", + "8 Dec-2018\n", + "9 Dec-2018\n", + "10 Dec-2018\n", + "11 Dec-2018\n", + "12 Dec-2018\n", + "13 Dec-2018\n", + "14 Dec-2018\n", + "15 Dec-2018\n", + "16 Dec-2018\n", + "17 Dec-2018\n", + "18 Dec-2018\n", + "19 Dec-2018\n", + "20 Dec-2018\n", + "21 Dec-2018\n", + "22 Dec-2018\n", + "23 Dec-2018\n", + "24 Dec-2018\n", + " ... \n", + "128387 Oct-2018\n", + "128388 Oct-2018\n", + "128389 Oct-2018\n", + "128390 Oct-2018\n", + "128391 Oct-2018\n", + "128392 Oct-2018\n", + "128393 Oct-2018\n", + "128394 Oct-2018\n", + "128395 Oct-2018\n", + "128396 Oct-2018\n", + "128397 Oct-2018\n", + "128398 Oct-2018\n", + "128399 Oct-2018\n", + "128400 Oct-2018\n", + "128401 Oct-2018\n", + "128402 Oct-2018\n", + "128403 Oct-2018\n", + "128404 Oct-2018\n", + "128405 Oct-2018\n", + "128406 Oct-2018\n", + "128407 Oct-2018\n", + "128408 Oct-2018\n", + "128409 Oct-2018\n", + "128410 Oct-2018\n", + "128411 Oct-2018\n", + "Name: issue_d, Length: 128412, dtype: object" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 149 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "WP_UrfWHq2nR", + "colab_type": "code", + "colab": {} + }, + "source": [ + "df['issue_d'] = pd.to_datetime(df['issue_d'], infer_datetime_format=True)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "L8k0LiHmo5EU" + }, + "source": [ + "# STRETCH OPTIONS\n", + "\n", + "You can do more with the LendingClub or Instacart datasets.\n", + "\n", + "LendingClub options:\n", + "- There's one other column in the dataframe with percent signs. Remove them and convert to floats. You'll need to handle missing values.\n", + "- Modify the `emp_title` column to replace titles with 'Other' if the title is not in the top 20. \n", + "- Take initiatve and work on your own ideas!\n", + "\n", + "Instacart options:\n", + "- Read [Instacart Market Basket Analysis, Winner's Interview: 2nd place, Kazuki Onodera](http://blog.kaggle.com/2017/09/21/instacart-market-basket-analysis-winners-interview-2nd-place-kazuki-onodera/), especially the **Feature Engineering** section. (Can you choose one feature from his bulleted lists, and try to engineer it with pandas code?)\n", + "- Read and replicate parts of [Simple Exploration Notebook - Instacart](https://www.kaggle.com/sudalairajkumar/simple-exploration-notebook-instacart). (It's the Python Notebook with the most upvotes for this Kaggle competition.)\n", + "- Take initiative and work on your own ideas!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "0_7PXF7lpEXg" + }, + "source": [ + "You can uncomment and run the cells below to re-download and extract the Instacart data" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "urIePNa0yNG6", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# !wget https://s3.amazonaws.com/instacart-datasets/instacart_online_grocery_shopping_2017_05_01.tar.gz" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "X9zEyu-uyNG8", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# !tar --gunzip --extract --verbose --file=instacart_online_grocery_shopping_2017_05_01.tar.gz" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Y3IqrhlpyNG-", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# %cd instacart_2017_05_01" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file