Skip to content

Instantly share code, notes, and snippets.

@quarrazzella
Created October 25, 2018 10:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save quarrazzella/0445cab798ef5552a5e2cf302a812484 to your computer and use it in GitHub Desktop.
Save quarrazzella/0445cab798ef5552a5e2cf302a812484 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>\n",
"<img src=\"../../img/ods_stickers.jpg\" />\n",
" \n",
"## [mlcourse.ai](mlcourse.ai) – Open Machine Learning Course \n",
"\n",
"Author: [Yury Kashnitskiy](https://yorko.github.io). \n",
"Translated and edited by [Maxim Keremet](https://www.linkedin.com/in/maximkeremet/), [Artem Trunov](https://www.linkedin.com/in/datamove/), and [Aditya Soni](https://www.linkedin.com/in/aditya-soni-0505a9124/). This material is subject to the terms and conditions of the [Creative Commons CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) license. Free use is permitted for any non-commercial purpose."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# <center>Assignment #2. Fall 2018 <br> Exploratory Data Analysis (EDA) of US flights <br> (using Pandas, Matplotlib & Seaborn)\n",
"\n",
"<img src='../../img/plane_sunset.png' width=50%>\n",
"\n",
"Prior to working on the assignment, you'd better check out the corresponding course material:\n",
" - [Visualization: from Simple Distributions to Dimensionality Reduction](https://mlcourse.ai/notebooks/blob/master/jupyter_english/topic02_visual_data_analysis/topic2_visual_data_analysis.ipynb?flush_cache=true)\n",
" - [Overview of Seaborn, Matplotlib and Plotly libraries](https://mlcourse.ai/notebooks/blob/master/jupyter_english/topic02_visual_data_analysis/topic2_additional_seaborn_matplotlib_plotly.ipynb?flush_cache=true)\n",
" - first lectures in [this](https://www.youtube.com/watch?v=QKTuw4PNOsU&list=PLVlY_7IJCMJeRfZ68eVfEcu-UcN9BbwiX) YouTube playlist \n",
"\n",
"### Your task is to:\n",
" - write code and perform computations in the cells below\n",
" - choose answers in the [webform](https://docs.google.com/forms/d/1qSTjLAGqsmpFRhacv0vM-CMQSTT_mtOalNXdRTcdtM0/edit)\n",
" - submit answers with **the very same email and name** as in assignment 1. This is a part of the assignment, if you don't manage to do so, you won't get credits. If in doubt, you can re-submit A1 form till the deadline for A1, no problem\n",
" \n",
"### <center> Deadline for A2: 2018 October 21, 20:59 CET\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"# pip install seaborn \n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Download the data [archive](http://stat-computing.org/dataexpo/2009/2008.csv.bz2) (Archived ~ 114 Mb, unzipped - ~ 690 Mb). No need to unzip - pandas can unbzip on the fly.\n",
"* Place it in the \"../../data\" folder, or change the path below according to your location.\n",
"* The dataset has information about carriers and flights between US airports during the year 2008. \n",
"* Column description is available [here](http://www.transtats.bts.gov/Fields.asp?Table_ID=236). Visit this site to find ex. meaning of flight cancellation codes."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Reading data into memory and creating a Pandas _DataFrame_ object**\n",
"\n",
"(This may take a while, be patient)\n",
"\n",
"We are not going to read in the whole dataset. In order to reduce memory footprint, we instead load only needed columns and cast them suitable data types."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"dtype = {'DayOfWeek': np.uint8, 'DayofMonth': np.uint8, 'Month': np.uint8 , 'Cancelled': np.uint8, \n",
" 'Year': np.uint16, 'FlightNum': np.uint16 , 'Distance': np.uint16, \n",
" 'UniqueCarrier': str, 'CancellationCode': str, 'Origin': str, 'Dest': str,\n",
" 'ArrDelay': np.float16, 'DepDelay': np.float16, 'CarrierDelay': np.float16,\n",
" 'WeatherDelay': np.float16, 'NASDelay': np.float16, 'SecurityDelay': np.float16,\n",
" 'LateAircraftDelay': np.float16, 'DepTime': np.float16}"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 26.6 s, sys: 311 ms, total: 26.9 s\n",
"Wall time: 25.6 s\n"
]
}
],
"source": [
"%%time\n",
"# change the path if needed\n",
"path = '../../data/2008.csv.bz2'\n",
"flights_df = pd.read_csv(path, usecols=dtype.keys(), dtype=dtype)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Check the number of rows and columns and print column names.**"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(7009728, 19)\n",
"Index(['Year', 'Month', 'DayofMonth', 'DayOfWeek', 'DepTime', 'UniqueCarrier',\n",
" 'FlightNum', 'ArrDelay', 'DepDelay', 'Origin', 'Dest', 'Distance',\n",
" 'Cancelled', 'CancellationCode', 'CarrierDelay', 'WeatherDelay',\n",
" 'NASDelay', 'SecurityDelay', 'LateAircraftDelay'],\n",
" dtype='object')\n"
]
}
],
"source": [
"print(flights_df.shape)\n",
"print(flights_df.columns)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Print first 5 rows of the dataset.**"
]
},
{
"cell_type": "code",
"execution_count": 5,
"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>Year</th>\n",
" <th>Month</th>\n",
" <th>DayofMonth</th>\n",
" <th>DayOfWeek</th>\n",
" <th>DepTime</th>\n",
" <th>UniqueCarrier</th>\n",
" <th>FlightNum</th>\n",
" <th>ArrDelay</th>\n",
" <th>DepDelay</th>\n",
" <th>Origin</th>\n",
" <th>Dest</th>\n",
" <th>Distance</th>\n",
" <th>Cancelled</th>\n",
" <th>CancellationCode</th>\n",
" <th>CarrierDelay</th>\n",
" <th>WeatherDelay</th>\n",
" <th>NASDelay</th>\n",
" <th>SecurityDelay</th>\n",
" <th>LateAircraftDelay</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2008</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2003.0</td>\n",
" <td>WN</td>\n",
" <td>335</td>\n",
" <td>-14.0</td>\n",
" <td>8.0</td>\n",
" <td>IAD</td>\n",
" <td>TPA</td>\n",
" <td>810</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2008</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>754.0</td>\n",
" <td>WN</td>\n",
" <td>3231</td>\n",
" <td>2.0</td>\n",
" <td>19.0</td>\n",
" <td>IAD</td>\n",
" <td>TPA</td>\n",
" <td>810</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2008</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>628.0</td>\n",
" <td>WN</td>\n",
" <td>448</td>\n",
" <td>14.0</td>\n",
" <td>8.0</td>\n",
" <td>IND</td>\n",
" <td>BWI</td>\n",
" <td>515</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2008</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>926.0</td>\n",
" <td>WN</td>\n",
" <td>1746</td>\n",
" <td>-6.0</td>\n",
" <td>-4.0</td>\n",
" <td>IND</td>\n",
" <td>BWI</td>\n",
" <td>515</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2008</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>1829.0</td>\n",
" <td>WN</td>\n",
" <td>3920</td>\n",
" <td>34.0</td>\n",
" <td>34.0</td>\n",
" <td>IND</td>\n",
" <td>BWI</td>\n",
" <td>515</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>32.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Year Month DayofMonth DayOfWeek DepTime UniqueCarrier FlightNum \\\n",
"0 2008 1 3 4 2003.0 WN 335 \n",
"1 2008 1 3 4 754.0 WN 3231 \n",
"2 2008 1 3 4 628.0 WN 448 \n",
"3 2008 1 3 4 926.0 WN 1746 \n",
"4 2008 1 3 4 1829.0 WN 3920 \n",
"\n",
" ArrDelay DepDelay Origin Dest Distance Cancelled CancellationCode \\\n",
"0 -14.0 8.0 IAD TPA 810 0 NaN \n",
"1 2.0 19.0 IAD TPA 810 0 NaN \n",
"2 14.0 8.0 IND BWI 515 0 NaN \n",
"3 -6.0 -4.0 IND BWI 515 0 NaN \n",
"4 34.0 34.0 IND BWI 515 0 NaN \n",
"\n",
" CarrierDelay WeatherDelay NASDelay SecurityDelay LateAircraftDelay \n",
"0 NaN NaN NaN NaN NaN \n",
"1 NaN NaN NaN NaN NaN \n",
"2 NaN NaN NaN NaN NaN \n",
"3 NaN NaN NaN NaN NaN \n",
"4 2.0 0.0 0.0 0.0 32.0 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flights_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Transpose the frame to see all features at once.**"
]
},
{
"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>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Year</th>\n",
" <td>2008</td>\n",
" <td>2008</td>\n",
" <td>2008</td>\n",
" <td>2008</td>\n",
" <td>2008</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Month</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>DayofMonth</th>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>DayOfWeek</th>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>DepTime</th>\n",
" <td>2003</td>\n",
" <td>754</td>\n",
" <td>628</td>\n",
" <td>926</td>\n",
" <td>1829</td>\n",
" </tr>\n",
" <tr>\n",
" <th>UniqueCarrier</th>\n",
" <td>WN</td>\n",
" <td>WN</td>\n",
" <td>WN</td>\n",
" <td>WN</td>\n",
" <td>WN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>FlightNum</th>\n",
" <td>335</td>\n",
" <td>3231</td>\n",
" <td>448</td>\n",
" <td>1746</td>\n",
" <td>3920</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ArrDelay</th>\n",
" <td>-14</td>\n",
" <td>2</td>\n",
" <td>14</td>\n",
" <td>-6</td>\n",
" <td>34</td>\n",
" </tr>\n",
" <tr>\n",
" <th>DepDelay</th>\n",
" <td>8</td>\n",
" <td>19</td>\n",
" <td>8</td>\n",
" <td>-4</td>\n",
" <td>34</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Origin</th>\n",
" <td>IAD</td>\n",
" <td>IAD</td>\n",
" <td>IND</td>\n",
" <td>IND</td>\n",
" <td>IND</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Dest</th>\n",
" <td>TPA</td>\n",
" <td>TPA</td>\n",
" <td>BWI</td>\n",
" <td>BWI</td>\n",
" <td>BWI</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Distance</th>\n",
" <td>810</td>\n",
" <td>810</td>\n",
" <td>515</td>\n",
" <td>515</td>\n",
" <td>515</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cancelled</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CancellationCode</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CarrierDelay</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>WeatherDelay</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>NASDelay</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SecurityDelay</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>LateAircraftDelay</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>32</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 0 1 2 3 4\n",
"Year 2008 2008 2008 2008 2008\n",
"Month 1 1 1 1 1\n",
"DayofMonth 3 3 3 3 3\n",
"DayOfWeek 4 4 4 4 4\n",
"DepTime 2003 754 628 926 1829\n",
"UniqueCarrier WN WN WN WN WN\n",
"FlightNum 335 3231 448 1746 3920\n",
"ArrDelay -14 2 14 -6 34\n",
"DepDelay 8 19 8 -4 34\n",
"Origin IAD IAD IND IND IND\n",
"Dest TPA TPA BWI BWI BWI\n",
"Distance 810 810 515 515 515\n",
"Cancelled 0 0 0 0 0\n",
"CancellationCode NaN NaN NaN NaN NaN\n",
"CarrierDelay NaN NaN NaN NaN 2\n",
"WeatherDelay NaN NaN NaN NaN 0\n",
"NASDelay NaN NaN NaN NaN 0\n",
"SecurityDelay NaN NaN NaN NaN 0\n",
"LateAircraftDelay NaN NaN NaN NaN 32"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flights_df.head().T"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Examine data types of all features and total dataframe size in memory.**"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 7009728 entries, 0 to 7009727\n",
"Data columns (total 19 columns):\n",
"Year uint16\n",
"Month uint8\n",
"DayofMonth uint8\n",
"DayOfWeek uint8\n",
"DepTime float16\n",
"UniqueCarrier object\n",
"FlightNum uint16\n",
"ArrDelay float16\n",
"DepDelay float16\n",
"Origin object\n",
"Dest object\n",
"Distance uint16\n",
"Cancelled uint8\n",
"CancellationCode object\n",
"CarrierDelay float16\n",
"WeatherDelay float16\n",
"NASDelay float16\n",
"SecurityDelay float16\n",
"LateAircraftDelay float16\n",
"dtypes: float16(8), object(4), uint16(3), uint8(4)\n",
"memory usage: 387.7+ MB\n"
]
}
],
"source": [
"flights_df.info()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Get basic statistics of each feature.**"
]
},
{
"cell_type": "code",
"execution_count": 8,
"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>count</th>\n",
" <th>mean</th>\n",
" <th>std</th>\n",
" <th>min</th>\n",
" <th>25%</th>\n",
" <th>50%</th>\n",
" <th>75%</th>\n",
" <th>max</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Year</th>\n",
" <td>7009728.0</td>\n",
" <td>2008.000000</td>\n",
" <td>0.000000</td>\n",
" <td>2008.0</td>\n",
" <td>2008.0</td>\n",
" <td>2008.0</td>\n",
" <td>2008.0</td>\n",
" <td>2008.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Month</th>\n",
" <td>7009728.0</td>\n",
" <td>6.375130</td>\n",
" <td>3.406737</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>6.0</td>\n",
" <td>9.0</td>\n",
" <td>12.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>DayofMonth</th>\n",
" <td>7009728.0</td>\n",
" <td>15.728015</td>\n",
" <td>8.797068</td>\n",
" <td>1.0</td>\n",
" <td>8.0</td>\n",
" <td>16.0</td>\n",
" <td>23.0</td>\n",
" <td>31.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>DayOfWeek</th>\n",
" <td>7009728.0</td>\n",
" <td>3.924182</td>\n",
" <td>1.988259</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>4.0</td>\n",
" <td>6.0</td>\n",
" <td>7.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>DepTime</th>\n",
" <td>6873482.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>928.0</td>\n",
" <td>1325.0</td>\n",
" <td>1728.0</td>\n",
" <td>2400.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>FlightNum</th>\n",
" <td>7009728.0</td>\n",
" <td>2224.200105</td>\n",
" <td>1961.715999</td>\n",
" <td>1.0</td>\n",
" <td>622.0</td>\n",
" <td>1571.0</td>\n",
" <td>3518.0</td>\n",
" <td>9743.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ArrDelay</th>\n",
" <td>6855029.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>-519.0</td>\n",
" <td>-10.0</td>\n",
" <td>-2.0</td>\n",
" <td>12.0</td>\n",
" <td>2460.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>DepDelay</th>\n",
" <td>6873482.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>-534.0</td>\n",
" <td>-4.0</td>\n",
" <td>-1.0</td>\n",
" <td>8.0</td>\n",
" <td>2468.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Distance</th>\n",
" <td>7009728.0</td>\n",
" <td>726.387029</td>\n",
" <td>562.101803</td>\n",
" <td>11.0</td>\n",
" <td>325.0</td>\n",
" <td>581.0</td>\n",
" <td>954.0</td>\n",
" <td>4962.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cancelled</th>\n",
" <td>7009728.0</td>\n",
" <td>0.019606</td>\n",
" <td>0.138643</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CarrierDelay</th>\n",
" <td>1524735.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>16.0</td>\n",
" <td>2436.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>WeatherDelay</th>\n",
" <td>1524735.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1352.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>NASDelay</th>\n",
" <td>1524735.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>6.0</td>\n",
" <td>21.0</td>\n",
" <td>1357.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SecurityDelay</th>\n",
" <td>1524735.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>392.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>LateAircraftDelay</th>\n",
" <td>1524735.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>26.0</td>\n",
" <td>1316.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" count mean std min 25% \\\n",
"Year 7009728.0 2008.000000 0.000000 2008.0 2008.0 \n",
"Month 7009728.0 6.375130 3.406737 1.0 3.0 \n",
"DayofMonth 7009728.0 15.728015 8.797068 1.0 8.0 \n",
"DayOfWeek 7009728.0 3.924182 1.988259 1.0 2.0 \n",
"DepTime 6873482.0 NaN NaN 1.0 928.0 \n",
"FlightNum 7009728.0 2224.200105 1961.715999 1.0 622.0 \n",
"ArrDelay 6855029.0 NaN NaN -519.0 -10.0 \n",
"DepDelay 6873482.0 NaN NaN -534.0 -4.0 \n",
"Distance 7009728.0 726.387029 562.101803 11.0 325.0 \n",
"Cancelled 7009728.0 0.019606 0.138643 0.0 0.0 \n",
"CarrierDelay 1524735.0 NaN NaN 0.0 0.0 \n",
"WeatherDelay 1524735.0 NaN NaN 0.0 0.0 \n",
"NASDelay 1524735.0 NaN NaN 0.0 0.0 \n",
"SecurityDelay 1524735.0 NaN NaN 0.0 0.0 \n",
"LateAircraftDelay 1524735.0 NaN NaN 0.0 0.0 \n",
"\n",
" 50% 75% max \n",
"Year 2008.0 2008.0 2008.0 \n",
"Month 6.0 9.0 12.0 \n",
"DayofMonth 16.0 23.0 31.0 \n",
"DayOfWeek 4.0 6.0 7.0 \n",
"DepTime 1325.0 1728.0 2400.0 \n",
"FlightNum 1571.0 3518.0 9743.0 \n",
"ArrDelay -2.0 12.0 2460.0 \n",
"DepDelay -1.0 8.0 2468.0 \n",
"Distance 581.0 954.0 4962.0 \n",
"Cancelled 0.0 0.0 1.0 \n",
"CarrierDelay 0.0 16.0 2436.0 \n",
"WeatherDelay 0.0 0.0 1352.0 \n",
"NASDelay 6.0 21.0 1357.0 \n",
"SecurityDelay 0.0 0.0 392.0 \n",
"LateAircraftDelay 0.0 26.0 1316.0 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flights_df.describe().T"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Count unique Carriers and plot their relative share of flights:**"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"20"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flights_df['UniqueCarrier'].nunique()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"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": [
"flights_df.groupby('UniqueCarrier').size().plot(kind='bar');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**We can also _group by_ category/categories in order to calculate different aggregated statistics.**\n",
"\n",
"**For example, finding top-3 flight codes, that have the largest total distance travelled in year 2008.**"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"UniqueCarrier FlightNum\n",
"CO 15 1796244.0\n",
" 14 1796244.0\n",
"UA 52 1789722.0\n",
"Name: Distance, dtype: float64"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flights_df.groupby(['UniqueCarrier','FlightNum'])['Distance'].sum().sort_values(ascending=False).iloc[:3]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Another way:**"
]
},
{
"cell_type": "code",
"execution_count": 12,
"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></th>\n",
" <th colspan=\"3\" halign=\"left\">Distance</th>\n",
" <th>Cancelled</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th></th>\n",
" <th>mean</th>\n",
" <th>sum</th>\n",
" <th>count</th>\n",
" <th>sum</th>\n",
" </tr>\n",
" <tr>\n",
" <th>UniqueCarrier</th>\n",
" <th>FlightNum</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">CO</th>\n",
" <th>15</th>\n",
" <td>4962.000000</td>\n",
" <td>1796244.0</td>\n",
" <td>362</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>4962.000000</td>\n",
" <td>1796244.0</td>\n",
" <td>362</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>UA</th>\n",
" <th>52</th>\n",
" <td>2465.181818</td>\n",
" <td>1789722.0</td>\n",
" <td>726</td>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Distance Cancelled\n",
" mean sum count sum\n",
"UniqueCarrier FlightNum \n",
"CO 15 4962.000000 1796244.0 362 0\n",
" 14 4962.000000 1796244.0 362 0\n",
"UA 52 2465.181818 1789722.0 726 8"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flights_df.groupby(['UniqueCarrier','FlightNum'])\\\n",
" .agg({'Distance': [np.mean, np.sum, 'count'],\n",
" 'Cancelled': np.sum})\\\n",
" .sort_values(('Distance', 'sum'), ascending=False)\\\n",
" .iloc[0:3]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Number of flights by days of week and months:**"
]
},
{
"cell_type": "code",
"execution_count": 13,
"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>DayOfWeek</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>7</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Month</th>\n",
" <th></th>\n",
" <th></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>1</th>\n",
" <td>80807</td>\n",
" <td>97298</td>\n",
" <td>100080</td>\n",
" <td>102043</td>\n",
" <td>81940</td>\n",
" <td>67178</td>\n",
" <td>76419</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>81504</td>\n",
" <td>79700</td>\n",
" <td>80587</td>\n",
" <td>82158</td>\n",
" <td>102726</td>\n",
" <td>66462</td>\n",
" <td>76099</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>103210</td>\n",
" <td>81159</td>\n",
" <td>82307</td>\n",
" <td>82831</td>\n",
" <td>82936</td>\n",
" <td>86153</td>\n",
" <td>97494</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>82463</td>\n",
" <td>100785</td>\n",
" <td>102586</td>\n",
" <td>82799</td>\n",
" <td>82964</td>\n",
" <td>68304</td>\n",
" <td>78225</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>80626</td>\n",
" <td>79884</td>\n",
" <td>81264</td>\n",
" <td>102572</td>\n",
" <td>102878</td>\n",
" <td>84493</td>\n",
" <td>74576</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>104168</td>\n",
" <td>82160</td>\n",
" <td>82902</td>\n",
" <td>83617</td>\n",
" <td>83930</td>\n",
" <td>72322</td>\n",
" <td>99566</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>84095</td>\n",
" <td>103429</td>\n",
" <td>103315</td>\n",
" <td>105035</td>\n",
" <td>79349</td>\n",
" <td>72219</td>\n",
" <td>80489</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>82983</td>\n",
" <td>80895</td>\n",
" <td>81773</td>\n",
" <td>82625</td>\n",
" <td>103878</td>\n",
" <td>86155</td>\n",
" <td>93970</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>94300</td>\n",
" <td>91533</td>\n",
" <td>74057</td>\n",
" <td>75589</td>\n",
" <td>75881</td>\n",
" <td>58343</td>\n",
" <td>71205</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>75131</td>\n",
" <td>72195</td>\n",
" <td>91900</td>\n",
" <td>94123</td>\n",
" <td>93894</td>\n",
" <td>58168</td>\n",
" <td>70794</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>74214</td>\n",
" <td>72443</td>\n",
" <td>73653</td>\n",
" <td>68071</td>\n",
" <td>70484</td>\n",
" <td>76031</td>\n",
" <td>88376</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>92700</td>\n",
" <td>90568</td>\n",
" <td>85241</td>\n",
" <td>70761</td>\n",
" <td>74306</td>\n",
" <td>61708</td>\n",
" <td>69674</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"DayOfWeek 1 2 3 4 5 6 7\n",
"Month \n",
"1 80807 97298 100080 102043 81940 67178 76419\n",
"2 81504 79700 80587 82158 102726 66462 76099\n",
"3 103210 81159 82307 82831 82936 86153 97494\n",
"4 82463 100785 102586 82799 82964 68304 78225\n",
"5 80626 79884 81264 102572 102878 84493 74576\n",
"6 104168 82160 82902 83617 83930 72322 99566\n",
"7 84095 103429 103315 105035 79349 72219 80489\n",
"8 82983 80895 81773 82625 103878 86155 93970\n",
"9 94300 91533 74057 75589 75881 58343 71205\n",
"10 75131 72195 91900 94123 93894 58168 70794\n",
"11 74214 72443 73653 68071 70484 76031 88376\n",
"12 92700 90568 85241 70761 74306 61708 69674"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(flights_df.Month, flights_df.DayOfWeek)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**It can also be handy to color such tables in order to easily notice outliers:**"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"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": [
"plt.imshow(pd.crosstab(flights_df.Month, flights_df.DayOfWeek),\n",
" cmap='seismic', interpolation='none');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Flight distance histogram:**"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"scrolled": true
},
"outputs": [
{
"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": [
"flights_df.hist('Distance', bins=20);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Making a histogram of flight frequency by date.**"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"flights_df['Date'] = pd.to_datetime(flights_df.rename(columns={'DayofMonth': 'Day'})[['Year', 'Month', 'Day']])"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"num_flights_by_date = flights_df.groupby('Date').size()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"scrolled": true
},
"outputs": [
{
"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": [
"num_flights_by_date.plot();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Do you see a weekly pattern above? And below?**"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"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": [
"num_flights_by_date.rolling(window=7).mean().plot();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**1. Find top-10 carriers in terms of the number of completed flights (_UniqueCarrier_ column)?**\n",
"\n",
"**Which of the listed below is _not_ in your top-10 list?**\n",
"- DL\n",
"- AA\n",
"- OO\n",
"- EV "
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"# You code here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**2. Plot distributions of flight cancellation reasons (_CancellationCode_).**\n",
"\n",
"**What is the most frequent reason for flight cancellation? (Use this [link](https://www.transtats.bts.gov/Fields.asp?Table_ID=236) to translate codes into reasons)**\n",
"- carrier\n",
"- weather conditions \n",
"- National Air System\n",
"- security reasons"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"# You code here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**3. Which route is the most frequent, in terms of the number of flights?**\n",
"\n",
"(Take a look at _'Origin'_ and _'Dest'_ features. Consider _A->B_ and _B->A_ directions as _different_ routes) \n",
"\n",
" - New-York – Washington\n",
" - San-Francisco – Los-Angeles \n",
" - San-Jose – Dallas\n",
" - New-York – San-Francisco"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"# You code here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**4. Find top-5 delayed routes (count how many times they were delayed on departure). From all flights on these 5 routes, count all flights with weather conditions contributing to a delay.**\n",
"\n",
"- 449 \n",
"- 539 \n",
"- 549 \n",
"- 668 "
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"# You code here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**5. Examine the hourly distribution of departure times. For that, create a new series from DepTime, removing missing values.**\n",
"\n",
"**Choose all correct statements:**\n",
" - Flights are normally distributed within time interval [0-23] (Search for: Normal distribution, bell curve).\n",
" - Flights are uniformly distributed within time interval [0-23].\n",
" - In the period from 0 am to 4 am there are considerably less flights than from 7 pm to 8 pm."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"# You code here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**6. Show how the number of flights changes through time (on the daily/weekly/monthly basis) and interpret the findings.**\n",
"\n",
"**Choose all correct statements:**\n",
"- The number of flights during weekends is less than during weekdays (working days).\n",
"- The lowest number of flights is on Sunday.\n",
"- There are less flights during winter than during summer. "
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"# You code here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**7. Examine the distribution of cancellation reasons with time. Make a bar plot of cancellation reasons aggregated by months.**\n",
"\n",
"**Choose all correct statements:**\n",
"- December has the highest rate of cancellations due to weather. \n",
"- The highest rate of cancellations in September is due to Security reasons.\n",
"- April's top cancellation reason is carriers.\n",
"- Flights cancellations due to National Air System are more frequent than those due to carriers."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"# You code here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**8. Which month has the greatest number of cancellations due to Carrier?** \n",
"- May\n",
"- January\n",
"- September\n",
"- April "
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"# You code here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**9. Identify the carrier with the greatest number of cancellations due to carrier in the corresponding month from the previous question.**\n",
"\n",
"- 9E\n",
"- EV\n",
"- HA\n",
"- AA"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"# You code here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**10. Examine median arrival and departure delays (in time) by carrier. Which carrier has the lowest median delay time for both arrivals and departures? Leave only non-negative values of delay times ('ArrDelay', 'DepDelay').\n",
"[Boxplots](https://seaborn.pydata.org/generated/seaborn.boxplot.html) can be helpful in this exercise, as well as it might be a good idea to remove outliers in order to build nice graphs. You can exclude delay time values higher than a corresponding .95 percentile.**\n",
"\n",
"- EV\n",
"- OO\n",
"- AA\n",
"- AQ "
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"# You code here"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment