{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Data Analysis Example in Python\n", "### Adapted by Carrie Brown from \"The Bigmemory Project: Introductory Example\" by Michael Kane and John Emerson\n", "\n", "Using USA Commerical Flight Data from 1997 to 2008, this analysis covers data loading, integration and basic visualization to attempt to discern possible causes of flight delays.\n", "\n", "**If you wish to run this notebook interactively:** you will be need to run the `get_data.submit` job (using the command `sbatch get_data.submit`) to download the necessary datafiles. It is also recommended to change the data load step to use the truncated data set to improve run times." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Import libraries\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.ensemble import RandomForestClassifier\n", "\n", "# Set plot figure sizes\n", "plt.rcParams[\"figure.figsize\"] = (10,10)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
YearMonthTailNumArrDelayOrigin
0198710NaNNaNJFK
1198711NaN2.0MCI
2198711NaN0.0SAN
3198712NaN31.0ORD
4198710NaN12.0LAX
\n", "
" ], "text/plain": [ " Year Month TailNum ArrDelay Origin\n", "0 1987 10 NaN NaN JFK\n", "1 1987 11 NaN 2.0 MCI\n", "2 1987 11 NaN 0.0 SAN\n", "3 1987 12 NaN 31.0 ORD\n", "4 1987 10 NaN 12.0 LAX" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Load airline.csv data - to run this interactively, change the file to './data/airline_truc.csv'\n", "flights = pd.read_csv(\"./data/airline_subsample.csv\",\n", " sep = \",\", low_memory=False)\n", "flights.head(5)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Year int64\n", "Month int64\n", "TailNum object\n", "ArrDelay float64\n", "Origin object\n", "dtype: object" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# The structure of the dataframe\n", "flights.dtypes" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2200000, 5)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Number of rows and columns in dataframe\n", "flights.shape" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1366016, 5)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Remove flights with missing data\n", "flights = flights.dropna(axis = [0, 1], how = \"any\")\n", "flights.shape" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['N605AU',\n", " 'N178AW',\n", " 'N966VJ',\n", " 'N903DE',\n", " 'N997Z',\n", " 'N57837',\n", " 'N948L',\n", " 'N945DL',\n", " 'N309']" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Function to estimate birthmonth of aircraft by finding the month and year of first flight\n", "def birthmonth(airplane):\n", " minYear = airplane['Year'].min()\n", " minMonth = airplane[airplane['Year'] == minYear]['Month'].min()\n", " return (12*minYear + minMonth - 1);\n", "\n", "# Create vectors for each aircraft (aircrafts)\n", "aircrafts = flights['TailNum'].unique()\n", "aircrafts = [s for s in aircrafts if str(s) != 'nan']\n", "\n", "aircrafts[1:10]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
YearMonthTailNumArrDelayOriginStartAge
800001199512N605AU108.0TPA23940.012.0
800002199510N178AW1.0PHX23940.010.0
800003199511N966VJ-7.0PIT23940.011.0
80000419951N903DE-4.0PNS23940.01.0
80000519952N997Z7.0AUS23941.01.0
80000619957N57837-14.0MCO23940.07.0
80000719957N948L-15.0CID23940.07.0
800008199512N945DL18.0LGA23940.012.0
80000919953N30960.0PHX23940.03.0
\n", "
" ], "text/plain": [ " Year Month TailNum ArrDelay Origin Start Age\n", "800001 1995 12 N605AU 108.0 TPA 23940.0 12.0\n", "800002 1995 10 N178AW 1.0 PHX 23940.0 10.0\n", "800003 1995 11 N966VJ -7.0 PIT 23940.0 11.0\n", "800004 1995 1 N903DE -4.0 PNS 23940.0 1.0\n", "800005 1995 2 N997Z 7.0 AUS 23941.0 1.0\n", "800006 1995 7 N57837 -14.0 MCO 23940.0 7.0\n", "800007 1995 7 N948L -15.0 CID 23940.0 7.0\n", "800008 1995 12 N945DL 18.0 LGA 23940.0 12.0\n", "800009 1995 3 N309 60.0 PHX 23940.0 3.0" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Calculate Age of each airline at time of flight\n", "flights['Start'] = np.nan\n", "\n", "for x in aircrafts:\n", " birthday = (birthmonth(flights[flights['TailNum'] == x]))\n", " flights.loc[flights.TailNum == x, 'Start'] = birthday\n", "\n", "flights = flights.assign(Age = flights.Year * 12 + flights.Month - flights.Start)\n", " \n", "flights[1:10]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1332628, 7)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Remove flights with Age of 1\n", "flights_subset = flights[(flights['Age']!=1.0)]\n", "\n", "flights_subset.shape" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nZAAAAJERkAEAAERGQAYAABAZARkAAEBkBGQAAACREZABAABERkAGAAAQGQEZAABAZARkAAAAkRGQ\nAQBG7/LlyzpzprunBZpZZ5+9dPHiRa2tjbfaXl9fL/xdV9t3c3Ozk8+tY7x7FsCk9VFBjt3a2prO\nnTsnM9O5c+cGEQzM53Pt7u7eqNzX19e1u7urD3/4w3rHO96h+Xwuqfz4WP4uu/533HFH4ftns5le\n+9rXBgd8m5ub2tjY8Hrv5cuX9fjjj+ud73yn5vO5zEzz+VyHh4fa3d3N/ZuLFy8GLU+Z5Xc553R4\neHhjGTY3Nxuda9nPffbZZ+Wcu6UcHh5qNpvJOdfauixtbGzozW9+c+ufW9vqyqdaHnjgAdcFSRQK\nJaFy+fJlN5vNbnnNzGp91uHhodvY2PB672w2c+fOnYu+/r7FzNy5c+fc2tqak+TW1tZaXf7d3d3c\na2bINs0r8/ncHR4euvX19c62i4/Dw0M3n8+dmd1YJl9Ff5t9fXNz021ubt74eXWbzWYzt7m56bW9\nfJZneRwsy9ramjs8PHS7u7s3tvX6+rrb3d31+t7svvLdHqH7anNzs/KzQz435DoRus/rkHTFBcQ5\n0QMt39JVQNbkwkK5WdbX152ZufPnz9euPGMtd+xlGFrZ3NwsDJiWlVDe3505c8YdHh7eUmllA4pl\nZeFcfoUXesFfX18v/Kyi1w8PD93Zs2e9v8PMblm2vo79skrat7LNLm/2vM3uhyJ1K+DlPnHOud3d\nXa+/OX/+fOFnhW6bmPKOt6rjZTabeQUNRfuiaFuUBdU++z90OcqOvypl2ygb9C63adPzp00iIAvj\nc1KkWHwCCd+75bxKKmRZ8i4aVdv07Nmzt1TOMbbhbDZzly9fbrSNuyrZfZJ3h1vnM1cvXru7u6Xb\nPi/wWu7rqtaF0ArC91xdXZ6qUvd7fI/J1fXx+duyoDVblufQ6rlUVUmHVmBN1Dl3s1aP7YsXL952\nrOft99ls5nZ3dwuPz6Eo234h+6don5cFPE1aCMs+M2+fFB3vPteD0GuJz3XbtxW1KRGQhQu9G6+q\nLIv+dvm+kACwqFKs+rvlhSm7fEXvyRNSIeV9RuiFpuj9q83weRVWnVK1n5e/D7m4VF0AfPehz8Ui\n5LuXXRdlx3/dwKtInQrCR8i52vQuuCoALDt/yrZp9j1FrXFVLXllutoeIevZpALOk3edXX5/20FF\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "0.00020628710246184401" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Generate linear model for response: ArrDelay and predictors: Age\n", "x = flights_subset.Age.values\n", "y = flights_subset.ArrDelay.values\n", "\n", "x = x.reshape(len(x), 1)\n", "y = y.reshape(len(y), 1)\n", "\n", "lm = LinearRegression()\n", "lm.fit(x, y)\n", "\n", "# Create scatter plot\n", "plt.scatter(x, y, color='black')\n", "plt.plot(x, lm.predict(x), color='blue', linewidth=3)\n", "plt.show()\n", "\n", "# View the Rsquared value for the regression equation\n", "lm.score(x, y)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create violin plot showing delay by month\n", "flights_subset = []\n", "\n", "for x in np.unique(flights[[\"Month\"]].values):\n", " flights_subset.append(flights[flights[\"Month\"] == x][\"ArrDelay\"].values)\n", "\n", "fig, axes = plt.subplots()\n", "axes.violinplot(flights_subset, positions=np.unique(flights[[\"Month\"]].values))\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "('Minimum delay:', -175.0, 'Maximum delay:', 1445.0)\n" ] } ], "source": [ "# Determine range of ArrDelay\n", "print(\"Minimum delay:\", flights[\"ArrDelay\"].min(),\"Maximum delay:\", flights[\"ArrDelay\"].max())" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
YearMonthTailNumArrDelayOriginStartAgeArrCategory
800001199512N605AU108.0TPA23940.012.0Late
800002199510N178AW1.0PHX23940.010.0On-Time
800003199511N966VJ-7.0PIT23940.011.0On-Time
80000419951N903DE-4.0PNS23940.01.0On-Time
80000519952N997Z7.0AUS23941.01.0On-Time
80000619957N57837-14.0MCO23940.07.0On-Time
80000719957N948L-15.0CID23940.07.0Early
800008199512N945DL18.0LGA23940.012.0On-Time
80000919953N30960.0PHX23940.03.0Late
\n", "
" ], "text/plain": [ " Year Month TailNum ArrDelay Origin Start Age ArrCategory\n", "800001 1995 12 N605AU 108.0 TPA 23940.0 12.0 Late\n", "800002 1995 10 N178AW 1.0 PHX 23940.0 10.0 On-Time\n", "800003 1995 11 N966VJ -7.0 PIT 23940.0 11.0 On-Time\n", "800004 1995 1 N903DE -4.0 PNS 23940.0 1.0 On-Time\n", "800005 1995 2 N997Z 7.0 AUS 23941.0 1.0 On-Time\n", "800006 1995 7 N57837 -14.0 MCO 23940.0 7.0 On-Time\n", "800007 1995 7 N948L -15.0 CID 23940.0 7.0 Early\n", "800008 1995 12 N945DL 18.0 LGA 23940.0 12.0 On-Time\n", "800009 1995 3 N309 60.0 PHX 23940.0 3.0 Late" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Bin ArrDelay\n", "bins = [-50,-15,30,120,500]\n", "bin_names = [\"Early\",\"On-Time\", \"Late\", \"Very Late\"]\n", "flights[\"ArrCategory\"] = pd.cut(flights[\"ArrDelay\"], bins, labels = bin_names)\n", "\n", "flights[1:10]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0.19874725, 0.61602479, 0.18522797])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "### Create Random Forest for response: ArrDelay and predictors: Month, Year and Age\n", "\n", "# Create training and testing subsets\n", "X = flights[['Month', 'Year', 'Age']]\n", "y = flights[\"ArrDelay\"]\n", "\n", "forest = RandomForestClassifier(max_depth = 3)\n", "forest.fit(X, y)\n", "\n", "# Importance of each feature: 'Month', 'Year', and 'Age'\n", "forest.feature_importances_" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 2 }