From 337bef1c5dcbacfcdecc74540e7b17f8b1199272 Mon Sep 17 00:00:00 2001 From: Stephen Dodson Date: Thu, 15 Aug 2019 12:26:58 +0000 Subject: [PATCH] Demo day notebook + minor updates added --- eland/ndframe.py | 3 + eland/operations.py | 10 +- eland/operators/filter.py | 3 + eland/plotting.py | 2 +- eland/query_compiler.py | 2 + eland/series.py | 47 +- eland/tests/DEMO.md | 23 + eland/tests/dataframe/test_nunique_pytest.py | 13 +- eland/tests/dataframe/test_query_pytest.py | 8 +- eland/tests/demo_day_20190815.ipynb | 7159 ++++++++++++++++++ 10 files changed, 7250 insertions(+), 20 deletions(-) create mode 100644 eland/tests/DEMO.md create mode 100644 eland/tests/demo_day_20190815.ipynb diff --git a/eland/ndframe.py b/eland/ndframe.py index 24d5d20..ac1b8f3 100644 --- a/eland/ndframe.py +++ b/eland/ndframe.py @@ -227,6 +227,9 @@ class NDFrame(BasePandasDataset): raise NotImplementedError("Only sum of numeric fields is implemented") return self._query_compiler.max() + def nunique(self): + return self._query_compiler.nunique() + def _hist(self, num_bins): return self._query_compiler._hist(num_bins) diff --git a/eland/operations.py b/eland/operations.py index 22f01ce..1e74206 100644 --- a/eland/operations.py +++ b/eland/operations.py @@ -185,12 +185,12 @@ class Operations: raise NotImplementedError("Can not count field matches if size is set {}".format(size)) columns = self.get_columns() - - numeric_source_fields = query_compiler._mappings.numeric_source_fields(columns) + if columns is None: + columns = query_compiler._mappings.source_fields() body = Query(query_params['query']) - for field in numeric_source_fields: + for field in columns: body.metric_aggs(field, func, field) response = query_compiler._client.search( @@ -200,10 +200,10 @@ class Operations: results = {} - for field in numeric_source_fields: + for field in columns: results[field] = response['aggregations'][field]['value'] - s = pd.Series(data=results, index=numeric_source_fields) + s = pd.Series(data=results, index=columns) return s diff --git a/eland/operators/filter.py b/eland/operators/filter.py index 2a6c1fb..5703baf 100644 --- a/eland/operators/filter.py +++ b/eland/operators/filter.py @@ -33,6 +33,9 @@ class BooleanFilter(object): return True return False + def __repr__(self): + return str(self._filter) + @property def subtree(self): if 'bool' in self._filter: diff --git a/eland/plotting.py b/eland/plotting.py index a12c898..9a1b3f5 100644 --- a/eland/plotting.py +++ b/eland/plotting.py @@ -63,7 +63,7 @@ def ed_hist_frame(ed_df, column=None, by=None, grid=True, xlabelsize=None, # pandas / plotting / _core.py: 2410 # ax.hist(data[col].dropna().values, bins=bins, **kwds) - ax.hist(ed_df_bins[col][:-1], bins=ed_df_bins[col], weights=ed_df_weights[col]) + ax.hist(ed_df_bins[col][:-1], bins=ed_df_bins[col], weights=ed_df_weights[col], **kwds) ax.set_title(col) ax.grid(grid) diff --git a/eland/query_compiler.py b/eland/query_compiler.py index 7dacd9c..4a23465 100644 --- a/eland/query_compiler.py +++ b/eland/query_compiler.py @@ -471,4 +471,6 @@ class ElandQueryCompiler(BaseQueryCompiler): return result + #def isna(self): + diff --git a/eland/series.py b/eland/series.py index 8100070..a14ce08 100644 --- a/eland/series.py +++ b/eland/series.py @@ -20,7 +20,7 @@ import warnings import pandas as pd from eland import NDFrame -from eland.operators import Equal, Greater, ScriptFilter +from eland.operators import NotFilter, Equal, Greater, Less, GreaterEqual, LessEqual, ScriptFilter class Series(NDFrame): @@ -164,6 +164,37 @@ class Series(NDFrame): else: raise NotImplementedError(other, type(other)) + def __lt__(self, other): + if isinstance(other, Series): + # Need to use scripted query to compare to values + painless = "doc['{}'].value < doc['{}'].value".format(self.name, other.name) + return ScriptFilter(painless) + elif isinstance(other, (int, float)): + return Less(field=self.name, value=other) + else: + raise NotImplementedError(other, type(other)) + + def __ge__(self, other): + if isinstance(other, Series): + # Need to use scripted query to compare to values + painless = "doc['{}'].value >= doc['{}'].value".format(self.name, other.name) + return ScriptFilter(painless) + elif isinstance(other, (int, float)): + return GreaterEqual(field=self.name, value=other) + else: + raise NotImplementedError(other, type(other)) + + def __le__(self, other): + if isinstance(other, Series): + # Need to use scripted query to compare to values + painless = "doc['{}'].value <= doc['{}'].value".format(self.name, other.name) + return ScriptFilter(painless) + elif isinstance(other, (int, float)): + return LessEqual(field=self.name, value=other) + else: + raise NotImplementedError(other, type(other)) + + def __eq__(self, other): if isinstance(other, Series): # Need to use scripted query to compare to values @@ -171,5 +202,19 @@ class Series(NDFrame): return ScriptFilter(painless) elif isinstance(other, (int, float)): return Equal(field=self.name, value=other) + elif isinstance(other, str): + return Equal(field=self.name, value=other) + else: + raise NotImplementedError(other, type(other)) + + def __ne__(self, other): + if isinstance(other, Series): + # Need to use scripted query to compare to values + painless = "doc['{}'].value != doc['{}'].value".format(self.name, other.name) + return ScriptFilter(painless) + elif isinstance(other, (int, float)): + return NotFilter(Equal(field=self.name, value=other)) + elif isinstance(other, str): + return NotFilter(Equal(field=self.name, value=other)) else: raise NotImplementedError(other, type(other)) diff --git a/eland/tests/DEMO.md b/eland/tests/DEMO.md new file mode 100644 index 0000000..5fd970f --- /dev/null +++ b/eland/tests/DEMO.md @@ -0,0 +1,23 @@ +https://docs.google.com/presentation/d/1A3S5aIJC8SuEbi80PhEzyxTUNMjWJ7-_Om92yU9p3yo/edit#slide=id.g5f8a4bcb09_0_3 +https://www.kaggle.com/pmarcelino/comprehensive-data-exploration-with-python +https://nbviewer.jupyter.org/github/parente/nbestimate/blob/master/estimate.ipynb +https://stackoverflow.blog/2017/09/14/python-growing-quickly/ +https://github.com/elastic/eland +http://localhost:8889/notebooks/eland/tests/demo_day_20190815.ipynb +http://localhost:5601/app/kibana#/dev_tools/console?_g=() + + +devtool console: +``` +GET _cat/indices + +# Clean demo +DELETE ed_jetbeats_routes + +# Demo day schema +GET flights +GET flights/_search + +GET ed_jetbeats_routes +GET ed_jetbeats_routes/_search +``` diff --git a/eland/tests/dataframe/test_nunique_pytest.py b/eland/tests/dataframe/test_nunique_pytest.py index 2e71d1e..31eb69a 100644 --- a/eland/tests/dataframe/test_nunique_pytest.py +++ b/eland/tests/dataframe/test_nunique_pytest.py @@ -13,13 +13,10 @@ import numpy as np class TestDataFrameNUnique(TestData): def test_nunique1(self): - ed_ecommerce = self.ed_ecommerce() - pd_ecommerce = self.pd_ecommerce() + ed_flights = self.ed_flights() + pd_flights = self.pd_flights() - print(pd_ecommerce.dtypes) - print(ed_ecommerce.dtypes) - #ed_nunique = ed_ecommerce.nunique() - pd_selection = pd_ecommerce.drop(columns=['category']) - pd_nunique = pd_selection.nunique(axis=1) + print(pd_flights.dtypes) + print(ed_flights.dtypes) + print(ed_flights.nunique()) - print(pd_nunique, type(pd_nunique)) diff --git a/eland/tests/dataframe/test_query_pytest.py b/eland/tests/dataframe/test_query_pytest.py index 1467078..8e51411 100644 --- a/eland/tests/dataframe/test_query_pytest.py +++ b/eland/tests/dataframe/test_query_pytest.py @@ -39,10 +39,8 @@ class TestDataFrameQuery(TestData): assert_pandas_eland_frame_equal(pd_q2, ed_q2) assert_pandas_eland_frame_equal(pd_q3, ed_q3) - def test_query2(self): - ed_flights = self.ed_flights() - pd_flights = self.pd_flights() + pd_q4 = pd_df[(pd_df.A > 2) & (pd_df.B > 3)] + ed_q4 = ed_df[(ed_df.A > 2) & (ed_df.B > 3)] - cancelled = pd_flights[pd_flights.Cancelled == True] + assert_pandas_eland_frame_equal(pd_q4, ed_q4) - print(cancelled.groupby(['DestWeather']).count()) diff --git a/eland/tests/demo_day_20190815.ipynb b/eland/tests/demo_day_20190815.ipynb new file mode 100644 index 0000000..022342f --- /dev/null +++ b/eland/tests/demo_day_20190815.ipynb @@ -0,0 +1,7159 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Pandas and Elasticsearch - Demo Day 15th August 2019" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create simple pandas DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Read JSON file to pandas DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "pd_flights = pd.read_json('./flights_df.json.gz').sort_index()\n", + "\n", + "# Change data types of a couple of fields\n", + "pd_flights['timestamp'] = pd.to_datetime(pd_flights['timestamp'])\n", + "pd_flights.index = pd_flights.index.map(str)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Explore pandas DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Index: 13059 entries, 0 to 13058\n", + "Data columns (total 27 columns):\n", + "AvgTicketPrice 13059 non-null float64\n", + "Cancelled 13059 non-null bool\n", + "Carrier 13059 non-null object\n", + "Dest 13059 non-null object\n", + "DestAirportID 13059 non-null object\n", + "DestCityName 13059 non-null object\n", + "DestCountry 13059 non-null object\n", + "DestLocation 13059 non-null object\n", + "DestRegion 13059 non-null object\n", + "DestWeather 13059 non-null object\n", + "DistanceKilometers 13059 non-null float64\n", + "DistanceMiles 13059 non-null float64\n", + "FlightDelay 13059 non-null bool\n", + "FlightDelayMin 13059 non-null int64\n", + "FlightDelayType 13059 non-null object\n", + "FlightNum 13059 non-null object\n", + "FlightTimeHour 13059 non-null float64\n", + "FlightTimeMin 13059 non-null float64\n", + "Origin 13059 non-null object\n", + "OriginAirportID 13059 non-null object\n", + "OriginCityName 13059 non-null object\n", + "OriginCountry 13059 non-null object\n", + "OriginLocation 13059 non-null object\n", + "OriginRegion 13059 non-null object\n", + "OriginWeather 13059 non-null object\n", + "dayOfWeek 13059 non-null int64\n", + "timestamp 13059 non-null datetime64[ns]\n", + "dtypes: bool(2), datetime64[ns](1), float64(5), int64(2), object(17)\n", + "memory usage: 2.6+ MB\n" + ] + } + ], + "source": [ + "# Show consise summary of DataFrame + memory usage\n", + "pd_flights.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "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", + "
AvgTicketPriceDistanceKilometersDistanceMilesFlightDelayMinFlightTimeHourFlightTimeMindayOfWeek
count13059.00000013059.00000013059.00000013059.00000013059.00000013059.00000013059.000000
mean628.2536897092.1424554406.85301347.3351718.518797511.1278422.835975
std266.3968614578.4384972844.90978796.7467115.579233334.7539521.939439
min100.0205280.0000000.0000000.0000000.0000000.0000000.000000
25%409.8938162459.7056731528.3902470.0000004.205553252.3331921.000000
50%640.5566687610.3308664728.8403630.0000008.384086503.0451703.000000
75%842.1854709736.6376006050.06611415.00000012.006934720.4160364.000000
max1199.72905319881.48231512353.780369360.00000031.7150341902.9020326.000000
\n", + "
" + ], + "text/plain": [ + " AvgTicketPrice DistanceKilometers DistanceMiles FlightDelayMin \\\n", + "count 13059.000000 13059.000000 13059.000000 13059.000000 \n", + "mean 628.253689 7092.142455 4406.853013 47.335171 \n", + "std 266.396861 4578.438497 2844.909787 96.746711 \n", + "min 100.020528 0.000000 0.000000 0.000000 \n", + "25% 409.893816 2459.705673 1528.390247 0.000000 \n", + "50% 640.556668 7610.330866 4728.840363 0.000000 \n", + "75% 842.185470 9736.637600 6050.066114 15.000000 \n", + "max 1199.729053 19881.482315 12353.780369 360.000000 \n", + "\n", + " FlightTimeHour FlightTimeMin dayOfWeek \n", + "count 13059.000000 13059.000000 13059.000000 \n", + "mean 8.518797 511.127842 2.835975 \n", + "std 5.579233 334.753952 1.939439 \n", + "min 0.000000 0.000000 0.000000 \n", + "25% 4.205553 252.333192 1.000000 \n", + "50% 8.384086 503.045170 3.000000 \n", + "75% 12.006934 720.416036 4.000000 \n", + "max 31.715034 1902.902032 6.000000 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Generate descriptive statistics of numeric columns\n", + "pd_flights.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "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", + " \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", + "
AvgTicketPriceCancelledCarrierDestDestAirportIDDestCityNameDestCountryDestLocationDestRegionDestWeather...FlightTimeMinOriginOriginAirportIDOriginCityNameOriginCountryOriginLocationOriginRegionOriginWeatherdayOfWeektimestamp
0841.265642FalseKibana AirlinesSydney Kingsford Smith International AirportSYDSydneyAU{'lat': '-33.94609833', 'lon': '151.177002'}SE-BDRain...1030.770416Frankfurt am Main AirportFRAFrankfurt am MainDE{'lat': '50.033333', 'lon': '8.570556'}DE-HESunny02018-01-01 00:00:00
1882.982662FalseLogstash AirwaysVenice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Sunny...464.389481Cape Town International AirportCPTCape TownZA{'lat': '-33.96480179', 'lon': '18.60169983'}SE-BDClear02018-01-01 18:27:00
2190.636904FalseLogstash AirwaysVenice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Cloudy...0.000000Venice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Rain02018-01-01 17:11:14
3181.694216TrueKibana AirlinesTreviso-Sant'Angelo AirportTV01TrevisoIT{'lat': '45.648399', 'lon': '12.1944'}IT-34Clear...222.749059Naples International AirportNA01NaplesIT{'lat': '40.886002', 'lon': '14.2908'}IT-72Thunder & Lightning02018-01-01 10:33:28
4730.041778FalseKibana AirlinesXi'an Xianyang International AirportXIYXi'anCN{'lat': '34.447102', 'lon': '108.751999'}SE-BDClear...785.779071Licenciado Benito Juarez International AirportAICMMexico CityMX{'lat': '19.4363', 'lon': '-99.072098'}MX-DIFDamaging Wind02018-01-01 05:13:00
\n", + "

5 rows × 27 columns

\n", + "
" + ], + "text/plain": [ + " AvgTicketPrice Cancelled Carrier \\\n", + "0 841.265642 False Kibana Airlines \n", + "1 882.982662 False Logstash Airways \n", + "2 190.636904 False Logstash Airways \n", + "3 181.694216 True Kibana Airlines \n", + "4 730.041778 False Kibana Airlines \n", + "\n", + " Dest DestAirportID DestCityName \\\n", + "0 Sydney Kingsford Smith International Airport SYD Sydney \n", + "1 Venice Marco Polo Airport VE05 Venice \n", + "2 Venice Marco Polo Airport VE05 Venice \n", + "3 Treviso-Sant'Angelo Airport TV01 Treviso \n", + "4 Xi'an Xianyang International Airport XIY Xi'an \n", + "\n", + " DestCountry DestLocation DestRegion \\\n", + "0 AU {'lat': '-33.94609833', 'lon': '151.177002'} SE-BD \n", + "1 IT {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "2 IT {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "3 IT {'lat': '45.648399', 'lon': '12.1944'} IT-34 \n", + "4 CN {'lat': '34.447102', 'lon': '108.751999'} SE-BD \n", + "\n", + " DestWeather ... FlightTimeMin \\\n", + "0 Rain ... 1030.770416 \n", + "1 Sunny ... 464.389481 \n", + "2 Cloudy ... 0.000000 \n", + "3 Clear ... 222.749059 \n", + "4 Clear ... 785.779071 \n", + "\n", + " Origin OriginAirportID \\\n", + "0 Frankfurt am Main Airport FRA \n", + "1 Cape Town International Airport CPT \n", + "2 Venice Marco Polo Airport VE05 \n", + "3 Naples International Airport NA01 \n", + "4 Licenciado Benito Juarez International Airport AICM \n", + "\n", + " OriginCityName OriginCountry \\\n", + "0 Frankfurt am Main DE \n", + "1 Cape Town ZA \n", + "2 Venice IT \n", + "3 Naples IT \n", + "4 Mexico City MX \n", + "\n", + " OriginLocation OriginRegion \\\n", + "0 {'lat': '50.033333', 'lon': '8.570556'} DE-HE \n", + "1 {'lat': '-33.96480179', 'lon': '18.60169983'} SE-BD \n", + "2 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "3 {'lat': '40.886002', 'lon': '14.2908'} IT-72 \n", + "4 {'lat': '19.4363', 'lon': '-99.072098'} MX-DIF \n", + "\n", + " OriginWeather dayOfWeek timestamp \n", + "0 Sunny 0 2018-01-01 00:00:00 \n", + "1 Clear 0 2018-01-01 18:27:00 \n", + "2 Rain 0 2018-01-01 17:11:14 \n", + "3 Thunder & Lightning 0 2018-01-01 10:33:28 \n", + "4 Damaging Wind 0 2018-01-01 05:13:00 \n", + "\n", + "[5 rows x 27 columns]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd_flights.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "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", + " \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", + "
AvgTicketPriceCancelledCarrierDestDestAirportIDDestCityNameDestCountryDestLocationDestRegionDestWeather...FlightTimeMinOriginOriginAirportIDOriginCityNameOriginCountryOriginLocationOriginRegionOriginWeatherdayOfWeektimestamp
130541080.446279FalseLogstash AirwaysXi'an Xianyang International AirportXIYXi'anCN{'lat': '34.447102', 'lon': '108.751999'}SE-BDRain...402.929088Pisa International AirportPI05PisaIT{'lat': '43.683899', 'lon': '10.3927'}IT-52Sunny62018-02-11 20:42:25
13055646.612941FalseLogstash AirwaysZurich AirportZRHZurichCH{'lat': '47.464699', 'lon': '8.54917'}CH-ZHRain...644.418029Winnipeg / James Armstrong Richardson Internat...YWGWinnipegCA{'lat': '49.90999985', 'lon': '-97.23989868'}CA-MBRain62018-02-11 01:41:57
13056997.751876FalseLogstash AirwaysUkrainka Air BaseXHBUBelogorskRU{'lat': '51.169997', 'lon': '128.445007'}RU-AMURain...937.540811Licenciado Benito Juarez International AirportAICMMexico CityMX{'lat': '19.4363', 'lon': '-99.072098'}MX-DIFSunny62018-02-11 04:09:27
130571102.814465FalseJetBeatsMinistro Pistarini International AirportEZEBuenos AiresAR{'lat': '-34.8222', 'lon': '-58.5358'}SE-BDHail...1697.404971Itami AirportITMOsakaJP{'lat': '34.78549957', 'lon': '135.4380035'}SE-BDHail62018-02-11 08:28:21
13058858.144337FalseJetBeatsWashington Dulles International AirportIADWashingtonUS{'lat': '38.94449997', 'lon': '-77.45580292'}US-DCHeavy Fog...1610.761827Adelaide International AirportADLAdelaideAU{'lat': '-34.945', 'lon': '138.531006'}SE-BDRain62018-02-11 14:54:34
\n", + "

5 rows × 27 columns

\n", + "
" + ], + "text/plain": [ + " AvgTicketPrice Cancelled Carrier \\\n", + "13054 1080.446279 False Logstash Airways \n", + "13055 646.612941 False Logstash Airways \n", + "13056 997.751876 False Logstash Airways \n", + "13057 1102.814465 False JetBeats \n", + "13058 858.144337 False JetBeats \n", + "\n", + " Dest DestAirportID DestCityName \\\n", + "13054 Xi'an Xianyang International Airport XIY Xi'an \n", + "13055 Zurich Airport ZRH Zurich \n", + "13056 Ukrainka Air Base XHBU Belogorsk \n", + "13057 Ministro Pistarini International Airport EZE Buenos Aires \n", + "13058 Washington Dulles International Airport IAD Washington \n", + "\n", + " DestCountry DestLocation DestRegion \\\n", + "13054 CN {'lat': '34.447102', 'lon': '108.751999'} SE-BD \n", + "13055 CH {'lat': '47.464699', 'lon': '8.54917'} CH-ZH \n", + "13056 RU {'lat': '51.169997', 'lon': '128.445007'} RU-AMU \n", + "13057 AR {'lat': '-34.8222', 'lon': '-58.5358'} SE-BD \n", + "13058 US {'lat': '38.94449997', 'lon': '-77.45580292'} US-DC \n", + "\n", + " DestWeather ... FlightTimeMin \\\n", + "13054 Rain ... 402.929088 \n", + "13055 Rain ... 644.418029 \n", + "13056 Rain ... 937.540811 \n", + "13057 Hail ... 1697.404971 \n", + "13058 Heavy Fog ... 1610.761827 \n", + "\n", + " Origin OriginAirportID \\\n", + "13054 Pisa International Airport PI05 \n", + "13055 Winnipeg / James Armstrong Richardson Internat... YWG \n", + "13056 Licenciado Benito Juarez International Airport AICM \n", + "13057 Itami Airport ITM \n", + "13058 Adelaide International Airport ADL \n", + "\n", + " OriginCityName OriginCountry \\\n", + "13054 Pisa IT \n", + "13055 Winnipeg CA \n", + "13056 Mexico City MX \n", + "13057 Osaka JP \n", + "13058 Adelaide AU \n", + "\n", + " OriginLocation OriginRegion \\\n", + "13054 {'lat': '43.683899', 'lon': '10.3927'} IT-52 \n", + "13055 {'lat': '49.90999985', 'lon': '-97.23989868'} CA-MB \n", + "13056 {'lat': '19.4363', 'lon': '-99.072098'} MX-DIF \n", + "13057 {'lat': '34.78549957', 'lon': '135.4380035'} SE-BD \n", + "13058 {'lat': '-34.945', 'lon': '138.531006'} SE-BD \n", + "\n", + " OriginWeather dayOfWeek timestamp \n", + "13054 Sunny 6 2018-02-11 20:42:25 \n", + "13055 Rain 6 2018-02-11 01:41:57 \n", + "13056 Sunny 6 2018-02-11 04:09:27 \n", + "13057 Hail 6 2018-02-11 08:28:21 \n", + "13058 Rain 6 2018-02-11 14:54:34 \n", + "\n", + "[5 rows x 27 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd_flights.tail()" + ] + }, + { + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
AvgTicketPriceCancelledCarrierDestDestAirportIDDestCityNameDestCountryDestLocationDestRegionDestWeather...FlightTimeMinOriginOriginAirportIDOriginCityNameOriginCountryOriginLocationOriginRegionOriginWeatherdayOfWeektimestamp
0841.265642FalseKibana AirlinesSydney Kingsford Smith International AirportSYDSydneyAU{'lat': '-33.94609833', 'lon': '151.177002'}SE-BDRain...1030.770416Frankfurt am Main AirportFRAFrankfurt am MainDE{'lat': '50.033333', 'lon': '8.570556'}DE-HESunny02018-01-01 00:00:00
1882.982662FalseLogstash AirwaysVenice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Sunny...464.389481Cape Town International AirportCPTCape TownZA{'lat': '-33.96480179', 'lon': '18.60169983'}SE-BDClear02018-01-01 18:27:00
2190.636904FalseLogstash AirwaysVenice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Cloudy...0.000000Venice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Rain02018-01-01 17:11:14
3181.694216TrueKibana AirlinesTreviso-Sant'Angelo AirportTV01TrevisoIT{'lat': '45.648399', 'lon': '12.1944'}IT-34Clear...222.749059Naples International AirportNA01NaplesIT{'lat': '40.886002', 'lon': '14.2908'}IT-72Thunder & Lightning02018-01-01 10:33:28
4730.041778FalseKibana AirlinesXi'an Xianyang International AirportXIYXi'anCN{'lat': '34.447102', 'lon': '108.751999'}SE-BDClear...785.779071Licenciado Benito Juarez International AirportAICMMexico CityMX{'lat': '19.4363', 'lon': '-99.072098'}MX-DIFDamaging Wind02018-01-01 05:13:00
5418.152089FalseJetBeatsGenoa Cristoforo Colombo AirportGE01GenovaIT{'lat': '44.4133', 'lon': '8.8375'}IT-42Thunder & Lightning...393.590441Edmonton International AirportCYEGEdmontonCA{'lat': '53.30970001', 'lon': '-113.5800018'}CA-ABRain02018-01-01 01:43:03
6180.246816FalseJetBeatsZurich AirportZRHZurichCH{'lat': '47.464699', 'lon': '8.54917'}CH-ZHHail...300.000000Zurich AirportZRHZurichCH{'lat': '47.464699', 'lon': '8.54917'}CH-ZHClear02018-01-01 13:49:53
7585.184310FalseKibana AirlinesOttawa Macdonald-Cartier International AirportYOWOttawaCA{'lat': '45.32249832', 'lon': '-75.66919708'}CA-ONClear...614.942480Ciampino___G. B. Pastine International AirportRM12RomeIT{'lat': '41.7994', 'lon': '12.5949'}IT-62Thunder & Lightning02018-01-01 04:54:59
8960.869736TrueKibana AirlinesRajiv Gandhi International AirportHYDHyderabadIN{'lat': '17.23131752', 'lon': '78.42985535'}SE-BDCloudy...602.030591Milano Linate AirportMI11MilanIT{'lat': '45.445099', 'lon': '9.27674'}IT-25Heavy Fog02018-01-01 12:09:35
9296.877773FalseLogstash AirwaysTreviso-Sant'Angelo AirportTV01TrevisoIT{'lat': '45.648399', 'lon': '12.1944'}IT-34Rain...174.822216Sheremetyevo International AirportSVOMoscowRU{'lat': '55.972599', 'lon': '37.4146'}RU-MOSCloudy02018-01-01 12:09:35
10906.437948FalseJetBeatsHelsinki Vantaa AirportHELHelsinkiFI{'lat': '60.31719971', 'lon': '24.9633007'}FI-ESRain...503.045170Albuquerque International Sunport AirportABQAlbuquerqueUS{'lat': '35.040199', 'lon': '-106.609001'}US-NMRain02018-01-01 22:06:14
11704.463771FalseLogstash AirwaysVienna International AirportVIEViennaAT{'lat': '48.11029816', 'lon': '16.56970024'}AT-9Cloudy...36.075018Venice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Rain02018-01-01 11:52:34
12922.499077TrueLogstash AirwaysShanghai Pudong International AirportPVGShanghaiCN{'lat': '31.14340019', 'lon': '121.8050003'}SE-BDClear...679.768391Licenciado Benito Juarez International AirportAICMMexico CityMX{'lat': '19.4363', 'lon': '-99.072098'}MX-DIFHeavy Fog02018-01-01 02:13:46
13374.959276FalseLogstash AirwaysOttawa Macdonald-Cartier International AirportYOWOttawaCA{'lat': '45.32249832', 'lon': '-75.66919708'}CA-ONRain...330.418282Naples International AirportNA01NaplesIT{'lat': '40.886002', 'lon': '14.2908'}IT-72Rain02018-01-01 14:21:13
14552.917371FalseLogstash AirwaysLuis Munoz Marin International AirportSJUSan JuanPR{'lat': '18.43939972', 'lon': '-66.00180054'}PR-U-AClear...407.145031Ciampino___G. B. Pastine International AirportRM12RomeIT{'lat': '41.7994', 'lon': '12.5949'}IT-62Cloudy02018-01-01 17:42:53
15566.487557TrueKibana AirlinesCologne Bonn AirportCGNCologneDE{'lat': '50.86589813', 'lon': '7.142739773'}DE-NWSunny...656.712658Chengdu Shuangliu International AirportCTUChengduCN{'lat': '30.57850075', 'lon': '103.9469986'}SE-BDThunder & Lightning02018-01-01 19:55:32
16989.952787TrueLogstash AirwaysVenice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Damaging Wind...773.030334Licenciado Benito Juarez International AirportAICMMexico CityMX{'lat': '19.4363', 'lon': '-99.072098'}MX-DIFThunder & Lightning02018-01-01 07:49:27
17569.613255FalseES-AirMinistro Pistarini International AirportEZEBuenos AiresAR{'lat': '-34.8222', 'lon': '-58.5358'}SE-BDCloudy...704.716920Cleveland Hopkins International AirportCLEClevelandUS{'lat': '41.4117012', 'lon': '-81.84980011'}US-OHRain02018-01-01 01:30:47
18277.429707FalseES-AirShanghai Pudong International AirportPVGShanghaiCN{'lat': '31.14340019', 'lon': '121.8050003'}SE-BDClear...355.957996Olenya Air BaseXLMOOlenegorskRU{'lat': '68.15180206', 'lon': '33.46390152'}RU-MURHail02018-01-01 07:58:17
19772.100846FalseJetBeatsIndira Gandhi International AirportDELNew DelhiIN{'lat': '28.5665', 'lon': '77.103104'}SE-BDClear...875.114675Casper-Natrona County International AirportCPRCasperUS{'lat': '42.90800095', 'lon': '-106.4639969'}US-WYCloudy02018-01-01 00:02:06
20167.599922FalseJetBeatsWichita Mid Continent AirportICTWichitaUS{'lat': '37.64989853', 'lon': '-97.43309784'}US-KSClear...373.966883Erie International Tom Ridge FieldERIErieUS{'lat': '42.08312701', 'lon': '-80.17386675'}US-PACloudy02018-01-01 01:08:20
21253.210065FalseES-AirOttawa Macdonald-Cartier International AirportYOWOttawaCA{'lat': '45.32249832', 'lon': '-75.66919708'}CA-ONHail...130.667700Newark Liberty International AirportEWRNewarkUS{'lat': '40.69250107', 'lon': '-74.16870117'}US-NJClear02018-01-01 01:08:20
22917.247620FalseJetBeatsItami AirportITMOsakaJP{'lat': '34.78549957', 'lon': '135.4380035'}SE-BDDamaging Wind...574.495310Copenhagen Kastrup AirportCPHCopenhagenDK{'lat': '55.61790085', 'lon': '12.65600014'}DK-84Sunny02018-01-01 07:48:35
23451.591176FalseLogstash AirwaysVienna International AirportVIEViennaAT{'lat': '48.11029816', 'lon': '16.56970024'}AT-9Heavy Fog...579.728943Seattle Tacoma International AirportSEASeattleUS{'lat': '47.44900131', 'lon': '-122.3089981'}US-WAHeavy Fog02018-01-01 18:57:21
24307.067201FalseLogstash AirwaysCharles de Gaulle International AirportCDGParisFR{'lat': '49.01279831', 'lon': '2.549999952'}FR-JClear...50.157229Berlin-Tegel AirportTXLBerlinDE{'lat': '52.5597', 'lon': '13.2877'}DE-BERain02018-01-01 13:18:25
25268.241596FalseES-AirNarita International AirportNRTTokyoJP{'lat': '35.76470184', 'lon': '140.3860016'}SE-BDRain...527.567422Manchester AirportMANManchesterGB{'lat': '53.35369873', 'lon': '-2.274950027'}GB-ENGThunder & Lightning02018-01-01 08:20:35
26975.812632TrueKibana AirlinesItami AirportITMOsakaJP{'lat': '34.78549957', 'lon': '135.4380035'}SE-BDHail...386.259764Helsinki Vantaa AirportHELHelsinkiFI{'lat': '60.31719971', 'lon': '24.9633007'}FI-ESRain02018-01-01 15:38:32
27134.214546FalseJetBeatsSan Diego International AirportSANSan DiegoUS{'lat': '32.73360062', 'lon': '-117.1900024'}US-CAClear...24.479650Phoenix Sky Harbor International AirportPHXPhoenixUS{'lat': '33.43429947', 'lon': '-112.012001'}US-AZClear02018-01-01 03:08:45
28988.897564FalseKibana AirlinesVerona Villafranca AirportVR10VeronaIT{'lat': '45.395699', 'lon': '10.8885'}IT-34Sunny...568.351033New Chitose AirportCTSChitose / TomakomaiJP{'lat': '42.77519989', 'lon': '141.6920013'}SE-BDDamaging Wind02018-01-01 01:16:59
29511.067220FalseLogstash AirwaysZurich AirportZRHZurichCH{'lat': '47.464699', 'lon': '8.54917'}CH-ZHRain...425.889194Tulsa International AirportTULTulsaUS{'lat': '36.19839859', 'lon': '-95.88809967'}US-OKRain02018-01-01 18:00:59
..................................................................
13029795.905278FalseKibana AirlinesMalpensa International AirportMI12MilanIT{'lat': '45.6306', 'lon': '8.72811'}IT-25Sunny...534.375826Itami AirportITMOsakaJP{'lat': '34.78549957', 'lon': '135.4380035'}SE-BDSunny62018-02-11 20:10:13
13030863.388068FalseLogstash AirwaysXi'an Xianyang International AirportXIYXi'anCN{'lat': '34.447102', 'lon': '108.751999'}SE-BDDamaging Wind...141.172633Tokyo Haneda International AirportHNDTokyoJP{'lat': '35.552299', 'lon': '139.779999'}SE-BDClear62018-02-11 18:59:53
13031575.183008FalseJetBeatsSavannah Hilton Head International AirportSAVSavannahUS{'lat': '32.12760162', 'lon': '-81.20210266'}US-GAThunder & Lightning...1113.137060OR Tambo International AirportJNBJohannesburgZA{'lat': '-26.1392', 'lon': '28.246'}SE-BDHail62018-02-11 00:57:48
13032817.368952FalseJetBeatsSyracuse Hancock International AirportSYRSyracuseUS{'lat': '43.11119843', 'lon': '-76.10630035'}US-NYRain...714.964864El Dorado International AirportBOGBogotaCO{'lat': '4.70159', 'lon': '-74.1469'}CO-CUNThunder & Lightning62018-02-11 12:02:49
13033579.582455FalseES-AirTampa International AirportTPATampaUS{'lat': '27.97550011', 'lon': '-82.53320313'}US-FLRain...234.929046Jorge Chavez International AirportLIMLimaPE{'lat': '-12.0219', 'lon': '-77.114304'}SE-BDThunder & Lightning62018-02-11 02:07:40
130341004.916638FalseJetBeatsOlenya Air BaseXLMOOlenegorskRU{'lat': '68.15180206', 'lon': '33.46390152'}RU-MURClear...526.895776Gimpo International AirportGMPSeoulKR{'lat': '37.5583', 'lon': '126.791'}SE-BDSunny62018-02-11 00:35:04
13035357.562842TrueLogstash AirwaysShanghai Pudong International AirportPVGShanghaiCN{'lat': '31.14340019', 'lon': '121.8050003'}SE-BDThunder & Lightning...0.000000Shanghai Pudong International AirportPVGShanghaiCN{'lat': '31.14340019', 'lon': '121.8050003'}SE-BDThunder & Lightning62018-02-11 11:19:12
13036429.580539FalseLogstash AirwaysVenice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Sunny...150.000000Venice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Cloudy62018-02-11 15:07:11
13037729.788171TrueES-AirVienna International AirportVIEViennaAT{'lat': '48.11029816', 'lon': '16.56970024'}AT-9Rain...691.944839Ukrainka Air BaseXHBUBelogorskRU{'lat': '51.169997', 'lon': '128.445007'}RU-AMUDamaging Wind62018-02-11 10:24:42
13038564.897695FalseES-AirPisa International AirportPI05PisaIT{'lat': '43.683899', 'lon': '10.3927'}IT-52Heavy Fog...567.387339OR Tambo International AirportJNBJohannesburgZA{'lat': '-26.1392', 'lon': '28.246'}SE-BDDamaging Wind62018-02-11 00:42:06
130391014.052787FalseLogstash AirwaysVienna International AirportVIEViennaAT{'lat': '48.11029816', 'lon': '16.56970024'}AT-9Thunder & Lightning...690.092327Montreal / Pierre Elliott Trudeau Internationa...YULMontrealCA{'lat': '45.47060013', 'lon': '-73.74079895'}CA-QCThunder & Lightning62018-02-11 10:56:31
13040455.243843FalseES-AirLondon Luton AirportLTNLondonGB{'lat': '51.87469864', 'lon': '-0.368333012'}GB-ENGCloudy...3.028293London Heathrow AirportLHRLondonGB{'lat': '51.4706', 'lon': '-0.461941'}GB-ENGClear62018-02-11 00:39:37
13041611.370232FalseLogstash AirwaysJorge Chavez International AirportLIMLimaPE{'lat': '-12.0219', 'lon': '-77.114304'}SE-BDSunny...338.875531Casper-Natrona County International AirportCPRCasperUS{'lat': '42.90800095', 'lon': '-106.4639969'}US-WYRain62018-02-11 10:24:30
13042595.961285FalseJetBeatsOttawa Macdonald-Cartier International AirportYOWOttawaCA{'lat': '45.32249832', 'lon': '-75.66919708'}CA-ONClear...375.129587Frankfurt am Main AirportFRAFrankfurt am MainDE{'lat': '50.033333', 'lon': '8.570556'}DE-HEClear62018-02-11 09:02:07
13043782.747648FalseLogstash AirwaysXi'an Xianyang International AirportXIYXi'anCN{'lat': '34.447102', 'lon': '108.751999'}SE-BDClear...156.858481Tokyo Haneda International AirportHNDTokyoJP{'lat': '35.552299', 'lon': '139.779999'}SE-BDThunder & Lightning62018-02-11 04:45:06
13044891.117221FalseJetBeatsWinnipeg / James Armstrong Richardson Internat...YWGWinnipegCA{'lat': '49.90999985', 'lon': '-97.23989868'}CA-MBClear...354.106457Vienna International AirportVIEViennaAT{'lat': '48.11029816', 'lon': '16.56970024'}AT-9Thunder & Lightning62018-02-11 00:51:14
13045587.169921FalseLogstash AirwaysBrisbane International AirportBNEBrisbaneAU{'lat': '-27.38419914', 'lon': '153.1170044'}SE-BDRain...771.305442Amsterdam Airport SchipholAMSAmsterdamNL{'lat': '52.30860138', 'lon': '4.76388979'}NL-NHSunny62018-02-11 05:41:51
13046739.132165FalseLogstash AirwaysXi'an Xianyang International AirportXIYXi'anCN{'lat': '34.447102', 'lon': '108.751999'}SE-BDRain...542.955572Winnipeg / James Armstrong Richardson Internat...YWGWinnipegCA{'lat': '49.90999985', 'lon': '-97.23989868'}CA-MBHail62018-02-11 10:02:21
13047605.191876FalseJetBeatsPortland International Jetport AirportPWMPortlandUS{'lat': '43.64619827', 'lon': '-70.30930328'}US-METhunder & Lightning...564.599857Jeju International AirportCJUJeju CityKR{'lat': '33.51129913', 'lon': '126.4929962'}SE-BDCloudy62018-02-11 15:55:10
13048361.767659TrueLogstash AirwaysDubai International AirportDXBDubaiAE{'lat': '25.25279999', 'lon': '55.36439896'}SE-BDSunny...180.000000Dubai International AirportDXBDubaiAE{'lat': '25.25279999', 'lon': '55.36439896'}SE-BDHail62018-02-11 04:11:14
13049662.306992FalseES-AirWinnipeg / James Armstrong Richardson Internat...YWGWinnipegCA{'lat': '49.90999985', 'lon': '-97.23989868'}CA-MBHeavy Fog...835.954429Ministro Pistarini International AirportEZEBuenos AiresAR{'lat': '-34.8222', 'lon': '-58.5358'}AR-BSunny62018-02-11 10:13:32
13050630.779526FalseJetBeatsHelsinki Vantaa AirportHELHelsinkiFI{'lat': '60.31719971', 'lon': '24.9633007'}FI-ESSunny...451.755639Beijing Capital International AirportPEKBeijingCN{'lat': '40.08010101', 'lon': '116.5849991'}SE-BDCloudy62018-02-11 11:23:23
13051937.771279TrueLogstash AirwaysLester B. Pearson International AirportYYZTorontoCA{'lat': '43.67720032', 'lon': '-79.63059998'}CA-ONSunny...507.451571Leonardo da Vinci___Fiumicino AirportRM11RomeIT{'lat': '41.8002778', 'lon': '12.2388889'}IT-62Hail62018-02-11 01:13:50
130521085.155339FalseLogstash AirwaysMelbourne International AirportMELMelbourneAU{'lat': '-37.673302', 'lon': '144.843002'}SE-BDCloudy...1044.451122Bologna Guglielmo Marconi AirportBO08BolognaIT{'lat': '44.5354', 'lon': '11.2887'}IT-45Cloudy62018-02-11 18:35:42
130531191.964104FalseLogstash AirwaysZurich AirportZRHZurichCH{'lat': '47.464699', 'lon': '8.54917'}CH-ZHHail...728.715904Portland International Jetport AirportPWMPortlandUS{'lat': '43.64619827', 'lon': '-70.30930328'}US-MEClear62018-02-11 19:02:10
130541080.446279FalseLogstash AirwaysXi'an Xianyang International AirportXIYXi'anCN{'lat': '34.447102', 'lon': '108.751999'}SE-BDRain...402.929088Pisa International AirportPI05PisaIT{'lat': '43.683899', 'lon': '10.3927'}IT-52Sunny62018-02-11 20:42:25
13055646.612941FalseLogstash AirwaysZurich AirportZRHZurichCH{'lat': '47.464699', 'lon': '8.54917'}CH-ZHRain...644.418029Winnipeg / James Armstrong Richardson Internat...YWGWinnipegCA{'lat': '49.90999985', 'lon': '-97.23989868'}CA-MBRain62018-02-11 01:41:57
13056997.751876FalseLogstash AirwaysUkrainka Air BaseXHBUBelogorskRU{'lat': '51.169997', 'lon': '128.445007'}RU-AMURain...937.540811Licenciado Benito Juarez International AirportAICMMexico CityMX{'lat': '19.4363', 'lon': '-99.072098'}MX-DIFSunny62018-02-11 04:09:27
130571102.814465FalseJetBeatsMinistro Pistarini International AirportEZEBuenos AiresAR{'lat': '-34.8222', 'lon': '-58.5358'}SE-BDHail...1697.404971Itami AirportITMOsakaJP{'lat': '34.78549957', 'lon': '135.4380035'}SE-BDHail62018-02-11 08:28:21
13058858.144337FalseJetBeatsWashington Dulles International AirportIADWashingtonUS{'lat': '38.94449997', 'lon': '-77.45580292'}US-DCHeavy Fog...1610.761827Adelaide International AirportADLAdelaideAU{'lat': '-34.945', 'lon': '138.531006'}SE-BDRain62018-02-11 14:54:34
\n", + "

13059 rows × 27 columns

\n", + "
" + ], + "text/plain": [ + " AvgTicketPrice Cancelled Carrier \\\n", + "0 841.265642 False Kibana Airlines \n", + "1 882.982662 False Logstash Airways \n", + "2 190.636904 False Logstash Airways \n", + "3 181.694216 True Kibana Airlines \n", + "4 730.041778 False Kibana Airlines \n", + "5 418.152089 False JetBeats \n", + "6 180.246816 False JetBeats \n", + "7 585.184310 False Kibana Airlines \n", + "8 960.869736 True Kibana Airlines \n", + "9 296.877773 False Logstash Airways \n", + "10 906.437948 False JetBeats \n", + "11 704.463771 False Logstash Airways \n", + "12 922.499077 True Logstash Airways \n", + "13 374.959276 False Logstash Airways \n", + "14 552.917371 False Logstash Airways \n", + "15 566.487557 True Kibana Airlines \n", + "16 989.952787 True Logstash Airways \n", + "17 569.613255 False ES-Air \n", + "18 277.429707 False ES-Air \n", + "19 772.100846 False JetBeats \n", + "20 167.599922 False JetBeats \n", + "21 253.210065 False ES-Air \n", + "22 917.247620 False JetBeats \n", + "23 451.591176 False Logstash Airways \n", + "24 307.067201 False Logstash Airways \n", + "25 268.241596 False ES-Air \n", + "26 975.812632 True Kibana Airlines \n", + "27 134.214546 False JetBeats \n", + "28 988.897564 False Kibana Airlines \n", + "29 511.067220 False Logstash Airways \n", + "... ... ... ... \n", + "13029 795.905278 False Kibana Airlines \n", + "13030 863.388068 False Logstash Airways \n", + "13031 575.183008 False JetBeats \n", + "13032 817.368952 False JetBeats \n", + "13033 579.582455 False ES-Air \n", + "13034 1004.916638 False JetBeats \n", + "13035 357.562842 True Logstash Airways \n", + "13036 429.580539 False Logstash Airways \n", + "13037 729.788171 True ES-Air \n", + "13038 564.897695 False ES-Air \n", + "13039 1014.052787 False Logstash Airways \n", + "13040 455.243843 False ES-Air \n", + "13041 611.370232 False Logstash Airways \n", + "13042 595.961285 False JetBeats \n", + "13043 782.747648 False Logstash Airways \n", + "13044 891.117221 False JetBeats \n", + "13045 587.169921 False Logstash Airways \n", + "13046 739.132165 False Logstash Airways \n", + "13047 605.191876 False JetBeats \n", + "13048 361.767659 True Logstash Airways \n", + "13049 662.306992 False ES-Air \n", + "13050 630.779526 False JetBeats \n", + "13051 937.771279 True Logstash Airways \n", + "13052 1085.155339 False Logstash Airways \n", + "13053 1191.964104 False Logstash Airways \n", + "13054 1080.446279 False Logstash Airways \n", + "13055 646.612941 False Logstash Airways \n", + "13056 997.751876 False Logstash Airways \n", + "13057 1102.814465 False JetBeats \n", + "13058 858.144337 False JetBeats \n", + "\n", + " Dest DestAirportID \\\n", + "0 Sydney Kingsford Smith International Airport SYD \n", + "1 Venice Marco Polo Airport VE05 \n", + "2 Venice Marco Polo Airport VE05 \n", + "3 Treviso-Sant'Angelo Airport TV01 \n", + "4 Xi'an Xianyang International Airport XIY \n", + "5 Genoa Cristoforo Colombo Airport GE01 \n", + "6 Zurich Airport ZRH \n", + "7 Ottawa Macdonald-Cartier International Airport YOW \n", + "8 Rajiv Gandhi International Airport HYD \n", + "9 Treviso-Sant'Angelo Airport TV01 \n", + "10 Helsinki Vantaa Airport HEL \n", + "11 Vienna International Airport VIE \n", + "12 Shanghai Pudong International Airport PVG \n", + "13 Ottawa Macdonald-Cartier International Airport YOW \n", + "14 Luis Munoz Marin International Airport SJU \n", + "15 Cologne Bonn Airport CGN \n", + "16 Venice Marco Polo Airport VE05 \n", + "17 Ministro Pistarini International Airport EZE \n", + "18 Shanghai Pudong International Airport PVG \n", + "19 Indira Gandhi International Airport DEL \n", + "20 Wichita Mid Continent Airport ICT \n", + "21 Ottawa Macdonald-Cartier International Airport YOW \n", + "22 Itami Airport ITM \n", + "23 Vienna International Airport VIE \n", + "24 Charles de Gaulle International Airport CDG \n", + "25 Narita International Airport NRT \n", + "26 Itami Airport ITM \n", + "27 San Diego International Airport SAN \n", + "28 Verona Villafranca Airport VR10 \n", + "29 Zurich Airport ZRH \n", + "... ... ... \n", + "13029 Malpensa International Airport MI12 \n", + "13030 Xi'an Xianyang International Airport XIY \n", + "13031 Savannah Hilton Head International Airport SAV \n", + "13032 Syracuse Hancock International Airport SYR \n", + "13033 Tampa International Airport TPA \n", + "13034 Olenya Air Base XLMO \n", + "13035 Shanghai Pudong International Airport PVG \n", + "13036 Venice Marco Polo Airport VE05 \n", + "13037 Vienna International Airport VIE \n", + "13038 Pisa International Airport PI05 \n", + "13039 Vienna International Airport VIE \n", + "13040 London Luton Airport LTN \n", + "13041 Jorge Chavez International Airport LIM \n", + "13042 Ottawa Macdonald-Cartier International Airport YOW \n", + "13043 Xi'an Xianyang International Airport XIY \n", + "13044 Winnipeg / James Armstrong Richardson Internat... YWG \n", + "13045 Brisbane International Airport BNE \n", + "13046 Xi'an Xianyang International Airport XIY \n", + "13047 Portland International Jetport Airport PWM \n", + "13048 Dubai International Airport DXB \n", + "13049 Winnipeg / James Armstrong Richardson Internat... YWG \n", + "13050 Helsinki Vantaa Airport HEL \n", + "13051 Lester B. Pearson International Airport YYZ \n", + "13052 Melbourne International Airport MEL \n", + "13053 Zurich Airport ZRH \n", + "13054 Xi'an Xianyang International Airport XIY \n", + "13055 Zurich Airport ZRH \n", + "13056 Ukrainka Air Base XHBU \n", + "13057 Ministro Pistarini International Airport EZE \n", + "13058 Washington Dulles International Airport IAD \n", + "\n", + " DestCityName DestCountry \\\n", + "0 Sydney AU \n", + "1 Venice IT \n", + "2 Venice IT \n", + "3 Treviso IT \n", + "4 Xi'an CN \n", + "5 Genova IT \n", + "6 Zurich CH \n", + "7 Ottawa CA \n", + "8 Hyderabad IN \n", + "9 Treviso IT \n", + "10 Helsinki FI \n", + "11 Vienna AT \n", + "12 Shanghai CN \n", + "13 Ottawa CA \n", + "14 San Juan PR \n", + "15 Cologne DE \n", + "16 Venice IT \n", + "17 Buenos Aires AR \n", + "18 Shanghai CN \n", + "19 New Delhi IN \n", + "20 Wichita US \n", + "21 Ottawa CA \n", + "22 Osaka JP \n", + "23 Vienna AT \n", + "24 Paris FR \n", + "25 Tokyo JP \n", + "26 Osaka JP \n", + "27 San Diego US \n", + "28 Verona IT \n", + "29 Zurich CH \n", + "... ... ... \n", + "13029 Milan IT \n", + "13030 Xi'an CN \n", + "13031 Savannah US \n", + "13032 Syracuse US \n", + "13033 Tampa US \n", + "13034 Olenegorsk RU \n", + "13035 Shanghai CN \n", + "13036 Venice IT \n", + "13037 Vienna AT \n", + "13038 Pisa IT \n", + "13039 Vienna AT \n", + "13040 London GB \n", + "13041 Lima PE \n", + "13042 Ottawa CA \n", + "13043 Xi'an CN \n", + "13044 Winnipeg CA \n", + "13045 Brisbane AU \n", + "13046 Xi'an CN \n", + "13047 Portland US \n", + "13048 Dubai AE \n", + "13049 Winnipeg CA \n", + "13050 Helsinki FI \n", + "13051 Toronto CA \n", + "13052 Melbourne AU \n", + "13053 Zurich CH \n", + "13054 Xi'an CN \n", + "13055 Zurich CH \n", + "13056 Belogorsk RU \n", + "13057 Buenos Aires AR \n", + "13058 Washington US \n", + "\n", + " DestLocation DestRegion \\\n", + "0 {'lat': '-33.94609833', 'lon': '151.177002'} SE-BD \n", + "1 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "2 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "3 {'lat': '45.648399', 'lon': '12.1944'} IT-34 \n", + "4 {'lat': '34.447102', 'lon': '108.751999'} SE-BD \n", + "5 {'lat': '44.4133', 'lon': '8.8375'} IT-42 \n", + "6 {'lat': '47.464699', 'lon': '8.54917'} CH-ZH \n", + "7 {'lat': '45.32249832', 'lon': '-75.66919708'} CA-ON \n", + "8 {'lat': '17.23131752', 'lon': '78.42985535'} SE-BD \n", + "9 {'lat': '45.648399', 'lon': '12.1944'} IT-34 \n", + "10 {'lat': '60.31719971', 'lon': '24.9633007'} FI-ES \n", + "11 {'lat': '48.11029816', 'lon': '16.56970024'} AT-9 \n", + "12 {'lat': '31.14340019', 'lon': '121.8050003'} SE-BD \n", + "13 {'lat': '45.32249832', 'lon': '-75.66919708'} CA-ON \n", + "14 {'lat': '18.43939972', 'lon': '-66.00180054'} PR-U-A \n", + "15 {'lat': '50.86589813', 'lon': '7.142739773'} DE-NW \n", + "16 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "17 {'lat': '-34.8222', 'lon': '-58.5358'} SE-BD \n", + "18 {'lat': '31.14340019', 'lon': '121.8050003'} SE-BD \n", + "19 {'lat': '28.5665', 'lon': '77.103104'} SE-BD \n", + "20 {'lat': '37.64989853', 'lon': '-97.43309784'} US-KS \n", + "21 {'lat': '45.32249832', 'lon': '-75.66919708'} CA-ON \n", + "22 {'lat': '34.78549957', 'lon': '135.4380035'} SE-BD \n", + "23 {'lat': '48.11029816', 'lon': '16.56970024'} AT-9 \n", + "24 {'lat': '49.01279831', 'lon': '2.549999952'} FR-J \n", + "25 {'lat': '35.76470184', 'lon': '140.3860016'} SE-BD \n", + "26 {'lat': '34.78549957', 'lon': '135.4380035'} SE-BD \n", + "27 {'lat': '32.73360062', 'lon': '-117.1900024'} US-CA \n", + "28 {'lat': '45.395699', 'lon': '10.8885'} IT-34 \n", + "29 {'lat': '47.464699', 'lon': '8.54917'} CH-ZH \n", + "... ... ... \n", + "13029 {'lat': '45.6306', 'lon': '8.72811'} IT-25 \n", + "13030 {'lat': '34.447102', 'lon': '108.751999'} SE-BD \n", + "13031 {'lat': '32.12760162', 'lon': '-81.20210266'} US-GA \n", + "13032 {'lat': '43.11119843', 'lon': '-76.10630035'} US-NY \n", + "13033 {'lat': '27.97550011', 'lon': '-82.53320313'} US-FL \n", + "13034 {'lat': '68.15180206', 'lon': '33.46390152'} RU-MUR \n", + "13035 {'lat': '31.14340019', 'lon': '121.8050003'} SE-BD \n", + "13036 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "13037 {'lat': '48.11029816', 'lon': '16.56970024'} AT-9 \n", + "13038 {'lat': '43.683899', 'lon': '10.3927'} IT-52 \n", + "13039 {'lat': '48.11029816', 'lon': '16.56970024'} AT-9 \n", + "13040 {'lat': '51.87469864', 'lon': '-0.368333012'} GB-ENG \n", + "13041 {'lat': '-12.0219', 'lon': '-77.114304'} SE-BD \n", + "13042 {'lat': '45.32249832', 'lon': '-75.66919708'} CA-ON \n", + "13043 {'lat': '34.447102', 'lon': '108.751999'} SE-BD \n", + "13044 {'lat': '49.90999985', 'lon': '-97.23989868'} CA-MB \n", + "13045 {'lat': '-27.38419914', 'lon': '153.1170044'} SE-BD \n", + "13046 {'lat': '34.447102', 'lon': '108.751999'} SE-BD \n", + "13047 {'lat': '43.64619827', 'lon': '-70.30930328'} US-ME \n", + "13048 {'lat': '25.25279999', 'lon': '55.36439896'} SE-BD \n", + "13049 {'lat': '49.90999985', 'lon': '-97.23989868'} CA-MB \n", + "13050 {'lat': '60.31719971', 'lon': '24.9633007'} FI-ES \n", + "13051 {'lat': '43.67720032', 'lon': '-79.63059998'} CA-ON \n", + "13052 {'lat': '-37.673302', 'lon': '144.843002'} SE-BD \n", + "13053 {'lat': '47.464699', 'lon': '8.54917'} CH-ZH \n", + "13054 {'lat': '34.447102', 'lon': '108.751999'} SE-BD \n", + "13055 {'lat': '47.464699', 'lon': '8.54917'} CH-ZH \n", + "13056 {'lat': '51.169997', 'lon': '128.445007'} RU-AMU \n", + "13057 {'lat': '-34.8222', 'lon': '-58.5358'} SE-BD \n", + "13058 {'lat': '38.94449997', 'lon': '-77.45580292'} US-DC \n", + "\n", + " DestWeather ... FlightTimeMin \\\n", + "0 Rain ... 1030.770416 \n", + "1 Sunny ... 464.389481 \n", + "2 Cloudy ... 0.000000 \n", + "3 Clear ... 222.749059 \n", + "4 Clear ... 785.779071 \n", + "5 Thunder & Lightning ... 393.590441 \n", + "6 Hail ... 300.000000 \n", + "7 Clear ... 614.942480 \n", + "8 Cloudy ... 602.030591 \n", + "9 Rain ... 174.822216 \n", + "10 Rain ... 503.045170 \n", + "11 Cloudy ... 36.075018 \n", + "12 Clear ... 679.768391 \n", + "13 Rain ... 330.418282 \n", + "14 Clear ... 407.145031 \n", + "15 Sunny ... 656.712658 \n", + "16 Damaging Wind ... 773.030334 \n", + "17 Cloudy ... 704.716920 \n", + "18 Clear ... 355.957996 \n", + "19 Clear ... 875.114675 \n", + "20 Clear ... 373.966883 \n", + "21 Hail ... 130.667700 \n", + "22 Damaging Wind ... 574.495310 \n", + "23 Heavy Fog ... 579.728943 \n", + "24 Clear ... 50.157229 \n", + "25 Rain ... 527.567422 \n", + "26 Hail ... 386.259764 \n", + "27 Clear ... 24.479650 \n", + "28 Sunny ... 568.351033 \n", + "29 Rain ... 425.889194 \n", + "... ... ... ... \n", + "13029 Sunny ... 534.375826 \n", + "13030 Damaging Wind ... 141.172633 \n", + "13031 Thunder & Lightning ... 1113.137060 \n", + "13032 Rain ... 714.964864 \n", + "13033 Rain ... 234.929046 \n", + "13034 Clear ... 526.895776 \n", + "13035 Thunder & Lightning ... 0.000000 \n", + "13036 Sunny ... 150.000000 \n", + "13037 Rain ... 691.944839 \n", + "13038 Heavy Fog ... 567.387339 \n", + "13039 Thunder & Lightning ... 690.092327 \n", + "13040 Cloudy ... 3.028293 \n", + "13041 Sunny ... 338.875531 \n", + "13042 Clear ... 375.129587 \n", + "13043 Clear ... 156.858481 \n", + "13044 Clear ... 354.106457 \n", + "13045 Rain ... 771.305442 \n", + "13046 Rain ... 542.955572 \n", + "13047 Thunder & Lightning ... 564.599857 \n", + "13048 Sunny ... 180.000000 \n", + "13049 Heavy Fog ... 835.954429 \n", + "13050 Sunny ... 451.755639 \n", + "13051 Sunny ... 507.451571 \n", + "13052 Cloudy ... 1044.451122 \n", + "13053 Hail ... 728.715904 \n", + "13054 Rain ... 402.929088 \n", + "13055 Rain ... 644.418029 \n", + "13056 Rain ... 937.540811 \n", + "13057 Hail ... 1697.404971 \n", + "13058 Heavy Fog ... 1610.761827 \n", + "\n", + " Origin OriginAirportID \\\n", + "0 Frankfurt am Main Airport FRA \n", + "1 Cape Town International Airport CPT \n", + "2 Venice Marco Polo Airport VE05 \n", + "3 Naples International Airport NA01 \n", + "4 Licenciado Benito Juarez International Airport AICM \n", + "5 Edmonton International Airport CYEG \n", + "6 Zurich Airport ZRH \n", + "7 Ciampino___G. B. Pastine International Airport RM12 \n", + "8 Milano Linate Airport MI11 \n", + "9 Sheremetyevo International Airport SVO \n", + "10 Albuquerque International Sunport Airport ABQ \n", + "11 Venice Marco Polo Airport VE05 \n", + "12 Licenciado Benito Juarez International Airport AICM \n", + "13 Naples International Airport NA01 \n", + "14 Ciampino___G. B. Pastine International Airport RM12 \n", + "15 Chengdu Shuangliu International Airport CTU \n", + "16 Licenciado Benito Juarez International Airport AICM \n", + "17 Cleveland Hopkins International Airport CLE \n", + "18 Olenya Air Base XLMO \n", + "19 Casper-Natrona County International Airport CPR \n", + "20 Erie International Tom Ridge Field ERI \n", + "21 Newark Liberty International Airport EWR \n", + "22 Copenhagen Kastrup Airport CPH \n", + "23 Seattle Tacoma International Airport SEA \n", + "24 Berlin-Tegel Airport TXL \n", + "25 Manchester Airport MAN \n", + "26 Helsinki Vantaa Airport HEL \n", + "27 Phoenix Sky Harbor International Airport PHX \n", + "28 New Chitose Airport CTS \n", + "29 Tulsa International Airport TUL \n", + "... ... ... \n", + "13029 Itami Airport ITM \n", + "13030 Tokyo Haneda International Airport HND \n", + "13031 OR Tambo International Airport JNB \n", + "13032 El Dorado International Airport BOG \n", + "13033 Jorge Chavez International Airport LIM \n", + "13034 Gimpo International Airport GMP \n", + "13035 Shanghai Pudong International Airport PVG \n", + "13036 Venice Marco Polo Airport VE05 \n", + "13037 Ukrainka Air Base XHBU \n", + "13038 OR Tambo International Airport JNB \n", + "13039 Montreal / Pierre Elliott Trudeau Internationa... YUL \n", + "13040 London Heathrow Airport LHR \n", + "13041 Casper-Natrona County International Airport CPR \n", + "13042 Frankfurt am Main Airport FRA \n", + "13043 Tokyo Haneda International Airport HND \n", + "13044 Vienna International Airport VIE \n", + "13045 Amsterdam Airport Schiphol AMS \n", + "13046 Winnipeg / James Armstrong Richardson Internat... YWG \n", + "13047 Jeju International Airport CJU \n", + "13048 Dubai International Airport DXB \n", + "13049 Ministro Pistarini International Airport EZE \n", + "13050 Beijing Capital International Airport PEK \n", + "13051 Leonardo da Vinci___Fiumicino Airport RM11 \n", + "13052 Bologna Guglielmo Marconi Airport BO08 \n", + "13053 Portland International Jetport Airport PWM \n", + "13054 Pisa International Airport PI05 \n", + "13055 Winnipeg / James Armstrong Richardson Internat... YWG \n", + "13056 Licenciado Benito Juarez International Airport AICM \n", + "13057 Itami Airport ITM \n", + "13058 Adelaide International Airport ADL \n", + "\n", + " OriginCityName OriginCountry \\\n", + "0 Frankfurt am Main DE \n", + "1 Cape Town ZA \n", + "2 Venice IT \n", + "3 Naples IT \n", + "4 Mexico City MX \n", + "5 Edmonton CA \n", + "6 Zurich CH \n", + "7 Rome IT \n", + "8 Milan IT \n", + "9 Moscow RU \n", + "10 Albuquerque US \n", + "11 Venice IT \n", + "12 Mexico City MX \n", + "13 Naples IT \n", + "14 Rome IT \n", + "15 Chengdu CN \n", + "16 Mexico City MX \n", + "17 Cleveland US \n", + "18 Olenegorsk RU \n", + "19 Casper US \n", + "20 Erie US \n", + "21 Newark US \n", + "22 Copenhagen DK \n", + "23 Seattle US \n", + "24 Berlin DE \n", + "25 Manchester GB \n", + "26 Helsinki FI \n", + "27 Phoenix US \n", + "28 Chitose / Tomakomai JP \n", + "29 Tulsa US \n", + "... ... ... \n", + "13029 Osaka JP \n", + "13030 Tokyo JP \n", + "13031 Johannesburg ZA \n", + "13032 Bogota CO \n", + "13033 Lima PE \n", + "13034 Seoul KR \n", + "13035 Shanghai CN \n", + "13036 Venice IT \n", + "13037 Belogorsk RU \n", + "13038 Johannesburg ZA \n", + "13039 Montreal CA \n", + "13040 London GB \n", + "13041 Casper US \n", + "13042 Frankfurt am Main DE \n", + "13043 Tokyo JP \n", + "13044 Vienna AT \n", + "13045 Amsterdam NL \n", + "13046 Winnipeg CA \n", + "13047 Jeju City KR \n", + "13048 Dubai AE \n", + "13049 Buenos Aires AR \n", + "13050 Beijing CN \n", + "13051 Rome IT \n", + "13052 Bologna IT \n", + "13053 Portland US \n", + "13054 Pisa IT \n", + "13055 Winnipeg CA \n", + "13056 Mexico City MX \n", + "13057 Osaka JP \n", + "13058 Adelaide AU \n", + "\n", + " OriginLocation OriginRegion \\\n", + "0 {'lat': '50.033333', 'lon': '8.570556'} DE-HE \n", + "1 {'lat': '-33.96480179', 'lon': '18.60169983'} SE-BD \n", + "2 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "3 {'lat': '40.886002', 'lon': '14.2908'} IT-72 \n", + "4 {'lat': '19.4363', 'lon': '-99.072098'} MX-DIF \n", + "5 {'lat': '53.30970001', 'lon': '-113.5800018'} CA-AB \n", + "6 {'lat': '47.464699', 'lon': '8.54917'} CH-ZH \n", + "7 {'lat': '41.7994', 'lon': '12.5949'} IT-62 \n", + "8 {'lat': '45.445099', 'lon': '9.27674'} IT-25 \n", + "9 {'lat': '55.972599', 'lon': '37.4146'} RU-MOS \n", + "10 {'lat': '35.040199', 'lon': '-106.609001'} US-NM \n", + "11 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "12 {'lat': '19.4363', 'lon': '-99.072098'} MX-DIF \n", + "13 {'lat': '40.886002', 'lon': '14.2908'} IT-72 \n", + "14 {'lat': '41.7994', 'lon': '12.5949'} IT-62 \n", + "15 {'lat': '30.57850075', 'lon': '103.9469986'} SE-BD \n", + "16 {'lat': '19.4363', 'lon': '-99.072098'} MX-DIF \n", + "17 {'lat': '41.4117012', 'lon': '-81.84980011'} US-OH \n", + "18 {'lat': '68.15180206', 'lon': '33.46390152'} RU-MUR \n", + "19 {'lat': '42.90800095', 'lon': '-106.4639969'} US-WY \n", + "20 {'lat': '42.08312701', 'lon': '-80.17386675'} US-PA \n", + "21 {'lat': '40.69250107', 'lon': '-74.16870117'} US-NJ \n", + "22 {'lat': '55.61790085', 'lon': '12.65600014'} DK-84 \n", + "23 {'lat': '47.44900131', 'lon': '-122.3089981'} US-WA \n", + "24 {'lat': '52.5597', 'lon': '13.2877'} DE-BE \n", + "25 {'lat': '53.35369873', 'lon': '-2.274950027'} GB-ENG \n", + "26 {'lat': '60.31719971', 'lon': '24.9633007'} FI-ES \n", + "27 {'lat': '33.43429947', 'lon': '-112.012001'} US-AZ \n", + "28 {'lat': '42.77519989', 'lon': '141.6920013'} SE-BD \n", + "29 {'lat': '36.19839859', 'lon': '-95.88809967'} US-OK \n", + "... ... ... \n", + "13029 {'lat': '34.78549957', 'lon': '135.4380035'} SE-BD \n", + "13030 {'lat': '35.552299', 'lon': '139.779999'} SE-BD \n", + "13031 {'lat': '-26.1392', 'lon': '28.246'} SE-BD \n", + "13032 {'lat': '4.70159', 'lon': '-74.1469'} CO-CUN \n", + "13033 {'lat': '-12.0219', 'lon': '-77.114304'} SE-BD \n", + "13034 {'lat': '37.5583', 'lon': '126.791'} SE-BD \n", + "13035 {'lat': '31.14340019', 'lon': '121.8050003'} SE-BD \n", + "13036 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "13037 {'lat': '51.169997', 'lon': '128.445007'} RU-AMU \n", + "13038 {'lat': '-26.1392', 'lon': '28.246'} SE-BD \n", + "13039 {'lat': '45.47060013', 'lon': '-73.74079895'} CA-QC \n", + "13040 {'lat': '51.4706', 'lon': '-0.461941'} GB-ENG \n", + "13041 {'lat': '42.90800095', 'lon': '-106.4639969'} US-WY \n", + "13042 {'lat': '50.033333', 'lon': '8.570556'} DE-HE \n", + "13043 {'lat': '35.552299', 'lon': '139.779999'} SE-BD \n", + "13044 {'lat': '48.11029816', 'lon': '16.56970024'} AT-9 \n", + "13045 {'lat': '52.30860138', 'lon': '4.76388979'} NL-NH \n", + "13046 {'lat': '49.90999985', 'lon': '-97.23989868'} CA-MB \n", + "13047 {'lat': '33.51129913', 'lon': '126.4929962'} SE-BD \n", + "13048 {'lat': '25.25279999', 'lon': '55.36439896'} SE-BD \n", + "13049 {'lat': '-34.8222', 'lon': '-58.5358'} AR-B \n", + "13050 {'lat': '40.08010101', 'lon': '116.5849991'} SE-BD \n", + "13051 {'lat': '41.8002778', 'lon': '12.2388889'} IT-62 \n", + "13052 {'lat': '44.5354', 'lon': '11.2887'} IT-45 \n", + "13053 {'lat': '43.64619827', 'lon': '-70.30930328'} US-ME \n", + "13054 {'lat': '43.683899', 'lon': '10.3927'} IT-52 \n", + "13055 {'lat': '49.90999985', 'lon': '-97.23989868'} CA-MB \n", + "13056 {'lat': '19.4363', 'lon': '-99.072098'} MX-DIF \n", + "13057 {'lat': '34.78549957', 'lon': '135.4380035'} SE-BD \n", + "13058 {'lat': '-34.945', 'lon': '138.531006'} SE-BD \n", + "\n", + " OriginWeather dayOfWeek timestamp \n", + "0 Sunny 0 2018-01-01 00:00:00 \n", + "1 Clear 0 2018-01-01 18:27:00 \n", + "2 Rain 0 2018-01-01 17:11:14 \n", + "3 Thunder & Lightning 0 2018-01-01 10:33:28 \n", + "4 Damaging Wind 0 2018-01-01 05:13:00 \n", + "5 Rain 0 2018-01-01 01:43:03 \n", + "6 Clear 0 2018-01-01 13:49:53 \n", + "7 Thunder & Lightning 0 2018-01-01 04:54:59 \n", + "8 Heavy Fog 0 2018-01-01 12:09:35 \n", + "9 Cloudy 0 2018-01-01 12:09:35 \n", + "10 Rain 0 2018-01-01 22:06:14 \n", + "11 Rain 0 2018-01-01 11:52:34 \n", + "12 Heavy Fog 0 2018-01-01 02:13:46 \n", + "13 Rain 0 2018-01-01 14:21:13 \n", + "14 Cloudy 0 2018-01-01 17:42:53 \n", + "15 Thunder & Lightning 0 2018-01-01 19:55:32 \n", + "16 Thunder & Lightning 0 2018-01-01 07:49:27 \n", + "17 Rain 0 2018-01-01 01:30:47 \n", + "18 Hail 0 2018-01-01 07:58:17 \n", + "19 Cloudy 0 2018-01-01 00:02:06 \n", + "20 Cloudy 0 2018-01-01 01:08:20 \n", + "21 Clear 0 2018-01-01 01:08:20 \n", + "22 Sunny 0 2018-01-01 07:48:35 \n", + "23 Heavy Fog 0 2018-01-01 18:57:21 \n", + "24 Rain 0 2018-01-01 13:18:25 \n", + "25 Thunder & Lightning 0 2018-01-01 08:20:35 \n", + "26 Rain 0 2018-01-01 15:38:32 \n", + "27 Clear 0 2018-01-01 03:08:45 \n", + "28 Damaging Wind 0 2018-01-01 01:16:59 \n", + "29 Rain 0 2018-01-01 18:00:59 \n", + "... ... ... ... \n", + "13029 Sunny 6 2018-02-11 20:10:13 \n", + "13030 Clear 6 2018-02-11 18:59:53 \n", + "13031 Hail 6 2018-02-11 00:57:48 \n", + "13032 Thunder & Lightning 6 2018-02-11 12:02:49 \n", + "13033 Thunder & Lightning 6 2018-02-11 02:07:40 \n", + "13034 Sunny 6 2018-02-11 00:35:04 \n", + "13035 Thunder & Lightning 6 2018-02-11 11:19:12 \n", + "13036 Cloudy 6 2018-02-11 15:07:11 \n", + "13037 Damaging Wind 6 2018-02-11 10:24:42 \n", + "13038 Damaging Wind 6 2018-02-11 00:42:06 \n", + "13039 Thunder & Lightning 6 2018-02-11 10:56:31 \n", + "13040 Clear 6 2018-02-11 00:39:37 \n", + "13041 Rain 6 2018-02-11 10:24:30 \n", + "13042 Clear 6 2018-02-11 09:02:07 \n", + "13043 Thunder & Lightning 6 2018-02-11 04:45:06 \n", + "13044 Thunder & Lightning 6 2018-02-11 00:51:14 \n", + "13045 Sunny 6 2018-02-11 05:41:51 \n", + "13046 Hail 6 2018-02-11 10:02:21 \n", + "13047 Cloudy 6 2018-02-11 15:55:10 \n", + "13048 Hail 6 2018-02-11 04:11:14 \n", + "13049 Sunny 6 2018-02-11 10:13:32 \n", + "13050 Cloudy 6 2018-02-11 11:23:23 \n", + "13051 Hail 6 2018-02-11 01:13:50 \n", + "13052 Cloudy 6 2018-02-11 18:35:42 \n", + "13053 Clear 6 2018-02-11 19:02:10 \n", + "13054 Sunny 6 2018-02-11 20:42:25 \n", + "13055 Rain 6 2018-02-11 01:41:57 \n", + "13056 Sunny 6 2018-02-11 04:09:27 \n", + "13057 Hail 6 2018-02-11 08:28:21 \n", + "13058 Rain 6 2018-02-11 14:54:34 \n", + "\n", + "[13059 rows x 27 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd_flights" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "Create `eland` DataFrame (pandas-like DataFrame backed by Elasticsearch rather than pandas incore memory structures)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import eland as ed" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "ed_flights = ed.read_es(\"localhost:9200\", \"flights\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternative Constructors" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "from elasticsearch import Elasticsearch\n", + "\n", + "es = Elasticsearch([\n", + " {'host': 'localhost', 'port': 9200, 'use_ssl': False}, # full range of connection options\n", + "])\n", + "\n", + "ed_ecommerce = ed.read_es(es, 'ecommerce')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Explore `eland` DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Index: 13059 entries, 0 to 13058\n", + "Data columns (total 27 columns):\n", + "AvgTicketPrice 13059 non-null float64\n", + "Cancelled 13059 non-null bool\n", + "Carrier 13059 non-null object\n", + "Dest 13059 non-null object\n", + "DestAirportID 13059 non-null object\n", + "DestCityName 13059 non-null object\n", + "DestCountry 13059 non-null object\n", + "DestLocation 13059 non-null object\n", + "DestRegion 13059 non-null object\n", + "DestWeather 13059 non-null object\n", + "DistanceKilometers 13059 non-null float64\n", + "DistanceMiles 13059 non-null float64\n", + "FlightDelay 13059 non-null bool\n", + "FlightDelayMin 13059 non-null int64\n", + "FlightDelayType 13059 non-null object\n", + "FlightNum 13059 non-null object\n", + "FlightTimeHour 13059 non-null float64\n", + "FlightTimeMin 13059 non-null float64\n", + "Origin 13059 non-null object\n", + "OriginAirportID 13059 non-null object\n", + "OriginCityName 13059 non-null object\n", + "OriginCountry 13059 non-null object\n", + "OriginLocation 13059 non-null object\n", + "OriginRegion 13059 non-null object\n", + "OriginWeather 13059 non-null object\n", + "dayOfWeek 13059 non-null int64\n", + "timestamp 13059 non-null datetime64[ns]\n", + "dtypes: bool(2), datetime64[ns](1), float64(5), int64(2), object(17)\n", + "memory usage: 80.0 bytes\n" + ] + } + ], + "source": [ + "ed_flights.info()" + ] + }, + { + "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", + "
AvgTicketPriceCancelledDistanceKilometersDistanceMilesFlightDelayFlightDelayMinFlightTimeHourFlightTimeMindayOfWeek
count13059.00000013059.00000013059.00000013059.00000013059.00000013059.00000013059.00000013059.00000013059.000000
mean628.2536890.1284947092.1424574406.8530100.25116847.3351718.518797511.1278422.835975
std266.3866610.3346394578.2631932844.8008550.43368596.7430065.579019334.7411351.939365
min100.0205310.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000
25%410.0089180.0000002470.5459741535.1261180.0000000.0000004.194703251.9449941.000000
50%640.3626670.0000007612.0724034729.9224700.0000000.0000008.385816503.1489753.000000
75%842.2334780.0000009735.6604636049.1992500.86141314.03409112.009653720.5345324.251773
max1199.7290041.00000019881.48242212353.7802731.000000360.00000031.7150341902.9019786.000000
\n", + "
" + ], + "text/plain": [ + " AvgTicketPrice Cancelled DistanceKilometers DistanceMiles \\\n", + "count 13059.000000 13059.000000 13059.000000 13059.000000 \n", + "mean 628.253689 0.128494 7092.142457 4406.853010 \n", + "std 266.386661 0.334639 4578.263193 2844.800855 \n", + "min 100.020531 0.000000 0.000000 0.000000 \n", + "25% 410.008918 0.000000 2470.545974 1535.126118 \n", + "50% 640.362667 0.000000 7612.072403 4729.922470 \n", + "75% 842.233478 0.000000 9735.660463 6049.199250 \n", + "max 1199.729004 1.000000 19881.482422 12353.780273 \n", + "\n", + " FlightDelay FlightDelayMin FlightTimeHour FlightTimeMin \\\n", + "count 13059.000000 13059.000000 13059.000000 13059.000000 \n", + "mean 0.251168 47.335171 8.518797 511.127842 \n", + "std 0.433685 96.743006 5.579019 334.741135 \n", + "min 0.000000 0.000000 0.000000 0.000000 \n", + "25% 0.000000 0.000000 4.194703 251.944994 \n", + "50% 0.000000 0.000000 8.385816 503.148975 \n", + "75% 0.861413 14.034091 12.009653 720.534532 \n", + "max 1.000000 360.000000 31.715034 1902.901978 \n", + "\n", + " dayOfWeek \n", + "count 13059.000000 \n", + "mean 2.835975 \n", + "std 1.939365 \n", + "min 0.000000 \n", + "25% 1.000000 \n", + "50% 3.000000 \n", + "75% 4.251773 \n", + "max 6.000000 " + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ed_flights.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "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", + " \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", + "
AvgTicketPriceCancelledCarrierDestDestAirportIDDestCityNameDestCountryDestLocationDestRegionDestWeather...FlightTimeMinOriginOriginAirportIDOriginCityNameOriginCountryOriginLocationOriginRegionOriginWeatherdayOfWeektimestamp
0841.265642FalseKibana AirlinesSydney Kingsford Smith International AirportSYDSydneyAU{'lat': '-33.94609833', 'lon': '151.177002'}SE-BDRain...1030.770416Frankfurt am Main AirportFRAFrankfurt am MainDE{'lat': '50.033333', 'lon': '8.570556'}DE-HESunny02018-01-01 00:00:00
1882.982662FalseLogstash AirwaysVenice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Sunny...464.389481Cape Town International AirportCPTCape TownZA{'lat': '-33.96480179', 'lon': '18.60169983'}SE-BDClear02018-01-01 18:27:00
2190.636904FalseLogstash AirwaysVenice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Cloudy...0.000000Venice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Rain02018-01-01 17:11:14
3181.694216TrueKibana AirlinesTreviso-Sant'Angelo AirportTV01TrevisoIT{'lat': '45.648399', 'lon': '12.1944'}IT-34Clear...222.749059Naples International AirportNA01NaplesIT{'lat': '40.886002', 'lon': '14.2908'}IT-72Thunder & Lightning02018-01-01 10:33:28
4730.041778FalseKibana AirlinesXi'an Xianyang International AirportXIYXi'anCN{'lat': '34.447102', 'lon': '108.751999'}SE-BDClear...785.779071Licenciado Benito Juarez International AirportAICMMexico CityMX{'lat': '19.4363', 'lon': '-99.072098'}MX-DIFDamaging Wind02018-01-01 05:13:00
\n", + "
\n", + "

5 rows x 27 columns

" + ], + "text/plain": [ + " AvgTicketPrice Cancelled Carrier \\\n", + "0 841.265642 False Kibana Airlines \n", + "1 882.982662 False Logstash Airways \n", + "2 190.636904 False Logstash Airways \n", + "3 181.694216 True Kibana Airlines \n", + "4 730.041778 False Kibana Airlines \n", + "\n", + " Dest DestAirportID DestCityName \\\n", + "0 Sydney Kingsford Smith International Airport SYD Sydney \n", + "1 Venice Marco Polo Airport VE05 Venice \n", + "2 Venice Marco Polo Airport VE05 Venice \n", + "3 Treviso-Sant'Angelo Airport TV01 Treviso \n", + "4 Xi'an Xianyang International Airport XIY Xi'an \n", + "\n", + " DestCountry DestLocation DestRegion \\\n", + "0 AU {'lat': '-33.94609833', 'lon': '151.177002'} SE-BD \n", + "1 IT {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "2 IT {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "3 IT {'lat': '45.648399', 'lon': '12.1944'} IT-34 \n", + "4 CN {'lat': '34.447102', 'lon': '108.751999'} SE-BD \n", + "\n", + " DestWeather ... FlightTimeMin \\\n", + "0 Rain ... 1030.770416 \n", + "1 Sunny ... 464.389481 \n", + "2 Cloudy ... 0.000000 \n", + "3 Clear ... 222.749059 \n", + "4 Clear ... 785.779071 \n", + "\n", + " Origin OriginAirportID \\\n", + "0 Frankfurt am Main Airport FRA \n", + "1 Cape Town International Airport CPT \n", + "2 Venice Marco Polo Airport VE05 \n", + "3 Naples International Airport NA01 \n", + "4 Licenciado Benito Juarez International Airport AICM \n", + "\n", + " OriginCityName OriginCountry \\\n", + "0 Frankfurt am Main DE \n", + "1 Cape Town ZA \n", + "2 Venice IT \n", + "3 Naples IT \n", + "4 Mexico City MX \n", + "\n", + " OriginLocation OriginRegion \\\n", + "0 {'lat': '50.033333', 'lon': '8.570556'} DE-HE \n", + "1 {'lat': '-33.96480179', 'lon': '18.60169983'} SE-BD \n", + "2 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "3 {'lat': '40.886002', 'lon': '14.2908'} IT-72 \n", + "4 {'lat': '19.4363', 'lon': '-99.072098'} MX-DIF \n", + "\n", + " OriginWeather dayOfWeek timestamp \n", + "0 Sunny 0 2018-01-01 00:00:00 \n", + "1 Clear 0 2018-01-01 18:27:00 \n", + "2 Rain 0 2018-01-01 17:11:14 \n", + "3 Thunder & Lightning 0 2018-01-01 10:33:28 \n", + "4 Damaging Wind 0 2018-01-01 05:13:00 \n", + "\n", + "[5 rows x 27 columns]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ed_flights.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "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", + " \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", + "
AvgTicketPriceCancelledCarrierDestDestAirportIDDestCityNameDestCountryDestLocationDestRegionDestWeather...FlightTimeMinOriginOriginAirportIDOriginCityNameOriginCountryOriginLocationOriginRegionOriginWeatherdayOfWeektimestamp
130541080.446279FalseLogstash AirwaysXi'an Xianyang International AirportXIYXi'anCN{'lat': '34.447102', 'lon': '108.751999'}SE-BDRain...402.929088Pisa International AirportPI05PisaIT{'lat': '43.683899', 'lon': '10.3927'}IT-52Sunny62018-02-11 20:42:25
13055646.612941FalseLogstash AirwaysZurich AirportZRHZurichCH{'lat': '47.464699', 'lon': '8.54917'}CH-ZHRain...644.418029Winnipeg / James Armstrong Richardson Internat...YWGWinnipegCA{'lat': '49.90999985', 'lon': '-97.23989868'}CA-MBRain62018-02-11 01:41:57
13056997.751876FalseLogstash AirwaysUkrainka Air BaseXHBUBelogorskRU{'lat': '51.169997', 'lon': '128.445007'}RU-AMURain...937.540811Licenciado Benito Juarez International AirportAICMMexico CityMX{'lat': '19.4363', 'lon': '-99.072098'}MX-DIFSunny62018-02-11 04:09:27
130571102.814465FalseJetBeatsMinistro Pistarini International AirportEZEBuenos AiresAR{'lat': '-34.8222', 'lon': '-58.5358'}SE-BDHail...1697.404971Itami AirportITMOsakaJP{'lat': '34.78549957', 'lon': '135.4380035'}SE-BDHail62018-02-11 08:28:21
13058858.144337FalseJetBeatsWashington Dulles International AirportIADWashingtonUS{'lat': '38.94449997', 'lon': '-77.45580292'}US-DCHeavy Fog...1610.761827Adelaide International AirportADLAdelaideAU{'lat': '-34.945', 'lon': '138.531006'}SE-BDRain62018-02-11 14:54:34
\n", + "
\n", + "

5 rows x 27 columns

" + ], + "text/plain": [ + " AvgTicketPrice Cancelled Carrier \\\n", + "13054 1080.446279 False Logstash Airways \n", + "13055 646.612941 False Logstash Airways \n", + "13056 997.751876 False Logstash Airways \n", + "13057 1102.814465 False JetBeats \n", + "13058 858.144337 False JetBeats \n", + "\n", + " Dest DestAirportID DestCityName \\\n", + "13054 Xi'an Xianyang International Airport XIY Xi'an \n", + "13055 Zurich Airport ZRH Zurich \n", + "13056 Ukrainka Air Base XHBU Belogorsk \n", + "13057 Ministro Pistarini International Airport EZE Buenos Aires \n", + "13058 Washington Dulles International Airport IAD Washington \n", + "\n", + " DestCountry DestLocation DestRegion \\\n", + "13054 CN {'lat': '34.447102', 'lon': '108.751999'} SE-BD \n", + "13055 CH {'lat': '47.464699', 'lon': '8.54917'} CH-ZH \n", + "13056 RU {'lat': '51.169997', 'lon': '128.445007'} RU-AMU \n", + "13057 AR {'lat': '-34.8222', 'lon': '-58.5358'} SE-BD \n", + "13058 US {'lat': '38.94449997', 'lon': '-77.45580292'} US-DC \n", + "\n", + " DestWeather ... FlightTimeMin \\\n", + "13054 Rain ... 402.929088 \n", + "13055 Rain ... 644.418029 \n", + "13056 Rain ... 937.540811 \n", + "13057 Hail ... 1697.404971 \n", + "13058 Heavy Fog ... 1610.761827 \n", + "\n", + " Origin OriginAirportID \\\n", + "13054 Pisa International Airport PI05 \n", + "13055 Winnipeg / James Armstrong Richardson Internat... YWG \n", + "13056 Licenciado Benito Juarez International Airport AICM \n", + "13057 Itami Airport ITM \n", + "13058 Adelaide International Airport ADL \n", + "\n", + " OriginCityName OriginCountry \\\n", + "13054 Pisa IT \n", + "13055 Winnipeg CA \n", + "13056 Mexico City MX \n", + "13057 Osaka JP \n", + "13058 Adelaide AU \n", + "\n", + " OriginLocation OriginRegion \\\n", + "13054 {'lat': '43.683899', 'lon': '10.3927'} IT-52 \n", + "13055 {'lat': '49.90999985', 'lon': '-97.23989868'} CA-MB \n", + "13056 {'lat': '19.4363', 'lon': '-99.072098'} MX-DIF \n", + "13057 {'lat': '34.78549957', 'lon': '135.4380035'} SE-BD \n", + "13058 {'lat': '-34.945', 'lon': '138.531006'} SE-BD \n", + "\n", + " OriginWeather dayOfWeek timestamp \n", + "13054 Sunny 6 2018-02-11 20:42:25 \n", + "13055 Rain 6 2018-02-11 01:41:57 \n", + "13056 Sunny 6 2018-02-11 04:09:27 \n", + "13057 Hail 6 2018-02-11 08:28:21 \n", + "13058 Rain 6 2018-02-11 14:54:34 \n", + "\n", + "[5 rows x 27 columns]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ed_flights.tail()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
AvgTicketPriceCancelledCarrierDestDestAirportIDDestCityNameDestCountryDestLocationDestRegionDestWeather...FlightTimeMinOriginOriginAirportIDOriginCityNameOriginCountryOriginLocationOriginRegionOriginWeatherdayOfWeektimestamp
0841.265642FalseKibana AirlinesSydney Kingsford Smith International AirportSYDSydneyAU{'lat': '-33.94609833', 'lon': '151.177002'}SE-BDRain...1030.770416Frankfurt am Main AirportFRAFrankfurt am MainDE{'lat': '50.033333', 'lon': '8.570556'}DE-HESunny02018-01-01 00:00:00
1882.982662FalseLogstash AirwaysVenice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Sunny...464.389481Cape Town International AirportCPTCape TownZA{'lat': '-33.96480179', 'lon': '18.60169983'}SE-BDClear02018-01-01 18:27:00
2190.636904FalseLogstash AirwaysVenice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Cloudy...0.000000Venice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Rain02018-01-01 17:11:14
3181.694216TrueKibana AirlinesTreviso-Sant'Angelo AirportTV01TrevisoIT{'lat': '45.648399', 'lon': '12.1944'}IT-34Clear...222.749059Naples International AirportNA01NaplesIT{'lat': '40.886002', 'lon': '14.2908'}IT-72Thunder & Lightning02018-01-01 10:33:28
4730.041778FalseKibana AirlinesXi'an Xianyang International AirportXIYXi'anCN{'lat': '34.447102', 'lon': '108.751999'}SE-BDClear...785.779071Licenciado Benito Juarez International AirportAICMMexico CityMX{'lat': '19.4363', 'lon': '-99.072098'}MX-DIFDamaging Wind02018-01-01 05:13:00
5418.152089FalseJetBeatsGenoa Cristoforo Colombo AirportGE01GenovaIT{'lat': '44.4133', 'lon': '8.8375'}IT-42Thunder & Lightning...393.590441Edmonton International AirportCYEGEdmontonCA{'lat': '53.30970001', 'lon': '-113.5800018'}CA-ABRain02018-01-01 01:43:03
6180.246816FalseJetBeatsZurich AirportZRHZurichCH{'lat': '47.464699', 'lon': '8.54917'}CH-ZHHail...300.000000Zurich AirportZRHZurichCH{'lat': '47.464699', 'lon': '8.54917'}CH-ZHClear02018-01-01 13:49:53
7585.184310FalseKibana AirlinesOttawa Macdonald-Cartier International AirportYOWOttawaCA{'lat': '45.32249832', 'lon': '-75.66919708'}CA-ONClear...614.942480Ciampino___G. B. Pastine International AirportRM12RomeIT{'lat': '41.7994', 'lon': '12.5949'}IT-62Thunder & Lightning02018-01-01 04:54:59
8960.869736TrueKibana AirlinesRajiv Gandhi International AirportHYDHyderabadIN{'lat': '17.23131752', 'lon': '78.42985535'}SE-BDCloudy...602.030591Milano Linate AirportMI11MilanIT{'lat': '45.445099', 'lon': '9.27674'}IT-25Heavy Fog02018-01-01 12:09:35
9296.877773FalseLogstash AirwaysTreviso-Sant'Angelo AirportTV01TrevisoIT{'lat': '45.648399', 'lon': '12.1944'}IT-34Rain...174.822216Sheremetyevo International AirportSVOMoscowRU{'lat': '55.972599', 'lon': '37.4146'}RU-MOSCloudy02018-01-01 12:09:35
10906.437948FalseJetBeatsHelsinki Vantaa AirportHELHelsinkiFI{'lat': '60.31719971', 'lon': '24.9633007'}FI-ESRain...503.045170Albuquerque International Sunport AirportABQAlbuquerqueUS{'lat': '35.040199', 'lon': '-106.609001'}US-NMRain02018-01-01 22:06:14
11704.463771FalseLogstash AirwaysVienna International AirportVIEViennaAT{'lat': '48.11029816', 'lon': '16.56970024'}AT-9Cloudy...36.075018Venice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Rain02018-01-01 11:52:34
12922.499077TrueLogstash AirwaysShanghai Pudong International AirportPVGShanghaiCN{'lat': '31.14340019', 'lon': '121.8050003'}SE-BDClear...679.768391Licenciado Benito Juarez International AirportAICMMexico CityMX{'lat': '19.4363', 'lon': '-99.072098'}MX-DIFHeavy Fog02018-01-01 02:13:46
13374.959276FalseLogstash AirwaysOttawa Macdonald-Cartier International AirportYOWOttawaCA{'lat': '45.32249832', 'lon': '-75.66919708'}CA-ONRain...330.418282Naples International AirportNA01NaplesIT{'lat': '40.886002', 'lon': '14.2908'}IT-72Rain02018-01-01 14:21:13
14552.917371FalseLogstash AirwaysLuis Munoz Marin International AirportSJUSan JuanPR{'lat': '18.43939972', 'lon': '-66.00180054'}PR-U-AClear...407.145031Ciampino___G. B. Pastine International AirportRM12RomeIT{'lat': '41.7994', 'lon': '12.5949'}IT-62Cloudy02018-01-01 17:42:53
15566.487557TrueKibana AirlinesCologne Bonn AirportCGNCologneDE{'lat': '50.86589813', 'lon': '7.142739773'}DE-NWSunny...656.712658Chengdu Shuangliu International AirportCTUChengduCN{'lat': '30.57850075', 'lon': '103.9469986'}SE-BDThunder & Lightning02018-01-01 19:55:32
16989.952787TrueLogstash AirwaysVenice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Damaging Wind...773.030334Licenciado Benito Juarez International AirportAICMMexico CityMX{'lat': '19.4363', 'lon': '-99.072098'}MX-DIFThunder & Lightning02018-01-01 07:49:27
17569.613255FalseES-AirMinistro Pistarini International AirportEZEBuenos AiresAR{'lat': '-34.8222', 'lon': '-58.5358'}SE-BDCloudy...704.716920Cleveland Hopkins International AirportCLEClevelandUS{'lat': '41.4117012', 'lon': '-81.84980011'}US-OHRain02018-01-01 01:30:47
18277.429707FalseES-AirShanghai Pudong International AirportPVGShanghaiCN{'lat': '31.14340019', 'lon': '121.8050003'}SE-BDClear...355.957996Olenya Air BaseXLMOOlenegorskRU{'lat': '68.15180206', 'lon': '33.46390152'}RU-MURHail02018-01-01 07:58:17
19772.100846FalseJetBeatsIndira Gandhi International AirportDELNew DelhiIN{'lat': '28.5665', 'lon': '77.103104'}SE-BDClear...875.114675Casper-Natrona County International AirportCPRCasperUS{'lat': '42.90800095', 'lon': '-106.4639969'}US-WYCloudy02018-01-01 00:02:06
20167.599922FalseJetBeatsWichita Mid Continent AirportICTWichitaUS{'lat': '37.64989853', 'lon': '-97.43309784'}US-KSClear...373.966883Erie International Tom Ridge FieldERIErieUS{'lat': '42.08312701', 'lon': '-80.17386675'}US-PACloudy02018-01-01 01:08:20
21253.210065FalseES-AirOttawa Macdonald-Cartier International AirportYOWOttawaCA{'lat': '45.32249832', 'lon': '-75.66919708'}CA-ONHail...130.667700Newark Liberty International AirportEWRNewarkUS{'lat': '40.69250107', 'lon': '-74.16870117'}US-NJClear02018-01-01 01:08:20
22917.247620FalseJetBeatsItami AirportITMOsakaJP{'lat': '34.78549957', 'lon': '135.4380035'}SE-BDDamaging Wind...574.495310Copenhagen Kastrup AirportCPHCopenhagenDK{'lat': '55.61790085', 'lon': '12.65600014'}DK-84Sunny02018-01-01 07:48:35
23451.591176FalseLogstash AirwaysVienna International AirportVIEViennaAT{'lat': '48.11029816', 'lon': '16.56970024'}AT-9Heavy Fog...579.728943Seattle Tacoma International AirportSEASeattleUS{'lat': '47.44900131', 'lon': '-122.3089981'}US-WAHeavy Fog02018-01-01 18:57:21
24307.067201FalseLogstash AirwaysCharles de Gaulle International AirportCDGParisFR{'lat': '49.01279831', 'lon': '2.549999952'}FR-JClear...50.157229Berlin-Tegel AirportTXLBerlinDE{'lat': '52.5597', 'lon': '13.2877'}DE-BERain02018-01-01 13:18:25
25268.241596FalseES-AirNarita International AirportNRTTokyoJP{'lat': '35.76470184', 'lon': '140.3860016'}SE-BDRain...527.567422Manchester AirportMANManchesterGB{'lat': '53.35369873', 'lon': '-2.274950027'}GB-ENGThunder & Lightning02018-01-01 08:20:35
26975.812632TrueKibana AirlinesItami AirportITMOsakaJP{'lat': '34.78549957', 'lon': '135.4380035'}SE-BDHail...386.259764Helsinki Vantaa AirportHELHelsinkiFI{'lat': '60.31719971', 'lon': '24.9633007'}FI-ESRain02018-01-01 15:38:32
27134.214546FalseJetBeatsSan Diego International AirportSANSan DiegoUS{'lat': '32.73360062', 'lon': '-117.1900024'}US-CAClear...24.479650Phoenix Sky Harbor International AirportPHXPhoenixUS{'lat': '33.43429947', 'lon': '-112.012001'}US-AZClear02018-01-01 03:08:45
28988.897564FalseKibana AirlinesVerona Villafranca AirportVR10VeronaIT{'lat': '45.395699', 'lon': '10.8885'}IT-34Sunny...568.351033New Chitose AirportCTSChitose / TomakomaiJP{'lat': '42.77519989', 'lon': '141.6920013'}SE-BDDamaging Wind02018-01-01 01:16:59
29511.067220FalseLogstash AirwaysZurich AirportZRHZurichCH{'lat': '47.464699', 'lon': '8.54917'}CH-ZHRain...425.889194Tulsa International AirportTULTulsaUS{'lat': '36.19839859', 'lon': '-95.88809967'}US-OKRain02018-01-01 18:00:59
..................................................................
13029795.905278FalseKibana AirlinesMalpensa International AirportMI12MilanIT{'lat': '45.6306', 'lon': '8.72811'}IT-25Sunny...534.375826Itami AirportITMOsakaJP{'lat': '34.78549957', 'lon': '135.4380035'}SE-BDSunny62018-02-11 20:10:13
13030863.388068FalseLogstash AirwaysXi'an Xianyang International AirportXIYXi'anCN{'lat': '34.447102', 'lon': '108.751999'}SE-BDDamaging Wind...141.172633Tokyo Haneda International AirportHNDTokyoJP{'lat': '35.552299', 'lon': '139.779999'}SE-BDClear62018-02-11 18:59:53
13031575.183008FalseJetBeatsSavannah Hilton Head International AirportSAVSavannahUS{'lat': '32.12760162', 'lon': '-81.20210266'}US-GAThunder & Lightning...1113.137060OR Tambo International AirportJNBJohannesburgZA{'lat': '-26.1392', 'lon': '28.246'}SE-BDHail62018-02-11 00:57:48
13032817.368952FalseJetBeatsSyracuse Hancock International AirportSYRSyracuseUS{'lat': '43.11119843', 'lon': '-76.10630035'}US-NYRain...714.964864El Dorado International AirportBOGBogotaCO{'lat': '4.70159', 'lon': '-74.1469'}CO-CUNThunder & Lightning62018-02-11 12:02:49
13033579.582455FalseES-AirTampa International AirportTPATampaUS{'lat': '27.97550011', 'lon': '-82.53320313'}US-FLRain...234.929046Jorge Chavez International AirportLIMLimaPE{'lat': '-12.0219', 'lon': '-77.114304'}SE-BDThunder & Lightning62018-02-11 02:07:40
130341004.916638FalseJetBeatsOlenya Air BaseXLMOOlenegorskRU{'lat': '68.15180206', 'lon': '33.46390152'}RU-MURClear...526.895776Gimpo International AirportGMPSeoulKR{'lat': '37.5583', 'lon': '126.791'}SE-BDSunny62018-02-11 00:35:04
13035357.562842TrueLogstash AirwaysShanghai Pudong International AirportPVGShanghaiCN{'lat': '31.14340019', 'lon': '121.8050003'}SE-BDThunder & Lightning...0.000000Shanghai Pudong International AirportPVGShanghaiCN{'lat': '31.14340019', 'lon': '121.8050003'}SE-BDThunder & Lightning62018-02-11 11:19:12
13036429.580539FalseLogstash AirwaysVenice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Sunny...150.000000Venice Marco Polo AirportVE05VeniceIT{'lat': '45.505299', 'lon': '12.3519'}IT-34Cloudy62018-02-11 15:07:11
13037729.788171TrueES-AirVienna International AirportVIEViennaAT{'lat': '48.11029816', 'lon': '16.56970024'}AT-9Rain...691.944839Ukrainka Air BaseXHBUBelogorskRU{'lat': '51.169997', 'lon': '128.445007'}RU-AMUDamaging Wind62018-02-11 10:24:42
13038564.897695FalseES-AirPisa International AirportPI05PisaIT{'lat': '43.683899', 'lon': '10.3927'}IT-52Heavy Fog...567.387339OR Tambo International AirportJNBJohannesburgZA{'lat': '-26.1392', 'lon': '28.246'}SE-BDDamaging Wind62018-02-11 00:42:06
130391014.052787FalseLogstash AirwaysVienna International AirportVIEViennaAT{'lat': '48.11029816', 'lon': '16.56970024'}AT-9Thunder & Lightning...690.092327Montreal / Pierre Elliott Trudeau Internationa...YULMontrealCA{'lat': '45.47060013', 'lon': '-73.74079895'}CA-QCThunder & Lightning62018-02-11 10:56:31
13040455.243843FalseES-AirLondon Luton AirportLTNLondonGB{'lat': '51.87469864', 'lon': '-0.368333012'}GB-ENGCloudy...3.028293London Heathrow AirportLHRLondonGB{'lat': '51.4706', 'lon': '-0.461941'}GB-ENGClear62018-02-11 00:39:37
13041611.370232FalseLogstash AirwaysJorge Chavez International AirportLIMLimaPE{'lat': '-12.0219', 'lon': '-77.114304'}SE-BDSunny...338.875531Casper-Natrona County International AirportCPRCasperUS{'lat': '42.90800095', 'lon': '-106.4639969'}US-WYRain62018-02-11 10:24:30
13042595.961285FalseJetBeatsOttawa Macdonald-Cartier International AirportYOWOttawaCA{'lat': '45.32249832', 'lon': '-75.66919708'}CA-ONClear...375.129587Frankfurt am Main AirportFRAFrankfurt am MainDE{'lat': '50.033333', 'lon': '8.570556'}DE-HEClear62018-02-11 09:02:07
13043782.747648FalseLogstash AirwaysXi'an Xianyang International AirportXIYXi'anCN{'lat': '34.447102', 'lon': '108.751999'}SE-BDClear...156.858481Tokyo Haneda International AirportHNDTokyoJP{'lat': '35.552299', 'lon': '139.779999'}SE-BDThunder & Lightning62018-02-11 04:45:06
13044891.117221FalseJetBeatsWinnipeg / James Armstrong Richardson Internat...YWGWinnipegCA{'lat': '49.90999985', 'lon': '-97.23989868'}CA-MBClear...354.106457Vienna International AirportVIEViennaAT{'lat': '48.11029816', 'lon': '16.56970024'}AT-9Thunder & Lightning62018-02-11 00:51:14
13045587.169921FalseLogstash AirwaysBrisbane International AirportBNEBrisbaneAU{'lat': '-27.38419914', 'lon': '153.1170044'}SE-BDRain...771.305442Amsterdam Airport SchipholAMSAmsterdamNL{'lat': '52.30860138', 'lon': '4.76388979'}NL-NHSunny62018-02-11 05:41:51
13046739.132165FalseLogstash AirwaysXi'an Xianyang International AirportXIYXi'anCN{'lat': '34.447102', 'lon': '108.751999'}SE-BDRain...542.955572Winnipeg / James Armstrong Richardson Internat...YWGWinnipegCA{'lat': '49.90999985', 'lon': '-97.23989868'}CA-MBHail62018-02-11 10:02:21
13047605.191876FalseJetBeatsPortland International Jetport AirportPWMPortlandUS{'lat': '43.64619827', 'lon': '-70.30930328'}US-METhunder & Lightning...564.599857Jeju International AirportCJUJeju CityKR{'lat': '33.51129913', 'lon': '126.4929962'}SE-BDCloudy62018-02-11 15:55:10
13048361.767659TrueLogstash AirwaysDubai International AirportDXBDubaiAE{'lat': '25.25279999', 'lon': '55.36439896'}SE-BDSunny...180.000000Dubai International AirportDXBDubaiAE{'lat': '25.25279999', 'lon': '55.36439896'}SE-BDHail62018-02-11 04:11:14
13049662.306992FalseES-AirWinnipeg / James Armstrong Richardson Internat...YWGWinnipegCA{'lat': '49.90999985', 'lon': '-97.23989868'}CA-MBHeavy Fog...835.954429Ministro Pistarini International AirportEZEBuenos AiresAR{'lat': '-34.8222', 'lon': '-58.5358'}AR-BSunny62018-02-11 10:13:32
13050630.779526FalseJetBeatsHelsinki Vantaa AirportHELHelsinkiFI{'lat': '60.31719971', 'lon': '24.9633007'}FI-ESSunny...451.755639Beijing Capital International AirportPEKBeijingCN{'lat': '40.08010101', 'lon': '116.5849991'}SE-BDCloudy62018-02-11 11:23:23
13051937.771279TrueLogstash AirwaysLester B. Pearson International AirportYYZTorontoCA{'lat': '43.67720032', 'lon': '-79.63059998'}CA-ONSunny...507.451571Leonardo da Vinci___Fiumicino AirportRM11RomeIT{'lat': '41.8002778', 'lon': '12.2388889'}IT-62Hail62018-02-11 01:13:50
130521085.155339FalseLogstash AirwaysMelbourne International AirportMELMelbourneAU{'lat': '-37.673302', 'lon': '144.843002'}SE-BDCloudy...1044.451122Bologna Guglielmo Marconi AirportBO08BolognaIT{'lat': '44.5354', 'lon': '11.2887'}IT-45Cloudy62018-02-11 18:35:42
130531191.964104FalseLogstash AirwaysZurich AirportZRHZurichCH{'lat': '47.464699', 'lon': '8.54917'}CH-ZHHail...728.715904Portland International Jetport AirportPWMPortlandUS{'lat': '43.64619827', 'lon': '-70.30930328'}US-MEClear62018-02-11 19:02:10
130541080.446279FalseLogstash AirwaysXi'an Xianyang International AirportXIYXi'anCN{'lat': '34.447102', 'lon': '108.751999'}SE-BDRain...402.929088Pisa International AirportPI05PisaIT{'lat': '43.683899', 'lon': '10.3927'}IT-52Sunny62018-02-11 20:42:25
13055646.612941FalseLogstash AirwaysZurich AirportZRHZurichCH{'lat': '47.464699', 'lon': '8.54917'}CH-ZHRain...644.418029Winnipeg / James Armstrong Richardson Internat...YWGWinnipegCA{'lat': '49.90999985', 'lon': '-97.23989868'}CA-MBRain62018-02-11 01:41:57
13056997.751876FalseLogstash AirwaysUkrainka Air BaseXHBUBelogorskRU{'lat': '51.169997', 'lon': '128.445007'}RU-AMURain...937.540811Licenciado Benito Juarez International AirportAICMMexico CityMX{'lat': '19.4363', 'lon': '-99.072098'}MX-DIFSunny62018-02-11 04:09:27
130571102.814465FalseJetBeatsMinistro Pistarini International AirportEZEBuenos AiresAR{'lat': '-34.8222', 'lon': '-58.5358'}SE-BDHail...1697.404971Itami AirportITMOsakaJP{'lat': '34.78549957', 'lon': '135.4380035'}SE-BDHail62018-02-11 08:28:21
13058858.144337FalseJetBeatsWashington Dulles International AirportIADWashingtonUS{'lat': '38.94449997', 'lon': '-77.45580292'}US-DCHeavy Fog...1610.761827Adelaide International AirportADLAdelaideAU{'lat': '-34.945', 'lon': '138.531006'}SE-BDRain62018-02-11 14:54:34
\n", + "
\n", + "

13059 rows x 27 columns

" + ], + "text/plain": [ + " AvgTicketPrice Cancelled Carrier \\\n", + "0 841.265642 False Kibana Airlines \n", + "1 882.982662 False Logstash Airways \n", + "2 190.636904 False Logstash Airways \n", + "3 181.694216 True Kibana Airlines \n", + "4 730.041778 False Kibana Airlines \n", + "5 418.152089 False JetBeats \n", + "6 180.246816 False JetBeats \n", + "7 585.184310 False Kibana Airlines \n", + "8 960.869736 True Kibana Airlines \n", + "9 296.877773 False Logstash Airways \n", + "10 906.437948 False JetBeats \n", + "11 704.463771 False Logstash Airways \n", + "12 922.499077 True Logstash Airways \n", + "13 374.959276 False Logstash Airways \n", + "14 552.917371 False Logstash Airways \n", + "15 566.487557 True Kibana Airlines \n", + "16 989.952787 True Logstash Airways \n", + "17 569.613255 False ES-Air \n", + "18 277.429707 False ES-Air \n", + "19 772.100846 False JetBeats \n", + "20 167.599922 False JetBeats \n", + "21 253.210065 False ES-Air \n", + "22 917.247620 False JetBeats \n", + "23 451.591176 False Logstash Airways \n", + "24 307.067201 False Logstash Airways \n", + "25 268.241596 False ES-Air \n", + "26 975.812632 True Kibana Airlines \n", + "27 134.214546 False JetBeats \n", + "28 988.897564 False Kibana Airlines \n", + "29 511.067220 False Logstash Airways \n", + "... ... ... ... \n", + "13029 795.905278 False Kibana Airlines \n", + "13030 863.388068 False Logstash Airways \n", + "13031 575.183008 False JetBeats \n", + "13032 817.368952 False JetBeats \n", + "13033 579.582455 False ES-Air \n", + "13034 1004.916638 False JetBeats \n", + "13035 357.562842 True Logstash Airways \n", + "13036 429.580539 False Logstash Airways \n", + "13037 729.788171 True ES-Air \n", + "13038 564.897695 False ES-Air \n", + "13039 1014.052787 False Logstash Airways \n", + "13040 455.243843 False ES-Air \n", + "13041 611.370232 False Logstash Airways \n", + "13042 595.961285 False JetBeats \n", + "13043 782.747648 False Logstash Airways \n", + "13044 891.117221 False JetBeats \n", + "13045 587.169921 False Logstash Airways \n", + "13046 739.132165 False Logstash Airways \n", + "13047 605.191876 False JetBeats \n", + "13048 361.767659 True Logstash Airways \n", + "13049 662.306992 False ES-Air \n", + "13050 630.779526 False JetBeats \n", + "13051 937.771279 True Logstash Airways \n", + "13052 1085.155339 False Logstash Airways \n", + "13053 1191.964104 False Logstash Airways \n", + "13054 1080.446279 False Logstash Airways \n", + "13055 646.612941 False Logstash Airways \n", + "13056 997.751876 False Logstash Airways \n", + "13057 1102.814465 False JetBeats \n", + "13058 858.144337 False JetBeats \n", + "\n", + " Dest DestAirportID \\\n", + "0 Sydney Kingsford Smith International Airport SYD \n", + "1 Venice Marco Polo Airport VE05 \n", + "2 Venice Marco Polo Airport VE05 \n", + "3 Treviso-Sant'Angelo Airport TV01 \n", + "4 Xi'an Xianyang International Airport XIY \n", + "5 Genoa Cristoforo Colombo Airport GE01 \n", + "6 Zurich Airport ZRH \n", + "7 Ottawa Macdonald-Cartier International Airport YOW \n", + "8 Rajiv Gandhi International Airport HYD \n", + "9 Treviso-Sant'Angelo Airport TV01 \n", + "10 Helsinki Vantaa Airport HEL \n", + "11 Vienna International Airport VIE \n", + "12 Shanghai Pudong International Airport PVG \n", + "13 Ottawa Macdonald-Cartier International Airport YOW \n", + "14 Luis Munoz Marin International Airport SJU \n", + "15 Cologne Bonn Airport CGN \n", + "16 Venice Marco Polo Airport VE05 \n", + "17 Ministro Pistarini International Airport EZE \n", + "18 Shanghai Pudong International Airport PVG \n", + "19 Indira Gandhi International Airport DEL \n", + "20 Wichita Mid Continent Airport ICT \n", + "21 Ottawa Macdonald-Cartier International Airport YOW \n", + "22 Itami Airport ITM \n", + "23 Vienna International Airport VIE \n", + "24 Charles de Gaulle International Airport CDG \n", + "25 Narita International Airport NRT \n", + "26 Itami Airport ITM \n", + "27 San Diego International Airport SAN \n", + "28 Verona Villafranca Airport VR10 \n", + "29 Zurich Airport ZRH \n", + "... ... ... \n", + "13029 Malpensa International Airport MI12 \n", + "13030 Xi'an Xianyang International Airport XIY \n", + "13031 Savannah Hilton Head International Airport SAV \n", + "13032 Syracuse Hancock International Airport SYR \n", + "13033 Tampa International Airport TPA \n", + "13034 Olenya Air Base XLMO \n", + "13035 Shanghai Pudong International Airport PVG \n", + "13036 Venice Marco Polo Airport VE05 \n", + "13037 Vienna International Airport VIE \n", + "13038 Pisa International Airport PI05 \n", + "13039 Vienna International Airport VIE \n", + "13040 London Luton Airport LTN \n", + "13041 Jorge Chavez International Airport LIM \n", + "13042 Ottawa Macdonald-Cartier International Airport YOW \n", + "13043 Xi'an Xianyang International Airport XIY \n", + "13044 Winnipeg / James Armstrong Richardson Internat... YWG \n", + "13045 Brisbane International Airport BNE \n", + "13046 Xi'an Xianyang International Airport XIY \n", + "13047 Portland International Jetport Airport PWM \n", + "13048 Dubai International Airport DXB \n", + "13049 Winnipeg / James Armstrong Richardson Internat... YWG \n", + "13050 Helsinki Vantaa Airport HEL \n", + "13051 Lester B. Pearson International Airport YYZ \n", + "13052 Melbourne International Airport MEL \n", + "13053 Zurich Airport ZRH \n", + "13054 Xi'an Xianyang International Airport XIY \n", + "13055 Zurich Airport ZRH \n", + "13056 Ukrainka Air Base XHBU \n", + "13057 Ministro Pistarini International Airport EZE \n", + "13058 Washington Dulles International Airport IAD \n", + "\n", + " DestCityName DestCountry \\\n", + "0 Sydney AU \n", + "1 Venice IT \n", + "2 Venice IT \n", + "3 Treviso IT \n", + "4 Xi'an CN \n", + "5 Genova IT \n", + "6 Zurich CH \n", + "7 Ottawa CA \n", + "8 Hyderabad IN \n", + "9 Treviso IT \n", + "10 Helsinki FI \n", + "11 Vienna AT \n", + "12 Shanghai CN \n", + "13 Ottawa CA \n", + "14 San Juan PR \n", + "15 Cologne DE \n", + "16 Venice IT \n", + "17 Buenos Aires AR \n", + "18 Shanghai CN \n", + "19 New Delhi IN \n", + "20 Wichita US \n", + "21 Ottawa CA \n", + "22 Osaka JP \n", + "23 Vienna AT \n", + "24 Paris FR \n", + "25 Tokyo JP \n", + "26 Osaka JP \n", + "27 San Diego US \n", + "28 Verona IT \n", + "29 Zurich CH \n", + "... ... ... \n", + "13029 Milan IT \n", + "13030 Xi'an CN \n", + "13031 Savannah US \n", + "13032 Syracuse US \n", + "13033 Tampa US \n", + "13034 Olenegorsk RU \n", + "13035 Shanghai CN \n", + "13036 Venice IT \n", + "13037 Vienna AT \n", + "13038 Pisa IT \n", + "13039 Vienna AT \n", + "13040 London GB \n", + "13041 Lima PE \n", + "13042 Ottawa CA \n", + "13043 Xi'an CN \n", + "13044 Winnipeg CA \n", + "13045 Brisbane AU \n", + "13046 Xi'an CN \n", + "13047 Portland US \n", + "13048 Dubai AE \n", + "13049 Winnipeg CA \n", + "13050 Helsinki FI \n", + "13051 Toronto CA \n", + "13052 Melbourne AU \n", + "13053 Zurich CH \n", + "13054 Xi'an CN \n", + "13055 Zurich CH \n", + "13056 Belogorsk RU \n", + "13057 Buenos Aires AR \n", + "13058 Washington US \n", + "\n", + " DestLocation DestRegion \\\n", + "0 {'lat': '-33.94609833', 'lon': '151.177002'} SE-BD \n", + "1 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "2 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "3 {'lat': '45.648399', 'lon': '12.1944'} IT-34 \n", + "4 {'lat': '34.447102', 'lon': '108.751999'} SE-BD \n", + "5 {'lat': '44.4133', 'lon': '8.8375'} IT-42 \n", + "6 {'lat': '47.464699', 'lon': '8.54917'} CH-ZH \n", + "7 {'lat': '45.32249832', 'lon': '-75.66919708'} CA-ON \n", + "8 {'lat': '17.23131752', 'lon': '78.42985535'} SE-BD \n", + "9 {'lat': '45.648399', 'lon': '12.1944'} IT-34 \n", + "10 {'lat': '60.31719971', 'lon': '24.9633007'} FI-ES \n", + "11 {'lat': '48.11029816', 'lon': '16.56970024'} AT-9 \n", + "12 {'lat': '31.14340019', 'lon': '121.8050003'} SE-BD \n", + "13 {'lat': '45.32249832', 'lon': '-75.66919708'} CA-ON \n", + "14 {'lat': '18.43939972', 'lon': '-66.00180054'} PR-U-A \n", + "15 {'lat': '50.86589813', 'lon': '7.142739773'} DE-NW \n", + "16 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "17 {'lat': '-34.8222', 'lon': '-58.5358'} SE-BD \n", + "18 {'lat': '31.14340019', 'lon': '121.8050003'} SE-BD \n", + "19 {'lat': '28.5665', 'lon': '77.103104'} SE-BD \n", + "20 {'lat': '37.64989853', 'lon': '-97.43309784'} US-KS \n", + "21 {'lat': '45.32249832', 'lon': '-75.66919708'} CA-ON \n", + "22 {'lat': '34.78549957', 'lon': '135.4380035'} SE-BD \n", + "23 {'lat': '48.11029816', 'lon': '16.56970024'} AT-9 \n", + "24 {'lat': '49.01279831', 'lon': '2.549999952'} FR-J \n", + "25 {'lat': '35.76470184', 'lon': '140.3860016'} SE-BD \n", + "26 {'lat': '34.78549957', 'lon': '135.4380035'} SE-BD \n", + "27 {'lat': '32.73360062', 'lon': '-117.1900024'} US-CA \n", + "28 {'lat': '45.395699', 'lon': '10.8885'} IT-34 \n", + "29 {'lat': '47.464699', 'lon': '8.54917'} CH-ZH \n", + "... ... ... \n", + "13029 {'lat': '45.6306', 'lon': '8.72811'} IT-25 \n", + "13030 {'lat': '34.447102', 'lon': '108.751999'} SE-BD \n", + "13031 {'lat': '32.12760162', 'lon': '-81.20210266'} US-GA \n", + "13032 {'lat': '43.11119843', 'lon': '-76.10630035'} US-NY \n", + "13033 {'lat': '27.97550011', 'lon': '-82.53320313'} US-FL \n", + "13034 {'lat': '68.15180206', 'lon': '33.46390152'} RU-MUR \n", + "13035 {'lat': '31.14340019', 'lon': '121.8050003'} SE-BD \n", + "13036 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "13037 {'lat': '48.11029816', 'lon': '16.56970024'} AT-9 \n", + "13038 {'lat': '43.683899', 'lon': '10.3927'} IT-52 \n", + "13039 {'lat': '48.11029816', 'lon': '16.56970024'} AT-9 \n", + "13040 {'lat': '51.87469864', 'lon': '-0.368333012'} GB-ENG \n", + "13041 {'lat': '-12.0219', 'lon': '-77.114304'} SE-BD \n", + "13042 {'lat': '45.32249832', 'lon': '-75.66919708'} CA-ON \n", + "13043 {'lat': '34.447102', 'lon': '108.751999'} SE-BD \n", + "13044 {'lat': '49.90999985', 'lon': '-97.23989868'} CA-MB \n", + "13045 {'lat': '-27.38419914', 'lon': '153.1170044'} SE-BD \n", + "13046 {'lat': '34.447102', 'lon': '108.751999'} SE-BD \n", + "13047 {'lat': '43.64619827', 'lon': '-70.30930328'} US-ME \n", + "13048 {'lat': '25.25279999', 'lon': '55.36439896'} SE-BD \n", + "13049 {'lat': '49.90999985', 'lon': '-97.23989868'} CA-MB \n", + "13050 {'lat': '60.31719971', 'lon': '24.9633007'} FI-ES \n", + "13051 {'lat': '43.67720032', 'lon': '-79.63059998'} CA-ON \n", + "13052 {'lat': '-37.673302', 'lon': '144.843002'} SE-BD \n", + "13053 {'lat': '47.464699', 'lon': '8.54917'} CH-ZH \n", + "13054 {'lat': '34.447102', 'lon': '108.751999'} SE-BD \n", + "13055 {'lat': '47.464699', 'lon': '8.54917'} CH-ZH \n", + "13056 {'lat': '51.169997', 'lon': '128.445007'} RU-AMU \n", + "13057 {'lat': '-34.8222', 'lon': '-58.5358'} SE-BD \n", + "13058 {'lat': '38.94449997', 'lon': '-77.45580292'} US-DC \n", + "\n", + " DestWeather ... FlightTimeMin \\\n", + "0 Rain ... 1030.770416 \n", + "1 Sunny ... 464.389481 \n", + "2 Cloudy ... 0.000000 \n", + "3 Clear ... 222.749059 \n", + "4 Clear ... 785.779071 \n", + "5 Thunder & Lightning ... 393.590441 \n", + "6 Hail ... 300.000000 \n", + "7 Clear ... 614.942480 \n", + "8 Cloudy ... 602.030591 \n", + "9 Rain ... 174.822216 \n", + "10 Rain ... 503.045170 \n", + "11 Cloudy ... 36.075018 \n", + "12 Clear ... 679.768391 \n", + "13 Rain ... 330.418282 \n", + "14 Clear ... 407.145031 \n", + "15 Sunny ... 656.712658 \n", + "16 Damaging Wind ... 773.030334 \n", + "17 Cloudy ... 704.716920 \n", + "18 Clear ... 355.957996 \n", + "19 Clear ... 875.114675 \n", + "20 Clear ... 373.966883 \n", + "21 Hail ... 130.667700 \n", + "22 Damaging Wind ... 574.495310 \n", + "23 Heavy Fog ... 579.728943 \n", + "24 Clear ... 50.157229 \n", + "25 Rain ... 527.567422 \n", + "26 Hail ... 386.259764 \n", + "27 Clear ... 24.479650 \n", + "28 Sunny ... 568.351033 \n", + "29 Rain ... 425.889194 \n", + "... ... ... ... \n", + "13029 Sunny ... 534.375826 \n", + "13030 Damaging Wind ... 141.172633 \n", + "13031 Thunder & Lightning ... 1113.137060 \n", + "13032 Rain ... 714.964864 \n", + "13033 Rain ... 234.929046 \n", + "13034 Clear ... 526.895776 \n", + "13035 Thunder & Lightning ... 0.000000 \n", + "13036 Sunny ... 150.000000 \n", + "13037 Rain ... 691.944839 \n", + "13038 Heavy Fog ... 567.387339 \n", + "13039 Thunder & Lightning ... 690.092327 \n", + "13040 Cloudy ... 3.028293 \n", + "13041 Sunny ... 338.875531 \n", + "13042 Clear ... 375.129587 \n", + "13043 Clear ... 156.858481 \n", + "13044 Clear ... 354.106457 \n", + "13045 Rain ... 771.305442 \n", + "13046 Rain ... 542.955572 \n", + "13047 Thunder & Lightning ... 564.599857 \n", + "13048 Sunny ... 180.000000 \n", + "13049 Heavy Fog ... 835.954429 \n", + "13050 Sunny ... 451.755639 \n", + "13051 Sunny ... 507.451571 \n", + "13052 Cloudy ... 1044.451122 \n", + "13053 Hail ... 728.715904 \n", + "13054 Rain ... 402.929088 \n", + "13055 Rain ... 644.418029 \n", + "13056 Rain ... 937.540811 \n", + "13057 Hail ... 1697.404971 \n", + "13058 Heavy Fog ... 1610.761827 \n", + "\n", + " Origin OriginAirportID \\\n", + "0 Frankfurt am Main Airport FRA \n", + "1 Cape Town International Airport CPT \n", + "2 Venice Marco Polo Airport VE05 \n", + "3 Naples International Airport NA01 \n", + "4 Licenciado Benito Juarez International Airport AICM \n", + "5 Edmonton International Airport CYEG \n", + "6 Zurich Airport ZRH \n", + "7 Ciampino___G. B. Pastine International Airport RM12 \n", + "8 Milano Linate Airport MI11 \n", + "9 Sheremetyevo International Airport SVO \n", + "10 Albuquerque International Sunport Airport ABQ \n", + "11 Venice Marco Polo Airport VE05 \n", + "12 Licenciado Benito Juarez International Airport AICM \n", + "13 Naples International Airport NA01 \n", + "14 Ciampino___G. B. Pastine International Airport RM12 \n", + "15 Chengdu Shuangliu International Airport CTU \n", + "16 Licenciado Benito Juarez International Airport AICM \n", + "17 Cleveland Hopkins International Airport CLE \n", + "18 Olenya Air Base XLMO \n", + "19 Casper-Natrona County International Airport CPR \n", + "20 Erie International Tom Ridge Field ERI \n", + "21 Newark Liberty International Airport EWR \n", + "22 Copenhagen Kastrup Airport CPH \n", + "23 Seattle Tacoma International Airport SEA \n", + "24 Berlin-Tegel Airport TXL \n", + "25 Manchester Airport MAN \n", + "26 Helsinki Vantaa Airport HEL \n", + "27 Phoenix Sky Harbor International Airport PHX \n", + "28 New Chitose Airport CTS \n", + "29 Tulsa International Airport TUL \n", + "... ... ... \n", + "13029 Itami Airport ITM \n", + "13030 Tokyo Haneda International Airport HND \n", + "13031 OR Tambo International Airport JNB \n", + "13032 El Dorado International Airport BOG \n", + "13033 Jorge Chavez International Airport LIM \n", + "13034 Gimpo International Airport GMP \n", + "13035 Shanghai Pudong International Airport PVG \n", + "13036 Venice Marco Polo Airport VE05 \n", + "13037 Ukrainka Air Base XHBU \n", + "13038 OR Tambo International Airport JNB \n", + "13039 Montreal / Pierre Elliott Trudeau Internationa... YUL \n", + "13040 London Heathrow Airport LHR \n", + "13041 Casper-Natrona County International Airport CPR \n", + "13042 Frankfurt am Main Airport FRA \n", + "13043 Tokyo Haneda International Airport HND \n", + "13044 Vienna International Airport VIE \n", + "13045 Amsterdam Airport Schiphol AMS \n", + "13046 Winnipeg / James Armstrong Richardson Internat... YWG \n", + "13047 Jeju International Airport CJU \n", + "13048 Dubai International Airport DXB \n", + "13049 Ministro Pistarini International Airport EZE \n", + "13050 Beijing Capital International Airport PEK \n", + "13051 Leonardo da Vinci___Fiumicino Airport RM11 \n", + "13052 Bologna Guglielmo Marconi Airport BO08 \n", + "13053 Portland International Jetport Airport PWM \n", + "13054 Pisa International Airport PI05 \n", + "13055 Winnipeg / James Armstrong Richardson Internat... YWG \n", + "13056 Licenciado Benito Juarez International Airport AICM \n", + "13057 Itami Airport ITM \n", + "13058 Adelaide International Airport ADL \n", + "\n", + " OriginCityName OriginCountry \\\n", + "0 Frankfurt am Main DE \n", + "1 Cape Town ZA \n", + "2 Venice IT \n", + "3 Naples IT \n", + "4 Mexico City MX \n", + "5 Edmonton CA \n", + "6 Zurich CH \n", + "7 Rome IT \n", + "8 Milan IT \n", + "9 Moscow RU \n", + "10 Albuquerque US \n", + "11 Venice IT \n", + "12 Mexico City MX \n", + "13 Naples IT \n", + "14 Rome IT \n", + "15 Chengdu CN \n", + "16 Mexico City MX \n", + "17 Cleveland US \n", + "18 Olenegorsk RU \n", + "19 Casper US \n", + "20 Erie US \n", + "21 Newark US \n", + "22 Copenhagen DK \n", + "23 Seattle US \n", + "24 Berlin DE \n", + "25 Manchester GB \n", + "26 Helsinki FI \n", + "27 Phoenix US \n", + "28 Chitose / Tomakomai JP \n", + "29 Tulsa US \n", + "... ... ... \n", + "13029 Osaka JP \n", + "13030 Tokyo JP \n", + "13031 Johannesburg ZA \n", + "13032 Bogota CO \n", + "13033 Lima PE \n", + "13034 Seoul KR \n", + "13035 Shanghai CN \n", + "13036 Venice IT \n", + "13037 Belogorsk RU \n", + "13038 Johannesburg ZA \n", + "13039 Montreal CA \n", + "13040 London GB \n", + "13041 Casper US \n", + "13042 Frankfurt am Main DE \n", + "13043 Tokyo JP \n", + "13044 Vienna AT \n", + "13045 Amsterdam NL \n", + "13046 Winnipeg CA \n", + "13047 Jeju City KR \n", + "13048 Dubai AE \n", + "13049 Buenos Aires AR \n", + "13050 Beijing CN \n", + "13051 Rome IT \n", + "13052 Bologna IT \n", + "13053 Portland US \n", + "13054 Pisa IT \n", + "13055 Winnipeg CA \n", + "13056 Mexico City MX \n", + "13057 Osaka JP \n", + "13058 Adelaide AU \n", + "\n", + " OriginLocation OriginRegion \\\n", + "0 {'lat': '50.033333', 'lon': '8.570556'} DE-HE \n", + "1 {'lat': '-33.96480179', 'lon': '18.60169983'} SE-BD \n", + "2 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "3 {'lat': '40.886002', 'lon': '14.2908'} IT-72 \n", + "4 {'lat': '19.4363', 'lon': '-99.072098'} MX-DIF \n", + "5 {'lat': '53.30970001', 'lon': '-113.5800018'} CA-AB \n", + "6 {'lat': '47.464699', 'lon': '8.54917'} CH-ZH \n", + "7 {'lat': '41.7994', 'lon': '12.5949'} IT-62 \n", + "8 {'lat': '45.445099', 'lon': '9.27674'} IT-25 \n", + "9 {'lat': '55.972599', 'lon': '37.4146'} RU-MOS \n", + "10 {'lat': '35.040199', 'lon': '-106.609001'} US-NM \n", + "11 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "12 {'lat': '19.4363', 'lon': '-99.072098'} MX-DIF \n", + "13 {'lat': '40.886002', 'lon': '14.2908'} IT-72 \n", + "14 {'lat': '41.7994', 'lon': '12.5949'} IT-62 \n", + "15 {'lat': '30.57850075', 'lon': '103.9469986'} SE-BD \n", + "16 {'lat': '19.4363', 'lon': '-99.072098'} MX-DIF \n", + "17 {'lat': '41.4117012', 'lon': '-81.84980011'} US-OH \n", + "18 {'lat': '68.15180206', 'lon': '33.46390152'} RU-MUR \n", + "19 {'lat': '42.90800095', 'lon': '-106.4639969'} US-WY \n", + "20 {'lat': '42.08312701', 'lon': '-80.17386675'} US-PA \n", + "21 {'lat': '40.69250107', 'lon': '-74.16870117'} US-NJ \n", + "22 {'lat': '55.61790085', 'lon': '12.65600014'} DK-84 \n", + "23 {'lat': '47.44900131', 'lon': '-122.3089981'} US-WA \n", + "24 {'lat': '52.5597', 'lon': '13.2877'} DE-BE \n", + "25 {'lat': '53.35369873', 'lon': '-2.274950027'} GB-ENG \n", + "26 {'lat': '60.31719971', 'lon': '24.9633007'} FI-ES \n", + "27 {'lat': '33.43429947', 'lon': '-112.012001'} US-AZ \n", + "28 {'lat': '42.77519989', 'lon': '141.6920013'} SE-BD \n", + "29 {'lat': '36.19839859', 'lon': '-95.88809967'} US-OK \n", + "... ... ... \n", + "13029 {'lat': '34.78549957', 'lon': '135.4380035'} SE-BD \n", + "13030 {'lat': '35.552299', 'lon': '139.779999'} SE-BD \n", + "13031 {'lat': '-26.1392', 'lon': '28.246'} SE-BD \n", + "13032 {'lat': '4.70159', 'lon': '-74.1469'} CO-CUN \n", + "13033 {'lat': '-12.0219', 'lon': '-77.114304'} SE-BD \n", + "13034 {'lat': '37.5583', 'lon': '126.791'} SE-BD \n", + "13035 {'lat': '31.14340019', 'lon': '121.8050003'} SE-BD \n", + "13036 {'lat': '45.505299', 'lon': '12.3519'} IT-34 \n", + "13037 {'lat': '51.169997', 'lon': '128.445007'} RU-AMU \n", + "13038 {'lat': '-26.1392', 'lon': '28.246'} SE-BD \n", + "13039 {'lat': '45.47060013', 'lon': '-73.74079895'} CA-QC \n", + "13040 {'lat': '51.4706', 'lon': '-0.461941'} GB-ENG \n", + "13041 {'lat': '42.90800095', 'lon': '-106.4639969'} US-WY \n", + "13042 {'lat': '50.033333', 'lon': '8.570556'} DE-HE \n", + "13043 {'lat': '35.552299', 'lon': '139.779999'} SE-BD \n", + "13044 {'lat': '48.11029816', 'lon': '16.56970024'} AT-9 \n", + "13045 {'lat': '52.30860138', 'lon': '4.76388979'} NL-NH \n", + "13046 {'lat': '49.90999985', 'lon': '-97.23989868'} CA-MB \n", + "13047 {'lat': '33.51129913', 'lon': '126.4929962'} SE-BD \n", + "13048 {'lat': '25.25279999', 'lon': '55.36439896'} SE-BD \n", + "13049 {'lat': '-34.8222', 'lon': '-58.5358'} AR-B \n", + "13050 {'lat': '40.08010101', 'lon': '116.5849991'} SE-BD \n", + "13051 {'lat': '41.8002778', 'lon': '12.2388889'} IT-62 \n", + "13052 {'lat': '44.5354', 'lon': '11.2887'} IT-45 \n", + "13053 {'lat': '43.64619827', 'lon': '-70.30930328'} US-ME \n", + "13054 {'lat': '43.683899', 'lon': '10.3927'} IT-52 \n", + "13055 {'lat': '49.90999985', 'lon': '-97.23989868'} CA-MB \n", + "13056 {'lat': '19.4363', 'lon': '-99.072098'} MX-DIF \n", + "13057 {'lat': '34.78549957', 'lon': '135.4380035'} SE-BD \n", + "13058 {'lat': '-34.945', 'lon': '138.531006'} SE-BD \n", + "\n", + " OriginWeather dayOfWeek timestamp \n", + "0 Sunny 0 2018-01-01 00:00:00 \n", + "1 Clear 0 2018-01-01 18:27:00 \n", + "2 Rain 0 2018-01-01 17:11:14 \n", + "3 Thunder & Lightning 0 2018-01-01 10:33:28 \n", + "4 Damaging Wind 0 2018-01-01 05:13:00 \n", + "5 Rain 0 2018-01-01 01:43:03 \n", + "6 Clear 0 2018-01-01 13:49:53 \n", + "7 Thunder & Lightning 0 2018-01-01 04:54:59 \n", + "8 Heavy Fog 0 2018-01-01 12:09:35 \n", + "9 Cloudy 0 2018-01-01 12:09:35 \n", + "10 Rain 0 2018-01-01 22:06:14 \n", + "11 Rain 0 2018-01-01 11:52:34 \n", + "12 Heavy Fog 0 2018-01-01 02:13:46 \n", + "13 Rain 0 2018-01-01 14:21:13 \n", + "14 Cloudy 0 2018-01-01 17:42:53 \n", + "15 Thunder & Lightning 0 2018-01-01 19:55:32 \n", + "16 Thunder & Lightning 0 2018-01-01 07:49:27 \n", + "17 Rain 0 2018-01-01 01:30:47 \n", + "18 Hail 0 2018-01-01 07:58:17 \n", + "19 Cloudy 0 2018-01-01 00:02:06 \n", + "20 Cloudy 0 2018-01-01 01:08:20 \n", + "21 Clear 0 2018-01-01 01:08:20 \n", + "22 Sunny 0 2018-01-01 07:48:35 \n", + "23 Heavy Fog 0 2018-01-01 18:57:21 \n", + "24 Rain 0 2018-01-01 13:18:25 \n", + "25 Thunder & Lightning 0 2018-01-01 08:20:35 \n", + "26 Rain 0 2018-01-01 15:38:32 \n", + "27 Clear 0 2018-01-01 03:08:45 \n", + "28 Damaging Wind 0 2018-01-01 01:16:59 \n", + "29 Rain 0 2018-01-01 18:00:59 \n", + "... ... ... ... \n", + "13029 Sunny 6 2018-02-11 20:10:13 \n", + "13030 Clear 6 2018-02-11 18:59:53 \n", + "13031 Hail 6 2018-02-11 00:57:48 \n", + "13032 Thunder & Lightning 6 2018-02-11 12:02:49 \n", + "13033 Thunder & Lightning 6 2018-02-11 02:07:40 \n", + "13034 Sunny 6 2018-02-11 00:35:04 \n", + "13035 Thunder & Lightning 6 2018-02-11 11:19:12 \n", + "13036 Cloudy 6 2018-02-11 15:07:11 \n", + "13037 Damaging Wind 6 2018-02-11 10:24:42 \n", + "13038 Damaging Wind 6 2018-02-11 00:42:06 \n", + "13039 Thunder & Lightning 6 2018-02-11 10:56:31 \n", + "13040 Clear 6 2018-02-11 00:39:37 \n", + "13041 Rain 6 2018-02-11 10:24:30 \n", + "13042 Clear 6 2018-02-11 09:02:07 \n", + "13043 Thunder & Lightning 6 2018-02-11 04:45:06 \n", + "13044 Thunder & Lightning 6 2018-02-11 00:51:14 \n", + "13045 Sunny 6 2018-02-11 05:41:51 \n", + "13046 Hail 6 2018-02-11 10:02:21 \n", + "13047 Cloudy 6 2018-02-11 15:55:10 \n", + "13048 Hail 6 2018-02-11 04:11:14 \n", + "13049 Sunny 6 2018-02-11 10:13:32 \n", + "13050 Cloudy 6 2018-02-11 11:23:23 \n", + "13051 Hail 6 2018-02-11 01:13:50 \n", + "13052 Cloudy 6 2018-02-11 18:35:42 \n", + "13053 Clear 6 2018-02-11 19:02:10 \n", + "13054 Sunny 6 2018-02-11 20:42:25 \n", + "13055 Rain 6 2018-02-11 01:41:57 \n", + "13056 Sunny 6 2018-02-11 04:09:27 \n", + "13057 Hail 6 2018-02-11 08:28:21 \n", + "13058 Rain 6 2018-02-11 14:54:34 \n", + "\n", + "[13059 rows x 27 columns]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ed_flights" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Quick dump of underlying task list**" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Dest 1678\n", + "Origin 1678\n", + "dtype: int64" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ed_dest_origin_cancelled = ed_flights[ed_flights.Cancelled == True][['Dest', 'Origin']]\n", + "\n", + "ed_dest_origin_cancelled.count()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "index_pattern: flights\n", + "Index:\n", + "\tindex_field: _id\n", + "\tis_source_field: False\n", + "Mappings:\n", + "\tcapabilities: _source es_dtype pd_dtype searchable \\\n", + "AvgTicketPrice True float float64 True \n", + "Cancelled True boolean bool True \n", + "Carrier True keyword object True \n", + "Dest True keyword object True \n", + "DestAirportID True keyword object True \n", + "DestCityName True keyword object True \n", + "DestCountry True keyword object True \n", + "DestLocation True geo_point object True \n", + "DestRegion True keyword object True \n", + "DestWeather True keyword object True \n", + "DistanceKilometers True float float64 True \n", + "DistanceMiles True float float64 True \n", + "FlightDelay True boolean bool True \n", + "FlightDelayMin True integer int64 True \n", + "FlightDelayType True keyword object True \n", + "FlightNum True keyword object True \n", + "FlightTimeHour True float float64 True \n", + "FlightTimeMin True float float64 True \n", + "Origin True keyword object True \n", + "OriginAirportID True keyword object True \n", + "OriginCityName True keyword object True \n", + "OriginCountry True keyword object True \n", + "OriginLocation True geo_point object True \n", + "OriginRegion True keyword object True \n", + "OriginWeather True keyword object True \n", + "dayOfWeek True integer int64 True \n", + "timestamp True date datetime64[ns] True \n", + "\n", + " aggregatable \n", + "AvgTicketPrice True \n", + "Cancelled True \n", + "Carrier True \n", + "Dest True \n", + "DestAirportID True \n", + "DestCityName True \n", + "DestCountry True \n", + "DestLocation True \n", + "DestRegion True \n", + "DestWeather True \n", + "DistanceKilometers True \n", + "DistanceMiles True \n", + "FlightDelay True \n", + "FlightDelayMin True \n", + "FlightDelayType True \n", + "FlightNum True \n", + "FlightTimeHour True \n", + "FlightTimeMin True \n", + "Origin True \n", + "OriginAirportID True \n", + "OriginCityName True \n", + "OriginCountry True \n", + "OriginLocation True \n", + "OriginRegion True \n", + "OriginWeather True \n", + "dayOfWeek True \n", + "timestamp True \n", + "Operations:\n", + "\ttasks: [('boolean_filter', {'term': {'Cancelled': True}}), ('columns', ['Dest', 'Origin']), ('tail', ('_doc', 5))]\n", + "\tsize: 5\n", + "\tsort_params: _doc:desc\n", + "\tcolumns: ['Dest', 'Origin']\n", + "\tpost_processing: ['sort_index']\n", + "\n" + ] + } + ], + "source": [ + "print(ed_dest_origin_cancelled.tail().info_es())" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "AvgTicketPrice float64\n", + "Cancelled bool\n", + "Carrier object\n", + "Dest object\n", + "DestAirportID object\n", + "DestCityName object\n", + "DestCountry object\n", + "DestLocation object\n", + "DestRegion object\n", + "DestWeather object\n", + "DistanceKilometers float64\n", + "DistanceMiles float64\n", + "FlightDelay bool\n", + "FlightDelayMin int64\n", + "FlightDelayType object\n", + "FlightNum object\n", + "FlightTimeHour float64\n", + "FlightTimeMin float64\n", + "Origin object\n", + "OriginAirportID object\n", + "OriginCityName object\n", + "OriginCountry object\n", + "OriginLocation object\n", + "OriginRegion object\n", + "OriginWeather object\n", + "dayOfWeek int64\n", + "timestamp datetime64[ns]\n", + "dtype: object" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ed_flights.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['AvgTicketPrice', 'DistanceKilometers', 'DistanceMiles',\n", + " 'FlightDelayMin', 'FlightTimeHour', 'FlightTimeMin', 'dayOfWeek'],\n", + " dtype='object')" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ed_numeric_fields = ed_flights.select_dtypes(include=[np.number])\n", + "\n", + "ed_numeric_fields.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "AvgTicketPrice float64\n", + "DistanceKilometers float64\n", + "DistanceMiles float64\n", + "FlightDelayMin int64\n", + "FlightTimeHour float64\n", + "FlightTimeMin float64\n", + "dayOfWeek int64\n", + "dtype: object" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ed_numeric_fields.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "AvgTicketPrice 8.204365e+06\n", + "DistanceKilometers 9.261629e+07\n", + "DistanceMiles 5.754909e+07\n", + "FlightDelayMin 6.181500e+05\n", + "FlightTimeHour 1.112470e+05\n", + "FlightTimeMin 6.674818e+06\n", + "dayOfWeek 3.703500e+04\n", + "dtype: float64" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ed_numeric_fields.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "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", + "
AvgTicketPriceDistanceKilometersDistanceMilesFlightDelayMinFlightTimeHourFlightTimeMindayOfWeek
min100.0205310.0000000.0000000.0000000.0000000.0000000.000000
std266.3866614578.2631932844.80085596.7430065.579019334.7411351.939365
mean628.2536897092.1424574406.85301047.3351718.518797511.1278422.835975
\n", + "
" + ], + "text/plain": [ + " AvgTicketPrice DistanceKilometers DistanceMiles FlightDelayMin \\\n", + "min 100.020531 0.000000 0.000000 0.000000 \n", + "std 266.386661 4578.263193 2844.800855 96.743006 \n", + "mean 628.253689 7092.142457 4406.853010 47.335171 \n", + "\n", + " FlightTimeHour FlightTimeMin dayOfWeek \n", + "min 0.000000 0.000000 0.000000 \n", + "std 5.579019 334.741135 1.939365 \n", + "mean 8.518797 511.127842 2.835975 " + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ed_numeric_fields.aggregate(['min', 'std', 'mean'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plotting" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ed_numeric_fields.hist(figsize=[10,10])\n", + "#ed_numeric_fields.hist(figsize=[10,10], bins=20, log=True)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Compare with pandas" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "pd_flights.select_dtypes(include=[np.number]).hist(figsize=[10,10])\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Filtering" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "ed_jetbeats_routes = ed_flights[(ed_flights.Carrier == 'JetBeats') & (ed_flights.Cancelled == True)]\n", + "\n", + "ed_jetbeats_routes = ed_jetbeats_routes[['OriginAirportID', 'DestAirportID']]" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "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", + " \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", + " \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", + "
OriginAirportIDDestAirportID
77AICMMAN
125RM11CTS
131CTURM11
156AICMRST
175TV01XIY
195GMPRM11
227DWCBNA
245ITMUIO
257UIOEZE
304ITMSJU
319AICMUIO
361NGONA01
381SCLTUL
402XLMOZRH
417CANMUC
455CGNMI12
457CDGRM11
523GMPVIE
532BCNICN
535MELXLMO
551TUSVR10
554CA07JFK
566BILPI05
600PI05VIE
638MADMCI
694SVOTO11
714ISTMEM
715HELMI12
728LTNSVO
748FCONRT
.........
11931EZEPVG
11933NRTSHA
11971CA07BOG
11981CT03CTS
12063GE01GE01
12098DWCHEL
12201KIXEZE
12206YULIAD
12215SYRYWG
12330DELPI05
12336MELNA01
12347BO08MUC
12365NGOCYEG
12384VIEXIY
12400CA07CTS
12432CYEGHYD
12458YWGYWG
12464VIEVIE
12488DLHXHBU
12533JNBHYD
12601PVGPVG
12619FRAOSL
12673GE01EZE
12690UIOHND
12722VR10YWG
12729BNECPT
12745CGNYYZ
12871TPATV01
12955ZRHZRH
13003TO11WAW
\n", + "
\n", + "

441 rows x 2 columns

" + ], + "text/plain": [ + " OriginAirportID DestAirportID\n", + "77 AICM MAN\n", + "125 RM11 CTS\n", + "131 CTU RM11\n", + "156 AICM RST\n", + "175 TV01 XIY\n", + "195 GMP RM11\n", + "227 DWC BNA\n", + "245 ITM UIO\n", + "257 UIO EZE\n", + "304 ITM SJU\n", + "319 AICM UIO\n", + "361 NGO NA01\n", + "381 SCL TUL\n", + "402 XLMO ZRH\n", + "417 CAN MUC\n", + "455 CGN MI12\n", + "457 CDG RM11\n", + "523 GMP VIE\n", + "532 BCN ICN\n", + "535 MEL XLMO\n", + "551 TUS VR10\n", + "554 CA07 JFK\n", + "566 BIL PI05\n", + "600 PI05 VIE\n", + "638 MAD MCI\n", + "694 SVO TO11\n", + "714 IST MEM\n", + "715 HEL MI12\n", + "728 LTN SVO\n", + "748 FCO NRT\n", + "... ... ...\n", + "11931 EZE PVG\n", + "11933 NRT SHA\n", + "11971 CA07 BOG\n", + "11981 CT03 CTS\n", + "12063 GE01 GE01\n", + "12098 DWC HEL\n", + "12201 KIX EZE\n", + "12206 YUL IAD\n", + "12215 SYR YWG\n", + "12330 DEL PI05\n", + "12336 MEL NA01\n", + "12347 BO08 MUC\n", + "12365 NGO CYEG\n", + "12384 VIE XIY\n", + "12400 CA07 CTS\n", + "12432 CYEG HYD\n", + "12458 YWG YWG\n", + "12464 VIE VIE\n", + "12488 DLH XHBU\n", + "12533 JNB HYD\n", + "12601 PVG PVG\n", + "12619 FRA OSL\n", + "12673 GE01 EZE\n", + "12690 UIO HND\n", + "12722 VR10 YWG\n", + "12729 BNE CPT\n", + "12745 CGN YYZ\n", + "12871 TPA TV01\n", + "12955 ZRH ZRH\n", + "13003 TO11 WAW\n", + "\n", + "[441 rows x 2 columns]" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ed_jetbeats_routes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Compare with pandas" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "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", + "
OriginAirportIDDestAirportID
12729BNECPT
12745CGNYYZ
12871TPATV01
12955ZRHZRH
13003TO11WAW
\n", + "
\n", + "

5 rows x 2 columns

" + ], + "text/plain": [ + " OriginAirportID DestAirportID\n", + "12729 BNE CPT\n", + "12745 CGN YYZ\n", + "12871 TPA TV01\n", + "12955 ZRH ZRH\n", + "13003 TO11 WAW\n", + "\n", + "[5 rows x 2 columns]" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ed_jetbeats_routes.tail()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "pd_jetbeats_routes = pd_flights[(pd_flights.Carrier == 'JetBeats') & (pd_flights.Cancelled == True)]\n", + "\n", + "pd_jetbeats_routes = pd_jetbeats_routes[['OriginAirportID', 'DestAirportID']]" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "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", + "
OriginAirportIDDestAirportID
12729BNECPT
12745CGNYYZ
12871TPATV01
12955ZRHZRH
13003TO11WAW
\n", + "
" + ], + "text/plain": [ + " OriginAirportID DestAirportID\n", + "12729 BNE CPT\n", + "12745 CGN YYZ\n", + "12871 TPA TV01\n", + "12955 ZRH ZRH\n", + "13003 TO11 WAW" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd_jetbeats_routes.tail()" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "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", + "
AvgTicketPriceCancelledCarrier
10906.437948FalseJetBeats
11704.463771FalseLogstash Airways
12922.499077TrueLogstash Airways
13374.959276FalseLogstash Airways
14552.917371FalseLogstash Airways
\n", + "
\n", + "

15 rows x 27 columns

" + ], + "text/plain": [ + " AvgTicketPrice Cancelled Carrier\n", + "10 906.437948 False JetBeats\n", + "11 704.463771 False Logstash Airways\n", + "12 922.499077 True Logstash Airways\n", + "13 374.959276 False Logstash Airways\n", + "14 552.917371 False Logstash Airways\n", + "\n", + "[15 rows x 27 columns]" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ed_flights.iloc[10:15, 0:3]" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "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", + "
AvgTicketPriceCancelledCarrier
10906.437948FalseJetBeats
11704.463771FalseLogstash Airways
12922.499077TrueLogstash Airways
13374.959276FalseLogstash Airways
14552.917371FalseLogstash Airways
\n", + "
" + ], + "text/plain": [ + " AvgTicketPrice Cancelled Carrier\n", + "10 906.437948 False JetBeats\n", + "11 704.463771 False Logstash Airways\n", + "12 922.499077 True Logstash Airways\n", + "13 374.959276 False Logstash Airways\n", + "14 552.917371 False Logstash Airways" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd_flights.iloc[10:15, 0:3]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Elasticsearch/Pandas Interoperability" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**`eland` DataFrame to `pandas` DataFrame**" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "pd_df = ed_jetbeats_routes._to_pandas()" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Index: 441 entries, 77 to 13003\n", + "Data columns (total 2 columns):\n", + "OriginAirportID 441 non-null object\n", + "DestAirportID 441 non-null object\n", + "dtypes: object(2)\n", + "memory usage: 10.3+ KB\n" + ] + } + ], + "source": [ + "pd_df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Index: 441 entries, 77 to 13003\n", + "Data columns (total 2 columns):\n", + "OriginAirportID 441 non-null object\n", + "DestAirportID 441 non-null object\n", + "dtypes: object(2)\n", + "memory usage: 80.0 bytes\n" + ] + } + ], + "source": [ + "ed_jetbeats_routes.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**`pandas` DataFrame to `eland` DataFrame (Elasticsearch index)**" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "yellow open ecommerce jT5w5y_PS5-u1i5eYE5U7A 1 1 4675 0 4.5mb 4.5mb\n", + "\n" + ] + } + ], + "source": [ + "print(es.cat.indices('e*'))" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "yellow open ecommerce jT5w5y_PS5-u1i5eYE5U7A 1 1 4675 0 4.5mb 4.5mb\n", + "yellow open ed_jetbeats_routes sAWVoTNpRey-LNEW4UePKQ 1 1 441 0 19.2kb 19.2kb\n", + "\n" + ] + } + ], + "source": [ + "ed.pandas_to_es(pd_df, \"localhost\", \"ed_jetbeats_routes\", if_exists=\"replace\", refresh=True)\n", + "\n", + "print(es.cat.indices('e*'))" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "ed_df = ed.DataFrame(\"localhost\", \"ed_jetbeats_routes\")" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Index: 441 entries, 77 to 13003\n", + "Data columns (total 2 columns):\n", + "DestAirportID 441 non-null object\n", + "OriginAirportID 441 non-null object\n", + "dtypes: object(2)\n", + "memory usage: 80.0 bytes\n" + ] + } + ], + "source": [ + "ed_df.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## CSV Interoperability" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import glob\n", + "import os\n", + "\n", + "#os.remove('ed_df.csv')\n", + "\n", + "glob.glob('*.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "ed_df.to_csv('ed_df.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['ed_df.csv']" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "glob.glob('*.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "pd_csv = pd.read_csv('ed_df.csv', index_col=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Int64Index: 441 entries, 77 to 13003\n", + "Data columns (total 2 columns):\n", + "DestAirportID 441 non-null object\n", + "OriginAirportID 441 non-null object\n", + "dtypes: object(2)\n", + "memory usage: 10.3+ KB\n" + ] + } + ], + "source": [ + "pd_csv.info()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}