Skip to content

Instantly share code, notes, and snippets.

@mm-uddin
Created October 17, 2020 17:46
Show Gist options
  • Save mm-uddin/60cb54b6e9ef134c546ce397e09b1271 to your computer and use it in GitHub Desktop.
Save mm-uddin/60cb54b6e9ef134c546ce397e09b1271 to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/Logos/organization_logo/organization_logo.png\" width=\"300\" alt=\"cognitiveclass.ai logo\" />\n",
"</center>\n",
"\n",
"# Data Analysis with Python\n",
"\n",
"Estimated time needed: **30** minutes\n",
"\n",
"## Objectives\n",
"\n",
"After completing this lab you will be able to:\n",
"\n",
"- Explore features or charecteristics to predict price of car\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
"\n",
"</div>\n",
" \n",
"<hr>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries \n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"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>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager.\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook.\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How to choose the right visualization method?</h4>\n",
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"symboling int64\n",
"normalized-losses int64\n",
"make object\n",
"aspiration object\n",
"num-of-doors object\n",
"body-style object\n",
"drive-wheels object\n",
"engine-location object\n",
"wheel-base float64\n",
"length float64\n",
"width float64\n",
"height float64\n",
"curb-weight int64\n",
"engine-type object\n",
"num-of-cylinders object\n",
"engine-size int64\n",
"fuel-system object\n",
"bore float64\n",
"stroke float64\n",
"compression-ratio float64\n",
"horsepower float64\n",
"peak-rpm float64\n",
"city-mpg int64\n",
"highway-mpg int64\n",
"price float64\n",
"city-L/100km float64\n",
"horsepower-binned object\n",
"diesel int64\n",
"gas int64\n",
"dtype: object\n"
]
}
],
"source": [
"# list the data types for each column\n",
"print(df.dtypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3>Question #1:</h3>\n",
"\n",
"<b>What is the data type of the column \"peak-rpm\"? </b>\n",
"\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"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>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" bore stroke compression-ratio horsepower\n",
"bore 1.000000 -0.055390 0.001263 0.566936\n",
"stroke -0.055390 1.000000 0.187923 0.098462\n",
"compression-ratio 0.001263 0.187923 1.000000 -0.214514\n",
"horsepower 0.566936 0.098462 -0.214514 1.000000"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n",
"\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Continuous numerical variables:</h2> \n",
"\n",
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
"\n",
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" \n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0.0, 55945.82820337018)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Engine size as potential predictor variable of price\n",
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"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>engine-size</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>1.000000</td>\n",
" <td>0.872335</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.872335</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" engine-size price\n",
"engine-size 1.000000 0.872335\n",
"price 0.872335 1.000000"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[[\"engine-size\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Highway mpg is a potential predictor variable of price \n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='highway-mpg', ylabel='price'>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"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>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='peak-rpm', ylabel='price'>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 \n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>peak-rpm</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>1.000000</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.101616</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" peak-rpm price\n",
"peak-rpm 1.000000 -0.101616\n",
"price -0.101616 1.000000"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.00000</td>\n",
" <td>0.08231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.08231</td>\n",
" <td>1.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.00000 0.08231\n",
"price 0.08231 1.00000"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[['stroke', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 3 b):</h1>\n",
"\n",
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
"<p>Verify your results using the function \"regplot()\".</p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='stroke', ylabel='price'>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x='stroke', y='price', data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We #can see this use \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Categorical variables</h3>\n",
"\n",
"<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='body-style', ylabel='price'>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='engine-location', ylabel='price'>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='drive-wheels', ylabel='price'>"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Let's first take a look at the variables by utilizing a description method.</p>\n",
"\n",
"<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n",
"\n",
"This will show:\n",
"\n",
"<ul>\n",
" <li>the count of that variable</li>\n",
" <li>the mean</li>\n",
" <li>the standard deviation (std)</li> \n",
" <li>the minimum value</li>\n",
" <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n",
" <li>the maximum value</li>\n",
"<ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can apply the method \"describe\" as follows:\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201.000000</td>\n",
" <td>201.00000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>197.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.840796</td>\n",
" <td>122.00000</td>\n",
" <td>98.797015</td>\n",
" <td>0.837102</td>\n",
" <td>0.915126</td>\n",
" <td>53.766667</td>\n",
" <td>2555.666667</td>\n",
" <td>126.875622</td>\n",
" <td>3.330692</td>\n",
" <td>3.256904</td>\n",
" <td>10.164279</td>\n",
" <td>103.405534</td>\n",
" <td>5117.665368</td>\n",
" <td>25.179104</td>\n",
" <td>30.686567</td>\n",
" <td>13207.129353</td>\n",
" <td>9.944145</td>\n",
" <td>0.099502</td>\n",
" <td>0.900498</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.254802</td>\n",
" <td>31.99625</td>\n",
" <td>6.066366</td>\n",
" <td>0.059213</td>\n",
" <td>0.029187</td>\n",
" <td>2.447822</td>\n",
" <td>517.296727</td>\n",
" <td>41.546834</td>\n",
" <td>0.268072</td>\n",
" <td>0.319256</td>\n",
" <td>4.004965</td>\n",
" <td>37.365700</td>\n",
" <td>478.113805</td>\n",
" <td>6.423220</td>\n",
" <td>6.815150</td>\n",
" <td>7947.066342</td>\n",
" <td>2.534599</td>\n",
" <td>0.300083</td>\n",
" <td>0.300083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-2.000000</td>\n",
" <td>65.00000</td>\n",
" <td>86.600000</td>\n",
" <td>0.678039</td>\n",
" <td>0.837500</td>\n",
" <td>47.800000</td>\n",
" <td>1488.000000</td>\n",
" <td>61.000000</td>\n",
" <td>2.540000</td>\n",
" <td>2.070000</td>\n",
" <td>7.000000</td>\n",
" <td>48.000000</td>\n",
" <td>4150.000000</td>\n",
" <td>13.000000</td>\n",
" <td>16.000000</td>\n",
" <td>5118.000000</td>\n",
" <td>4.795918</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>101.00000</td>\n",
" <td>94.500000</td>\n",
" <td>0.801538</td>\n",
" <td>0.890278</td>\n",
" <td>52.000000</td>\n",
" <td>2169.000000</td>\n",
" <td>98.000000</td>\n",
" <td>3.150000</td>\n",
" <td>3.110000</td>\n",
" <td>8.600000</td>\n",
" <td>70.000000</td>\n",
" <td>4800.000000</td>\n",
" <td>19.000000</td>\n",
" <td>25.000000</td>\n",
" <td>7775.000000</td>\n",
" <td>7.833333</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>122.00000</td>\n",
" <td>97.000000</td>\n",
" <td>0.832292</td>\n",
" <td>0.909722</td>\n",
" <td>54.100000</td>\n",
" <td>2414.000000</td>\n",
" <td>120.000000</td>\n",
" <td>3.310000</td>\n",
" <td>3.290000</td>\n",
" <td>9.000000</td>\n",
" <td>95.000000</td>\n",
" <td>5125.369458</td>\n",
" <td>24.000000</td>\n",
" <td>30.000000</td>\n",
" <td>10295.000000</td>\n",
" <td>9.791667</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.000000</td>\n",
" <td>137.00000</td>\n",
" <td>102.400000</td>\n",
" <td>0.881788</td>\n",
" <td>0.925000</td>\n",
" <td>55.500000</td>\n",
" <td>2926.000000</td>\n",
" <td>141.000000</td>\n",
" <td>3.580000</td>\n",
" <td>3.410000</td>\n",
" <td>9.400000</td>\n",
" <td>116.000000</td>\n",
" <td>5500.000000</td>\n",
" <td>30.000000</td>\n",
" <td>34.000000</td>\n",
" <td>16500.000000</td>\n",
" <td>12.368421</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>256.00000</td>\n",
" <td>120.900000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>59.800000</td>\n",
" <td>4066.000000</td>\n",
" <td>326.000000</td>\n",
" <td>3.940000</td>\n",
" <td>4.170000</td>\n",
" <td>23.000000</td>\n",
" <td>262.000000</td>\n",
" <td>6600.000000</td>\n",
" <td>49.000000</td>\n",
" <td>54.000000</td>\n",
" <td>45400.000000</td>\n",
" <td>18.076923</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length width \\\n",
"count 201.000000 201.00000 201.000000 201.000000 201.000000 \n",
"mean 0.840796 122.00000 98.797015 0.837102 0.915126 \n",
"std 1.254802 31.99625 6.066366 0.059213 0.029187 \n",
"min -2.000000 65.00000 86.600000 0.678039 0.837500 \n",
"25% 0.000000 101.00000 94.500000 0.801538 0.890278 \n",
"50% 1.000000 122.00000 97.000000 0.832292 0.909722 \n",
"75% 2.000000 137.00000 102.400000 0.881788 0.925000 \n",
"max 3.000000 256.00000 120.900000 1.000000 1.000000 \n",
"\n",
" height curb-weight engine-size bore stroke \\\n",
"count 201.000000 201.000000 201.000000 201.000000 197.000000 \n",
"mean 53.766667 2555.666667 126.875622 3.330692 3.256904 \n",
"std 2.447822 517.296727 41.546834 0.268072 0.319256 \n",
"min 47.800000 1488.000000 61.000000 2.540000 2.070000 \n",
"25% 52.000000 2169.000000 98.000000 3.150000 3.110000 \n",
"50% 54.100000 2414.000000 120.000000 3.310000 3.290000 \n",
"75% 55.500000 2926.000000 141.000000 3.580000 3.410000 \n",
"max 59.800000 4066.000000 326.000000 3.940000 4.170000 \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg \\\n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n",
"mean 10.164279 103.405534 5117.665368 25.179104 30.686567 \n",
"std 4.004965 37.365700 478.113805 6.423220 6.815150 \n",
"min 7.000000 48.000000 4150.000000 13.000000 16.000000 \n",
"25% 8.600000 70.000000 4800.000000 19.000000 25.000000 \n",
"50% 9.000000 95.000000 5125.369458 24.000000 30.000000 \n",
"75% 9.400000 116.000000 5500.000000 30.000000 34.000000 \n",
"max 23.000000 262.000000 6600.000000 49.000000 54.000000 \n",
"\n",
" price city-L/100km diesel gas \n",
"count 201.000000 201.000000 201.000000 201.000000 \n",
"mean 13207.129353 9.944145 0.099502 0.900498 \n",
"std 7947.066342 2.534599 0.300083 0.300083 \n",
"min 5118.000000 4.795918 0.000000 0.000000 \n",
"25% 7775.000000 7.833333 0.000000 1.000000 \n",
"50% 10295.000000 9.791667 0.000000 1.000000 \n",
"75% 16500.000000 12.368421 0.000000 1.000000 \n",
"max 45400.000000 18.076923 1.000000 1.000000 "
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"scrolled": true
},
"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>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>engine-type</th>\n",
" <th>num-of-cylinders</th>\n",
" <th>fuel-system</th>\n",
" <th>horsepower-binned</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>toyota</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>ohc</td>\n",
" <td>four</td>\n",
" <td>mpfi</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>32</td>\n",
" <td>165</td>\n",
" <td>115</td>\n",
" <td>94</td>\n",
" <td>118</td>\n",
" <td>198</td>\n",
" <td>145</td>\n",
" <td>157</td>\n",
" <td>92</td>\n",
" <td>115</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" make aspiration num-of-doors body-style drive-wheels \\\n",
"count 201 201 201 201 201 \n",
"unique 22 2 2 5 3 \n",
"top toyota std four sedan fwd \n",
"freq 32 165 115 94 118 \n",
"\n",
" engine-location engine-type num-of-cylinders fuel-system \\\n",
"count 201 201 201 201 \n",
"unique 2 6 7 8 \n",
"top front ohc four mpfi \n",
"freq 198 145 157 92 \n",
"\n",
" horsepower-binned \n",
"count 200 \n",
"unique 3 \n",
"top Low \n",
"freq 115 "
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can convert the series to a Dataframe as follows :\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts().to_frame()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column 'drive-wheels' to 'value_counts'.\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n",
"drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Now let's rename the index to 'drive-wheels':\n"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"drive-wheels \n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index.name = 'drive-wheels'\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can repeat the above process for the variable 'engine-location'.\n"
]
},
{
"cell_type": "code",
"execution_count": 31,
"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>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-location</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>front</th>\n",
" <td>198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rear</th>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"engine-location \n",
"front 198\n",
"rear 3"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# engine-location as variable\n",
"engine_loc_counts = df['engine-location'].value_counts().to_frame()\n",
"engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n",
"engine_loc_counts.index.name = 'engine-location'\n",
"engine_loc_counts.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The \"groupby\" method groups data by different categories. The data is grouped based on one or several variables and analysis is performed on the individual groups.</p>\n",
"\n",
"<p>For example, let's group by the variable \"drive-wheels\". We see that there are 3 different categories of drive wheels.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()\n",
"#df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data.\n"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>10241.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>fwd</td>\n",
" <td>9244.779661</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>19757.613333</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 4wd 10241.000000\n",
"1 fwd 9244.779661\n",
"2 rwd 19757.613333"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
"df_group_one"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
"\n",
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 37,
"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>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>hatchback</td>\n",
" <td>7603.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>12647.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4wd</td>\n",
" <td>wagon</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>convertible</td>\n",
" <td>11595.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>fwd</td>\n",
" <td>hardtop</td>\n",
" <td>8249.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>8396.387755</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>9811.800000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>23949.600000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>rwd</td>\n",
" <td>hardtop</td>\n",
" <td>24202.714286</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>14337.777778</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21711.833333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 4wd hatchback 7603.000000\n",
"1 4wd sedan 12647.333333\n",
"2 4wd wagon 9095.750000\n",
"3 fwd convertible 11595.000000\n",
"4 fwd hardtop 8249.000000\n",
"5 fwd hatchback 8396.387755\n",
"6 fwd sedan 9811.800000\n",
"7 fwd wagon 9997.333333\n",
"8 rwd convertible 23949.600000\n",
"9 rwd hardtop 24202.714286\n",
"10 rwd hatchback 14337.777778\n",
"11 rwd sedan 21711.833333\n",
"12 rwd wagon 16994.222222"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_gptest = df[['drive-wheels','body-style','price']]\n",
"grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n",
"grouped_test1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n",
"\n",
"<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 39,
"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 tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd NaN NaN 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"scrolled": true
},
"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 tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd 0.0 0.000000 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 42,
"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>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>convertible</td>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>hardtop</td>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>hatchback</td>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sedan</td>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>wagon</td>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" body-style price\n",
"0 convertible 21890.500000\n",
"1 hardtop 22208.500000\n",
"2 hatchback 9957.441176\n",
"3 sedan 14459.755319\n",
"4 wagon 12371.960000"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_grp_body= df[['body-style', 'price']]\n",
"df_grp_body = df_grp_body.groupby(['body-style'], as_index=False).mean()\n",
"df_grp_body"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. \n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Variables: Drive Wheels and Body Style vs Price</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price.\n"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the grouped results\n",
"plt.pcolor(grouped_pivot, cmap='RdBu')\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
"\n",
"<p>The default labels convey no useful information to us. Let's change that:</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEmCAYAAABoGYshAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAeSElEQVR4nO3daZRkVZnu8f+TVQgoFCKTSKEgliLigCCCDI3SauGEA9rlRaEVRW1UtPs6Lr222qi4rnO3AzYq4kjbtuKAyIVWRoFCaZlESkApQRFExKGAqnzuh7MDooqsysjMyDwV+zy/tc7KiB0RJ96oynxz57v32Vu2iYiI+oy1HUBERMyOJPiIiEolwUdEVCoJPiKiUknwERGVmt92AP00fyNrw03bDmO4Kp2l9PBF27cdwtAtu/6PbYcwK7bZ4t5thzArrrvy0ptsbzWTc4wtWGhWrhjouf7rzafaXjyT95tr61eC33BT7rXL89oOY6jGV97Rdgiz4qTvfrjtEIbuWe88re0QZsVrX7xb2yHMitftu9MvZ3ySlSuY/7BnDfTUOy/+7JYzfr85tl4l+IiIOSWhsXltRzFrkuAjosPE2Px7tR3ErEmCj4juSg8+IqJOAjQvCT4ioj4SY+nBR0TUKSWaiIgapQYfEVEnIcbmb9B2GLMmCT4iuis9+IiIeiXBR0TUSMo0yYiIGon04CMi6qQx5mWpgoiICik9+IiIKonMoomIqFYSfEREjTIPPiKiVknwERFVksTYBplFExFRn5RoIiLqlQQfEVGpsTG1HcKsSYKPiM6ShJLgIyLqNG/eWNshzJok+IjoLpEefEREjZrVJJPgIyIqJMaUBB8RUZ+UaCIi6pUEHxFRIQnmzU+Cj4iokiquwc/JBFBJB0j69ly8V0TEoCQxNjbYMYqm1YNX8ytPtseHHE9ExJyquQY/cA9e0g6SrpD0ceBq4PjSfrSkq8vtnSSdXW4vlvSzcv+5sxB7RMSMaUwDHes8h7S9pP8uOfIySUeX9vtJOk3SVeXr5n2veYukZZKulPTUvvbdJV1SHvto6VAjaUNJXy3t50vaYbLPNtUSzcOAzwN7A7uWtv2AmyVtB+wLnCVpI+DTwDPL4/ef4vtERMw+wZg00DGJlcA/2X44sBdwlKRdgDcDp9teBJxe7lMeWwI8AlgMfFxSb1nLTwBHAovKsbi0HwHcYvshwIeAYycLaqoJ/pe2f2T7N8AmkjYFtge+BOxPk8zPAnYGrrF9lW0DX1jbCSUdKWmppKVeuWKK4URETJ8QY/PHBjrWxfYNtn9cbt8GXAFsBxwMnFCedgLw7HL7YOArtm+3fQ2wDNhT0rbAAtvnldz5+TVe0zvX14ADe737tZlqgv9z3+3zgJcAV9Ik9f1oevbn9D7zICe0fZztPWzvofkbTTGciIgZEFMZZN2y1xktx5ETnrIpnewGnA9sY/sGaH4JAFuXp20HXNf3suWlbbtye8321V5jeyVwK7DFuj7eTKZJngm8qxw/AZ4I/NX2rZJ+BuwoaSfbvwBeOIP3iYiYNVOYJnmT7T0mOdcmwH8Cr7P9x3Wce6IHvI72db1mrWYyTfIsmvLMmbZX0fxmORvA9gqaGtJ3yiDrL2fwPhERs6JZbGywY9JzSRvQJPcv2v56af5tKbtQvt5Y2pfT5M+ehcD1pX3hBO2rvUbSfGAz4PfrimngHrzta7l7YJXSM1ff/aes8fzv0dTiIyLWTxrOjk6lFn48cIXtD/Y9dDJwOPC+8vWbfe1fkvRB4AE0g6kX2F4l6TZJe9GUeA4DPrbGuc4DDgHOKHX6tcqVrBHRYWJsOBt+7AO8GLhE0sWl7a00if0kSUcAvwKeD2D7MkknAZfTzMA5qlRCAF4FfA7YGDilHND8AjlR0jKanvuSyYJKgo+IztKQevC2z2biGjnAgWt5zTHAMRO0L6WvWtLXvoLyC2JQSfAR0Wk1X8maBB8RnSXBvCT4iIg6JcFHRFRIKAk+IqJGEtxrkmUIRlkSfER0lgTz04OPiKiPSA0+IqJOSg0+IqJKTQ8+NfiIiCqlBx8RUaExKbNoIiJqNW/w9eBHThJ8RHRWliqIiKhYEnxERIVyoVNERKVEBlkjIqqUGnxERKWyVEFERK3Sg4+IqFPWg4+IqFgSfEREhcay4UdERKVSg4+IqJNQ1qKJiKjVWBJ8RER9BMyrN78nwUdEhwnGUoOPiKiPgA2yZV9ERH1SoplDuz10O849/T1thzFcF3yz7QhmxxXfaDuCobvqDTu3HcKs8Ngf2g5hVrxuGCeRUqKJiKiRyCyaiIhqpUQTEVEhCTaYl0HWiIjqpEQTEVGxlGgiIiokVHUPvt7iU0TEZMpqkoMck55K+oykGyVd2tf2z5J+Lenicjyt77G3SFom6UpJT+1r313SJeWxj0rNbyBJG0r6amk/X9IOk8WUBB8RndXU4Ac7BvA5YPEE7R+y/ZhyfBdA0i7AEuAR5TUflzSvPP8TwJHAonL0znkEcIvthwAfAo6dLKAk+IjorN5SBYMck7F9JvD7Ad/6YOArtm+3fQ2wDNhT0rbAAtvn2TbweeDZfa85odz+GnBgr3e/NknwEdFdgnljgx3AlpKW9h1HDvgur5b001LC2by0bQdc1/ec5aVtu3J7zfbVXmN7JXArsMW63jiDrBHRWVOcJnmT7T2m+BafAN4NuHz9APDS8tZr8jrameSxCSXBR0SHze6OTrZ/e9c7SZ8Gvl3uLge273vqQuD60r5wgvb+1yyXNB/YjElKQinRRERn9XrwgxzTOn9TU+95DtCbYXMysKTMjNmRZjD1Ats3ALdJ2qvU1w8Dvtn3msPL7UOAM0qdfq3Sg4+IzmqWKhhOD17Sl4EDaGr1y4F3AAdIegxNKeVa4BUAti+TdBJwObASOMr2qnKqV9HMyNkYOKUcAMcDJ0paRtNzXzJZTEnwEdFpw6rQ2H7hBM3Hr+P5xwDHTNC+FNh1gvYVwPOnElMSfER02tiEY5d1SIKPiM4Sw+vBr4+S4COi0yre0CkJPiI6TOnBR0RUSbM8D75tSfAR0Wkp0UREVKri/J4EHxHdlS37IiIqVnF+T4KPiG6reUGuJPiI6CyVLftqlQQfEZ2WEk1ERIVESjQREdWaZFvTkZYEHxHdpVzoFBFRJQFD2u9jvZQEHxGdVnOJZkrjC5JeK+kKSV+c4uuulbTl1EKLiJhdzZWsgx2jaKo9+H8ADrJ9zWwEExEx10Y0dw9k4B68pE8CDwZOlmQ17itpXNL+5TlnSXqIpC0kfV/STyR9irr/DSNiZIkxDXaMooETvO1XAtcDTwROBXYB9gUuAvaTtCGw0PYymt3Ez7a9G3Ay8MC1nVfSkZKWSlr6u5tvnv4niYiYqrLhxyDHKJruHP+zgP3L8V6aRP844MLy+P7AFwBsfwe4ZW0nsn2c7T1s77HVFltMM5yIiKmTjcZXDXSMopkk+P2APYHvAvcFDgDO7HuOZxJYRMRckMcHOkbRdBP8+cATgHHbK4CLgVfQJH5oEv2hAJIOAjafWZgREbPB4PHBjhE0rQRv+3bgOuBHpeksYFPgknL/ncD+kn4MPAX41QzjjIiYHfZgxwia0jRJ2zv03d6v7/aXgC/13b+ZJrH3vH76IUZEzBJ7ZHvng8iVrBHRaaNaXx9EEnxEdJhhfGXbQcyaJPiI6C6TEk1ERJ0M40nwERFVSg0+IqJWSfARERWyYUSXIRhEEnxEdFpKNBERVcqFThER9ao4wU93sbGIiNHn4S02Jukzkm6UdGlf2/0knSbpqvJ1877H3iJpmaQrJT21r313SZeUxz6qsmmspA0lfbW0ny9ph8liSoKPiM4SQ10u+HPA4jXa3gycbnsRcHq5j6RdgCXAI8prPi5pXnnNJ4AjgUXl6J3zCOAW2w8BPgQcO1lASfAR0WGGVasGOyY7k30m8Ps1mg8GTii3TwCe3df+Fdu3lz2ulwF7StoWWGD7PNsGPr/Ga3rn+hpwYK93vzapwUdEd01tqYItJS3tu3+c7eMmec02tm8AsH2DpK1L+3bcvdw6wPLSdme5vWZ77zXXlXOtlHQrsAVw09rePAk+IjptCtMkb7K9x7DedoI2r6N9Xa9Zq5RoIqLDZn1Hp9+Wsgvl642lfTmwfd/zFgLXl/aFE7Sv9hpJ84HNuGdJaDVJ8BHRbbOb4E8GDi+3Dwe+2de+pMyM2ZFmMPWCUs65TdJepb5+2Bqv6Z3rEOCMUqdfq5RoIqK7hrhUgaQvAwfQ1OqXA+8A3gecJOkImq1Ln9+8rS+TdBJwObASOMp2L5BX0czI2Rg4pRwAxwMnSlpG03NfMllMSfAR0WHGK+8czpnsF67loQPX8vxjgGMmaF8K7DpB+wrKL4hBJcFHRHeZLDYWEVEjYzzAHPdRlQQfEd1lsqNTRESdsh58RESdPLxB1vVREnxEdJhxevARERXKLJqIiFo5g6wREVUymSYZEVGnzKKJiKhTZtFERNQqPfg586uLr+DozR7bdhgxgA9+7dVthzB0f93zkLZDmBWbXHVm2yGsvzKLJiKiTsY4s2giIiqUHnxERKVsfOcdbUcxa5LgI6LDcqFTRES9UqKJiKiQs9hYRES1MosmIqJGNl6VBB8RUR3bjN+5su0wZk0SfER0l0kPPiKiVknwEREVss141oOPiKhTZtFERNQos2giIuqUWTQRERUbTw8+IqJCmSYZEVGp1OAjIupkMosmIqJONuN3ZJA1IqI+hvH04CMi6mNSg4+IqJPBFS9VMNZ2ABER7TEeHx/omIykayVdIuliSUtL2/0knSbpqvJ1877nv0XSMklXSnpqX/vu5TzLJH1Ukqb76ZLgI6K7yjz4QY4BPdH2Y2zvUe6/GTjd9iLg9HIfSbsAS4BHAIuBj0uaV17zCeBIYFE5Fk/34yXBR0Rn2WbVHSsHOqbpYOCEcvsE4Nl97V+xfbvta4BlwJ6StgUW2D7PtoHP971mypLgI6LDplSi2VLS0r7jyHucDL4v6aK+x7axfQNA+bp1ad8OuK7vtctL23bl9prt05JB1ojorqktVXBTX+llIvvYvl7S1sBpkn62judOVFf3OtqnJQk+IrrL4FXTzp+rn8q+vny9UdJ/AXsCv5W0re0bSvnlxvL05cD2fS9fCFxf2hdO0D4tKdFERGcZM75qfKBjXSTdR9KmvdvAU4BLgZOBw8vTDge+WW6fDCyRtKGkHWkGUy8oZZzbJO1VZs8c1veaKUsPPiK6y+DxofTgtwH+q8xonA98yfb3JF0InCTpCOBXwPMBbF8m6STgcmAlcJTt3oT8VwGfAzYGTinHtAyc4MsUnqXAr20/Y6pvJOlPtjeZ6usiImaLDavumPmFTravBh49QfvNwIFrec0xwDETtC8Fdp1xUEytB380cAWwYBhvHBHROntoNfj10UA1eEkLgacD/17uby3ponL70ZIs6YHl/i8k3VvSjpLOk3ShpHfP1geIiJiJ8VUe6BhFgw6yfhh4IzAOzSgxsJGkBcB+NKWb/SQ9CLjR9l+AjwCfsP044DfDDjwiYsaGfyXremXSBC/pGTRJ+6I1HjoX2AfYH3hP+bofcFZ5fB/gy+X2ies4/5G9CwdWUO+iPxGx/jEwPu6BjlE0SA1+H+BZkp4GbAQskPQF4Ps0Cf1BNNN43kTz7/XtvtdO+q9i+zjgOICttOFo/itGxGiyhzLIur6atAdv+y22F9regWZxnDNsvwg4E3gRcJXtceD3wNOAc8pLzynPBzh02IFHRMyUy4VOgxyjaNoXOtm+ttw8s3w9G/iD7VvK/aOBo8o80M2mHWFExGypPMFP6UIn2z8AftB3/4F9t99DU4vv3b8G2Lvv5e+bbpAREbPDk16lOspyJWtEdNfwrmRdLyXBR0RnGUZ2jvsgkuAjortsxiueRZMEHxGdZacHHxFRrUE21B5VSfAR0V0e3XVmBpEEHxHdNcQdndZHSfAR0VlmSnuyjpwk+IjoLptVdyTBR0RUx4Zxp0QTEVGlVUnwERH1MVDxGGsSfER0W3rwEREVGjfckcXGIiLqlBJNRESFjFOiiYioUQZZIyIqlgQfEVEhO7NoIiKqZDKLJiKiSqnBR0RULCWaiIgKNTX4tqOYPUnwEdFp6cFHRFTIQL2rwSfBR0SHGWcWTUREjZpZNEnwERH1qXyQdaztACIi2tLrwQ9yTEbSYklXSlom6c2zH/3k0oOPiE4bRg9e0jzg34AnA8uBCyWdbPvymZ99+pLgI6KzxhnaUgV7AstsXw0g6SvAwUCrCV5ejwYYJP0O+OUcvd2WwE1z9F5zpcbPBPlco2QuP9ODbG81kxNI+h5NzIPYCFjRd/8428eV8xwCLLb9snL/xcDjbb96JvHN1HrVg5/pf9ZUSFpqe4+5er+5UONngnyuUTJqn8n24iGdShOdfkjnnrYMskZEzNxyYPu++wuB61uK5S5J8BERM3chsEjSjpLuBSwBTm45pvWrRDPHjms7gFlQ42eCfK5RUuNnmpTtlZJeDZwKzAM+Y/uylsNavwZZIyJieFKiiYioVBJ8RESlkuAjIiqVBB8RUalOzaKRtC+wyPZnJW0FbGL7mrbjmilJjwX2pbmw4hzbP245pBmTdJDtU9Zoe6XtT7YV0zBIegKwA30/e7Y/31pAQ1LWYtmG1T/Xr9qLKKBDs2gkvQPYA3iY7YdKegDwH7b3aTm0GZH0f4DnA18vTc+m+Vz/0lpQQyDpXOBtts8o998EHGD7oHYjmz5JJwI7ARcDq0qzbb+2taCGQNJrgHcAv+XuDZJs+1HtRRXQrQR/MbAb8GPbu5W2n476N6GkK4DdbK8o9zem+YwPbzeymZG0JfBt4A3AYmBnYIntO1sNbAbK/9UuruyHTtIymnVXbm47llhdl2rwd5QfLANIuk/L8QzLtTSLIPVsCPyinVCGx/ZNwLNolmB9AHDIKCf34lLg/m0HMQuuA25tO4i4py7V4E+S9CngvpJeDrwU+HTLMQ3D7cBlkk6j+eX1ZOBsSR8FGLU//yXdRvM5VL7eC3gwcIgk217QZnwztCVwuaQLaP7fALD9rPZCGoqrgR9I+g6rf64PthdSQIdKNACSngw8hSZ5nGr7tJZDmjFJh6/rcdsnzFUssW6S/maidts/nOtYhqmMb92D7XfOdSyxuk4l+FqVxY0eWu5eWUEpA0nPAc6wfWu5f1+aQdZvtBlXrJ2kTWkGV//UdizRqD7B9/3Jf4+HaL4ZR/lPfiQdAJxAU4sXzZKlh9s+s72oZk7SxbYfs0bbT3oD5KNI0l7Ax4CH05Se5gF/ruB7cFfgROB+pekm4LD1YbGtrqu+Bm9707ZjmGUfAJ5i+0oASQ8Fvgzs3mpUMzfRBIBR/379V5plZP+DZsruYcCiViMajuOAf7T933BXp+PTwBNajCkY/R+YKVnjgqCzbf+k5ZCGYYNecgew/XNJG7QZ0JAslfRBmlk0Bl4DXNRuSDNne5mkebZXAZ8t8/1H3X16yR3A9g8qmqU20jozTbJcEHQCsAXNbIbPSXpbu1ENxVJJx0s6oByfpoJESJPQ7wC+StPjXQEc1WpEM/eXMl5ysaT3S3o9UEMivFrS2yXtUI63ASN/hXgNqq/B91R8QdCGNIlvX5oa/JnAv9m+o9XA4h4kPQi4EdgAeD2wGfBx28taDWyGJG0OvJPVvwf/2fYtrQYWnUrwpwAvtP2Hcv++wBdsP6PNuGZK0tG2PzJZ26gpawW9EXgEfRdy2X5Sa0FFjJjqa/CSPkZTw53wgqA2YxuSw4E1k/nfT9A2ar5IU555BvBKms/5u1YjmiZJlzDxTC4AKlgu41vc8/PdCiwFPtX7qznmXvU9+FovBJL0QuB/0fxZfFbfQ5sCq2z/bSuBDYmki2zv3r9ekKQf2p7wYqH1WSnNwN1jCCeWr4cCf7H9rrmPangkfQTYimb2FsDfAb8BNgYW2H5xW7F1XfU9+FFN4AM4F7iBZsD4A33ttwE/bSWi4epdrHWDpKcD1wMLW4xn2mz/EkDSPmusXvpmSecAI53gaca29u+7/y1JZ9reX1Lmwreo+gQv6STbL1jbn8mj+udxSRq/BPZuO5ZZ8i+SNgP+iebioAU0A5Oj7D6S9rV9Nty1NnwNs2i2kvTA3vrvkh5I0/GAZiZUtKQLJZptbd/Q92fyanq9q1Gzjit0ARj1qyNrJGl34DM0s2dMU6d+6ahv0CLpacAnaVYxFbAj8A/AD4CX2/5wa8F1XPUJvkfSsbbfNFnbqJH0Lpp654k0P1yHApvafn+rgc2QpAfTDBTvTbOJxHnA621f3WpgQyBpAc3PXjVL7JbpujvTfA/+LAOr64cuJfgf237sGm01bPhxvu3HT9Y2aiT9iOYq1t7A3RLgNaP8uSRtA7wHeIDtgyTtAuxt+/iWQ5uxsh7NLqw+pXXktyIcddVfySrpVaX+vrOkn/Yd11DHYOQqSYdKmidpTNKh3L0d3CiT7RNtryzHF1hHSWpEfA44lWYDE4CfA69rK5hhKcsFf6wcTwTeT7NZS7Ss+h58GajbHHgv8Oa+h26z/ft2ohoeSTvQlDL2oWy6DbzO9rUthjVtknorEr4R+APwFZrP9XfAhrbf3VJoMybpQtuP618Vc6JVM0dN6UA9GviJ7UeXv1T+3fYzWw6t86qfRWP71jIg+chRHVBdGzU72R9l++C2Yxmii7h7RyeAV/Q9ZmBkEzzwZ0lbcPe2kXtRx1Z3K2yPS1pZxhdupNmFK1pWfYIHKN98/9M/lasGtleVmRnVsL1j2zHMon8ETgZ2KvPftwIOaTekobiwLP3RW+juT8AFrUYUQEcSfLEtzVIFFwB/7jVWsB/mTySdTLPiYv/n+np7IQ1HmSe+A33fpyM+cLcTcBDNpizPAx5PHT+DmwLPp5kW+T2aq1drGN8aedXX4Hsq3g/zsxM02/ZL5zyYIZJ0Ik1CvJi7B409apuI9+vN2pK0L81smg8Abx3lmUEAkp5Es2TGfjSlmYuBM0d9wbsadCbBw11rgiyy/f8k3RuYZ/u2tuOKeyrLO+/iir5Be4Orkt4LXGL7S6O+DWFPGQ96HM0smlcCf7W9c7tRRQ1/Hg5E0suBI2n2jdwJ2I7m6rsD24xrpiRtBBzBPZfVHekePHApcH+a9XZq8WtJnwL+Fji2XBw08lOVJZ1Os+TCeTQL3z3O9o3tRhVQwTfXFBxFM5XwjwC2rwK2bjWi4TiRJhE+FfghzYJcI/tXiaRvlTGFLYHLJZ0q6eTe0XZ8M/QCmnnwi8u+BPcD3tBqRMPxU5o1Z3YFHgXsWjbUiZZ1pkTTu7qz78/k+TQ7Oo36lay9z9Or724AnDqqG2OsbaykZ9THTGomaRPgJcD/Bu5ve8OWQ+q8zpRogB9KeiuwsaQn0yyG9K2WYxqG3rK6fyiXi/+GZubJSOolcEk7AjesscXiNm3GFhOT9GqaAdbdaVY4/Qyr71EQLelSD36Mplb9FJqLaE6ludpupP8BJL0M+E/gkTSXwm8CvN32p9qMa6YkLQWe0NtbVs1m1efYfly7kcWaJL2BZh/Wi2yvbDueuFuXEvxzgO/avr3tWIapDNQ9j6bXvkFpdgW7BN3jEn5J/2P70S2FFDFyujTI+izg55JOlPT0UoOvwTeBg4GVNFcQ/om+C55G2O8k3XURmqSDgZtajCdi5HSmBw9QBiAPolm4al/gNNsvazeqmZF0qe1d245j2CTtRLPxdm/lxeXAi23/or2oIkZLLb3Ygdi+U9IpNIs9bUzT8x3pBA+cK+mRti9pO5AhG7e9V5mZIdu3lYHXiBhQZ3rwkhbTbBrxRJo1M74KfH9UB4X69pidDywCrgZupxlAdgXTPyfaoOUi21UtrhYxm7rUg/97mrXFX1HJQOsz2g5gNkjameaq3M0kPbfvoQX0XakbEZPrTIK3vaTtGIaptrXt+zyM5pfXfYH+DSNuA17eRkARo6pLJZrnAsfSLE8g7i5lLGg1sJiQpL1tn9d2HBGjrEsJfhnwTNtXtB1LTK7iRdQi5kyX5sH/Nsl9pFS1iFpEG7rUg/8ITcL4Bs1sE6COnY9qVNsiahFt6MwgK80sjL/QrEXTYyAJfv1U1SJqEW3oTIK3/ZK2Y4gpOU7S5sDbaDaq3gR4e7shRYyWLpVoFgIfo9n0w8DZwNG2l7caWEyo1kXUIuZSlwZZP0vTE3wAzXZ93yptsX6qdRG1iDnTpR78RMvP3qMt1g+1LqIWMZe61IO/SdKLJM0rx4uAm9sOKtbqXEmPbDuIiFHWpR78A4F/BfamqcGfC7zW9q9aDSxWU/siahFzqUsJ/gTgdbZvKffvB/zfXBm5fpH0oHU9XvEaPBFD15lpksCjeskdwPbvJe3WZkBxT0ngEcPTpRr8WJlXDdzVg+/SL7iI6JguJbgP0AzcfY2mxvsC4Jh2Q4qImD2dqcEDSNoFeBLNgN3pti9vOaSIiFnTqQQfEdElXarBR0R0ShJ8RESlkuAjIiqVBB8RUan/D8tnM2IAuFOfAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"im = ax.pcolor(grouped_pivot, cmap='RdBu')\n",
"\n",
"#label names\n",
"row_labels = grouped_pivot.columns.levels[1]\n",
"col_labels = grouped_pivot.index\n",
"\n",
"#move ticks and labels to the center\n",
"ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n",
"ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n",
"\n",
"#insert labels\n",
"ax.set_xticklabels(row_labels, minor=False)\n",
"ax.set_yticklabels(col_labels, minor=False)\n",
"\n",
"#rotate label if too long\n",
"plt.xticks(rotation=90)\n",
"\n",
"fig.colorbar(im)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n",
"\n",
"<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n",
"\n",
"<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n",
"\n",
"<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n",
"\n",
"<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"\n",
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
"<ul>\n",
" <li><b>1</b>: Total positive linear correlation.</li>\n",
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
" <li><b>-1</b>: Total negative linear correlation.</li>\n",
"</ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 48,
"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>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" sometimes we would like to know the significant of the correlation estimate. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"\n",
"<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n",
"\n",
"By convention, when the\n",
"\n",
"<ul>\n",
" <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n",
" <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n",
"</ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library.\n"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-base vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. \n"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.584641822265508 with a P-value of P = 8.076488270733218e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Length vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'.\n"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.6906283804483638 with a P-value of P = 8.016477466159556e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522673 with a P-value of P = 9.200335510481646e-38\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is &lt; 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751).\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702843 with a P-value of P = 2.189577238894065e-53\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Engine-size vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622198389e-64\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935489e-17\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844678 with a P-value of P = 2.321132065567641e-29\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.704692265058953 with a P-value of P = 1.7495471144476358e-31\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is &lt; 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>ANOVA: Analysis of Variance</h3>\n",
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
"\n",
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
"\n",
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
"\n",
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see if different types 'drive-wheels' impact 'price', we group the data.\n"
]
},
{
"cell_type": "code",
"execution_count": 58,
"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>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>15250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>136</th>\n",
" <td>4wd</td>\n",
" <td>7603.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 rwd 13495.0\n",
"1 rwd 16500.0\n",
"3 fwd 13950.0\n",
"4 4wd 17450.0\n",
"5 fwd 15250.0\n",
"136 4wd 7603.0"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n",
"grouped_test2.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 59,
"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>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>196</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16845.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>197</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>19045.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>198</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21485.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>199</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22470.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>200</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22625.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>201 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 rwd convertible 13495.0\n",
"1 rwd convertible 16500.0\n",
"2 rwd hatchback 16500.0\n",
"3 fwd sedan 13950.0\n",
"4 4wd sedan 17450.0\n",
".. ... ... ...\n",
"196 rwd sedan 16845.0\n",
"197 rwd sedan 19045.0\n",
"198 rwd sedan 21485.0\n",
"199 rwd sedan 22470.0\n",
"200 rwd sedan 22625.0\n",
"\n",
"[201 rows x 3 columns]"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_gptest"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain the values of the method group using the method \"get_group\". \n"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4 17450.0\n",
"136 7603.0\n",
"140 9233.0\n",
"141 11259.0\n",
"144 8013.0\n",
"145 11694.0\n",
"150 7898.0\n",
"151 8778.0\n",
"Name: price, dtype: float64"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2.get_group('4wd')['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can use the function 'f_oneway' in the module 'stats' to obtain the <b>F-test score</b> and <b>P-value</b>.\n"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>\n"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Thank you for completing this lab!\n",
"\n",
"## Author\n",
"\n",
"<a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>\n",
"\n",
"### Other Contributors\n",
"\n",
"<a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>\n",
"\n",
"Bahare Talayian\n",
"\n",
"Eric Xiao\n",
"\n",
"Steven Dong\n",
"\n",
"Parizad\n",
"\n",
"Hima Vasudevan\n",
"\n",
"<a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a>\n",
"\n",
"<a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"## Change Log\n",
"\n",
"| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n",
"| ----------------- | ------- | ---------- | ---------------------------------- |\n",
"| 2020-08-27 | 2.0 | Lavanya | Moved lab to course repo in GitLab |\n",
"\n",
"<hr>\n",
"\n",
"## <h3 align=\"center\"> © IBM Corporation 2020. All rights reserved. <h3/>\n"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"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.6.11"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment