Files
lab_pokemon/lab_pokemon.ipynb
Heather f9bef993eb There were somethings I actually got in the Pokemon lab and some, well, I didn't.
In theory I understand the ideas presented, but I can not always get my codes to run.
Or, I know WHAT I want them to do, but can't figure out how to place them in the
correct order to make it do what I want.

Some possible questions I would like to explore for the argument project
deal with fast food. I would like to look at what would be the "healthiest" option
and how many calories are from fat.
I found a data set on Kaggle that I plan on using.
2025-10-27 18:50:47 -04:00

3300 lines
256 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"id": "90041b00-672b-4bd4-a8e8-0cab3f0548af",
"metadata": {},
"source": [
"# Lab 04: Data Science Tools\n",
"\n",
"## 0. Jupyter Notebooks\n",
"\n",
"Welcome to your first Jupyter notebook! Notebooks are made up of cells. Some cells contain text (like this one) and others contain Python code.\n",
"\n",
"Each cell can be in two different modes: editing or running. To edit a cell, double-click on it. When you're done editing, press **shift+Enter** to run it. You can use [Markdown](https://www.markdownguide.org/cheat-sheet/) to add basic formatting to the text. Before you go on, try editing the text in this cell."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "5923b0d7-c0e0-48fa-b765-4aa6002c2d4f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Other cells are code cells, containing Python code. (This is a comment, of course!)\n",
"# Try running this cell (again, shift+Enter). You'll see the result of the final statement \n",
"# printed below the cell. \n",
"# Then try changing the Python code and re-run it.\n",
"\n",
"1+1+1"
]
},
{
"cell_type": "markdown",
"id": "257ef44f-8f53-4136-9d0d-23a811ec53e9",
"metadata": {},
"source": [
"### 0.1 Cells share state\n",
"\n",
"Even though code cells run one at a time, anything that happens in a cell (like declaring a variable or running a function) affects the whole notebook. Try running these two cells a few times, in different orders. What happens when you run *Cell B* over and over?"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "0e2a2927-f6d1-4b13-97ae-ff97416723e9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Cell A\n",
"x = 10\n",
"x"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "69dd7908-b213-4d0f-8016-e46a4a491961",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"20"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Cell B\n",
"x = x * 2\n",
"x"
]
},
{
"cell_type": "markdown",
"id": "adc581ac-db13-40a8-bcfc-bf5d6e5472c5",
"metadata": {},
"source": [
"### 0.2 Saving your work\n",
"\n",
"When you finish working on a notebook, save your work using the icon in the menu bar above. Your notebook is stored in the file `lab_pokemon.ipynb` in the lab directory. You can commit your changes to `ipynb` files just like any other file. Once you finish with Jupyter, you can stop the server by pressing **Control + C** in the Terminal. \n",
"\n",
"*If you're doing this lab on a cloud-based platform like Binder, then you can't save your work. So don't close the tab!*"
]
},
{
"cell_type": "markdown",
"id": "c9c4aec2-949d-4a2e-b736-f5182b1f9ff7",
"metadata": {},
"source": [
"---\n",
"\n",
"## 1. Pandas\n",
"\n",
"Pandas is probably the most important Python library for data science. Pandas provides an object called a **DataFrame**, which is basically a table with rows and columns. Most of the time, you will load data into Pandas using a `.csv` file. CSV files can be exported from Excel or Google Sheets, and are a common format for public data sets. \n",
"\n",
"In this lab, we'll be working with two data sets: The first contains Pokémon characteristics and the second comes from a wide-scale survey conducted by the US Centers for Disease Control ([details](https://www.cdc.gov/brfss/annual_data/annual_2020.html)). We will demonstrate techniques with Pokémon; your job is to replicate these tasks with the CDC dataset. \n",
"\n",
"**Note:** Pandas has *extensive* capabilities, and there's no way we could possibly present them all here. If you have a clearly-formed idea of what you want to do with tabular data, there's a way to do it. This lab introduces *some* of what Pandas can do, but expect to spend time reading the documentation and Stack Overflow when you start working on new tasks. \n",
"\n",
"### 1.0 Getting started\n",
"\n",
"First, we'll import pandas (using the conventional variable name `pd`) and load the two datasets. *Run these cells and every code cell you encounter in this notebook.*"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "ba09a0f8-27d9-456f-aeff-3980e3362d5b",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "a29d508a-2d9a-4d62-9ff6-7a0ecfd5eba4",
"metadata": {},
"outputs": [],
"source": [
"pokemon = pd.read_csv(\"pokemon.csv\")\n",
"people = pd.read_csv(\"brfss_2020.csv\")\n"
]
},
{
"cell_type": "markdown",
"id": "d4e0b811-b8bf-4e9a-a934-3aad8f0520bb",
"metadata": {},
"source": [
"### 1.1 A first look\n",
"\n",
"#### Demo\n",
"\n",
"Let's start by learning the *shape* of the data. How many columns are there? How many rows? What kinds of data are included?"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "579d8dda-ca39-48b1-8819-b17651029729",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>type</th>\n",
" <th>subtype</th>\n",
" <th>total</th>\n",
" <th>hp</th>\n",
" <th>attack</th>\n",
" <th>defense</th>\n",
" <th>special_attack</th>\n",
" <th>special_defense</th>\n",
" <th>speed</th>\n",
" <th>generation</th>\n",
" <th>legendary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Bulbasaur</td>\n",
" <td>Grass</td>\n",
" <td>Poison</td>\n",
" <td>318</td>\n",
" <td>45</td>\n",
" <td>49</td>\n",
" <td>49</td>\n",
" <td>65</td>\n",
" <td>65</td>\n",
" <td>45</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Ivysaur</td>\n",
" <td>Grass</td>\n",
" <td>Poison</td>\n",
" <td>405</td>\n",
" <td>60</td>\n",
" <td>62</td>\n",
" <td>63</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>60</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Venusaur</td>\n",
" <td>Grass</td>\n",
" <td>Poison</td>\n",
" <td>525</td>\n",
" <td>80</td>\n",
" <td>82</td>\n",
" <td>83</td>\n",
" <td>100</td>\n",
" <td>100</td>\n",
" <td>80</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>VenusaurMega Venusaur</td>\n",
" <td>Grass</td>\n",
" <td>Poison</td>\n",
" <td>625</td>\n",
" <td>80</td>\n",
" <td>100</td>\n",
" <td>123</td>\n",
" <td>122</td>\n",
" <td>120</td>\n",
" <td>80</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Charmander</td>\n",
" <td>Fire</td>\n",
" <td>NaN</td>\n",
" <td>309</td>\n",
" <td>39</td>\n",
" <td>52</td>\n",
" <td>43</td>\n",
" <td>60</td>\n",
" <td>50</td>\n",
" <td>65</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>795</th>\n",
" <td>Diancie</td>\n",
" <td>Rock</td>\n",
" <td>Fairy</td>\n",
" <td>600</td>\n",
" <td>50</td>\n",
" <td>100</td>\n",
" <td>150</td>\n",
" <td>100</td>\n",
" <td>150</td>\n",
" <td>50</td>\n",
" <td>6</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>796</th>\n",
" <td>DiancieMega Diancie</td>\n",
" <td>Rock</td>\n",
" <td>Fairy</td>\n",
" <td>700</td>\n",
" <td>50</td>\n",
" <td>160</td>\n",
" <td>110</td>\n",
" <td>160</td>\n",
" <td>110</td>\n",
" <td>110</td>\n",
" <td>6</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>797</th>\n",
" <td>HoopaHoopa Confined</td>\n",
" <td>Psychic</td>\n",
" <td>Ghost</td>\n",
" <td>600</td>\n",
" <td>80</td>\n",
" <td>110</td>\n",
" <td>60</td>\n",
" <td>150</td>\n",
" <td>130</td>\n",
" <td>70</td>\n",
" <td>6</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>798</th>\n",
" <td>HoopaHoopa Unbound</td>\n",
" <td>Psychic</td>\n",
" <td>Dark</td>\n",
" <td>680</td>\n",
" <td>80</td>\n",
" <td>160</td>\n",
" <td>60</td>\n",
" <td>170</td>\n",
" <td>130</td>\n",
" <td>80</td>\n",
" <td>6</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>799</th>\n",
" <td>Volcanion</td>\n",
" <td>Fire</td>\n",
" <td>Water</td>\n",
" <td>600</td>\n",
" <td>80</td>\n",
" <td>110</td>\n",
" <td>120</td>\n",
" <td>130</td>\n",
" <td>90</td>\n",
" <td>70</td>\n",
" <td>6</td>\n",
" <td>True</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>800 rows × 12 columns</p>\n",
"</div>"
],
"text/plain": [
" name type subtype total hp attack defense \\\n",
"0 Bulbasaur Grass Poison 318 45 49 49 \n",
"1 Ivysaur Grass Poison 405 60 62 63 \n",
"2 Venusaur Grass Poison 525 80 82 83 \n",
"3 VenusaurMega Venusaur Grass Poison 625 80 100 123 \n",
"4 Charmander Fire NaN 309 39 52 43 \n",
".. ... ... ... ... .. ... ... \n",
"795 Diancie Rock Fairy 600 50 100 150 \n",
"796 DiancieMega Diancie Rock Fairy 700 50 160 110 \n",
"797 HoopaHoopa Confined Psychic Ghost 600 80 110 60 \n",
"798 HoopaHoopa Unbound Psychic Dark 680 80 160 60 \n",
"799 Volcanion Fire Water 600 80 110 120 \n",
"\n",
" special_attack special_defense speed generation legendary \n",
"0 65 65 45 1 False \n",
"1 80 80 60 1 False \n",
"2 100 100 80 1 False \n",
"3 122 120 80 1 False \n",
"4 60 50 65 1 False \n",
".. ... ... ... ... ... \n",
"795 100 150 50 6 True \n",
"796 160 110 110 6 True \n",
"797 150 130 70 6 True \n",
"798 170 130 80 6 True \n",
"799 130 90 70 6 True \n",
"\n",
"[800 rows x 12 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pokemon\n"
]
},
{
"cell_type": "markdown",
"id": "ee8b0718-56f9-4fc8-bd35-fa0ccb445179",
"metadata": {},
"source": [
"OK, 800 Pokémon, with 12 columns for each. And you can see all the columns. Not all the data is shown in this preview, of course. If there were more columns than could be displayed, you could see them all by typing `pokemon.columns`. \n",
"\n",
"#### Your turn\n",
"\n",
"Now do the same for your data set, `people`."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "c9e5e4ec-b197-450c-ae2d-318006fa0a2f",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>age</th>\n",
" <th>sex</th>\n",
" <th>income</th>\n",
" <th>education</th>\n",
" <th>sexual_orientation</th>\n",
" <th>height</th>\n",
" <th>weight</th>\n",
" <th>health</th>\n",
" <th>no_doctor</th>\n",
" <th>exercise</th>\n",
" <th>sleep</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>55</td>\n",
" <td>female</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" <td>other</td>\n",
" <td>1.55</td>\n",
" <td>83.01</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>True</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>65</td>\n",
" <td>female</td>\n",
" <td>8</td>\n",
" <td>1</td>\n",
" <td>heterosexual</td>\n",
" <td>1.65</td>\n",
" <td>78.02</td>\n",
" <td>3</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>35</td>\n",
" <td>female</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>heterosexual</td>\n",
" <td>1.65</td>\n",
" <td>77.11</td>\n",
" <td>4</td>\n",
" <td>True</td>\n",
" <td>True</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>55</td>\n",
" <td>male</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>heterosexual</td>\n",
" <td>1.83</td>\n",
" <td>81.65</td>\n",
" <td>5</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>55</td>\n",
" <td>female</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>heterosexual</td>\n",
" <td>1.80</td>\n",
" <td>76.66</td>\n",
" <td>4</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>166420</th>\n",
" <td>45</td>\n",
" <td>female</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" <td>heterosexual</td>\n",
" <td>1.63</td>\n",
" <td>86.18</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>166421</th>\n",
" <td>25</td>\n",
" <td>male</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>heterosexual</td>\n",
" <td>1.78</td>\n",
" <td>86.18</td>\n",
" <td>4</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>166422</th>\n",
" <td>25</td>\n",
" <td>female</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>heterosexual</td>\n",
" <td>1.91</td>\n",
" <td>45.36</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>166423</th>\n",
" <td>35</td>\n",
" <td>female</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>heterosexual</td>\n",
" <td>1.60</td>\n",
" <td>68.04</td>\n",
" <td>4</td>\n",
" <td>True</td>\n",
" <td>True</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>166424</th>\n",
" <td>35</td>\n",
" <td>male</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>heterosexual</td>\n",
" <td>1.75</td>\n",
" <td>86.18</td>\n",
" <td>3</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>166425 rows × 11 columns</p>\n",
"</div>"
],
"text/plain": [
" age sex income education sexual_orientation height weight \\\n",
"0 55 female 5 2 other 1.55 83.01 \n",
"1 65 female 8 1 heterosexual 1.65 78.02 \n",
"2 35 female 8 4 heterosexual 1.65 77.11 \n",
"3 55 male 8 4 heterosexual 1.83 81.65 \n",
"4 55 female 8 4 heterosexual 1.80 76.66 \n",
"... ... ... ... ... ... ... ... \n",
"166420 45 female 8 3 heterosexual 1.63 86.18 \n",
"166421 25 male 7 2 heterosexual 1.78 86.18 \n",
"166422 25 female 1 2 heterosexual 1.91 45.36 \n",
"166423 35 female 5 4 heterosexual 1.60 68.04 \n",
"166424 35 male 7 2 heterosexual 1.75 86.18 \n",
"\n",
" health no_doctor exercise sleep \n",
"0 2 True True 7 \n",
"1 3 False False 8 \n",
"2 4 True True 7 \n",
"3 5 False True 8 \n",
"4 4 False True 8 \n",
"... ... ... ... ... \n",
"166420 1 False False 6 \n",
"166421 4 False True 6 \n",
"166422 1 False False 8 \n",
"166423 4 True True 6 \n",
"166424 3 False False 8 \n",
"\n",
"[166425 rows x 11 columns]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"people"
]
},
{
"cell_type": "markdown",
"id": "7fab76ef-d453-4568-a916-4d4c29535a42",
"metadata": {},
"source": [
"### 1.2 Descriptive Statistics\n",
"\n",
"#### Demo\n",
"\n",
"Let's get a sense of the data contained in some of the columns. For categorical data like `generation`, it makes sense to look at value counts--showing us how many of each category there are. You can use the optional keyword `normalize=True` to see percentage of total instead of frequencies. "
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "9afca362-9edc-423c-981b-dc42107d5de0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"speed\n",
"50 46\n",
"60 44\n",
"70 37\n",
"65 36\n",
"30 35\n",
" ..\n",
"89 1\n",
"49 1\n",
"118 1\n",
"54 1\n",
"123 1\n",
"Name: count, Length: 108, dtype: int64"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pokemon.speed.value_counts()"
]
},
{
"cell_type": "markdown",
"id": "a9b98eee-bdc2-4c63-bab2-ee82e2466d0f",
"metadata": {},
"source": [
"For numeric data, we could start by looking at the mean value. We can select multiple columns and get all the column means at once."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "5fe580d0-5939-4152-9f8c-4c32d35a4479",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"hp 69.25875\n",
"attack 79.00125\n",
"defense 73.84250\n",
"speed 68.27750\n",
"dtype: float64"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pokemon[[\"hp\", \"attack\", \"defense\", \"speed\"]].mean()"
]
},
{
"cell_type": "markdown",
"id": "0d8e6e78-fcfc-4c38-a418-545fe4216a44",
"metadata": {},
"source": [
"We can also compute the mean of boolean data. In this case, True will map to 1 and False will map to 0. So the mean value equals the percentage of data which is True. "
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "dc69ef53-70cd-4ae0-80e7-c9c8e28de76f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(0.08125)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pokemon.legendary.mean()"
]
},
{
"cell_type": "markdown",
"id": "69333e87-8df2-4b46-9005-2b8c9df3a7b4",
"metadata": {},
"source": [
"Just over 8% of Pokemon are legendary."
]
},
{
"cell_type": "markdown",
"id": "f563d97d-d9d3-4f2d-a46a-5d5dfc6382de",
"metadata": {},
"source": [
"#### Your turn\n",
"\n",
"**1.2.0.** In this survey, people are grouped into age bands of 18-24, 25-34, 35-44, 45-54, 55-64, and 65+, with the lower bound reported. What percentage of people are in each age band? (When we talk about \"people\" in this lab, we're referring to the people who responded to the survey, not the whole US population.)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "8fbcc766-8399-4f93-a6c8-e0607250a72a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(48.76603274748385)"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"people.age.mean()"
]
},
{
"cell_type": "markdown",
"id": "38006e7b-4771-4c29-86a8-19d04a50fc25",
"metadata": {},
"source": [
"**1.2.1.** What are the mean height and weight of people in this survey?"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "b7f910c8-3d40-49ae-b270-678734c04100",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(83.05358750187773)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"people.weight.mean()"
]
},
{
"cell_type": "markdown",
"id": "f74634bb-8664-46e4-b371-6f45cbb7c8ef",
"metadata": {},
"source": [
"**1.2.2.** The `exercise` column indicates whether a person has done any physical activity or exercise in the last 30 days, outside of work. What percentage of people have done exercise?"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "f3891188-a85f-4089-8388-d4d81c7438ad",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(0.7858014120474688)"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"people.exercise.mean()"
]
},
{
"cell_type": "markdown",
"id": "f6082e65-321c-4ee0-9457-74f9bb1b0363",
"metadata": {},
"source": [
"### 1.3 Filtering\n",
"\n",
"Sometimes we're just interested in a selection of the data set. The way to do this is to create a boolean series, and then use this to select which rows you want to include. Vocabulary note: A dataframe is two-dimensional, with rows and columns. A series (a single row or a single column) is one-dimensional. \n",
"\n",
"#### Demo\n",
"`pokemon.legendary` is already boolean, so we can use this to select just the legendary pokémon. "
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "12c0c6c9-c07b-4183-82f6-5e346c74aac9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>type</th>\n",
" <th>subtype</th>\n",
" <th>total</th>\n",
" <th>hp</th>\n",
" <th>attack</th>\n",
" <th>defense</th>\n",
" <th>special_attack</th>\n",
" <th>special_defense</th>\n",
" <th>speed</th>\n",
" <th>generation</th>\n",
" <th>legendary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>156</th>\n",
" <td>Articuno</td>\n",
" <td>Ice</td>\n",
" <td>Flying</td>\n",
" <td>580</td>\n",
" <td>90</td>\n",
" <td>85</td>\n",
" <td>100</td>\n",
" <td>95</td>\n",
" <td>125</td>\n",
" <td>85</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>157</th>\n",
" <td>Zapdos</td>\n",
" <td>Electric</td>\n",
" <td>Flying</td>\n",
" <td>580</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>85</td>\n",
" <td>125</td>\n",
" <td>90</td>\n",
" <td>100</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>158</th>\n",
" <td>Moltres</td>\n",
" <td>Fire</td>\n",
" <td>Flying</td>\n",
" <td>580</td>\n",
" <td>90</td>\n",
" <td>100</td>\n",
" <td>90</td>\n",
" <td>125</td>\n",
" <td>85</td>\n",
" <td>90</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>162</th>\n",
" <td>Mewtwo</td>\n",
" <td>Psychic</td>\n",
" <td>NaN</td>\n",
" <td>680</td>\n",
" <td>106</td>\n",
" <td>110</td>\n",
" <td>90</td>\n",
" <td>154</td>\n",
" <td>90</td>\n",
" <td>130</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>163</th>\n",
" <td>MewtwoMega Mewtwo X</td>\n",
" <td>Psychic</td>\n",
" <td>Fighting</td>\n",
" <td>780</td>\n",
" <td>106</td>\n",
" <td>190</td>\n",
" <td>100</td>\n",
" <td>154</td>\n",
" <td>100</td>\n",
" <td>130</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>795</th>\n",
" <td>Diancie</td>\n",
" <td>Rock</td>\n",
" <td>Fairy</td>\n",
" <td>600</td>\n",
" <td>50</td>\n",
" <td>100</td>\n",
" <td>150</td>\n",
" <td>100</td>\n",
" <td>150</td>\n",
" <td>50</td>\n",
" <td>6</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>796</th>\n",
" <td>DiancieMega Diancie</td>\n",
" <td>Rock</td>\n",
" <td>Fairy</td>\n",
" <td>700</td>\n",
" <td>50</td>\n",
" <td>160</td>\n",
" <td>110</td>\n",
" <td>160</td>\n",
" <td>110</td>\n",
" <td>110</td>\n",
" <td>6</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>797</th>\n",
" <td>HoopaHoopa Confined</td>\n",
" <td>Psychic</td>\n",
" <td>Ghost</td>\n",
" <td>600</td>\n",
" <td>80</td>\n",
" <td>110</td>\n",
" <td>60</td>\n",
" <td>150</td>\n",
" <td>130</td>\n",
" <td>70</td>\n",
" <td>6</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>798</th>\n",
" <td>HoopaHoopa Unbound</td>\n",
" <td>Psychic</td>\n",
" <td>Dark</td>\n",
" <td>680</td>\n",
" <td>80</td>\n",
" <td>160</td>\n",
" <td>60</td>\n",
" <td>170</td>\n",
" <td>130</td>\n",
" <td>80</td>\n",
" <td>6</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>799</th>\n",
" <td>Volcanion</td>\n",
" <td>Fire</td>\n",
" <td>Water</td>\n",
" <td>600</td>\n",
" <td>80</td>\n",
" <td>110</td>\n",
" <td>120</td>\n",
" <td>130</td>\n",
" <td>90</td>\n",
" <td>70</td>\n",
" <td>6</td>\n",
" <td>True</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>65 rows × 12 columns</p>\n",
"</div>"
],
"text/plain": [
" name type subtype total hp attack defense \\\n",
"156 Articuno Ice Flying 580 90 85 100 \n",
"157 Zapdos Electric Flying 580 90 90 85 \n",
"158 Moltres Fire Flying 580 90 100 90 \n",
"162 Mewtwo Psychic NaN 680 106 110 90 \n",
"163 MewtwoMega Mewtwo X Psychic Fighting 780 106 190 100 \n",
".. ... ... ... ... ... ... ... \n",
"795 Diancie Rock Fairy 600 50 100 150 \n",
"796 DiancieMega Diancie Rock Fairy 700 50 160 110 \n",
"797 HoopaHoopa Confined Psychic Ghost 600 80 110 60 \n",
"798 HoopaHoopa Unbound Psychic Dark 680 80 160 60 \n",
"799 Volcanion Fire Water 600 80 110 120 \n",
"\n",
" special_attack special_defense speed generation legendary \n",
"156 95 125 85 1 True \n",
"157 125 90 100 1 True \n",
"158 125 85 90 1 True \n",
"162 154 90 130 1 True \n",
"163 154 100 130 1 True \n",
".. ... ... ... ... ... \n",
"795 100 150 50 6 True \n",
"796 160 110 110 6 True \n",
"797 150 130 70 6 True \n",
"798 170 130 80 6 True \n",
"799 130 90 70 6 True \n",
"\n",
"[65 rows x 12 columns]"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"legendary = pokemon[pokemon.legendary]\n",
"legendary"
]
},
{
"cell_type": "markdown",
"id": "b4ad804a-f5f0-441f-bb83-51f360c1c154",
"metadata": {},
"source": [
"Let's get all the ice pokémon. We can create a boolean series from another series..."
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "5d089acf-7b76-4f91-8803-42a4a9a11e3e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 False\n",
"1 False\n",
"2 False\n",
"3 False\n",
"4 False\n",
" ... \n",
"795 False\n",
"796 False\n",
"797 False\n",
"798 False\n",
"799 False\n",
"Name: type, Length: 800, dtype: bool"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pokemon.type == \"Ice\""
]
},
{
"cell_type": "markdown",
"id": "a5ea9e89-f466-48de-9133-346c99f4a6c1",
"metadata": {},
"source": [
"And then use this series to select just the ice pokémon. "
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "510fa0fc-2b38-4725-9bbf-ec57d62792be",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>type</th>\n",
" <th>subtype</th>\n",
" <th>total</th>\n",
" <th>hp</th>\n",
" <th>attack</th>\n",
" <th>defense</th>\n",
" <th>special_attack</th>\n",
" <th>special_defense</th>\n",
" <th>speed</th>\n",
" <th>generation</th>\n",
" <th>legendary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>133</th>\n",
" <td>Jynx</td>\n",
" <td>Ice</td>\n",
" <td>Psychic</td>\n",
" <td>455</td>\n",
" <td>65</td>\n",
" <td>50</td>\n",
" <td>35</td>\n",
" <td>115</td>\n",
" <td>95</td>\n",
" <td>95</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>156</th>\n",
" <td>Articuno</td>\n",
" <td>Ice</td>\n",
" <td>Flying</td>\n",
" <td>580</td>\n",
" <td>90</td>\n",
" <td>85</td>\n",
" <td>100</td>\n",
" <td>95</td>\n",
" <td>125</td>\n",
" <td>85</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>238</th>\n",
" <td>Swinub</td>\n",
" <td>Ice</td>\n",
" <td>Ground</td>\n",
" <td>250</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>40</td>\n",
" <td>30</td>\n",
" <td>30</td>\n",
" <td>50</td>\n",
" <td>2</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>239</th>\n",
" <td>Piloswine</td>\n",
" <td>Ice</td>\n",
" <td>Ground</td>\n",
" <td>450</td>\n",
" <td>100</td>\n",
" <td>100</td>\n",
" <td>80</td>\n",
" <td>60</td>\n",
" <td>60</td>\n",
" <td>50</td>\n",
" <td>2</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>243</th>\n",
" <td>Delibird</td>\n",
" <td>Ice</td>\n",
" <td>Flying</td>\n",
" <td>330</td>\n",
" <td>45</td>\n",
" <td>55</td>\n",
" <td>45</td>\n",
" <td>65</td>\n",
" <td>45</td>\n",
" <td>75</td>\n",
" <td>2</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>257</th>\n",
" <td>Smoochum</td>\n",
" <td>Ice</td>\n",
" <td>Psychic</td>\n",
" <td>305</td>\n",
" <td>45</td>\n",
" <td>30</td>\n",
" <td>15</td>\n",
" <td>85</td>\n",
" <td>65</td>\n",
" <td>65</td>\n",
" <td>2</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>395</th>\n",
" <td>Snorunt</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>300</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>3</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>396</th>\n",
" <td>Glalie</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>480</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>3</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>397</th>\n",
" <td>GlalieMega Glalie</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>580</td>\n",
" <td>80</td>\n",
" <td>120</td>\n",
" <td>80</td>\n",
" <td>120</td>\n",
" <td>80</td>\n",
" <td>100</td>\n",
" <td>3</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>398</th>\n",
" <td>Spheal</td>\n",
" <td>Ice</td>\n",
" <td>Water</td>\n",
" <td>290</td>\n",
" <td>70</td>\n",
" <td>40</td>\n",
" <td>50</td>\n",
" <td>55</td>\n",
" <td>50</td>\n",
" <td>25</td>\n",
" <td>3</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>399</th>\n",
" <td>Sealeo</td>\n",
" <td>Ice</td>\n",
" <td>Water</td>\n",
" <td>410</td>\n",
" <td>90</td>\n",
" <td>60</td>\n",
" <td>70</td>\n",
" <td>75</td>\n",
" <td>70</td>\n",
" <td>45</td>\n",
" <td>3</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>400</th>\n",
" <td>Walrein</td>\n",
" <td>Ice</td>\n",
" <td>Water</td>\n",
" <td>530</td>\n",
" <td>110</td>\n",
" <td>80</td>\n",
" <td>90</td>\n",
" <td>95</td>\n",
" <td>90</td>\n",
" <td>65</td>\n",
" <td>3</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>415</th>\n",
" <td>Regice</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>580</td>\n",
" <td>80</td>\n",
" <td>50</td>\n",
" <td>100</td>\n",
" <td>100</td>\n",
" <td>200</td>\n",
" <td>50</td>\n",
" <td>3</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>522</th>\n",
" <td>Glaceon</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>525</td>\n",
" <td>65</td>\n",
" <td>60</td>\n",
" <td>110</td>\n",
" <td>130</td>\n",
" <td>95</td>\n",
" <td>65</td>\n",
" <td>4</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>524</th>\n",
" <td>Mamoswine</td>\n",
" <td>Ice</td>\n",
" <td>Ground</td>\n",
" <td>530</td>\n",
" <td>110</td>\n",
" <td>130</td>\n",
" <td>80</td>\n",
" <td>70</td>\n",
" <td>60</td>\n",
" <td>80</td>\n",
" <td>4</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>530</th>\n",
" <td>Froslass</td>\n",
" <td>Ice</td>\n",
" <td>Ghost</td>\n",
" <td>480</td>\n",
" <td>70</td>\n",
" <td>80</td>\n",
" <td>70</td>\n",
" <td>80</td>\n",
" <td>70</td>\n",
" <td>110</td>\n",
" <td>4</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>643</th>\n",
" <td>Vanillite</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>305</td>\n",
" <td>36</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>65</td>\n",
" <td>60</td>\n",
" <td>44</td>\n",
" <td>5</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>644</th>\n",
" <td>Vanillish</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>395</td>\n",
" <td>51</td>\n",
" <td>65</td>\n",
" <td>65</td>\n",
" <td>80</td>\n",
" <td>75</td>\n",
" <td>59</td>\n",
" <td>5</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>645</th>\n",
" <td>Vanilluxe</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>535</td>\n",
" <td>71</td>\n",
" <td>95</td>\n",
" <td>85</td>\n",
" <td>110</td>\n",
" <td>95</td>\n",
" <td>79</td>\n",
" <td>5</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>674</th>\n",
" <td>Cubchoo</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>305</td>\n",
" <td>55</td>\n",
" <td>70</td>\n",
" <td>40</td>\n",
" <td>60</td>\n",
" <td>40</td>\n",
" <td>40</td>\n",
" <td>5</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>675</th>\n",
" <td>Beartic</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>485</td>\n",
" <td>95</td>\n",
" <td>110</td>\n",
" <td>80</td>\n",
" <td>70</td>\n",
" <td>80</td>\n",
" <td>50</td>\n",
" <td>5</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>676</th>\n",
" <td>Cryogonal</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>485</td>\n",
" <td>70</td>\n",
" <td>50</td>\n",
" <td>30</td>\n",
" <td>95</td>\n",
" <td>135</td>\n",
" <td>105</td>\n",
" <td>5</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>788</th>\n",
" <td>Bergmite</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>304</td>\n",
" <td>55</td>\n",
" <td>69</td>\n",
" <td>85</td>\n",
" <td>32</td>\n",
" <td>35</td>\n",
" <td>28</td>\n",
" <td>6</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>789</th>\n",
" <td>Avalugg</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>514</td>\n",
" <td>95</td>\n",
" <td>117</td>\n",
" <td>184</td>\n",
" <td>44</td>\n",
" <td>46</td>\n",
" <td>28</td>\n",
" <td>6</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" name type subtype total hp attack defense \\\n",
"133 Jynx Ice Psychic 455 65 50 35 \n",
"156 Articuno Ice Flying 580 90 85 100 \n",
"238 Swinub Ice Ground 250 50 50 40 \n",
"239 Piloswine Ice Ground 450 100 100 80 \n",
"243 Delibird Ice Flying 330 45 55 45 \n",
"257 Smoochum Ice Psychic 305 45 30 15 \n",
"395 Snorunt Ice NaN 300 50 50 50 \n",
"396 Glalie Ice NaN 480 80 80 80 \n",
"397 GlalieMega Glalie Ice NaN 580 80 120 80 \n",
"398 Spheal Ice Water 290 70 40 50 \n",
"399 Sealeo Ice Water 410 90 60 70 \n",
"400 Walrein Ice Water 530 110 80 90 \n",
"415 Regice Ice NaN 580 80 50 100 \n",
"522 Glaceon Ice NaN 525 65 60 110 \n",
"524 Mamoswine Ice Ground 530 110 130 80 \n",
"530 Froslass Ice Ghost 480 70 80 70 \n",
"643 Vanillite Ice NaN 305 36 50 50 \n",
"644 Vanillish Ice NaN 395 51 65 65 \n",
"645 Vanilluxe Ice NaN 535 71 95 85 \n",
"674 Cubchoo Ice NaN 305 55 70 40 \n",
"675 Beartic Ice NaN 485 95 110 80 \n",
"676 Cryogonal Ice NaN 485 70 50 30 \n",
"788 Bergmite Ice NaN 304 55 69 85 \n",
"789 Avalugg Ice NaN 514 95 117 184 \n",
"\n",
" special_attack special_defense speed generation legendary \n",
"133 115 95 95 1 False \n",
"156 95 125 85 1 True \n",
"238 30 30 50 2 False \n",
"239 60 60 50 2 False \n",
"243 65 45 75 2 False \n",
"257 85 65 65 2 False \n",
"395 50 50 50 3 False \n",
"396 80 80 80 3 False \n",
"397 120 80 100 3 False \n",
"398 55 50 25 3 False \n",
"399 75 70 45 3 False \n",
"400 95 90 65 3 False \n",
"415 100 200 50 3 True \n",
"522 130 95 65 4 False \n",
"524 70 60 80 4 False \n",
"530 80 70 110 4 False \n",
"643 65 60 44 5 False \n",
"644 80 75 59 5 False \n",
"645 110 95 79 5 False \n",
"674 60 40 40 5 False \n",
"675 70 80 50 5 False \n",
"676 95 135 105 5 False \n",
"788 32 35 28 6 False \n",
"789 44 46 28 6 False "
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ice = pokemon[pokemon.type == \"Ice\"]\n",
"ice"
]
},
{
"cell_type": "markdown",
"id": "0af5f534-0bec-4577-beee-29b350102265",
"metadata": {},
"source": [
"Let's get the high-speed ice pokémon. You can join conditions together using the `&` (and) and `|` (or) operators. `~` means \"not\", so `pokemon[~(pokemon.type == \"Ice\")]` would select all the non-ice pokémon. Due to order of operations, each condition needs to be wrapped in parentheses."
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "05d4c5c2-c6b4-4795-9799-c884b15445a1",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>type</th>\n",
" <th>subtype</th>\n",
" <th>total</th>\n",
" <th>hp</th>\n",
" <th>attack</th>\n",
" <th>defense</th>\n",
" <th>special_attack</th>\n",
" <th>special_defense</th>\n",
" <th>speed</th>\n",
" <th>generation</th>\n",
" <th>legendary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>133</th>\n",
" <td>Jynx</td>\n",
" <td>Ice</td>\n",
" <td>Psychic</td>\n",
" <td>455</td>\n",
" <td>65</td>\n",
" <td>50</td>\n",
" <td>35</td>\n",
" <td>115</td>\n",
" <td>95</td>\n",
" <td>95</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>156</th>\n",
" <td>Articuno</td>\n",
" <td>Ice</td>\n",
" <td>Flying</td>\n",
" <td>580</td>\n",
" <td>90</td>\n",
" <td>85</td>\n",
" <td>100</td>\n",
" <td>95</td>\n",
" <td>125</td>\n",
" <td>85</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>396</th>\n",
" <td>Glalie</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>480</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>3</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>397</th>\n",
" <td>GlalieMega Glalie</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>580</td>\n",
" <td>80</td>\n",
" <td>120</td>\n",
" <td>80</td>\n",
" <td>120</td>\n",
" <td>80</td>\n",
" <td>100</td>\n",
" <td>3</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>524</th>\n",
" <td>Mamoswine</td>\n",
" <td>Ice</td>\n",
" <td>Ground</td>\n",
" <td>530</td>\n",
" <td>110</td>\n",
" <td>130</td>\n",
" <td>80</td>\n",
" <td>70</td>\n",
" <td>60</td>\n",
" <td>80</td>\n",
" <td>4</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>530</th>\n",
" <td>Froslass</td>\n",
" <td>Ice</td>\n",
" <td>Ghost</td>\n",
" <td>480</td>\n",
" <td>70</td>\n",
" <td>80</td>\n",
" <td>70</td>\n",
" <td>80</td>\n",
" <td>70</td>\n",
" <td>110</td>\n",
" <td>4</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>676</th>\n",
" <td>Cryogonal</td>\n",
" <td>Ice</td>\n",
" <td>NaN</td>\n",
" <td>485</td>\n",
" <td>70</td>\n",
" <td>50</td>\n",
" <td>30</td>\n",
" <td>95</td>\n",
" <td>135</td>\n",
" <td>105</td>\n",
" <td>5</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" name type subtype total hp attack defense \\\n",
"133 Jynx Ice Psychic 455 65 50 35 \n",
"156 Articuno Ice Flying 580 90 85 100 \n",
"396 Glalie Ice NaN 480 80 80 80 \n",
"397 GlalieMega Glalie Ice NaN 580 80 120 80 \n",
"524 Mamoswine Ice Ground 530 110 130 80 \n",
"530 Froslass Ice Ghost 480 70 80 70 \n",
"676 Cryogonal Ice NaN 485 70 50 30 \n",
"\n",
" special_attack special_defense speed generation legendary \n",
"133 115 95 95 1 False \n",
"156 95 125 85 1 True \n",
"396 80 80 80 3 False \n",
"397 120 80 100 3 False \n",
"524 70 60 80 4 False \n",
"530 80 70 110 4 False \n",
"676 95 135 105 5 False "
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"high_speed_ice = pokemon[(pokemon.type == \"Ice\") & (pokemon.speed >= 80)]\n",
"high_speed_ice"
]
},
{
"cell_type": "markdown",
"id": "c84dc7ce-24f2-4ac7-92d7-99ed331488e0",
"metadata": {},
"source": [
"You could get the pokémon who are fire or ice by selecting `pokemon[(pokemon.type == \"Fire\") | (pokemon.type == \"Ice\")]`."
]
},
{
"cell_type": "markdown",
"id": "1f0e9625-b194-450d-b003-b88798cc2f45",
"metadata": {},
"source": [
"#### Your turn\n",
"\n",
"**1.3.0.** `no_doctor` indicates whether there was a time in the last year when the person needed to see a doctor, but could not afford to do so. Create a dataframe containing only these people. "
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "198cb0c6-3f43-43c2-9eee-3939c12ea537",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(0.0828240949376596)"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"people.no_doctor.mean()\n"
]
},
{
"cell_type": "markdown",
"id": "9d213707-a15b-4751-8df9-48aa568af209",
"metadata": {},
"source": [
"**1.3.1.** `health` asks people for their general health, with the meanings of numbers shown below. Create a dataframe which contains people whose general health is good or better. \n",
"\n",
"| number | health status | \n",
"| ------ | ----------- |\n",
"| 1 | Poor |\n",
"| 2 | Fair |\n",
"| 3 | Good |\n",
"| 4 | Very good |\n",
"| 5 | Excellent |"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "8a8c1ad6-4c1e-4996-ab5e-5212dadb1851",
"metadata": {},
"outputs": [
{
"ename": "AttributeError",
"evalue": "'DataFrame' object has no attribute 'status'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m/tmp/ipykernel_663/2624396182.py\u001b[0m in \u001b[0;36m?\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mhealth\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpeople\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpeople\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstatus\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"good\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m&\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mpeople\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstatus\u001b[0m \u001b[0;34m>=\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m~/.cache/pypoetry/virtualenvs/lab-pokemon-5vai_YDo-py3.12/lib/python3.12/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m?\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m 6295\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mname\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_accessors\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6296\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_info_axis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_can_hold_identifiers_and_holds_name\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6297\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 6298\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 6299\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__getattribute__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\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: 'DataFrame' object has no attribute 'status'"
]
}
],
"source": [
"\n",
"health = people[(people.status == \"good\") & (people.status >= 3)]\n"
]
},
{
"cell_type": "markdown",
"id": "7add542b-bfd2-481a-b5b4-4e1ca744078a",
"metadata": {},
"source": [
"**1.3.2.**. `education` indicates the highest level of education completed, with codes as follows. Create a dataframe which only contains female college graduates who needed a doctor but couldn't afford one. (The survey asked people for their current sex, and only had options for male and female.)\n",
"\n",
"| number | education level | \n",
"| ------ | ----------- |\n",
"| 1 | Did not graduate from high school |\n",
"| 2 | Graduated from high school |\n",
"| 3 | Attended some college |\n",
"| 4 | Graduated from college |"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "315682ae-7d54-4d78-9a63-d23c83ba1576",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"people.no_doctor.mean == \"graduated from college\""
]
},
{
"cell_type": "markdown",
"id": "646d1148-7d94-4521-a04a-fbf17ade1235",
"metadata": {},
"source": [
"### 1.4. Grouping\n",
"\n",
"Now things get crazy. You can group a dataframe using one or more columns, and then compare their statistics. \n",
"\n",
"#### Demo\n",
"\n",
"Do different types of pokémon move at different speeds? We'll use `sort_values` to put these in order from slow to fast."
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "069ea0ab-eff6-4985-9f46-db956fe1df91",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"type\n",
"Fairy 48.588235\n",
"Steel 55.259259\n",
"Rock 55.909091\n",
"Bug 61.681159\n",
"Grass 61.928571\n",
"Ice 63.458333\n",
"Poison 63.571429\n",
"Ground 63.906250\n",
"Ghost 64.343750\n",
"Water 65.964286\n",
"Fighting 66.074074\n",
"Normal 71.551020\n",
"Fire 74.442308\n",
"Dark 76.161290\n",
"Psychic 81.491228\n",
"Dragon 83.031250\n",
"Electric 84.500000\n",
"Flying 102.500000\n",
"Name: speed, dtype: float64"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pokemon.groupby(\"type\").speed.mean().sort_values()"
]
},
{
"cell_type": "markdown",
"id": "bdc801b7-d3ae-45bb-80f4-ebeb474e20a1",
"metadata": {},
"source": [
"Do types differ in other stats? Let's sort by hit points. "
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "5c420c0e-b5d2-49ae-ab98-3305ee076169",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>hp</th>\n",
" <th>attack</th>\n",
" <th>defense</th>\n",
" </tr>\n",
" <tr>\n",
" <th>type</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Bug</th>\n",
" <td>56.884058</td>\n",
" <td>70.971014</td>\n",
" <td>70.724638</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Electric</th>\n",
" <td>59.795455</td>\n",
" <td>69.090909</td>\n",
" <td>66.295455</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ghost</th>\n",
" <td>64.437500</td>\n",
" <td>73.781250</td>\n",
" <td>81.187500</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Steel</th>\n",
" <td>65.222222</td>\n",
" <td>92.703704</td>\n",
" <td>126.370370</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Rock</th>\n",
" <td>65.363636</td>\n",
" <td>92.863636</td>\n",
" <td>100.795455</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Dark</th>\n",
" <td>66.806452</td>\n",
" <td>88.387097</td>\n",
" <td>70.225806</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Poison</th>\n",
" <td>67.250000</td>\n",
" <td>74.678571</td>\n",
" <td>68.821429</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Grass</th>\n",
" <td>67.271429</td>\n",
" <td>73.214286</td>\n",
" <td>70.800000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fighting</th>\n",
" <td>69.851852</td>\n",
" <td>96.777778</td>\n",
" <td>65.925926</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fire</th>\n",
" <td>69.903846</td>\n",
" <td>84.769231</td>\n",
" <td>67.769231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Psychic</th>\n",
" <td>70.631579</td>\n",
" <td>71.456140</td>\n",
" <td>67.684211</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Flying</th>\n",
" <td>70.750000</td>\n",
" <td>78.750000</td>\n",
" <td>66.250000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ice</th>\n",
" <td>72.000000</td>\n",
" <td>72.750000</td>\n",
" <td>71.416667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Water</th>\n",
" <td>72.062500</td>\n",
" <td>74.151786</td>\n",
" <td>72.946429</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ground</th>\n",
" <td>73.781250</td>\n",
" <td>95.750000</td>\n",
" <td>84.843750</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fairy</th>\n",
" <td>74.117647</td>\n",
" <td>61.529412</td>\n",
" <td>65.705882</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Normal</th>\n",
" <td>77.275510</td>\n",
" <td>73.469388</td>\n",
" <td>59.846939</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Dragon</th>\n",
" <td>83.312500</td>\n",
" <td>112.125000</td>\n",
" <td>86.375000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" hp attack defense\n",
"type \n",
"Bug 56.884058 70.971014 70.724638\n",
"Electric 59.795455 69.090909 66.295455\n",
"Ghost 64.437500 73.781250 81.187500\n",
"Steel 65.222222 92.703704 126.370370\n",
"Rock 65.363636 92.863636 100.795455\n",
"Dark 66.806452 88.387097 70.225806\n",
"Poison 67.250000 74.678571 68.821429\n",
"Grass 67.271429 73.214286 70.800000\n",
"Fighting 69.851852 96.777778 65.925926\n",
"Fire 69.903846 84.769231 67.769231\n",
"Psychic 70.631579 71.456140 67.684211\n",
"Flying 70.750000 78.750000 66.250000\n",
"Ice 72.000000 72.750000 71.416667\n",
"Water 72.062500 74.151786 72.946429\n",
"Ground 73.781250 95.750000 84.843750\n",
"Fairy 74.117647 61.529412 65.705882\n",
"Normal 77.275510 73.469388 59.846939\n",
"Dragon 83.312500 112.125000 86.375000"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ptypes = pokemon.groupby(\"type\")\n",
"ptypes[[\"hp\", \"attack\", \"defense\"]].mean().sort_values(\"hp\")"
]
},
{
"cell_type": "markdown",
"id": "cc9a3d19-0ecd-487b-b34f-b748c44fc9c9",
"metadata": {},
"source": [
"Which type/subtype combinations are most likely to have legendary pokémon?"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "444a580d-e70c-48a1-bf87-77f98b8c9f85",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"type subtype \n",
"Electric Flying 0.600000\n",
"Rock Fairy 0.666667\n",
"Ghost Dragon 1.000000\n",
"Fire Water 1.000000\n",
"Dragon Fire 1.000000\n",
" Electric 1.000000\n",
" Ice 1.000000\n",
" Psychic 1.000000\n",
"Steel Dragon 1.000000\n",
" Fighting 1.000000\n",
"Psychic Ghost 1.000000\n",
"Rock Fighting 1.000000\n",
"Psychic Fire 1.000000\n",
" Dark 1.000000\n",
"Ground Fire 1.000000\n",
"Fire Steel 1.000000\n",
"Name: legendary, dtype: float64"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"legendary_percentages = pokemon.groupby([\"type\", \"subtype\"]).legendary.mean().sort_values() \n",
"legendary_percentages[legendary_percentages > 0.5]"
]
},
{
"cell_type": "markdown",
"id": "de23775b-8670-4371-913d-d8fa1d1f3a76",
"metadata": {},
"source": [
"#### Your turn\n",
"\n",
"**1.4.0.** `income` records peoples' annual income, in the following bands. `sleep` records the average hours of sleep someone gets per night. Is there a difference in the average hours of sleep by income level?\n",
"\n",
"| number | annual income, in $1000 | \n",
"| ------ | ----------- |\n",
"| 1 | Less than 10 |\n",
"| 2 | 10-15 |\n",
"| 3 | 15-20 |\n",
"| 4 | 20-25 |\n",
"| 5 | 25-35 |\n",
"| 6 | 35-50 |\n",
"| 7 | 50-75 |\n",
"| 8 | More than 75 |"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "75c1ac4f-3914-4c0a-a156-2e084002df66",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"income\n",
"1 6.952208\n",
"2 6.985627\n",
"6 7.055784\n",
"8 7.074626\n",
"7 7.078495\n",
"4 7.079627\n",
"3 7.083274\n",
"5 7.100286\n",
"Name: sleep, dtype: float64"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"people.groupby(\"income\").sleep.mean().sort_values()"
]
},
{
"cell_type": "markdown",
"id": "f6413f2b-26a0-4b70-976f-90e45558c4bb",
"metadata": {},
"source": [
"**1.4.0.** Is there a difference in peoples' income or general health, by sex and education level? "
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "d46df8a1-bbc2-45a4-9be1-cee1858cbf21",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'people' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[3], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mpeople\u001b[49m\u001b[38;5;241m.\u001b[39mgroupby(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mincome\u001b[39m\u001b[38;5;124m\"\u001b[39m)\u001b[38;5;241m.\u001b[39msleep\u001b[38;5;241m.\u001b[39mmean()\u001b[38;5;241m.\u001b[39msort_values()\n\u001b[1;32m 2\u001b[0m ptypes \u001b[38;5;241m=\u001b[39m people\u001b[38;5;241m.\u001b[39mgroupby(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mincome\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 3\u001b[0m ptypes[[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhealth\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msex\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124meducation\u001b[39m\u001b[38;5;124m\"\u001b[39m]]\u001b[38;5;241m.\u001b[39mmean()\u001b[38;5;241m.\u001b[39msort_values(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhp\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"\u001b[0;31mNameError\u001b[0m: name 'people' is not defined"
]
}
],
"source": [
"people.groupby(\"income\").sleep.mean().sort_values()\n",
"ptypes = people.groupby(\"income\")\n",
"ptypes[[\"health\", \"sex\", \"education\"]].mean().sort_values(\"hp\")\n"
]
},
{
"cell_type": "markdown",
"id": "931d602b-ddf4-4c8b-80e0-f886267cce76",
"metadata": {},
"source": [
"### 1.5. Plotting \n",
"\n",
"Pandas has excellent built-in plotting capabilities, but \n",
"we are going to use the [seaborn](https://seaborn.pydata.org/) library because it's a bit \n",
"more intuitive and produces more beautiful plots. `set_theme`, called here without any arguments, assigns the default color palette. "
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "b1e06e4f-6b9e-42af-a27c-dbb525a259ce",
"metadata": {},
"outputs": [],
"source": [
"import seaborn as sns\n",
"sns.set_theme()"
]
},
{
"cell_type": "markdown",
"id": "a15ad672-13e8-4bdd-bc31-a489a1730daf",
"metadata": {},
"source": [
"#### Demo\n",
"\n",
"**When you want to visualize the distribution of a series**, a [histogram](https://seaborn.pydata.org/generated/seaborn.histplot.html) puts data into bins and plots the number of data points in each bin.\n",
"\n",
"Let's see the distribution of pokémon attack values. Note how assigning `x=\"attack\"` spreads attack values over the x-axis, while `y=\"attack\"` spreads attack values over the y-axis. The number of bins is selected automatically, but you can specify this with the optional `bins` argument. "
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "5ce066fe-f81d-4b78-a394-c5c2f4dc9f46",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'pokemon' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[5], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m sns\u001b[38;5;241m.\u001b[39mhistplot(data\u001b[38;5;241m=\u001b[39m\u001b[43mpokemon\u001b[49m, x\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mattack\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"\u001b[0;31mNameError\u001b[0m: name 'pokemon' is not defined"
]
}
],
"source": [
"sns.histplot(data=pokemon, x=\"attack\")"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "bceb253b-ef4f-4aa2-aef4-cab2b3ca6d59",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'pokemon' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[6], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m sns\u001b[38;5;241m.\u001b[39mhistplot(data\u001b[38;5;241m=\u001b[39m\u001b[43mpokemon\u001b[49m, y\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mattack\u001b[39m\u001b[38;5;124m\"\u001b[39m, bins\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m5\u001b[39m)\n",
"\u001b[0;31mNameError\u001b[0m: name 'pokemon' is not defined"
]
}
],
"source": [
"sns.histplot(data=pokemon, y=\"attack\", bins=5)"
]
},
{
"cell_type": "markdown",
"id": "2aac9186-86c0-41db-a1c4-8719bb78b46b",
"metadata": {},
"source": [
"**When you want to compare the distribution of a numeric variable across categories**, a [barplot](https://seaborn.pydata.org/generated/seaborn.barplot.html) is a good choice. Choose one numeric column and one categorical column. \n",
"\n",
"Let's see pokémon hit points by legendary/non-legendary. `errorbar=\"sd\"` shows the standard deviation for each category. "
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "92be1ad0-12bb-49f0-a3f6-85fcfd98e943",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'pokemon' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[7], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m sns\u001b[38;5;241m.\u001b[39mbarplot(data\u001b[38;5;241m=\u001b[39m\u001b[43mpokemon\u001b[49m, x\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlegendary\u001b[39m\u001b[38;5;124m\"\u001b[39m, y\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhp\u001b[39m\u001b[38;5;124m\"\u001b[39m, errorbar\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msd\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"\u001b[0;31mNameError\u001b[0m: name 'pokemon' is not defined"
]
}
],
"source": [
"sns.barplot(data=pokemon, x=\"legendary\", y=\"hp\", errorbar=\"sd\")"
]
},
{
"cell_type": "markdown",
"id": "4f75e1fa-a5d7-4d2c-a458-8190a7cd700e",
"metadata": {},
"source": [
"Here, we use a barplot to show average hit points by type. `errorbar=None` removes the standard deviation bars, because they clutter up the plot with too much detail. "
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "17f1c289-5990-4420-bfcb-e50eee0b8af6",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'pokemon' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[8], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m sns\u001b[38;5;241m.\u001b[39mbarplot(data\u001b[38;5;241m=\u001b[39m\u001b[43mpokemon\u001b[49m, x\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhp\u001b[39m\u001b[38;5;124m\"\u001b[39m, y\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtype\u001b[39m\u001b[38;5;124m\"\u001b[39m, hue\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtype\u001b[39m\u001b[38;5;124m\"\u001b[39m, errorbar\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, palette\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmuted\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"\u001b[0;31mNameError\u001b[0m: name 'pokemon' is not defined"
]
}
],
"source": [
"sns.barplot(data=pokemon, x=\"hp\", y=\"type\", hue=\"type\", errorbar=None, palette=\"muted\")"
]
},
{
"cell_type": "markdown",
"id": "213d6139-203f-4d81-a4b1-6f98cb184662",
"metadata": {},
"source": [
"**When you want to show how many observations are the intersection of multiple categories,** a [countplot](https://seaborn.pydata.org/generated/seaborn.countplot.html) is a good choice. \n",
"\n",
"To demonstrate this, let's convert the numeric variable `speed` into a categorical variable, `speed_category`, using the built-in function [cut](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.cut.html). "
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "3c8e9f47-9aea-4bf0-a628-7aa1a66a8eee",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'pd' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[9], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m bins \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m50\u001b[39m, \u001b[38;5;241m100\u001b[39m, \u001b[38;5;241m200\u001b[39m]\n\u001b[1;32m 2\u001b[0m labels \u001b[38;5;241m=\u001b[39m [\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mslow\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmedium\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfast\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m----> 3\u001b[0m pokemon[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mspeed_category\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[43mpd\u001b[49m\u001b[38;5;241m.\u001b[39mcut(pokemon\u001b[38;5;241m.\u001b[39mspeed, bins\u001b[38;5;241m=\u001b[39mbins, labels\u001b[38;5;241m=\u001b[39mlabels)\n",
"\u001b[0;31mNameError\u001b[0m: name 'pd' is not defined"
]
}
],
"source": [
"bins = [0, 50, 100, 200]\n",
"labels = [\"slow\", \"medium\", \"fast\"]\n",
"pokemon[\"speed_category\"] = pd.cut(pokemon.speed, bins=bins, labels=labels)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "22f78bec-3d18-4133-ba9f-6595d7181ded",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'pokemon' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[10], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m sns\u001b[38;5;241m.\u001b[39mcountplot(data\u001b[38;5;241m=\u001b[39m\u001b[43mpokemon\u001b[49m, x\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mspeed_category\u001b[39m\u001b[38;5;124m\"\u001b[39m, hue\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlegendary\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"\u001b[0;31mNameError\u001b[0m: name 'pokemon' is not defined"
]
}
],
"source": [
"sns.countplot(data=pokemon, x=\"speed_category\", hue=\"legendary\")"
]
},
{
"cell_type": "markdown",
"id": "fd508c13-9900-4be1-958f-4f9e9e9b633a",
"metadata": {},
"source": [
"**When you want to show the relationship between two numeric variables**, a [scatterplot](https://seaborn.pydata.org/generated/seaborn.scatterplot.html) is a good choice. \n",
"\n",
"Here, we plot pokémon hit points against their speed. "
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "444d9832-bd57-4238-9ea4-5ee898847170",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'pokemon' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[11], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m sns\u001b[38;5;241m.\u001b[39mscatterplot(data\u001b[38;5;241m=\u001b[39m\u001b[43mpokemon\u001b[49m, x\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhp\u001b[39m\u001b[38;5;124m\"\u001b[39m, y\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mspeed\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"\u001b[0;31mNameError\u001b[0m: name 'pokemon' is not defined"
]
}
],
"source": [
"sns.scatterplot(data=pokemon, x=\"hp\", y=\"speed\")"
]
},
{
"cell_type": "markdown",
"id": "03e81709-393d-4c41-bce5-2dffc9cf5553",
"metadata": {},
"source": [
"You can distinguish between categories within a scatter plot by assigning a categorical variable to `hue`. We set the marker size with `s` and their opacity with `alpha`. "
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "86f9747b-00a3-407f-9b73-0bce40bac50d",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'pokemon' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[12], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m sns\u001b[38;5;241m.\u001b[39mscatterplot(data\u001b[38;5;241m=\u001b[39m\u001b[43mpokemon\u001b[49m, x\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhp\u001b[39m\u001b[38;5;124m\"\u001b[39m, y\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mspeed\u001b[39m\u001b[38;5;124m\"\u001b[39m, hue\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlegendary\u001b[39m\u001b[38;5;124m\"\u001b[39m, alpha\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0.5\u001b[39m, s\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m60\u001b[39m)\n",
"\u001b[0;31mNameError\u001b[0m: name 'pokemon' is not defined"
]
}
],
"source": [
"sns.scatterplot(data=pokemon, x=\"hp\", y=\"speed\", hue=\"legendary\", alpha=0.5, s=60)"
]
},
{
"cell_type": "markdown",
"id": "f3741251-2a2b-437e-b68f-084fb4399e9f",
"metadata": {},
"source": [
"Finally, if you want scatter plots across multiple categories, a [relplot](https://seaborn.pydata.org/generated/seaborn.relplot.html) lets you distribute categories across rows and colums in a grid. "
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "7385237c-6a5c-4041-af46-559d6d84d1fa",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'pokemon' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[13], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m favorite_types \u001b[38;5;241m=\u001b[39m \u001b[43mpokemon\u001b[49m[pokemon\u001b[38;5;241m.\u001b[39mtype\u001b[38;5;241m.\u001b[39misin([\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFire\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mWater\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mGrass\u001b[39m\u001b[38;5;124m\"\u001b[39m])]\n\u001b[1;32m 2\u001b[0m sns\u001b[38;5;241m.\u001b[39mrelplot(data\u001b[38;5;241m=\u001b[39mfavorite_types, x\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhp\u001b[39m\u001b[38;5;124m\"\u001b[39m, y\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mspeed\u001b[39m\u001b[38;5;124m\"\u001b[39m, hue\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlegendary\u001b[39m\u001b[38;5;124m\"\u001b[39m, col\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtype\u001b[39m\u001b[38;5;124m\"\u001b[39m, s\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m100\u001b[39m)\n",
"\u001b[0;31mNameError\u001b[0m: name 'pokemon' is not defined"
]
}
],
"source": [
"favorite_types = pokemon[pokemon.type.isin([\"Fire\", \"Water\", \"Grass\"])]\n",
"sns.relplot(data=favorite_types, x=\"hp\", y=\"speed\", hue=\"legendary\", col=\"type\", s=100)"
]
},
{
"cell_type": "markdown",
"id": "c6a20904-416d-44be-a4f3-2107200fb3c2",
"metadata": {},
"source": [
"#### Your turn\n",
"\n",
"**1.5.0.** Plot a histogram of peoples' heights."
]
},
{
"cell_type": "code",
"execution_count": 61,
"id": "3b268a30-42ff-4ab8-b2cd-c58a76121f9c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: xlabel='height', ylabel='Count'>"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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BDOfQ9j//d//+bMOAACAVqX1fRInAABAC9DoW1R88MEHevfdd3X48GFJ5+5oP3jwYPXv37/RxQEAAAQrn0NYWVmZpk+fri1btsjlcslqtUo69yHZzz//vK6//no9/fTT7o/5AQAAwPd8Ph25bNkyvfXWW7r77ru1fft2ffDBB/rggw+0Y8cOZWZmavPmzVq2bJk/awUAAAgaPoew9evX65ZbbtGDDz6oH/3oR+7tF110kR544AHdfPPN+tvf/uaXIgEAAIKNzyHsu+++U69evWod79Wrl7777jtflwcAAAhqPoewSy+9VB988EGt4x9++KEuvfRSX5cHAAAIaj6HsJtvvlkbN25UTk6O7Ha7KioqVFlZKbvdrkceeUSbNm3SLbfc4s9aAQAAgobPvx15zz336ODBg1q7dq3WrVunkJBzea6yslIul0u33HKL7rnnHr8VCgAAEEx8DmGhoaFasGCBxo8fr/z8fB06dEiSdPnllys1NVVXXnml34oEAAAINg0KYWfPntXjjz+uH//4x7rzzjslSVdeeWW1wPXCCy/oz3/+s377299ynzAAAIAaNOiasL/85S96/fXXNXjwYK/zBg8erNdee03r1q1rTG0AAABBq0EhbOPGjRo+fLi6du3qdV63bt1044036s0332xUcQAAAMGqQSFsz5496tu3b73mJiUl6YsvvvCpKAAAgGDXoBBWXl5e72u82rRpo7KyMp+KAgAACHYNCmEXX3yx9u7dW6+5e/fu1cUXX+xTUQAAAMGuQSHs2muv1RtvvKFjx455nXfs2DG98cYbuvbaaxtVHAAAQLBqUAjLzs7W2bNnNW7cOH3yySc1zvnkk080fvx4nT17Vr/61a/8UiQAAECwadB9wrp27apFixbp/vvv19ixY9W1a1f17NlTkZGROnXqlPbu3auvvvpKbdu21cKFC9WtW7emqhsAACCgNfiO+YMHD9bf/vY35eXl6d1339WWLVvcYxdffLFGjx6t7OzsOm9jAQAA0Jr59LFFXbp00aOPPipJKikp0alTpxQZGan27dv7tTgAAIBg5fNnR1Zp37494QsAAKCBGnRhPgAAAPyDEAYAAGACQhgAAIAJCGEAAAAmIIQBAACYgBAGAABgAkIYAACACQhhAAAAJgjYEPb666/r5ptv1jXXXKMBAwboV7/6lc6cOeMef/vtt3XT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SqtXr9akSZPUtm1bM0tsMi6XSw899JC+/PJLPf300+rUqZPee+895ebmKjo6OuD+Uj5y5IimTZumAQMG6K677jK7nGbla+/B8F5X3979/T5HCINfWa1WlZWV6ezZsx7/QnQ4HDIMQ9HR0SZW13zWrl2rZcuW6fHHH1dycrLZ5TSLP/zhD0pISFC/fv3kcDgknbteyOl0yuFwqF27dtWuIwkWVqtV0rngdaHk5GStWLFCBw4cUEJCghmlNbl3331XmzZt0t/+9jd3jwMGDNCxY8e0YMGCgAphDodD2dnZ6tChg5YsWeL1Grlge69rSO8XCob3uob07u/3ueB8R4Rpqq6PKCws1JVXXunebrfb1blz56A9GnCht956S3PnztWUKVN06623ml1OsyksLNSHH36on/70p9XGfvrTnyovL0+pqakmVNb0rrjiCq/jZ8+ebaZKmt++ffsUGhqqnj17emxPTEzUunXrVFpaqoiICJOqq78zZ85o4sSJKi4u1l/+8pdqv2jwQ8H0XtfQ3qsEw3tdQ3v39/scIQx+1adPH7Vv314bN250vzGVl5dr8+bNQfsX8IXef/993X///Ro9erQmTZpkdjnNavbs2e5/GVbJzc1V27Ztdf/99wftkSBJuvzyy9WzZ0+99957uuOOO9zb33vvPbVt27bOkBbILr/8clVUVOiLL77wCCOff/65LrroooAIYE6nU1OnTpXdbtdLL72kSy65pM59guW9zpfepeB4r/Old3+/zxHCUKvS0lJt27ZNknTo0CGVlJRo06ZNkqT+/fsrJiZG48aN0+HDh/XWW29JksLDwzVx4kQtWbJEMTEx6tmzp1555RWdPHlSWVlZpvXSUL70vn//fk2aNEk9evTQqFGjPO6cHRMTo27dujV7H77ypf/ExMRq61itVrVr104DBgxovuIbyZfeJWnatGn6zW9+o8cff1yDBw/W//7v/2r16tXKysoKmOtkfOk9NTVVnTt31pQpUzRp0iRdfPHF2r59u15//XXde++9pvXSEI8++qjeeecdzZo1SyUlJR5/dq+66ipZLJagfa/zpfdgea/zpXd/v88RwlCrY8eO6b777vPYVvX9Cy+8oAEDBqiyslIVFRUec7Kzs+VyubR69WodP35ciYmJstlsAXMHacm33j/55BMVFxeruLhYGRkZHvvecsstWrBgQdMX7ie+/uyDga+9Dx06VAsXLtSzzz6rV155RRdffLHuvfdeTZgwodlqbyxfem/fvr3WrFmjZ555Rk899ZSKi4vVpUsXzZo1y+OoYEu2Y8cOSarxz+jWrVvVpUuXoH2v86X3YHmv8/Xn7k+GK1DupgcAABBEuE8YAACACQhhAAAAJiCEAQAAmIAQBgAAYAJCGAAAgAkIYQAAACYghAEAAJiAEAag1VmyZIkSEhJ0/Phxv6w3a9YsDR061Od9k5KS/FIHgMBCCAOAAFBaWqolS5bo/fffN7sUAH5CCAOARpo3b577MxabSmlpqZYuXaoPPvigSR8HQPPhsyMBoJHatGljdgkAAhBHwgC0WsXFxZo1a5b69eunvn376qGHHlJpaanHnDfeeEM///nP1atXL/Xv31/Tpk3TN9984zGnpmvCTpw4oQceeEB9+vRRv379NHPmTP3f//2fEhIS9Ne//rVaLd9++61+85vfKCkpSQMHDtQTTzzh/uDgr7/+WsnJyZKkpUuXKiEhQQkJCVqyZIk/nw4AzYwjYQBaralTp6pLly66//77tWvXLq1bt04xMTF64IEHJEnLly/XH/7wB6WlpenWW2/V8ePH9eKLL+qXv/yl/vu//1tWq7XGdSsrK/XrX/9an376qTIyMhQXF6etW7dq5syZNc6vqKhQVlaWevXqpQcffFAFBQVavXq1unbtqttvv10xMTGaO3eu5s6dq+uvv17XX3+9JCkhIaFpnhgAzYIQBqDVSkxMVG5urvv7kydP6tVXX9UDDzygQ4cOacmSJZo6daruuece95zhw4frlltu0csvv+yx/UJbtmzRzp07NXv2bI0bN06SlJGRobvvvrvG+WfPnlVaWpomTZrknnvLLbfo1Vdf1e2336527drphhtu0Ny5c5WQkKBRo0b56ykAYCJORwJotcaOHevxfb9+/XTy5EmVlJTorbfeUmVlpdLS0nT8+HH3fz/60Y/UvXt3r7+l+P/+3/9TmzZtdNttt7m3hYSE6Je//GWt+2RkZHh837dvX3399dc+dgYgEHAkDECr1blzZ4/vq04vFhUV6csvv5TL5dLw4cNr3DcsrPa3z8OHD6tTp06KiIjw2N6tW7ca54eHhysmJsZjW3R0tIqKiursAUDgIoQBaLVCQmo+GeByuVRZWSnDMJSXl6fQ0NBqc9q1a+e3OmpaH0DwI4QBQA26desml8ulLl26KDY2tkH7du7cWe+//75KS0s9joZ99dVXPtdjGIbP+wJombgmDABqMHz4cIWGhmrp0qVyuVweYy6XSydOnKh135SUFJWXl2vt2rXubZWVlXrppZd8rqcqzDkcDp/XANCycCQMAGrQrVs3TZ06VU8//bQOHTqk6667TpGRkfr666+1ZcsW3XbbbcrKyqpx3+uuu069evXSE088oa+++kpxcXF6++233dd4+XJUq23btrriiiu0ceNG9ejRQx06dNCPf/xj9ezZs1F9AjAPIQwAajFhwgT16NFDa9as0bJlyyRJl156qQYNGuT1A7tDQ0O1cuVKPf7443r99dcVEhKi66+/XpMmTVJGRobCw8N9quexxx7TvHnzNH/+fJWXl2vy5MmEMCCAGa4fHmcHADSJLVu2aNKkSXr55ZfVt29fs8sBYDKuCQOAJnDmzBmP7ysqKvSnP/1J7du319VXX21SVQBaEk5HAkATmDdvns6cOaOkpCSVlZVp8+bN2rlzp+6//361bdvW7PIAtACcjgSAJrB+/Xo9//zzOnDggM6ePavu3bsrIyNDd9xxh9mlAWghCGEAAAAm4JowAAAAExDCAAAATEAIAwAAMAEhDAAAwASEMAAAABMQwgAAAExACAMAADABIQwAAMAEhDAAAAAT/H/Kmon4uyCA3AAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Your code here\n",
"sns.histplot(data=people, x=\"height\")"
]
},
{
"cell_type": "markdown",
"id": "9b0c9120-fff4-42b2-8ab6-3aa2eba47806",
"metadata": {},
"source": [
"**1.5.1.** Plot a bar chart showing peoples' average hours of sleep by age. "
]
},
{
"cell_type": "code",
"execution_count": 62,
"id": "ee30c851-14b1-4901-9182-4304d54d53a6",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: xlabel='sleep', ylabel='age'>"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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MqpXp9PpceixVOBp0qSJJCk/P18tWrSoWp6Xl+e23leVT0agVFQ4VV5u/ppG1aVXejWqLr3Sq1F16dVavbpcnm9rqpOWL6R9+/aS/nsuT6Xs7GyFhISobdu2ddEWAAAwOUsFnrZt26pdu3bKzMx0W56RkaHExESFhobWUWcAAMDMTHVIq7i4WJs2bZIkHTp0SAUFBVXh5rrrrlOzZs00efJkTZ06VVFRUYqPj1dGRoZ27typlStX1mXrAADAxEwVeI4fP64HH3zQbVnl7ddff13x8fEaMmSIiouLlZ6errS0NEVHR2vBggXq0aNHXbQMAAAswFSBp02bNvr3v/99we2Sk5OVnJx8EToCAAB2YKlzeAAAAHxB4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZH4AEAALZnycCzb98+3XvvvYqLi9MNN9yg559/XqWlpXXdFgAAMKl6dd2At3JzczVmzBi1a9dO8+fP15EjR/Tcc8+ppKREM2fOrOv2AACACVku8Lz55psqLCzUggULFBkZKUmqqKjQ008/rfvuu08tW7as2wYBAIDpWO6Q1meffabExMSqsCNJSUlJcjqd2rx5c901BgAATMvhcrlcdd2ENxITEzV8+HBNnTrVbXmfPn00dOjQass95XK55HK5FBQUpNyCElVUOH3uMTg4SE3C68vpdMrlkhwO+V3XiJoXq1fJvL8DerX2a8tKvUrm/R1YqVej6lq5V8m8vwOje3W5XHI4HB7dx3KHtPLy8hQREVFteZMmTZSbm+tzXYfDUfVLaxJe3+c6ZwsKch9AC0RdI2oaVffcmkbVpVfz9mpUXSv3alTdS61Xo+pauVej6pq5V0/DjmTBQ1oAAADeslzgiYiIUH5+frXlubm5atKkSR10BAAAzM5ygad9+/bKzs52W5afn69jx46pffv2ddQVAAAwM8sFnhtvvFFbtmxRXl5e1bLMzEwFBQXphhtuqMPOAACAWVnuKq3c3FwNHjxY0dHRuu+++6omHrz99tuZeBAAANTIcoFHOvPVEr/73e/07bffqlGjRho6dKhSU1MVGhpa160BAAATsmTgAQAA8IblzuEBAADwFoEHAADYHoEHAADYHoEHAADYHoEHAADYHoEHAADYnuW+Lb2uHDhwQEuXLtWOHTu0d+9etW/fXmvWrPGr5kcffaQPPvhA33//vfLy8nTllVdq1KhRGj58uFffAHu2TZs2KT09XVlZWSooKFDLli01YMAApaSkqHHjxn71e7bCwkIlJSXpyJEjeueddxQbG+t1jffee0+PP/54teUTJkzQ1KlT/e7xr3/9q1asWKF9+/apYcOGio2N1YIFC1S/vm/f0Dtq1Ch9+eWXNa77wx/+oMGDB/tU95NPPtFrr72mrKwsNWrUSD179tTUqVPVtm1bn+pV2rhxo+bNm6e9e/eqefPmGj58uB544AEFBwd7dH9PX/OrV6/WkiVL9NNPPyk6Olqpqam6+eab/aqbkZGhjz76SDt27NCRI0f06KOPaty4cT7XLCgo0PLly7Vp0ybt379foaGh6tatm1JTU9WxY0e/ev3973+vzz77TD/99JMcDoeio6M1duzYWl8P3r6X/P3vf9cDDzyg//mf/znvdp7Ure01nJGRoZiYGJ97zcvL07x585SZmanc3Fy1bNlSI0eO1NixY33q9eDBg+rfv3+N9w0NDdV3333n8++guLhYixYtUkZGhv73f/9Xl19+ue666y6NHz9e9epV/0j0pGZpaaleffVVvf/++8rLy1OHDh308MMPKzExscY+PX3v93bfulBdX/YDT3r1dh/w5ndQydP94HwIPB7au3evNm3apO7du8vpdCoQ0xf96U9/UuvWrTVt2jQ1bdpUW7Zs0YwZM3T48GGlpKT4VPPUqVPq1q2bRo0apcjISO3du1fz58/X3r17tWzZMr97rrRo0SJVVFQEpNaSJUvcwljLli39rrl48WKlp6dr0qRJiouL08mTJ7V161a/ep41a5YKCgrclq1YsULr16+v9Y3tQrZt26aUlBTdeeedSk1N1alTp/Tqq69q7Nix+vDDD30OZ9u3b9f999+vwYMH66GHHlJWVpZeeeUVFRcX67HHHvOohiev+bVr12rGjBmaNGmSEhISlJGRoZSUFK1atUpxcXE+183MzFROTo5uuukmvfXWW373+tNPP+mtt97S8OHDNWXKFJ0+fVrLli3T3XffrXfffbfGD3tPey0sLFRycrLat28vh8OhdevW6aGHHpLT6dTtt9/uU81KJSUlmjt3rn72s5/5/TuodM0111R7DbRp08bnmkVFRRo1apSCg4P1xBNPqHnz5tq/f3+1fcWbupdddlm1593lcmn8+PFKSEjwua4kzZ49W+vXr9dDDz2kmJgYbd++XfPmzVNxcbFSU1N9qjl37ly9//77mjJliqKjo/Xee+9pwoQJeuutt9SlS5dq23vy3u/LvnWhur7sB5706u0+4GndSt7sB+flgkcqKiqq/v3YY4+5Bg8e7HfN48ePV1s2ffp01zXXXOP2eP566623XB06dHAdPnw4IPWysrJccXFxrr/85S+uDh06uHbu3OlTnXfffdfVoUOHGn8P/ti3b5+rc+fOrk8//TSgdWvSr18/14QJE3y+/4wZM1z9+vVzOZ3OqmVbt251dejQwfXVV1/5XHfs2LGuu+66y23Z0qVLXV26dHEdO3bMoxqevOZvvfVW10MPPeS27O6773aNHz/er7pnb9OhQwfXkiVL/Oq1sLDQVVRU5LasoKDAdd1117lmz57tV681ufvuu1333nuv3zVfeeUV1z333OPRY3tS91e/+pVr4sSJF2rfq5ovv/yyq3///q7CwsKA1j3XF1984erQoYMrIyPD57oVFRWu7t27u+bNm+e2/NFHH3X179/fp5qHDx92derUyfX6669XLXM6na4hQ4a4Jk2aVGNNT977fdm3LlTXl/3A18+p8+0D3tb1Zj84H87h8VBQUOB/Vc2aNau2rFOnTiooKFBRUVHAHicyMlKSVFZWFpB6c+bM0YgRIxQdHR2QeoH23nvvqU2bNurbt6+hj/PPf/5TBw8erPUvGE+Ul5erUaNGbkO4laNdLj9GEXfv3l3ty3R79+6tsrIy/eMf//CoxoVe8zk5Odq/f7+SkpLclg8aNEhbt25VaWmpT3U93cab7Rs2bKgGDRq4LWvUqJGioqJ09OjRgPVRKTIystb9zdOaP/74o5YvX67p06d7tL0R71Ge1HznnXc0fPhwNWzYMKB1z7VmzRqFh4erX79+Ptd1uVwqLy+vdni/cePGte5vF6r5ww8/qKKiwm1/czgc6t27t/7xj3/U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tm173g+dQOxvH3/8sUpKSvy6OKBS5R88nTp1clveuXNnlZaW6siRIz4FnrZt2+rdd9/VwYMHVVJSoujoaC1fvlwtWrRQ69ata7zP+d77/dm3PPlM8XY/8OVzypN94Hx1jdgPCDx1qLy8XFOmTFF2drZWrVoVkPlnarJjxw6VlZX5ddJyp06d9Prrr7st2717t5599lk9/fTTPk08WJOMjAwFBwerc+fOPte4+eab9d5772n37t1Vb2wnT57U999/r1//+td+97hhwwYVFRUF5A24VatW+te//uW27NChQzp58mStb5TeaNy4cdVI16uvvqo2bdro+uuv97uudOZNvl27dsrMzNSAAQOqlmdkZCgxMTFgoxCBkpWVpfvuu08JCQl6+umnDX2sb775RuHh4WratKnX950wYUK1v7jT0tL0n//8R88++6zatWsXoC7PjM5++umnPu+/oaGhuuGGG7R161a35Vu2bJGkGueg8daaNWsUFRUVkKBeuU99//33uuKKK6qW79q1Sw6HQ61atfKrfuV7bElJid55551aD+dc6L3f133Lk88Ub/cDXz+nLrQPXKiuEfsBgcdDxcXF2rRpk6QzH0gFBQVVJ1Jdd911Ph1jfPrpp7Vx40ZNmzZNBQUFVSe5SWf+4vDlAyMlJUVdu3ZVx44dVb9+ff3www9aunSpOnbs6LbjeCsiIqLasHWlLl26+PTGNm7cOMXHx1fN8PnJJ5/o7bff1ujRo73+q/hsAwYMUGxsrH77298qNTVVYWFhSktLU2hoqEaOHOlz3UoffvihWrVqpZ49e/pda8SIEZo7d67mzJmjfv366dSpU1XnSp17Sao3du7cqS+//FKdOnVSSUmJNmzYoPfff1/p6ekeHxbw5DU/efJkTZ06VVFRUYqPj1dGRoZ27typlStX+lU3KyvL7fDjnj17lJmZqQYNGtQ43cCFarpcLo0bN05hYWEaM2aMdu3aVXXf8PBwXXXVVT71evToUb344ou67bbb1Lp166oAsXr1aj300EM1ztx7oZoxMTHVJoD761//qiNHjtS6D3pSNzs7W0uWLNEtt9yi1q1b6+jRo1q+fLmOHTumV1991aeazZo1U0pKikaMGKGHH35Yd911lw4cOKCXXnpJt99+u6KionyuK0knTpzQ1q1bNWHChFp/bm/qdu3aVV27dtWsWbN0/PhxRUVFaefOnUpLS9Pw4cOrXbLtaa8rV65UeHi4rrjiCh06dEjLly9XWFhYrX178t7vy751obr5+fle7wcXqpmdne31PuBJXV/3g/NxuPyZ7OMScr6pzl9//XWfnoB+/frp0KFDNa775JNPfBqRSUtLU0ZGhn788Ue5XC61bt1at9xyi8aNGxeQK6vOtm3bNo0ePdrnr5aYM2eOPv/8cx0+fFhOp1Pt2rVTcnKyRo0a5fNXa1Q6ceKEnn32WW3cuFFlZWXq1auXHn/88Vo/2DyVm5urG264QWPGjNEjjzziVy3pzAnWb775pv7yl78oJydHjRo1UlxcnFJTU2ud/dcTu3fv1qxZs7R3715JZ07afvDBB726EsfT1/zq1auVnp5eNf39Qw89dN7p7z2pO3/+fC1YsKDa+tatW2vDhg1e15RU64mb1113nd544w2feo2JidHcuXO1fft2HTt2TI0bN1b79u3161//utY/MHx5L5k2bZp27dp13in1L1T38ssv1+zZs/Xvf/9bp06dUoMGDdSjRw+lpKSoW7dufvW6detWvfjii9qzZ4+aNGmi22+/XampqbX+0eZp3VWrVmn27Nm1fvWFL3UrA96WLVt0/PhxXX755RoyZIgmTJhQ40UCntRctmyZ/vznP+vw4cOKjIzUrbfeqgcffLDWc208fe/3dt+6UN1Dhw55vR9cqGb9+vW93gc8qVvT558n+8H5EHgAAIDtMfEgAACwPQIPAACwPQIPAACwPQIPAACwPQIPAACwPQIPAACwPQIPAACwPQIPAMuZNm1a1Zc/AoAnCDwAAMD2CDwAAMD2CDwAAMD2CDwATKegoEDPPPOM+vXrp65duyoxMVH33nuvvv/++1rv43Q69ac//UmDBw9WbGysrr/+es2cOVO5ubnVtt20aZNGjhypuLg49ejRQxMnTqz6otVK06ZNU48ePZSTk6Nx48YpLi5OvXv31oIFC8RXEALWQ+ABYDqzZs3SX/7yF916662aNWuWxo4dq7CwMO3bt6/W+8ycOVMvvPCCrrnmGj355JMaNmyYPvzwQ40bN05lZWVV2/3tb3/Tfffdp4YNG2rq1Km6//77lZWVpZEjR+rgwYNuNSsqKjR+/Hg1b95cjzzyiLp27ar58+dr3rx5hv3sAAziAgCT6dmzp+vpp5+udf1jjz3muvnmm6tuf/XVV64OHTq4PvjgA7ftPvvsM7flBQUFrl69ermmT5/utt2xY8dcPXv2dFv+2GOPuTp06OD63e9+V7XM6XS6Jk6c6OrSpYvr+PHjfv2MAC4uRngAmE5ERIR27NihI0eOeLR9ZmamGjdurBtuuEEnTpyo+q9Lly5q2LChtm3bJknasmWL8vLyNHjwYLftgoKC1L1796rtznbPPfdU/dvhcOiee+5RWVmZtm7dGpgfFsBFUa+uGwCAc02dOlXTpk3TTTfdpC5duqhv376688471bZt2xq3P3DggPLz85WYmFjj+uPHj0uS9u/fL0kaM2ZMjduFh4e73Q4KCqr2mNHR0ZKkQ4cOefzzAKh7BB4ApjNo0CD16tVLH3/8sTZv3qylS5cqPT1d8+fPV9++fatt73Q61bx5c7344os11mvWrJkkVZ1s/Pzzz6tFixbVtgsODg7gTwHATAg8AEzpsssu0z333KN77rlHx48f11133aXXXnutxsATFRWlrVu36pprrlH9+vVrrVk5WtO8eXNdf/31F+zB6XQqJyenalRHkv7zn/9Iklq3bu3tjwSgDnEODwBTqaioUH5+vtuy5s2b67LLLlNpaWmN90lKSlJFRYUWLVpUbV15ebny8vIkSX369FF4eLj++Mc/ul25VenEiRPVlq1atarq3y6XS6tWrVJISEith88AmBMjPABMpbCwUH379tXAgQN19dVXq2HDhtqyZYu+++47TZs2rcb7XHfddbr77rv1xz/+Ubt379YNN9ygkJAQ7d+/X5mZmXryySd12223KTw8XE899ZQeffRRDRs2TIMGDVKzZs30008/adOmTbrmmms0c+bMqrphYWH6/PPP9dhjj6lbt276/PPP9emnn2rSpElVh8kAWAOBB4Cp1K9fX7/85S+1efNmrV+/Xi6XS1FRUZo1a5ZGjhxZ6/1mz56trl276s0339TLL7+s4OBgtW7dWnfccYeuueaaqu1uv/12XXbZZUpLS9PSpUtVWlqqli1bqlevXho2bJhbzeDgYC1ZskRPPfWUXnjhBTVq1EgpKSl64IEHDPv5ARjD4XIxZSgAnGvatGlat26dvv3227puBUAAcA4PAACwPQIPAACwPQIPAACwPc7hAQAAtscIDwAAsD0CDwAAsD0CDwAAsD0CDwAAsD0CDwAAsD0CDwAAsD0CDwAAsD0CDwAAsD0CDwAAsL3/D421bwQT/dm9AAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Your code here\n",
"sns.barplot(data=people, x=\"sleep\", y=\"age\", errorbar=\"sd\")"
]
},
{
"cell_type": "markdown",
"id": "15d94323-2d65-4100-9916-101516f6ccf1",
"metadata": {},
"source": [
"**1.5.2.** Plot a bar chart showing peoples' likelihood of getting exercise by income. "
]
},
{
"cell_type": "code",
"execution_count": 63,
"id": "13eeecd8-2518-4ed9-aac5-727a96b5bf80",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: xlabel='exercise', ylabel='income'>"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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8fHx+bY999xzmjlzZt5ln8+n2rVra9CgQfr2229Vt27dAuukpaUpJSVFTz31lJKSkiRJ99xzT77bvPjii2rSpIkWLlwol8slSWrQoIHuv/9+7dy5U507dy7pHw/AdeTm5mrixInq1atX3rZ9+/YV6b4LFy5UpUqVtGrVKpUrV06S1KJFC913333685//rMGDB5fKzLAXIQNHKV++vNauXZtv2+233673339fq1ev1smTJ5WVlZV33YkTJ64aMjExMapVq5ZeeuklZWRkqG3btqpRo0be9dnZ2frss880efJk+f3+vO133nmnbrvtNn3xxReEDGCT4u57u3fvVq9eveTxePKO7EZFRalx48b68ssvS3JEOAghA0dxu91q2rRpvm1bt27Vk08+qf79++cdaj579qzGjRuny5cvX3Udl8ulV199VS+//LJmzZqVd6Rn6tSpat26tbxer/x+v+bMmaM5c+YUuP8PP/xQKj8fgGurUKGCwsPDi3XfCxcuaM2aNQXe+ShJoaGhwY4GhyJk4HibN29Wo0aNNGvWrLxt+/fvv+796tatqz/+8Y/Kzc3V559/rpdeekljxozRrl27FBkZKZfLpdGjR6tr164F7hsTE1OiPwOAovnpNO/P/XSaKDc3N992r9eb7/aVKlVS586dNWjQoAJrFDeO4HyEDBwvJyenwP9NffDBB0W+f2hoqO6++26NGjVKjzzyiH788UfVrVtXiYmJOn78eIEjQACc5afTwseOHVOLFi0k/fN1cAcPHlSTJk3ybte2bVsdOXJEjRs3lsfjsWVWlD1CBo7Xrl07zZo1S4sWLVLz5s21c+dO7d2795r3OXz4sObNm6devXrp9ttv16VLl7Rs2TLVqlUr7wO3Jk+erGHDhunxxx9X7969FRUVpTNnzmjPnj1KTk5WmzZtyuLHA3AdNWrUUEJCghYtWqTIyEiFhIRoxYoVioyMzHe7CRMm6Le//a1Gjhypfv36qUqVKjp37pz279+vVq1a5fvgPdw8CBk43oABA5SSkqK1a9fq1VdfVYcOHfTiiy+qX79+hd6natWqqlKlipYtW6bU1FRFRkaqVatWev755/P+T61FixZ64403tGDBAk2dOlW5ubmqUaOG7rnnHt1xxx1l9eMBKIIXXnhB06dP19SpU1WlShU9/vjj2rhxY77Pk7rjjjv05z//WfPnz9fMmTOVlZWlqlWrqnXr1kX6egSYyWVZlmX3EAAAAMXBJ/sCAABjETIAAMBYhAwAADAWIQMAAIxFyAAAAGMRMgAAwFiEDAAAMBYhA+CWkZKSori4OL377rt2jwKghBAyAADAWHyyL4BbhmVZunLlikJCQvhSQeAmQcgAMJplWbp8+bLKly9v9ygAbMCpJQBBSU1N1dSpU9WuXTs1adJEvXv31jvvvCNJysnJUY8ePdSjRw/l5OTk3Sc9PV0dOnTQgAED5Pf7JUmBQECrV69W79691bRpU7Vr104zZsxQRkZGvsdLSkrS6NGj9be//U3Jyclq1qyZ3nrrLUmS1+vV7NmzlZSUpCZNmqhTp06aPHmy0tLSJF39NTJnz57V1KlT1alTJzVp0kQdOnTQI488opSUlHyPu3PnTg0aNEiJiYlq3ry5Ro0apSNHjpT8HyiAG8K3XwMotnPnzqlfv35yuVwaPHiwYmNjtWvXLj311FO6dOmShg8frnnz5mngwIF6+eWXNXXqVEnSrFmzdPHiRc2ZMyfvFM+MGTP03nvvKTk5WUOGDFFKSorWrVunr776Sm+++aZCQ0PzHvfbb7/VpEmT1L9/f/Xr109169ZVZmamBg8erGPHjqlv375q3LixLly4oB07dig1NVWxsbFX/RkeffRRHT16VL/73e9Uq1YtpaWlaffu3frhhx9Uu3ZtSdL777+vKVOmqEOHDnriiSeUnZ2tN998U4MGDdJ7772XdzsANrAAoJimTZtmtW/f3kpLS8u3feLEiVbLli2t7Oxsy7Is68UXX7QaNmxoffLJJ9ZHH31kNWjQwFq9enXe7T/55BOrQYMG1l/+8pd86+zatavA9i5dulgNGjSwdu3ale+2r7zyitWgQQNry5YtBeYMBAKWZVnWd999ZzVo0MDasGGDZVmWlZGRYTVo0MBauXJloT/jpUuXrFatWlnTp0/Pt/3s2bNWy5YtC2wHULY4tQSgWCzL0pYtW5SUlCTLspSWlpb3V4cOHXTx4kUdPHhQkjR+/HjVr19fTz75pGbOnKm7775bQ4cOzVtr8+bNioyMVPv27fOtEx8fr4oVK2rfvn35Hrt27drq2LFjvm1btmxRw4YN9atf/arArC6X66o/Q/ny5RUaGqr9+/cXOIX1kz179sjr9ap37975ZnO73UpISCgwG4CyxaklAMWSlpYmr9er9evXa/369YXeRpLCwsI0e/Zs/fa3v1W5cuU0e/bsfHFx8uRJXbx4UW3btr3qOufPn893+Wqnck6dOqVu3brd0M8QFhamJ554QvPmzVP79u2VkJCge++9V3369FHVqlUlSSdOnJAkDRs27KprRERE3NBjAihZhAyAYgkEApKk3/zmN/rXf/3Xq94mLi4u75///ve/S5IuX76skydP6vbbb8+3VuXKlfXCCy9cdZ1fvr6lJN+hNHz4cCUlJWnbtm36+9//rldeeUXLly/XmjVr1LhxY1n/98bO5557Li9ufo63cQP2ImQAFEtsbKzCw8MVCATUrl27a9728OHDWrRokZKTk3X48GFNnz5dH3zwgSIjIyVJderU0d69e9WiRYtiR0qdOnWK/S6iOnXqaMSIERoxYoROnDihPn366LXXXtMLL7yQF1yVK1e+7s8JoOzxGhkAxeLxeNS9e3d9/PHH+uabbwpc/9NppdzcXE2dOlXVqlXTU089pTlz5ujcuXOaPXt23m179uwpv9+vxYsXF1jH5/PJ6/Ved55u3brp8OHD2rp1a4HrrEI+Lis7O1uXL1/Ot61OnToKDw/XlStXJEkdO3ZURESEli1bptzc3EJ/TgD24IgMgGKbNGmS9u3bp379+unBBx9U/fr1lZGRoYMHD2rv3r3av3+/lixZokOHDmn16tWKiIhQw4YNNW7cOM2fP189evRQ586ddffdd6t///5atmyZDh06pPbt2ys0NFQnTpzQ5s2b9dRTT6lHjx7XnGXkyJH6+OOP9dhjj6lv376Kj49XRkaGduzYoZkzZ6phw4YF7nPixAkNHz5cPXr0UP369eXxeLRt2zadO3dOvXv3lvTP18D8x3/8hyZPnqzk5GT16tVLsbGx+v7777Vz5061aNFCM2bMKJU/XwDXxyf7AgjK+fPntWjRIu3YsUPnzp1TdHS06tevr169eik+Pl79+vXTwIEDNX369Lz7+P1+9e/fX6mpqdq4caOioqIkSW+//bbeeustHTt2TB6PR7Vq1VKnTp00bNgwVatWTdI/PxDvrrvu0rJlywrMkp6ergULFmjr1q1KS0tT5cqV1bZtWz355JOKiYlRSkqK7rvvPs2ZM0fJycm6cOGCFixYoL179+rMmTPyeDyqV6+eHnroIfXs2TPf2vv27dPy5ct14MABXblyRdWrV1erVq00ePBgNWnSpBT/hAFcCyEDAACMxWtkAACAsQgZAABgLEIGAAAYi5ABAADGImQAAICxCBkAAGAsQgYAABiLkAEAAMYiZAAAgLEIGQAAYCxCBgAAGIuQAQAAxiJkAACAsf4fJ0cijQArmG8AAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Your code here\n",
"sns.barplot(data=people, x=\"exercise\", y=\"income\", errorbar=\"sd\")"
]
},
{
"cell_type": "markdown",
"id": "b2705fef-470d-494c-86c1-8b3bd34b3660",
"metadata": {},
"source": [
"**1.5.3.** Plot a bar chart showing average reported health by age. For each age, show average health for those who get exercise and those who don't."
]
},
{
"cell_type": "code",
"execution_count": 64,
"id": "4ee2eb69-2f9a-42e7-b5d3-9499631bfd06",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: xlabel='health', ylabel='exercise'>"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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dRAry3LLsnw3wCIAwL4IQfCKsMhgWZZZ5fEvTNNUZmY+QQgAUOsIQfCK4JAgGYZTby2ZpZPHfqpUm0bNWummMVNkGA5CEACg1hGC4FUnj/2k44f3+boMAADOi5ncAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALRGCAACALQX4uoD/tn//fk2fPl1ffvmlwsPDNWjQIE2YMEFBQUEVtjlx4oSWL1+u7du36/Dhw4qMjNSll16qSZMmqUWLFrVYPQAAqCv8KgRlZWVp1KhRatOmjRYsWKDU1FTNmjVLBQUFmjp1aoXtdu3apa1bt2rw4MHq2rWrMjIy9MILL+iWW27RO++8o5iYmFp8FwAAoC7wqxC0du1anT59WgsXLlR0dLQkyTRNPfnkk0pOTlaTJk3O2u6SSy7R5s2bFRDwn7fTvXt39evXTxs3btTdd99dG+UDAIA6xK/6BG3btk29evUqDUCSNGDAAFmWpe3bt1fYzuVylQlAktS0aVPFxMToxIkTNVUuAACow/wqBB04cEBxcXFllrlcLsXGxurAgQNV2tfBgwd16tQptWvXzpslAgCAesKvbodlZ2fL5XKVWx4VFaWsrKxK78ftdmv69Olq3LixBg4cWK2aAgLOnROdTr/KkXWStz5DzkX1cS78C+fDf3Au/Ic3P0O/CkHesmDBAv3jH//Qyy+/rLCwMI/3YxgONWgQ7sXKcDYuV6ivS8D/4Vz4F86H/+Bc+A9vngu/CkEul0s5OTnllmdlZSkq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1+XYzptvvqn4+Phy/82dO9fXpdU4vxosEd6xd+9effLJJ+ratassy+IL14eWL1+uFi1aaMqUKWrQoIF27Nihxx57TMePH9e4ceN8XZ6tZGZmqkuXLhoxYoSio6O1d+9eLViwQHv37tXSpUt9XZ6tPf/88+UGwEXte/nllxUZGVn6+tczNdRXhKB66Morr1T//v0lSVOmTNG///1vH1dkXy+88IJiYmJKX/fq1UuZmZlatmyZ7rvvPhkGF2Nry6BBg8q87tmzp4KCgvTYY48pNTXVFr/w/dH+/fv12muv6aGHHtLjjz/u63JsrWPHjmV+X9kBv4HrIb5Y/cfZfqEkJCQoNzdXeXl5PqgIvxYdHS3pzITL8I3p06dr6NChatu2ra9LgQ3xbQnUsn/+859q0qSJIiIifF2KLZmmqcLCQu3atUuLFi3SlVdeqZYtW/q6LFvasmWLfvjhB6WkpPi6FEi64YYblJCQoKuuukovvviiLW5RcjsMqEVffPGFNm3apIceesjXpdjWFVdcodTUVElS37599cwzz/i4InvKz8/XrFmzNHHiRP4g8LHY2Fjdf//96tq1qxwOhz766CM999xzSk1N1dSpU31dXo0iBAG15Pjx45o4caJ69uypkSNH+roc21qyZIny8/O1b98+vfDCCxo7dqyWLVsmp9Pp69Js5YUXXlDDhg01ePBgX5die3379lXfvn1LX/fp00fBwcFasWKFxo4dq8aNG/uwuprF7TCgFmRnZ+sPf/iDoqOjtWDBAvpt+VCHDh108cUX65ZbbtHzzz+vnTt3auvWrb4uy1aOHDmipUuXavz48crJyVF2dnZpH7m8vDydPn3axxViwIABMk1T3333na9LqVFcCQJqWEFBgZKTk5WTk6PXX3+9zCOo8K34+HgFBgbq8OHDvi7FVn7++WcVFxdrzJgx5daNHDlSXbt21bp163xQGeyGEATUoJKSEk2YMEEHDhzQq6++ymPYfubrr79WcXExHaNrWUJCglauXFlm2XfffaennnpKTz75pDp37uyjyvCLTZs2yel0KjEx0del1ChCUD2Un5+vTz75RNKZy865ubnasmWLJOk3v/mN7caB8KUnn3xSH3/8saZMmaLc3Fx99dVXpesSExMVFBTku+JsZty4cerUqZPi4+MVEhKiPXv26JVXXlF8fHzpuFqoHS6XSz179jzruo4dO6pjx461XJG9jR49Wj179lR8fLwk6cMPP9S6des0cuRIxcbG+ri6mkUIqodOnTqlP/7xj2WW/fJ65cqVFf7ygfdt375dkjRr1qxy6z788EOuQNSiLl26aNOmTVqyZIncbrdatGihW265RaNHjyaMwtbatm2rDRs26Pjx47IsS23atNEjjzyiESNG+Lq0GudwM6cCAACwIR5RAQAAtkQIAgAAtkQIAgAAtkQIAgAAtkQIAgAAtkQIAgAAtkQIAgAAtkQIAuB3FixYoPj4eKWnp/vkuFXZtrZrBOA9hCAAOIfFixfrgw8+8HUZAGoAIQgAzuHFF18kBAH1FCEIAADYEiEIgN/KycnRlClT1KNHD11yySV6+OGHlZ+fX2abv/zlL7r55pvVpUsX/eY3v9HEiRN17NixMtt88cUXGj9+vPr166dOnTrpt7/9rWbOnKmCgoJzHj8+Pl55eXl66623FB8fr/j4eE2ZMqXKNQLwT8wiD8BvTZgwQS1bttSkSZO0e/duvfHGG4qJidGDDz4oSXrhhRf05z//WQMGDNCQIUOUnp6u1atX64477tDGjRvlcrkkSVu2bFFBQYGGDRum6OhoffPNN1q9erWOHz+u+fPnV3j8OXPm6NFHH1WXLl106623SpJat25dpRoB+C9CEAC/lZCQoJkzZ5a+zszM1Pr16/Xggw/qyJEjWrBggSZMmKCxY8eWbnPNNdfopptu0muvvVa6fPLkyQoJCSnd5rbbbtMFF1ygefPm6ejRo2revPlZjz9o0CA98cQTatWqlQYNGlTlGgH4N26HAfBbQ4cOLfO6R48eyszMVG5urrZu3SrLsjRgwAClp6eX/teoUSNdcMEF2rlzZ2m7XwegvLw8paen6+KLL5bb7dbu3btrrEYA/o0rQQD81n9fofnl9lZWVpZ+/PFHud1uXXPNNWdtGxDwn19vR48e1fz58/XRRx8pKyurzHbVDSvnqjEiIqJa+wZQswhBAPyWYZz9YrXb7ZZlWXI4HHrppZfkdDrLbRMWFiZJMk1Td911l7KysnTPPfcoLi5OYWFhSk1N1ZQpU2RZVo3VCMC/EYIA1EmtW7eW2+1Wy5Yt1bZt2wq3++GHH/Tjjz9q9uzZuvHGG0uXb9++vRaqBODP6BMEoE665ppr5HQ6tXDhwnJXXdxutzIyMiT950rNr7dxu91auXJlpY4TFham7OxsL1UNwJ9wJQhAndS6dWtNmDBBzzzzjI4cOaL+/fsrPDxcP//8sz744APdeuutGj16tOLi4tS6dWvNnj1bqampioiI0HvvvVfpYNOxY0d99tlnWrZsmRo3bqyWLVuqa9euNfzuANQGQhCAOmvMmDFq06aNli9frkWLFkmSmjZtqt69e+vKK6+UJAUGBmrx4sWaPn26XnzxRQUHB+vqq6/WHXfcUeFj7782ZcoUTZ06Vc8995wKCgp00003EYKAesLhpvceAACwIfoEAQAAWyIEAQAAWyIEAQAAWyIEAQAAWyIEAQAAWyIEAQAAWyIEAQAAWyIEAQAAWyIEAQAAWyIEAQAAWyIEAQAAWyIEAQAAWyIEAQAAW/r/3Hl3zEF5YSEAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Your code here\n",
"sns.barplot(data=people, x=\"health\", y=\"exercise\", hue=\"age\", errorbar=None, palette=\"muted\")"
]
},
{
"cell_type": "markdown",
"id": "84b1e240-4f75-4c86-8c1f-1026aa223717",
"metadata": {},
"source": [
"**1.5.4.** Create a plot showing the number of people at each income level, for each education level. "
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "d7e02da8-beab-40e7-95d0-74a5c2bc838e",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'people' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[15], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Your code here\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m sns\u001b[38;5;241m.\u001b[39mcountplot(data\u001b[38;5;241m=\u001b[39m\u001b[43mpeople\u001b[49m, x\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mincome_category\u001b[39m\u001b[38;5;124m\"\u001b[39m, y\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124meducation\u001b[39m\u001b[38;5;124m\"\u001b[39m, hue\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlegendary\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"\u001b[0;31mNameError\u001b[0m: name 'people' is not defined"
]
}
],
"source": [
"# Your code here\n",
"sns.countplot(data=people, x=\"income_category\", y=\"education\", hue=\"legendary\")\n"
]
},
{
"cell_type": "markdown",
"id": "ac717580-4157-402c-9262-b2b50dfe606f",
"metadata": {},
"source": [
"**1.5.5.** Plot side-by-side scatter plots showing the relationship between height and weight for males and females. (There are so many overlapping dots that the plot will be more informative if you lower the opacity of each dot. Try using `alpha=0.1` and `edgecolor=None`.)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "b00dd7d6-226b-469c-86d8-b71b328aa576",
"metadata": {},
"outputs": [],
"source": [
"# Your code here"
]
},
{
"cell_type": "markdown",
"id": "e9ff7225-5d08-428b-90e8-ee60f4a4049a",
"metadata": {},
"source": [
"## 2. Crafting a data argument\n",
"\n",
"Everything up to here are just tools, worthless without a clear research question and a convincing argument. Choose a research question that interests you which might be answerable using the `people` dataset. Then do your best to find the answer in the space below. This answer should include data analysis (code cells) as well as written argument (text cells) explaining what the data means and why you believe it answers your question. \n",
"\n",
"Examples of research questions might include:\n",
"\n",
"- Do older people tend to have higher incomes?\n",
"- Do people who sleep at least 6 hours a night tend to report better health? \n",
"- Is it more common for males to be bisexual than females?\n",
"\n",
"**A note of caution:** this lab has given you tools for exploring associations--patterns that tend to co-occur. These tools *do not* equip you to argue that one variable causes another to change. For example: Plot 1.5.4 showed that people who are taller also tend to be heaver, with a lot of individual variation. But are people heavier *because* they are taller? Are they taller because they are heavier? Or maybe neither variable causes the other--perhaps they're both caused by something else. If you want to be able to answer questions like these, take a course on statistics."
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "6f934273-b829-4bc2-a7f4-a27a3fc44a99",
"metadata": {},
"outputs": [],
"source": [
"# Your code here. Feel free to add new text cells and code cells as necessary\n",
"#Do taller people sleep longer"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "8b4b852b-402c-45d4-b3bb-840e47b249ed",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>age</th>\n",
" <th>sex</th>\n",
" <th>income</th>\n",
" <th>education</th>\n",
" <th>sexual_orientation</th>\n",
" <th>height</th>\n",
" <th>weight</th>\n",
" <th>health</th>\n",
" <th>no_doctor</th>\n",
" <th>exercise</th>\n",
" <th>sleep</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>55</td>\n",
" <td>female</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" <td>other</td>\n",
" <td>1.55</td>\n",
" <td>83.01</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>True</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>65</td>\n",
" <td>female</td>\n",
" <td>8</td>\n",
" <td>1</td>\n",
" <td>heterosexual</td>\n",
" <td>1.65</td>\n",
" <td>78.02</td>\n",
" <td>3</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>35</td>\n",
" <td>female</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>heterosexual</td>\n",
" <td>1.65</td>\n",
" <td>77.11</td>\n",
" <td>4</td>\n",
" <td>True</td>\n",
" <td>True</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>55</td>\n",
" <td>male</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>heterosexual</td>\n",
" <td>1.83</td>\n",
" <td>81.65</td>\n",
" <td>5</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>55</td>\n",
" <td>female</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>heterosexual</td>\n",
" <td>1.80</td>\n",
" <td>76.66</td>\n",
" <td>4</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>166420</th>\n",
" <td>45</td>\n",
" <td>female</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" <td>heterosexual</td>\n",
" <td>1.63</td>\n",
" <td>86.18</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>166421</th>\n",
" <td>25</td>\n",
" <td>male</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>heterosexual</td>\n",
" <td>1.78</td>\n",
" <td>86.18</td>\n",
" <td>4</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>166422</th>\n",
" <td>25</td>\n",
" <td>female</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>heterosexual</td>\n",
" <td>1.91</td>\n",
" <td>45.36</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>166423</th>\n",
" <td>35</td>\n",
" <td>female</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>heterosexual</td>\n",
" <td>1.60</td>\n",
" <td>68.04</td>\n",
" <td>4</td>\n",
" <td>True</td>\n",
" <td>True</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>166424</th>\n",
" <td>35</td>\n",
" <td>male</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>heterosexual</td>\n",
" <td>1.75</td>\n",
" <td>86.18</td>\n",
" <td>3</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>166425 rows × 11 columns</p>\n",
"</div>"
],
"text/plain": [
" age sex income education sexual_orientation height weight \\\n",
"0 55 female 5 2 other 1.55 83.01 \n",
"1 65 female 8 1 heterosexual 1.65 78.02 \n",
"2 35 female 8 4 heterosexual 1.65 77.11 \n",
"3 55 male 8 4 heterosexual 1.83 81.65 \n",
"4 55 female 8 4 heterosexual 1.80 76.66 \n",
"... ... ... ... ... ... ... ... \n",
"166420 45 female 8 3 heterosexual 1.63 86.18 \n",
"166421 25 male 7 2 heterosexual 1.78 86.18 \n",
"166422 25 female 1 2 heterosexual 1.91 45.36 \n",
"166423 35 female 5 4 heterosexual 1.60 68.04 \n",
"166424 35 male 7 2 heterosexual 1.75 86.18 \n",
"\n",
" health no_doctor exercise sleep \n",
"0 2 True True 7 \n",
"1 3 False False 8 \n",
"2 4 True True 7 \n",
"3 5 False True 8 \n",
"4 4 False True 8 \n",
"... ... ... ... ... \n",
"166420 1 False False 6 \n",
"166421 4 False True 6 \n",
"166422 1 False False 8 \n",
"166423 4 True True 6 \n",
"166424 3 False False 8 \n",
"\n",
"[166425 rows x 11 columns]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"people\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "58f05327-f285-4a38-b56e-0c8d9139b745",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"height\n",
"1.17 4.000000\n",
"1.02 4.500000\n",
"0.91 5.800000\n",
"1.24 6.222222\n",
"1.37 6.285714\n",
"1.30 6.444444\n",
"1.07 6.500000\n",
"2.13 6.500000\n",
"1.27 6.538462\n",
"1.47 6.888889\n",
"2.01 6.893130\n",
"2.03 6.912088\n",
"1.98 6.915888\n",
"1.50 6.949941\n",
"1.96 6.967967\n",
"1.93 6.990006\n",
"2.29 7.000000\n",
"2.08 7.000000\n",
"0.97 7.000000\n",
"1.12 7.000000\n",
"2.34 7.000000\n",
"1.91 7.010212\n",
"1.88 7.014283\n",
"1.75 7.041068\n",
"1.45 7.046584\n",
"1.55 7.051338\n",
"1.42 7.058394\n",
"1.78 7.060519\n",
"1.52 7.061610\n",
"1.80 7.065720\n",
"1.60 7.067810\n",
"1.83 7.070558\n",
"1.57 7.076022\n",
"1.85 7.079029\n",
"1.70 7.082921\n",
"1.68 7.083265\n",
"1.65 7.086352\n",
"1.73 7.086522\n",
"2.06 7.100000\n",
"1.63 7.110222\n",
"1.35 7.208333\n",
"1.40 7.222222\n",
"1.19 7.333333\n",
"1.32 7.375000\n",
"2.11 7.666667\n",
"1.22 7.739130\n",
"1.14 8.000000\n",
"2.18 8.333333\n",
"1.04 8.500000\n",
"2.16 10.750000\n",
"Name: sleep, dtype: float64"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"people.groupby(\"height\").sleep.mean().sort_values()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "650cff21-64df-435b-ad2e-4639f06464c7",
"metadata": {},
"outputs": [],
"source": [
"# create a bar plot to visually see if taller people sleep longer"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "e150ca95-379d-4c16-8823-acb4a25015bf",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: xlabel='height', ylabel='sleep'>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlYAAAG5CAYAAABMX3rVAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZb9JREFUeJzt3XlYVGX7B/DvzDDsm6i4sIioIC64i4pbGpFW+vZW5lJZruWWpib6Wpqaaaa9iZaKuGZlapuIe6alZmYqaakooggJyjYM+8yc3x/85rwcNkc4yAx8P9flVXPmnufcs3DOfZ7znOcoBEEQQERERERVpqzpBIiIiIhqCxZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkE6uaTqA2EAQBBgMnsCciIrIUSqUCCoVC9nZZWMnAYBCQlpZd02kQERGRidzcHKBSyV9Y8VQgERERkUxYWBERERHJhIUVERERkUxYWBERERHJxKwKq/379+ONN95A37590bFjRwwdOhS7d++GIEivuNu1axdCQ0PRvn17DBkyBMeOHTOp/eTkZEydOhWdOnVC9+7d8Z///AdarbY63goRERHVQQqhZNVSg1588UV4eHjg8ccfR7169XDq1Cls3LgRkydPxpQpUwAA+/btw8yZM/H666+jR48eiI6Oxp49e7Bjxw507Nix3LYLCwvx73//GwAwY8YM5OXlYfny5WjdujXWr19fpbz1egOvCiQiIrIgRVcFyt+/ZFaFVVpaGtzc3CTL3nnnHURHR+Ps2bNQKpUIDQ1Fu3btsHLlSjFm+PDhcHJyQkRERLltR0VFYdasWYiOjoavry8A4JdffsHYsWOxa9cuBAYGVjpvFlZERESWpboKK7M6FViyqAKAgIAAaLVa5OTkICEhAfHx8Rg0aJAkZvDgwTh9+jQKCgrKbfvEiRPw9/cXiyoACA4OhqurK44fPy7fmyAiIqI6y+wnCD137hwaNWoER0dHnDt3DgDQvHlzSUyLFi1QWFiIhIQEtGjRosx24uLiJEUVACgUCjRv3hxxcXFVztPKyqxqVCIiIqoBZl1Y/f7774iOjsacOXMAAJmZmQAAZ2dnSZzxsfH5smg0Gjg5OZVa7uLiUuHrTKFUKlCvnkOV2iAiIiLLZ7aF1d27dzFjxgwEBQXhlVdeqel0KmQwCNBocmo6DSIiIjKRs7NdtYyxMsvCSqPRYPz48XB1dUV4eDiUyqI37uLiAgDIyspCw4YNJfHFny+Ls7NzmVMrZGZmokmTJlXOWaczVLkNIiIismxmNzAoLy8PEydORFZWFjZu3Cg5fWccI1VyTFRcXBzUajW8vLzKbdfX17fU6wRBwM2bN0uNvSIiIiKqDLMqrHQ6HaZPn464uDhs3LgRjRo1kjzv5eUFHx8fHDhwQLI8OjoaPXv2hLW1dblt9+3bF1euXEF8fLy47PTp08jIyEC/fv1kfR9ERERUN5lVYfXee+/h2LFjeP3116HVanHhwgXxn3EqhalTpyIqKgqrV6/GmTNnsGDBAsTExGDSpEliO4mJiWjTpg3WrFkjLgsNDUWrVq0wdepUHDt2DNHR0Zg3bx769+9fpTmsiIiIyDRbt27EyJH/xtatG2s6lWpjVmOsTp48CQBYtmxZqeeOHj0KT09PPP3008jNzUVERAQ2bNiA5s2bY82aNejUqZMYKwgC9Hq95FY4arUaGzduxJIlS/DWW2/BysoKISEhmDdvXvW/MSIiojouPz8fBw5EQxAMOHgwGsOHvwwbG5uaTkt2ZjXzuqXizOtEREQVy87WYuzYl8THkZGfw8HBscbyqRMzrxMRERFZMhZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkE6uaTqC4W7duITIyEhcvXkRsbCx8fX0RFRUlPn/nzh0MHDiwzNdaW1vjzz//LLftM2fO4JVXXim1fPDgwfj444+rnjwRERHVeWZVWMXGxuL48ePo0KEDDAYDBEGQPO/u7o6dO3dKlgmCgHHjxqFHjx4mreODDz6Ar6+v+LhevXpVT5yIiIgIZlZYDRgwAI8//jgAICwsDJcuXZI8b21tjY4dO0qWnTlzBlqt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Vx0srsdKp9Nh+vTpiIuLw8aNG9GoUaNKtZOcnIxz586hffv2MmcoH95EmIiIyLJY3J76vffew7FjxxAWFgatVosLFy6Iz7Vp0wbW1tYYPXo0kpKScPjwYQBAVFQUjh07hn79+sHd3R0JCQnYsGEDVCoVXnvttRp6J6bhTYSJiIgsh8UVVidPngQALFu2rNRzR48ehaenJwwGA/R6vbjc09MTKSkpWLp0KbKysuDk5IQePXpg2rRpj+SKQCIiIqobLK6w+vHHHx8YY7ziz6hjx46llhERERHJzeLGWBERERGZKxZWRERERDJhYUVEREQkExZWRERERDJhYUVEREQkExZWREREVO3+dzcRoOTdRGoTFlZERERU7erK3URq57siIiIis1MX7ibCHisiIiIimbCwIiIiIpIJCysiIiIimbCwIiIiIpIJCysiIiIimbCwIiIiIpIJCysiIiIimbCwIiIiIpIJCysiIiIimbCwIiIiIpIJCysiIiIimbCwIiIiIpIJCysiIiIimbCwIiIiIpIJCysiIiIimbCwIiIiIpIJCysiIiIimbCwIiIiIpIJCysiIiIimbCwIiIiIpIJCysiIiIimbCwIiIiIpIJCysiIiIimbCwIiIiIpKJRRZWN27cwGuvvYaOHTsiODgYH374IQoKCh74OkEQsGHDBvTv3x+BgYF48cUXceHChepPmIiIiOoEiyusMjMzMXr0aBQWFiI8PBwzZszA119/jWXLlj3wtREREVi9ejVeffVVrF+/Hg0bNsSYMWOQkJDwCDInIiKi2s6qphN4WF999RWys7OxZs0auLq6AgD0ej3ee+89TJw4EY0aNSrzdfn5+Vi/fj3GjBmDV199FQDQpUsXPPnkk4iMjMTChQsfzRsgIiKiWsvieqxOnDiBnj17ikUVAAwaNAgGgwEnT54s93V//PEHtFotBg0aJC6ztrZGSEgITpw4UZ0pExERUR2hEARBqOkkHkbPnj3x3HPPYdasWZLlffr0wdChQ0stN9qxYwcWLVqEmJgY2NjYiMu//vprvPvuu7hw4QJsbW0rnVemNg96vaHUcpVKCRdHWxgMBiiVSsbVojhzzo1x8sUB/Puui3HmnBvj5P37lpvFnQrUaDRwdnYutdzFxQWZmZkVvs7a2lpSVAGAs7MzBEFAZmZmlQqrB31BSqWScbU0zpxzY1zV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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.barplot(data=people, x=\"height\", y=\"sleep\", errorbar=\"sd\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "93c3edd1-82d7-4970-a366-e882a3052dd7",
"metadata": {},
"outputs": [],
"source": [
"#trying again because the bottom is illegible. Possibly need to specify the height range"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "18f30b0c-af3d-40bf-8aec-0f701a71e3a6",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_663/4210778888.py:1: FutureWarning: \n",
"\n",
"Passing `palette` without assigning `hue` is deprecated and will be removed in v0.14.0. Assign the `x` variable to `hue` and set `legend=False` for the same effect.\n",
"\n",
" sns.barplot(data=people, x=\"height\", y=\"sleep\", errorbar=None, palette=\"muted\")\n"
]
},
{
"data": {
"text/plain": [
"<Axes: xlabel='height', ylabel='sleep'>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAG5CAYAAACEM5ADAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAVDVJREFUeJzt3Xd8E/X/B/BXLt27pWVTpimUWVYpS4bIFxAQBzLlKwqoDEEZBUXQIqAIfpEpyCpDEBCFshRUUOCLgIwvu5TVAW3pStO0TZvc74/+7ryQtoQOmpbX8/HwIb28e/dOLr175e6TO5UoiiKIiIiICAAglHUDRERERLaE4YiIiIhIgeGIiIiISIHhiIiIiEiB4YiIiIhIgeGIiIiISIHhiIiIiEiB4YiIiIhIgeGIiIiISMGurBuwFaIowmTixcKJiIjKC0FQQaVSlfh8GY7+n8kkIjk5o6zbICIiIiv5+LhCrS75cMTTakREREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECnZl3QARERHZNkFQQRBUBT5uMokwmcQn2FHpYjgiIiKiAgmCCt7eLhCEgk82mUwmpKToK0xAYjgiIiKiAuUdNRJwJ+IispMyLB53rOSK2i80gSCoGI6IiIjo6ZGdlIHMhPSybuOJ4IBsIiIiIgWGIyIiIiIFhiMiIiIiBYYjIiIiIgWGIyIiIiIFhiMiIiIiBYYjIiIiIgWGIyIiIiIFhiMiIiIiBYYjIiIiIgWGIyIiIiIFhiMiIiIiBYYjIiIiIgWGIyIiIiIFhiMiIiIiBYYjIiIiIgWbCkd37tzBxx9/jP79+yMwMBAvvPBCvnXbt29Hz5490bRpU/Tr1w+//fbbE+6UiIiIKiqbCkeRkZE4cuQIateujfr16+dbs3fvXsycORO9evXC6tWr0aJFC4wbNw7nzp17ss0SERFRhWRX1g0odevWDc899xwAIDQ0FBcvXrSo+frrr9GnTx9MnDgRANCuXTtcv34dy5Ytw+rVq59ku0RERFQB2dSRI0EovJ3o6Gjcvn0bvXr1Mpveu3dvnDhxAgaDoTTbIyIioqeATYWjR7l58yYAoG7dumbT69evj5ycHERHR5dFW0RERFSB2NRptUdJS0sDAHh4eJhNl36WHi8qO7tylRWJiIhKnVpt3b7R2rryoFyFo9IkCCp4e7uWdRtERETlkoeHc1m3UGLKVTjy9PQEAKSnp8PPz0+ertVqzR4vCpNJhFarL16DREREFYxaLVgVfLTaTBiNpifQ0T88PJxL5YhVuQpH9erVA5A39kj6t/Szvb09atWqVaz55+Y+2ZVKRERUURiNpgqzHy1XJwhr1aqFOnXq4MCBA2bT9+3bh5CQEDg4OJRRZ0RERFRR2NSRo8zMTBw5cgQAEBsbC51OJwehtm3bwsfHB+PHj8fkyZPh7++P4OBg7Nu3DxcuXMCmTZvKsnUiIiKqIGwqHCUlJeG9994zmyb9HB4ejuDgYLzwwgvIzMzE6tWrsWrVKtStWxdLly5FUFBQWbRMREREFYxKFEWxrJuwBUajCcnJGWXdBhERkU2xsxPg7e2K6xtOIjMh3eJx58ru0IwIRkpKxhMfc+Tj41oqA7LL1ZgjIiIiotLGcERERESkwHBEREREpMBwRERERKTAcERERESkwHBEREREpMBwRERERKTAcERERESkwHBEREREpMBwRERERKTAcERERESkwHBEREREpMBwRERERKTAcERERESkwHBEREREpMBwRERERKTAcERERESkwHBEREREpMBwRERERKTAcERERESkwHBEREREpMBwRERERKTAcERERESkwHBEREREpMBwRERERKTAcERERESkwHBEREREpMBwRERERKTAcERERESkwHBEREREpMBwRERERKTAcERERESkwHBEREREpMBwRERERKTAcERERESkwHBEREREpMBwRERERKTAcERERESkwHBEREREpMBwRERERKTAcERERESkYFfWDRAgCCoIgqrAx00mESaT+AQ7IiIienoxHJUxQVDB28sZglpdYI3JaERKaiYDEhER0RPAcFTGBEEFQa1GZHg4MuPjLR53rlIFz7z+OgRBxXBERET0BDAc2YjM+HjoY2LKug0iIqKnHgdkExERESnwyBERERGViIryBSOGIyIiIio2lUoFLy9nqNUFn5QyGk1ITdXbfEBiOCIiIqJiEwQV1GoB27ZtQ2JiosXjfn5+eO2118rFF4wYjoiIiKjEJCYmIi4urqzbKBYOyCYiIiJSYDgiIiIiUmA4IiIiIlIol+Ho8OHD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NOLAgQM4efIkkpKSMGHCBAQEBCA9PR0nTpxAy5Yt4evrW1K9EhEREZW6IocjrVaLt956CxcuXICLiwsyMzMxbNgwAHlHk+bMmYMXX3wR77//fok1S0RERFTaivxttS+//BKRkZFYs2YNDh06BFH85+rRarUaPXv2xJEjR0qkSSIiIqInpcjh6PDhwxg+fDg6dOgAlcrywoh16tRBbGxssZojIiIietKKHI7S09NRs2bNAh/Pzc2F0Wgs6uyJiIiIykSRw5G/vz8uXbpU4OPHjh1D/fr1izp7IiIiojJR5HD0yiuvYOfOndi3b5883kilUsFgMOCrr77CH3/8gddee63EGiUiIiJ6Eor8bbURI0bgxo0beP/99+Hh4QEAmDx5MlJTU5Gbm4vXXnsNr776aok1SkRERPQkFDkcqVQq+ev6Bw8eNLtCdq9evXjrECIiIiqXin2F7NatW6N169Yl0QsRERFRmSvymCMiIiKiisjqI0fdunXL93pGhVGpVDh06NBjN0VERERUVqwOR23btn3scERERERU3lgdjubPn1+afRARERHZhCKPObpy5QoiIiLMpv3xxx8YOnQoXn31VWzYsKHYzRERERE9aUUORwsWLMC+ffvkn6OjozFu3DjExMQAyDvStG3btuJ3SERERPQEFTkcXb16Fa1atZJ//umnnyAIAnbt2oXt27ejZ8+e2Lp1a4k0SURERPSkFOvGs15eXvLPR44cQYcOHeDj4wMA6NChA+7cuVPsBomIiIiepCKHIz8/P0RFRQEAEhIScOnSJXTo0EF+PCMjA4LAyygRERFR+VLkK2R3794dmzZtgsFgwPnz5+Hg4IAePXrIj1+7dg21atUqkSaJiIiInpQih6OJEyciOTkZP/30E9zd3TFv3jz4+voCAHQ6HQ4cOIChQ4eWWKNERERET0KRw5GrqysWLlyY72MuLi44evQonJycitwYERERUVko9o1n8yMIAtzd3Utj1kRERESliiOmiYiIiBQYjoiIiIgUGI6IiIiIFBiOiIiIiBQYjoiIiIgUGI6IiIiIFBiOiIiIiBQYjoiIiIgUGI6IiIiIFBiOiIiIiBQYjoiIiIgUGI6IiIiIFErlxrOURxBUEARVgY+bTOIT7IaIiIiswXBUSlQqFby8naEWCj44ZzSZkK7NeoJdERER0aMwHJUSQVBBLQj47vImJOjjLR6v7FIFgwOHFXpkiYiIiJ48hqNSlqCPR6wutqzbICIiIitxQDYRERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkUK5D0cZGRno3LkzAgIC8L///a+s2yEiIqJyrtyHo+XLl8NoNJZ1G0RERFRBlOtwFBUVhS1btmD8+PFl3QoRERFVEOU6HM2ZMweDBg1C3bp1y7oVIiIiqiDK7Y1nDxw4gOvXr2PJkiW4dOnSE1uuIKiemjq1WoBKpSq01mQSbfo5sM52lsk626qz5d5YV7w6W+6tNOpKQ7kMR5mZmZg/fz4mTZoENze3EpmntSvBzc3pqanz8HCGyWSCIBR8gPFRj5dWb6wrXp0t98a6J1Nny72xrnh1ttxbadSVhnJ5Wm3FihWoVKkSXn755RKbp8kkWlWn02U9NXU6XRYEQcC2bduwdOlSi/+2bdsGQRBs+jmwznaWyTrbqrPl3lhXvDpb7q006kpDuTtyFBsbi7Vr12LZsmVIT08HAOj1evn/GRkZcHV1LbXlWxuiKkKdVJOYmIi4uDib6o11xauz5d5Y92TqbLk31hWvzpZ7K4260lDuwlFMTAxycnIwevRoi8def/11NG/eHN9//30ZdEZEREQVQbkLR40aNUJ4eLjZtCtXrmDevHn45JNP0LRp0zLqjIiIiCqCcheOPDw8EBwcnO9jjRs3RuPGjZ9wR0RERFSRlMsB2URERESlpdwdOcpPcHAwrl27VtZtEBERUQXAI0dERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECgxHRERERAoMR0REREQKDEdERERECnZl3cDj2r9/P3bv3o1Lly5Bq9Widu3aGD58OF5++WWoVKqybo+IiIjKuXIXjtavX48aNWogNDQU3t7eOH78OGbOnIn79+9j3LhxZd0eERERlXPlLhytWLECPj4+8s8hISFITU3FunXr8O6770IQeKaQiIiIiq7cJQllMJI0atQIOp0Oer2+DDoiIiKiiqTchaP8nDlzBlWqVIGbm1tZt0JERETlXLkPR6dPn8a+ffswcuTIJ7I8QbBu0HdFqLPl3lhXvDpb7o11T6bOlntjXfHqbLm30qgrDeU6HN2/fx+TJk1CcHAwXn/99WLNy9qV4Obm9NTU2XJvrCtenS33xronU2fLvbGueHW23Ftp1JWGchuOtFotRo0aBS8vLyxZsqTYA7FNJtGqOp0u66mps+XeWFe8OlvujXVPps6We2Nd8epsubfSqCsN5e7bagCQlZWFMWPGID09Hdu2bYO7u/sTW7a1Iaoi1Nlyb6wrXp0t98a6J1Nny72xrnh1ttxbadSVhnIXjnJzczFx4kTcvHkTmzdvRpUqVcq6JSIiIqpAyl04+uSTT/Dbb78hNDQUOp0O586dkx8LDAyEg4ND2TVHRERE5V65C0fHjh0DAMyfP9/iscOHD6NmzZpPuiUiIiKqQMpdOPr111/LugUiIiKqwMrtt9WIiIiISgPDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDEREREZECwxERERGRAsMRERERkQLDERER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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.barplot(data=people, x=\"height\", y=\"sleep\", errorbar=None, palette=\"muted\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "98e838fa-d1d2-435f-90ba-63369d775e1c",
"metadata": {},
"outputs": [],
"source": [
"# In some cases, it looks like taller people tend to get more sleep "
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}