Last active
September 28, 2020 16:59
-
-
Save 727021/73d9c4f54081d59a4cf3ac1cb02082cb to your computer and use it in GitHub Desktop.
Assessment.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"name": "Assessment.ipynb", | |
"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": [ | |
"<a href=\"https://colab.research.google.com/gist/727021/73d9c4f54081d59a4cf3ac1cb02082cb/assessment.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "E5dpj74Hya2q" | |
}, | |
"source": [ | |
"# Introduction\n", | |
"This assignment will test how well you're able to perform various data science-related tasks using Python, pandas, and seaborn, as well as how well you can interpret statistical and probabilistic results.\n", | |
"\n", | |
"Each Problem Group below will center around a particular dataset that you have worked with before.\n", | |
"\n", | |
"To ensure you receive full credit for a question, make sure you demonstrate the appropriate pandas, seaborn, or other commands as requested in the provided code blocks. \n", | |
"\n", | |
"You may find that some questions require multiple steps to fully answer. Others require some mental arithmetic in addition to pandas commands. Use your best judgment.\n", | |
"\n", | |
"## Submission\n", | |
"Each problem group asks a series of questions. This assignment consists of two submissions:\n", | |
"\n", | |
"1. After completing the questions below, open the Module 01 Assessment Quiz in Canvas and enter your answers to these questions there.\n", | |
"\n", | |
"2. After completing and submitting the quiz, save this Colab notebook as a GitHub Gist (You'll need to create a GitHub account for this), by selecting `Save a copy as a GitHub Gist` from the `File` menu above.\n", | |
"\n", | |
" In Canvas, open the Module 01 Assessment GitHub Gist assignment and paste the GitHub Gist URL for this notebook. Then submit that assignment." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "sth8revcidyV" | |
}, | |
"source": [ | |
"# https://stackoverflow.com/a/17303428/2031203\n", | |
"# Make answers a little easier to see\n", | |
"class color:\n", | |
" PURPLE = '\\033[95m'\n", | |
" CYAN = '\\033[96m'\n", | |
" DARKCYAN = '\\033[36m'\n", | |
" BLUE = '\\033[94m'\n", | |
" GREEN = '\\033[92m'\n", | |
" YELLOW = '\\033[93m'\n", | |
" RED = '\\033[91m'\n", | |
" BOLD = '\\033[1m'\n", | |
" UNDERLINE = '\\033[4m'\n", | |
" END = '\\033[0m'" | |
], | |
"execution_count": 28, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "WgYhh-W3xk4e" | |
}, | |
"source": [ | |
"## Problem Group 1\n", | |
"\n", | |
"For the questions in this group, you'll work with the Netflix Movies Dataset found at this url: [https://raw.githubusercontent.com/byui-cse/cse450-course/master/data/netflix_titles.csv](https://raw.githubusercontent.com/byui-cse/cse450-course/master/data/netflix_titles.csv)\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "kulUs9K7xxB3" | |
}, | |
"source": [ | |
"### Question 1\n", | |
"Load the dataset into a Pandas data frame and determine what data type is used to store the `release_year` feature." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "ecSfSVrsxjx5" | |
}, | |
"source": [ | |
"import pandas as pd\n", | |
"import seaborn as sns\n", | |
"import matplotlib.pyplot as plt\n", | |
"\n", | |
"sns.set_style('darkgrid')" | |
], | |
"execution_count": 2, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "IJwMI4R-daM1", | |
"outputId": "8a0d27dc-4baa-48c1-991a-68b8e9c62039", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 652 | |
} | |
}, | |
"source": [ | |
"netflix = pd.read_csv('https://raw.githubusercontent.com/byui-cse/cse450-course/master/data/netflix_titles.csv')\n", | |
"netflix.head()" | |
], | |
"execution_count": 3, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>show_id</th>\n", | |
" <th>type</th>\n", | |
" <th>title</th>\n", | |
" <th>director</th>\n", | |
" <th>cast</th>\n", | |
" <th>country</th>\n", | |
" <th>date_added</th>\n", | |
" <th>release_year</th>\n", | |
" <th>rating</th>\n", | |
" <th>duration</th>\n", | |
" <th>listed_in</th>\n", | |
" <th>description</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>81145628</td>\n", | |
" <td>Movie</td>\n", | |
" <td>Norm of the North: King Sized Adventure</td>\n", | |
" <td>Richard Finn, Tim Maltby</td>\n", | |
" <td>Alan Marriott, Andrew Toth, Brian Dobson, Cole...</td>\n", | |
" <td>United States, India, South Korea, China</td>\n", | |
" <td>September 9, 2019</td>\n", | |
" <td>2019</td>\n", | |
" <td>TV-PG</td>\n", | |
" <td>90 min</td>\n", | |
" <td>Children & Family Movies, Comedies</td>\n", | |
" <td>Before planning an awesome wedding for his gra...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>80117401</td>\n", | |
" <td>Movie</td>\n", | |
" <td>Jandino: Whatever it Takes</td>\n", | |
" <td>NaN</td>\n", | |
" <td>Jandino Asporaat</td>\n", | |
" <td>United Kingdom</td>\n", | |
" <td>September 9, 2016</td>\n", | |
" <td>2016</td>\n", | |
" <td>TV-MA</td>\n", | |
" <td>94 min</td>\n", | |
" <td>Stand-Up Comedy</td>\n", | |
" <td>Jandino Asporaat riffs on the challenges of ra...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>70234439</td>\n", | |
" <td>TV Show</td>\n", | |
" <td>Transformers Prime</td>\n", | |
" <td>NaN</td>\n", | |
" <td>Peter Cullen, Sumalee Montano, Frank Welker, J...</td>\n", | |
" <td>United States</td>\n", | |
" <td>September 8, 2018</td>\n", | |
" <td>2013</td>\n", | |
" <td>TV-Y7-FV</td>\n", | |
" <td>1 Season</td>\n", | |
" <td>Kids' TV</td>\n", | |
" <td>With the help of three human allies, the Autob...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>80058654</td>\n", | |
" <td>TV Show</td>\n", | |
" <td>Transformers: Robots in Disguise</td>\n", | |
" <td>NaN</td>\n", | |
" <td>Will Friedle, Darren Criss, Constance Zimmer, ...</td>\n", | |
" <td>United States</td>\n", | |
" <td>September 8, 2018</td>\n", | |
" <td>2016</td>\n", | |
" <td>TV-Y7</td>\n", | |
" <td>1 Season</td>\n", | |
" <td>Kids' TV</td>\n", | |
" <td>When a prison ship crash unleashes hundreds of...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>80125979</td>\n", | |
" <td>Movie</td>\n", | |
" <td>#realityhigh</td>\n", | |
" <td>Fernando Lebrija</td>\n", | |
" <td>Nesta Cooper, Kate Walsh, John Michael Higgins...</td>\n", | |
" <td>United States</td>\n", | |
" <td>September 8, 2017</td>\n", | |
" <td>2017</td>\n", | |
" <td>TV-14</td>\n", | |
" <td>99 min</td>\n", | |
" <td>Comedies</td>\n", | |
" <td>When nerdy high schooler Dani finally attracts...</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" show_id ... description\n", | |
"0 81145628 ... Before planning an awesome wedding for his gra...\n", | |
"1 80117401 ... Jandino Asporaat riffs on the challenges of ra...\n", | |
"2 70234439 ... With the help of three human allies, the Autob...\n", | |
"3 80058654 ... When a prison ship crash unleashes hundreds of...\n", | |
"4 80125979 ... When nerdy high schooler Dani finally attracts...\n", | |
"\n", | |
"[5 rows x 12 columns]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 3 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "3CfKMtvppESb", | |
"outputId": "5d17afa5-f133-4fd7-86af-099ddbc4009d", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"print('Release Year dtype: {}{}'.format(color.BOLD+color.RED,netflix.dtypes['release_year']))" | |
], | |
"execution_count": 71, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Release Year dtype: \u001b[1m\u001b[91mint64\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "ivpHTGpczpyM" | |
}, | |
"source": [ | |
"### Question 2\n", | |
"Filter your dataset so it contains only `TV Shows`. How many of those TV Shows were rated `TV-Y7`?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Zf6QABfXx5Xh", | |
"outputId": "7c08d1c6-bf4b-405f-e3aa-a7ce6b65adbe", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"tv = netflix[netflix['type'] == 'TV Show']\n", | |
"print('TV Shows rated TV-Y7: ', len(tv[tv['rating'] == 'TV-Y7']), sep=color.BOLD + color.RED)" | |
], | |
"execution_count": 30, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"TV Shows rated TV-Y7: \u001b[1m\u001b[91m100\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "-esock-41eGo" | |
}, | |
"source": [ | |
"### Question 3\n", | |
"Further filter your dataset so it only contains TV Shows released between the years 2000 and 2009 inclusive. How many of *those* shows were rated `TV-Y7`?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "cBNHqCgz0WDp", | |
"outputId": "87370712-4cf9-4a89-abe2-b4f4d5a903b2", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"filtered_tv = tv[(tv['rating'] == 'TV-Y7') & (2000 <= tv['release_year']) & (tv['release_year'] <= 2009)]\n", | |
"print('TV Shows rated TV-Y7 between 2000 and 2009: ', len(filtered_tv), sep=color.BOLD + color.RED)" | |
], | |
"execution_count": 31, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"TV Shows rated TV-Y7 between 2000 and 2009: \u001b[1m\u001b[91m4\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "s9pLfYQx2W8s" | |
}, | |
"source": [ | |
"### Question 4\n", | |
"Use seaborn to create a count plot showing the relative counts of the ratings of TV-Shows released between the years 2000 and 2009, inclusive.\n", | |
"\n", | |
"What is the top-most number on the y-axis scale?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Akz49cnq1qUI", | |
"outputId": "ffec16dc-6be4-424c-e2fa-57a8befe2810", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 295 | |
} | |
}, | |
"source": [ | |
"ratings = sns.countplot(x='rating',data=tv[(tv['release_year'] >= 2000) & (tv['release_year'] <= 2009)])\n", | |
"ratings.set_xlabel('Rating')\n", | |
"ratings.set_ylabel('# TV Shows')\n", | |
"ratings.set_title('Netflix TV Show Rating Counts (2000-2009)')\n", | |
"plt.show()" | |
], | |
"execution_count": 33, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "cB4zmoJm3XDj" | |
}, | |
"source": [ | |
"## Problem Group 2\n", | |
"\n", | |
"For the questions in this group, you'll work with the Cereal Dataset found at this url: [https://raw.githubusercontent.com/byui-cse/cse450-course/master/data/cereal.csv](https://raw.githubusercontent.com/byui-cse/cse450-course/master/data/cereal.csv)\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "BE_TdsHa3sMj" | |
}, | |
"source": [ | |
"### Question 5\n", | |
"After importing the dataset into a pandas data frame, determine the median amount of `protein` in cereal brands manufactured by Kelloggs. (`mfr` code \"K\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "fBXFGnfP2tfV", | |
"outputId": "f4ad365f-ca50-4f64-c292-a44fb6ebb64c", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 366 | |
} | |
}, | |
"source": [ | |
"cereal = pd.read_csv('https://raw.githubusercontent.com/byui-cse/cse450-course/master/data/cereal.csv')\n", | |
"cereal.head()" | |
], | |
"execution_count": 22, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>name</th>\n", | |
" <th>mfr</th>\n", | |
" <th>type</th>\n", | |
" <th>calories</th>\n", | |
" <th>protein</th>\n", | |
" <th>fat</th>\n", | |
" <th>sodium</th>\n", | |
" <th>fiber</th>\n", | |
" <th>carbo</th>\n", | |
" <th>sugars</th>\n", | |
" <th>potass</th>\n", | |
" <th>vitamins</th>\n", | |
" <th>shelf</th>\n", | |
" <th>weight</th>\n", | |
" <th>cups</th>\n", | |
" <th>rating</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>100% Bran</td>\n", | |
" <td>N</td>\n", | |
" <td>C</td>\n", | |
" <td>70</td>\n", | |
" <td>4</td>\n", | |
" <td>1</td>\n", | |
" <td>130</td>\n", | |
" <td>10.0</td>\n", | |
" <td>5.0</td>\n", | |
" <td>6</td>\n", | |
" <td>280</td>\n", | |
" <td>25</td>\n", | |
" <td>3</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.33</td>\n", | |
" <td>68.402973</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>100% Natural Bran</td>\n", | |
" <td>Q</td>\n", | |
" <td>C</td>\n", | |
" <td>120</td>\n", | |
" <td>3</td>\n", | |
" <td>5</td>\n", | |
" <td>15</td>\n", | |
" <td>2.0</td>\n", | |
" <td>8.0</td>\n", | |
" <td>8</td>\n", | |
" <td>135</td>\n", | |
" <td>0</td>\n", | |
" <td>3</td>\n", | |
" <td>1.0</td>\n", | |
" <td>1.00</td>\n", | |
" <td>33.983679</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>All-Bran</td>\n", | |
" <td>K</td>\n", | |
" <td>C</td>\n", | |
" <td>70</td>\n", | |
" <td>4</td>\n", | |
" <td>1</td>\n", | |
" <td>260</td>\n", | |
" <td>9.0</td>\n", | |
" <td>7.0</td>\n", | |
" <td>5</td>\n", | |
" <td>320</td>\n", | |
" <td>25</td>\n", | |
" <td>3</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.33</td>\n", | |
" <td>59.425505</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>All-Bran with Extra Fiber</td>\n", | |
" <td>K</td>\n", | |
" <td>C</td>\n", | |
" <td>50</td>\n", | |
" <td>4</td>\n", | |
" <td>0</td>\n", | |
" <td>140</td>\n", | |
" <td>14.0</td>\n", | |
" <td>8.0</td>\n", | |
" <td>0</td>\n", | |
" <td>330</td>\n", | |
" <td>25</td>\n", | |
" <td>3</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.50</td>\n", | |
" <td>93.704912</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>Almond Delight</td>\n", | |
" <td>R</td>\n", | |
" <td>C</td>\n", | |
" <td>110</td>\n", | |
" <td>2</td>\n", | |
" <td>2</td>\n", | |
" <td>200</td>\n", | |
" <td>1.0</td>\n", | |
" <td>14.0</td>\n", | |
" <td>8</td>\n", | |
" <td>-1</td>\n", | |
" <td>25</td>\n", | |
" <td>3</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.75</td>\n", | |
" <td>34.384843</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" name mfr type calories ... shelf weight cups rating\n", | |
"0 100% Bran N C 70 ... 3 1.0 0.33 68.402973\n", | |
"1 100% Natural Bran Q C 120 ... 3 1.0 1.00 33.983679\n", | |
"2 All-Bran K C 70 ... 3 1.0 0.33 59.425505\n", | |
"3 All-Bran with Extra Fiber K C 50 ... 3 1.0 0.50 93.704912\n", | |
"4 Almond Delight R C 110 ... 3 1.0 0.75 34.384843\n", | |
"\n", | |
"[5 rows x 16 columns]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 22 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Vn6nmEjXh8s2", | |
"outputId": "d81fa50c-f694-4cd0-c521-5943ca085b68", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"kelloggs = cereal[cereal['mfr'] == 'K']\n", | |
"print('Median Kelloggs protein: ', kelloggs['protein'].median(), sep=color.BOLD + color.RED)" | |
], | |
"execution_count": 34, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Median Kelloggs protein: \u001b[1m\u001b[91m3.0\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "_tAtBuST4vFq" | |
}, | |
"source": [ | |
"### Question 6\n", | |
"If you were to choose a brand of cereal made by Kelloggs at random (counting only the brands in this dataset), what is:\n", | |
"\n", | |
" P( protein = 3 )\n", | |
"\n", | |
"For the brand you chose? Round your answer to two decimal places." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "PLIl-nwZ4PT9", | |
"outputId": "f851942c-49df-4ee6-8a8e-c2ea48d78ec6", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"P_protein_3 = kelloggs['protein'].value_counts(normalize=True)[3]\n", | |
"print('P(protein=3) = {}{:.2f}'.format(color.BOLD + color.RED, P_protein_3))" | |
], | |
"execution_count": 72, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"P(protein=3) = \u001b[1m\u001b[91m0.39\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "W6nZYMTM6pbi" | |
}, | |
"source": [ | |
"### Question 7\n", | |
"If you were to choose a brand of cereal made by Kelloggs at random (counting only the brands in this dataset), what is:\n", | |
"\n", | |
" P( calories > 100 | protein = 3)\n", | |
"\n", | |
"for the brand you chose? Round your answer to two decimal places." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "TJITPcq25KwS", | |
"outputId": "9b9a47f9-a454-4a86-cbc2-1e4873f0665d", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"kelloggs_protein_3 = kelloggs[kelloggs['protein'] == 3]\n", | |
"P_cal_gt_100_given_protein_3 = len(kelloggs_protein_3[kelloggs_protein_3['calories'] > 100]) / len(kelloggs_protein_3)\n", | |
"print('P(calories > 100 | protein = 3) = {}{:.2f}'.format(color.BOLD + color.RED, P_cal_gt_100_given_protein_3))" | |
], | |
"execution_count": 73, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"P(calories > 100 | protein = 3) = \u001b[1m\u001b[91m0.67\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "W3del4PC9NJ-" | |
}, | |
"source": [ | |
"### Question 8\n", | |
"In order to comply with new government regulations, all cereals must now come with a \"Healthiness\" rating. This rating is calculated based on this formula:\n", | |
"\n", | |
" healthiness = (protein + fiber) / sugar\n", | |
"\n", | |
"Create a new `healthiness` column populated with values based on the above formula.\n", | |
"\n", | |
"Then, determine the median healthiness value for only General Mills cereals (`mfr` = \"G\"), rounded to two decimal places." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "TqFx9yvV6LDX", | |
"outputId": "b7434c1b-dee1-48b6-e1e1-6f8936c57b72", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"cereal['healthiness'] = (cereal['protein'] + cereal['fiber']) / cereal['sugars']\n", | |
"print('Median General Mills Healthiness: {}{:.2f}'.format(color.BOLD + color.RED, cereal[cereal['mfr'] == 'G']['healthiness'].median()))" | |
], | |
"execution_count": 74, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Median General Mills Healthiness: \u001b[1m\u001b[91m0.47\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "AcuUNAxC-g7c" | |
}, | |
"source": [ | |
"## Problem Group 3\n", | |
"\n", | |
"For the questions in this group, you'll work with the Titanic Dataset found at this url: [https://raw.githubusercontent.com/byui-cse/cse450-course/master/data/titanic.csv](https://raw.githubusercontent.com/byui-cse/cse450-course/master/data/titanic.csv)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "POOuuXfYAJQK" | |
}, | |
"source": [ | |
"### Question 9\n", | |
"\n", | |
"After loading the dataset into a pandas DataFrame, create a new column called `NameGroup` that contains the first letter of the passenger's surname in lower case.\n", | |
"\n", | |
"Note that in the dataset, passenger's names are provided in the `Name` column and are listed as:\n", | |
"\n", | |
" Surname, Given names\n", | |
"\n", | |
"For example, if a passenger's `Name` is `Braund, Mr. Owen Harris`, the `NameGroup` column should contain the value `b`.\n", | |
"\n", | |
"Then count how many passengers have a `NameGroup` value of `k`." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "T80gU65-ASFa", | |
"outputId": "9ea1660f-dbe9-4ac1-b299-a98df0f591db", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 484 | |
} | |
}, | |
"source": [ | |
"titanic = pd.read_csv('https://raw.githubusercontent.com/byui-cse/cse450-course/master/data/titanic.csv')\n", | |
"titanic.head()" | |
], | |
"execution_count": 59, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>PassengerId</th>\n", | |
" <th>Survived</th>\n", | |
" <th>Pclass</th>\n", | |
" <th>Name</th>\n", | |
" <th>Sex</th>\n", | |
" <th>Age</th>\n", | |
" <th>SibSp</th>\n", | |
" <th>Parch</th>\n", | |
" <th>Ticket</th>\n", | |
" <th>Fare</th>\n", | |
" <th>Cabin</th>\n", | |
" <th>Embarked</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>3</td>\n", | |
" <td>Braund, Mr. Owen Harris</td>\n", | |
" <td>male</td>\n", | |
" <td>22.0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>A/5 21171</td>\n", | |
" <td>7.2500</td>\n", | |
" <td>NaN</td>\n", | |
" <td>S</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>2</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n", | |
" <td>female</td>\n", | |
" <td>38.0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>PC 17599</td>\n", | |
" <td>71.2833</td>\n", | |
" <td>C85</td>\n", | |
" <td>C</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>3</td>\n", | |
" <td>1</td>\n", | |
" <td>3</td>\n", | |
" <td>Heikkinen, Miss. Laina</td>\n", | |
" <td>female</td>\n", | |
" <td>26.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>STON/O2. 3101282</td>\n", | |
" <td>7.9250</td>\n", | |
" <td>NaN</td>\n", | |
" <td>S</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>4</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n", | |
" <td>female</td>\n", | |
" <td>35.0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>113803</td>\n", | |
" <td>53.1000</td>\n", | |
" <td>C123</td>\n", | |
" <td>S</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>5</td>\n", | |
" <td>0</td>\n", | |
" <td>3</td>\n", | |
" <td>Allen, Mr. William Henry</td>\n", | |
" <td>male</td>\n", | |
" <td>35.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>373450</td>\n", | |
" <td>8.0500</td>\n", | |
" <td>NaN</td>\n", | |
" <td>S</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" PassengerId Survived Pclass ... Fare Cabin Embarked\n", | |
"0 1 0 3 ... 7.2500 NaN S\n", | |
"1 2 1 1 ... 71.2833 C85 C\n", | |
"2 3 1 3 ... 7.9250 NaN S\n", | |
"3 4 1 1 ... 53.1000 C123 S\n", | |
"4 5 0 3 ... 8.0500 NaN S\n", | |
"\n", | |
"[5 rows x 12 columns]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 59 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "E81qACTfAWl2", | |
"outputId": "977ff587-5c37-48f8-8207-f24f852478d3", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"titanic['NameGroup'] = titanic['Name'].str.slice(0,1).str.lower()\n", | |
"print('Titanic Passengers in NameGroup {}k{}: {}{}'.format(color.BOLD, color.END, color.BOLD + color.RED, titanic['NameGroup'].value_counts()['k']))" | |
], | |
"execution_count": 64, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Titanic Passengers in NameGroup \u001b[1mk\u001b[0m: \u001b[1m\u001b[91m28\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "6iZtc5-zBZQG" | |
}, | |
"source": [ | |
"### Question 10\n", | |
"Using seaborn, create a boxplot showing the distribution of passenger `Age` grouped by the port they `Embarked` from.\n", | |
"\n", | |
"How many outliers were there in the group embarked from Queenstown (Embarked value `Q`)?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "9D6TzGQjAZIw", | |
"outputId": "c6966d55-14af-4906-99d3-a4365435da2c", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 295 | |
} | |
}, | |
"source": [ | |
"age_vs_embarked = sns.boxplot(y='Age',x='Embarked',data=titanic)\n", | |
"# (C = Cherbourg; Q = Queenstown; S = Southampton)\n", | |
"age_vs_embarked.set_xticklabels(['Southampton','Cherbourg','Queenstown'])\n", | |
"age_vs_embarked.set_title('Passenger Age Distribution by Port')\n", | |
"plt.show()" | |
], | |
"execution_count": 69, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "0lylG1LUDaHB" | |
}, | |
"source": [ | |
"## ๐ Bonus Question ๐\n", | |
"\n", | |
"*Note that you have to enter the answer to this question in the Module 01 Bonus Assessment.*\n", | |
"\n", | |
"Use a Bayesian Classifier from sklearn to predict the probability that a passenger would surive given they were a female embarking from Queenstown.\n", | |
"\n", | |
"Encode any non-numeric values as necessary, and be sure to drop any rows with missing data for features that would affect the classification.\n", | |
"\n", | |
"Enter your answer as a decimal value rounded to 2 decimal places." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "t7xEDOStBwbJ" | |
}, | |
"source": [ | |
"" | |
], | |
"execution_count": null, | |
"outputs": [] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment