{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Pandas and numpy for data manipulation\n", "import pandas as pd\n", "import numpy as np\n", "\n", "from scipy.stats import gaussian_kde" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " var force = true;\n", "\n", " if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", " var JS_MIME_TYPE = 'application/javascript';\n", " var HTML_MIME_TYPE = 'text/html';\n", " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " var CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " var script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " var cell = handle.cell;\n", "\n", " var id = cell.output_area._bokeh_element_id;\n", " var server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id !== undefined) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd, {\n", " iopub: {\n", " output: function(msg) {\n", " var element_id = msg.content.text.trim();\n", " Bokeh.index[element_id].model.document.clear();\n", " delete Bokeh.index[element_id];\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " var output_area = handle.output_area;\n", " var output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[0].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " var bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " var script_attrs = bk_div.children[0].attributes;\n", " for (var i = 0; i < script_attrs.length; i++) {\n", " toinsert[0].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " var toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[0]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " var events = require('base/js/events');\n", " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", "\n", " \n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " var NB_LOAD_WARNING = {'data': {'text/html':\n", " \"\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"
\\n\"+\n", " \"\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"
\\n\"+\n",
" \"\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"
\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"
\\n\"+\n \"\n", " | Unnamed: 0 | \n", "year | \n", "month | \n", "day | \n", "dep_time | \n", "sched_dep_time | \n", "dep_delay | \n", "arr_time | \n", "sched_arr_time | \n", "arr_delay | \n", "... | \n", "flight | \n", "tailnum | \n", "origin | \n", "dest | \n", "air_time | \n", "distance | \n", "hour | \n", "minute | \n", "time_hour | \n", "name | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "1 | \n", "2013 | \n", "1 | \n", "1 | \n", "517.0 | \n", "515 | \n", "2.0 | \n", "830.0 | \n", "819 | \n", "11.0 | \n", "... | \n", "1545 | \n", "N14228 | \n", "EWR | \n", "IAH | \n", "227.0 | \n", "1400 | \n", "5 | \n", "15 | \n", "2013-01-01 05:00:00 | \n", "United Air Lines Inc. | \n", "
1 | \n", "2 | \n", "2013 | \n", "1 | \n", "1 | \n", "533.0 | \n", "529 | \n", "4.0 | \n", "850.0 | \n", "830 | \n", "20.0 | \n", "... | \n", "1714 | \n", "N24211 | \n", "LGA | \n", "IAH | \n", "227.0 | \n", "1416 | \n", "5 | \n", "29 | \n", "2013-01-01 05:00:00 | \n", "United Air Lines Inc. | \n", "
2 | \n", "3 | \n", "2013 | \n", "1 | \n", "1 | \n", "542.0 | \n", "540 | \n", "2.0 | \n", "923.0 | \n", "850 | \n", "33.0 | \n", "... | \n", "1141 | \n", "N619AA | \n", "JFK | \n", "MIA | \n", "160.0 | \n", "1089 | \n", "5 | \n", "40 | \n", "2013-01-01 05:00:00 | \n", "American Airlines Inc. | \n", "
3 | \n", "4 | \n", "2013 | \n", "1 | \n", "1 | \n", "544.0 | \n", "545 | \n", "-1.0 | \n", "1004.0 | \n", "1022 | \n", "-18.0 | \n", "... | \n", "725 | \n", "N804JB | \n", "JFK | \n", "BQN | \n", "183.0 | \n", "1576 | \n", "5 | \n", "45 | \n", "2013-01-01 05:00:00 | \n", "JetBlue Airways | \n", "
4 | \n", "5 | \n", "2013 | \n", "1 | \n", "1 | \n", "554.0 | \n", "600 | \n", "-6.0 | \n", "812.0 | \n", "837 | \n", "-25.0 | \n", "... | \n", "461 | \n", "N668DN | \n", "LGA | \n", "ATL | \n", "116.0 | \n", "762 | \n", "6 | \n", "0 | \n", "2013-01-01 06:00:00 | \n", "Delta Air Lines Inc. | \n", "
5 | \n", "6 | \n", "2013 | \n", "1 | \n", "1 | \n", "554.0 | \n", "558 | \n", "-4.0 | \n", "740.0 | \n", "728 | \n", "12.0 | \n", "... | \n", "1696 | \n", "N39463 | \n", "EWR | \n", "ORD | \n", "150.0 | \n", "719 | \n", "5 | \n", "58 | \n", "2013-01-01 05:00:00 | \n", "United Air Lines Inc. | \n", "
6 | \n", "7 | \n", "2013 | \n", "1 | \n", "1 | \n", "555.0 | \n", "600 | \n", "-5.0 | \n", "913.0 | \n", "854 | \n", "19.0 | \n", "... | \n", "507 | \n", "N516JB | \n", "EWR | \n", "FLL | \n", "158.0 | \n", "1065 | \n", "6 | \n", "0 | \n", "2013-01-01 06:00:00 | \n", "JetBlue Airways | \n", "
7 | \n", "8 | \n", "2013 | \n", "1 | \n", "1 | \n", "557.0 | \n", "600 | \n", "-3.0 | \n", "709.0 | \n", "723 | \n", "-14.0 | \n", "... | \n", "5708 | \n", "N829AS | \n", "LGA | \n", "IAD | \n", "53.0 | \n", "229 | \n", "6 | \n", "0 | \n", "2013-01-01 06:00:00 | \n", "ExpressJet Airlines Inc. | \n", "
8 | \n", "9 | \n", "2013 | \n", "1 | \n", "1 | \n", "557.0 | \n", "600 | \n", "-3.0 | \n", "838.0 | \n", "846 | \n", "-8.0 | \n", "... | \n", "79 | \n", "N593JB | \n", "JFK | \n", "MCO | \n", "140.0 | \n", "944 | \n", "6 | \n", "0 | \n", "2013-01-01 06:00:00 | \n", "JetBlue Airways | \n", "
9 | \n", "10 | \n", "2013 | \n", "1 | \n", "1 | \n", "558.0 | \n", "600 | \n", "-2.0 | \n", "753.0 | \n", "745 | \n", "8.0 | \n", "... | \n", "301 | \n", "N3ALAA | \n", "LGA | \n", "ORD | \n", "138.0 | \n", "733 | \n", "6 | \n", "0 | \n", "2013-01-01 06:00:00 | \n", "American Airlines Inc. | \n", "
10 rows × 21 columns
\n", "