Skip to content

Instantly share code, notes, and snippets.

@nvbn
Last active August 20, 2023 01:47
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save nvbn/4837ee00d77299b22ce15656bc291ef8 to your computer and use it in GitHub Desktop.
Save nvbn/4837ee00d77299b22ce15656bc291ef8 to your computer and use it in GitHub Desktop.
Fix typos
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Summer trip adventure"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Preparations"
]
},
{
"cell_type": "code",
"execution_count": 488,
"metadata": {},
"outputs": [],
"source": [
"%config IPCompleter.greedy=True"
]
},
{
"cell_type": "code",
"execution_count": 661,
"metadata": {},
"outputs": [],
"source": [
"from datetime import date, timedelta\n",
"from decimal import Decimal\n",
"from functools import lru_cache, reduce\n",
"from itertools import product\n",
"import operator\n",
"from dateutil.parser import parse as parse_date\n",
"import requests\n",
"import pandas as pd\n",
"import networkx as nx\n",
"from matplotlib import pyplot as plt\n",
"from matplotlib.ticker import FuncFormatter\n",
"import seaborn as sns"
]
},
{
"cell_type": "code",
"execution_count": 676,
"metadata": {},
"outputs": [],
"source": [
"plt.rcParams['figure.figsize'] = (10, 8)\n",
"plt.rcParams[\"font.size\"] = 14\n",
"pd.options.display.max_columns = 300"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For obtaining prices I'll use amadeus api."
]
},
{
"cell_type": "code",
"execution_count": 409,
"metadata": {},
"outputs": [],
"source": [
"client_id = ''\n",
"client_secret = ''"
]
},
{
"cell_type": "code",
"execution_count": 716,
"metadata": {},
"outputs": [],
"source": [
"auth_response = requests.post('https://api.amadeus.com/v1/security/oauth2/token',\n",
" data={'grant_type': 'client_credentials',\n",
" 'client_id': client_id,\n",
" 'client_secret': client_secret})"
]
},
{
"cell_type": "code",
"execution_count": 717,
"metadata": {},
"outputs": [],
"source": [
"bearer = auth_response.json()['access_token']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"API has quotas, so better to cache everything"
]
},
{
"cell_type": "code",
"execution_count": 500,
"metadata": {},
"outputs": [],
"source": [
"@lru_cache(maxsize=2048)\n",
"def call_api(url, **params):\n",
" full_url = f'https://api.amadeus.com/v1{url}'\n",
" response = requests.get(full_url,\n",
" params=params,\n",
" headers={'Authorization': f'Bearer {bearer}',\n",
" 'Content-Type': 'application/vnd.amadeus+json'})\n",
" return response.json()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Route"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I'm planning to start the trip in July and the trip can't be longer than 21 day"
]
},
{
"cell_type": "code",
"execution_count": 373,
"metadata": {},
"outputs": [],
"source": [
"min_start = date(2019, 7, 10)\n",
"max_start = date(2019, 7, 20)\n",
"max_days = 21"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I already know how many days I want to spend and where"
]
},
{
"cell_type": "code",
"execution_count": 546,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>city</th>\n",
" <th>cc</th>\n",
" <th>min_days</th>\n",
" <th>max_days</th>\n",
" <th>only_direct</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Amsterdam</td>\n",
" <td>NL</td>\n",
" <td>0</td>\n",
" <td>10</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Moscow</td>\n",
" <td>RU</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Irkutsk</td>\n",
" <td>RU</td>\n",
" <td>7</td>\n",
" <td>10</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Beijing</td>\n",
" <td>CN</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Shanghai</td>\n",
" <td>CN</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Tokyo</td>\n",
" <td>JP</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Amsterdam</td>\n",
" <td>NL</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>True</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" city cc min_days max_days only_direct\n",
"0 Amsterdam NL 0 10 True\n",
"1 Moscow RU 3 5 True\n",
"2 Irkutsk RU 7 10 True\n",
"3 Beijing CN 3 5 True\n",
"4 Shanghai CN 3 5 True\n",
"5 Tokyo JP 3 5 False\n",
"6 Amsterdam NL 0 0 True"
]
},
"execution_count": 546,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"places_df = pd.DataFrame([('Amsterdam', 'NL', 0, (max_start - min_start).days, True), # for enabling tentative start date\n",
" ('Moscow', 'RU', 3, 5, True),\n",
" ('Irkutsk', 'RU', 7, 10, True),\n",
" ('Beijing', 'CN', 3, 5, True),\n",
" ('Shanghai', 'CN', 3, 5, True),\n",
" ('Tokyo', 'JP', 3, 5, False),\n",
" ('Amsterdam', 'NL', 0, 0, True)], # the final destination\n",
" columns=['city', 'cc', 'min_days', 'max_days', 'only_direct'])\n",
"places_df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Flights"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As flights are not from city to city, we need to get relevant airports"
]
},
{
"cell_type": "code",
"execution_count": 501,
"metadata": {},
"outputs": [],
"source": [
"def get_iata(city, cc):\n",
" response = call_api('/reference-data/locations',\n",
" keyword=city,\n",
" countryCode=cc,\n",
" subType='AIRPORT')\n",
" \n",
" return [result['iataCode'] for result in response['data']]"
]
},
{
"cell_type": "code",
"execution_count": 502,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['DME', 'SVO', 'VKO']"
]
},
"execution_count": 502,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"get_iata('Moscow', 'RU')"
]
},
{
"cell_type": "code",
"execution_count": 547,
"metadata": {},
"outputs": [],
"source": [
"places_df['iata'] = places_df.apply(lambda place: get_iata(place['city'], place['cc']), axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 548,
"metadata": {},
"outputs": [],
"source": [
"places_df['min_day_of_dep'] = places_df.min_days.rolling(min_periods=1, window=len(places_df)).sum()\n",
"places_df['max_day_of_dep'] = places_df.max_days.rolling(min_periods=1, window=len(places_df)).sum()"
]
},
{
"cell_type": "code",
"execution_count": 722,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>city</th>\n",
" <th>cc</th>\n",
" <th>min_days</th>\n",
" <th>max_days</th>\n",
" <th>only_direct</th>\n",
" <th>min_day_of_dep</th>\n",
" <th>max_day_of_dep</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Amsterdam</td>\n",
" <td>NL</td>\n",
" <td>0</td>\n",
" <td>10</td>\n",
" <td>True</td>\n",
" <td>0.0</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Moscow</td>\n",
" <td>RU</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>True</td>\n",
" <td>3.0</td>\n",
" <td>15.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Irkutsk</td>\n",
" <td>RU</td>\n",
" <td>7</td>\n",
" <td>10</td>\n",
" <td>True</td>\n",
" <td>10.0</td>\n",
" <td>25.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Beijing</td>\n",
" <td>CN</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>True</td>\n",
" <td>13.0</td>\n",
" <td>30.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Shanghai</td>\n",
" <td>CN</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>True</td>\n",
" <td>16.0</td>\n",
" <td>35.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Tokyo</td>\n",
" <td>JP</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>False</td>\n",
" <td>19.0</td>\n",
" <td>40.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Amsterdam</td>\n",
" <td>NL</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>True</td>\n",
" <td>19.0</td>\n",
" <td>40.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" city cc min_days max_days only_direct min_day_of_dep \\\n",
"0 Amsterdam NL 0 10 True 0.0 \n",
"1 Moscow RU 3 5 True 3.0 \n",
"2 Irkutsk RU 7 10 True 10.0 \n",
"3 Beijing CN 3 5 True 13.0 \n",
"4 Shanghai CN 3 5 True 16.0 \n",
"5 Tokyo JP 3 5 False 19.0 \n",
"6 Amsterdam NL 0 0 True 19.0 \n",
"\n",
" max_day_of_dep \n",
"0 10.0 \n",
"1 15.0 \n",
"2 25.0 \n",
"3 30.0 \n",
"4 35.0 \n",
"5 40.0 \n",
"6 40.0 "
]
},
"execution_count": 722,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"places_df.drop('iata', axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 550,
"metadata": {},
"outputs": [],
"source": [
"routes_df = places_df.assign(dest_iata=places_df.iloc[1:].reset_index().iata)\n",
"routes_df['routes'] = routes_df.apply(\n",
" lambda row: [*product(row['iata'], row['dest_iata'])] if isinstance(row['dest_iata'], list) else [],\n",
" axis=1)\n",
"\n",
"routes_df = routes_df.routes \\\n",
" .apply(pd.Series) \\\n",
" .merge(routes_df, right_index=True, left_index=True) \\\n",
" .drop(['routes', 'min_days', 'max_days', 'iata', 'dest_iata'], axis=1) \\\n",
" .melt(id_vars=['city', 'cc', 'min_day_of_dep', 'max_day_of_dep', 'only_direct'], value_name=\"route\") \\\n",
" .drop('variable', axis=1) \\\n",
" .dropna()\n",
"\n",
"routes_df['origin'] = routes_df.route.apply(lambda route: route[0])\n",
"routes_df['destination'] = routes_df.route.apply(lambda route: route[1])\n",
"routes_df = routes_df \\\n",
" .drop('route', axis=1) \\\n",
" .rename(columns={'city': 'origin_city',\n",
" 'cc': 'origin_cc'})"
]
},
{
"cell_type": "code",
"execution_count": 724,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>origin_city</th>\n",
" <th>origin_cc</th>\n",
" <th>min_day_of_dep</th>\n",
" <th>max_day_of_dep</th>\n",
" <th>only_direct</th>\n",
" <th>origin</th>\n",
" <th>destination</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Amsterdam</td>\n",
" <td>NL</td>\n",
" <td>0.0</td>\n",
" <td>10.0</td>\n",
" <td>True</td>\n",
" <td>AMS</td>\n",
" <td>DME</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Moscow</td>\n",
" <td>RU</td>\n",
" <td>3.0</td>\n",
" <td>15.0</td>\n",
" <td>True</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Irkutsk</td>\n",
" <td>RU</td>\n",
" <td>10.0</td>\n",
" <td>25.0</td>\n",
" <td>True</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Beijing</td>\n",
" <td>CN</td>\n",
" <td>13.0</td>\n",
" <td>30.0</td>\n",
" <td>True</td>\n",
" <td>PEK</td>\n",
" <td>PVG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Shanghai</td>\n",
" <td>CN</td>\n",
" <td>16.0</td>\n",
" <td>35.0</td>\n",
" <td>True</td>\n",
" <td>PVG</td>\n",
" <td>HND</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Tokyo</td>\n",
" <td>JP</td>\n",
" <td>19.0</td>\n",
" <td>40.0</td>\n",
" <td>False</td>\n",
" <td>HND</td>\n",
" <td>AMS</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Amsterdam</td>\n",
" <td>NL</td>\n",
" <td>0.0</td>\n",
" <td>10.0</td>\n",
" <td>True</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Moscow</td>\n",
" <td>RU</td>\n",
" <td>3.0</td>\n",
" <td>15.0</td>\n",
" <td>True</td>\n",
" <td>SVO</td>\n",
" <td>IKT</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Irkutsk</td>\n",
" <td>RU</td>\n",
" <td>10.0</td>\n",
" <td>25.0</td>\n",
" <td>True</td>\n",
" <td>IKT</td>\n",
" <td>NAY</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Beijing</td>\n",
" <td>CN</td>\n",
" <td>13.0</td>\n",
" <td>30.0</td>\n",
" <td>True</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" origin_city origin_cc min_day_of_dep max_day_of_dep only_direct origin \\\n",
"0 Amsterdam NL 0.0 10.0 True AMS \n",
"1 Moscow RU 3.0 15.0 True DME \n",
"2 Irkutsk RU 10.0 25.0 True IKT \n",
"3 Beijing CN 13.0 30.0 True PEK \n",
"4 Shanghai CN 16.0 35.0 True PVG \n",
"5 Tokyo JP 19.0 40.0 False HND \n",
"7 Amsterdam NL 0.0 10.0 True AMS \n",
"8 Moscow RU 3.0 15.0 True SVO \n",
"9 Irkutsk RU 10.0 25.0 True IKT \n",
"10 Beijing CN 13.0 30.0 True PEK \n",
"\n",
" destination \n",
"0 DME \n",
"1 IKT \n",
"2 PEK \n",
"3 PVG \n",
"4 HND \n",
"5 AMS \n",
"7 SVO \n",
"8 IKT \n",
"9 NAY \n",
"10 SHA "
]
},
"execution_count": 724,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"routes_df.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As most of the places have more then one airport, it's fun to visualise it"
]
},
{
"cell_type": "code",
"execution_count": 552,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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l9m4cWOaHRZjLOm5e/6qJ0+eJBt50ev1wIuRl5cnj74cedF67+7Y2FgGDx7Mr7/+Su3atVmzZo1m8/KqqrJ7925GjBjBhQsXKFeuHFOnTuWrr77S/O9JiIxCQrkQIl2JioqiQoUKREZGcvHiRZycnLQu6T8FBwdTr149rl27xqZNm/jqq6+0LumdZYTu+atiY2M5c+ZMkm76y5EXZ2fnZAcb2draalKnj48PvXv3xtHRkfXr1+Pi4qJJHfDi+2DNmjW4u7tz584datWqxbRp06hatapmNQmRUUgoF0KkK/3792fevHn4+flRp04drcv5T48fP6Zu3brcvHmTzZs306BBA61LMpqM1D3/N1VVuX79epKQfu3aNQCsra2Tjbyk5a4kFy9exM3Njbt37zJ9+nQGDRqkaYdar9ezYMECJk6cSHBwMN988w2TJ0+mRIkSmtUkRHonoVwIkW7s3LmThg0bMnjwYH7++Wety/lPQUFB1KlThzt37rB161bq1q2rdUkmkRG75696OfLy8gbS06dPJ468fPLJJ4k3j7q4uFC8eHGTBuVnz57RpUsXNm3aROvWrVm8eLHmO6KEh4fz888/89NPPxEVFUW3bt0YN24c+fLl07QuIdIjCeVCiHThyZMnlClThuzZs3Pq1CnNRgne5tGjR9SpU4d79+6xfft2ateurXVJaSKjds9fFRMTk2zk5enTpwBky5YtychLpUqVjP59qqoq06dPZ+TIkRQvXhxfX19Klixp1DXexePHj5k8eTK//vorFhYWfPfdd4wYMcKsx8uEMDcSyoUQZk9VVVq2bMm2bds4efIk5cqV07qk1woICKBOnToEBASwc+dOatasqXVJae5D6J7/m6qqXLt2LUlIv379OvBi5KVSpUqJIb169epGG3nZv38/bdu2JTIyEm9vb1q3bm2U676vO3fuMGbMGFauXEnWrFkZMWIE3333nVlvQSmEuZBQLoQwe8uWLaNr1678+OOPDBs2TOtyXuv+/fu4uroSFBTErl27NL0Zz1x8KN3zVwUHByfZ5eXfIy/FihVLMpf+PiMvAQEBtG7dmqNHjzJo0CB+/PFHs9lD/MKFC4wcOZKdO3eSN29exo0bR9euXTXb1lGI9EBCuRDCrN25c4dy5cpRvnx5/P39sbCw0LqkZO7du4erqytPnjxh165dVKtWTeuSzMqH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F3Lnzh3Wr19Py5YtiYiIoHHjxgQFBTFixAj++usv8eRv5UQot36yLHPkyBGGDx9OUFAQDRo0YOHChdStW5eoqCgSEhKIjo7m3XffxdXVVelyrUpent9Gjx7NDz/8wL179556//r163FycqJFixa0atUKrVbLtm3bnvqcr776iitXrtC1a1dq1Khh1roFyyNCuWASv/76KwkJCWJ0JYeCgoLM1il/EScnJ9q3b09UVBTx8fEsX76cKlWqMH36dKpXr07FihWZMGECly9fVrROIXdSUlJwc3NTugzhFcmyzIkTJxg1ahRlypShdu3afP/991SuXJmIiAgSEhL45Zdf6Nq1K+7u7kqXa5cqVKhAq1atmD59+lPvj4qKIjg4GAcHB1xcXOjQocNTIyyQfapz8eLFKV++vDlLFiyUCOWCSYSHh1O4cGHefvttpUuxCiVKlODWrVsWM8/t7u5OWFgYGzduJC4ujgULFlCkSBG++uorSpcuTd26dZk5cyZ37txRulQhh1JTU0Wn3IqcO3eOsWPHUqFCBapVq8aUKVMoWbIkixcvJj4+no0bN9KjRw8KFiyodKk2Ia9rIEeNGkV4eDixsbEA3L59m927d7Ny5cr/b+/Ow6OqzzaOf89k3whCIES2CWsIJFIrqFAREBQEQdlGIooixQWttlatltalChbFWqvg9rqAJgxLBFSUAoIKKqIoEBAUZAn7GgIJYZKZ8/4xZAoNlCQkOTOT+3NduUiGk5kHkkzu88zvPD9atWpFq1atmDt3Lv/+9785ePBgVZQMnH/d4l8UyqXKHT58mHnz5pGRkaGNSsrJbrfj8XjIzc21upQyEhISuOOOO/jss8/Yvn07EydOxOVycf/999O4cWN69+7tu0hJ/JeWr/i/TZs28fTTT5Oenk5qaipPPvkkjRo1YsqUKb49H26//XYtCTxPt9xyC/369eOVV16psufcli1bMmjQIF555RUApk+fTqtWrfjuu+9Yvnw5y5cvZ9WqVTRu3JiZM2dWyWOCQnmwUSiXKjdjxgxOnDihpSsVUNWzyqtL06ZNefDBB/n+++9Zv349f/7zn9myZQujRo0iMTGRQYMGMWvWLI4fP251qfJfFMr909atW5k4cSK//vWvad26NePGjaNOnTq8+OKL7Ny5kyVLlnDnnXfSoEEDq0sNGl988QXz58/nrrvuolmz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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3d3dfd0f28>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"airport_to_city = dict(zip(routes_df.origin, routes_df.origin_city))\n",
"airports_nodes = [*airport_to_city.keys()]\n",
"\n",
"cities = [*airport_to_city.values()]\n",
"city_to_color = {city: cm.get_cmap('Pastel1')(float(n) / len(cities)) for n, city in enumerate(cities)}\n",
"airports_colors = [city_to_color[airport_to_city[airport]] for airport in airports_nodes]\n",
"\n",
"airports_edges = routes_df.apply(lambda route: (route.origin, route.destination), axis=1)\n",
"\n",
"airports_graph = nx.DiGraph()\n",
"airports_graph.add_nodes_from(airports_nodes)\n",
"airports_graph.add_edges_from(airports_edges)\n",
"\n",
"nx.draw(airports_graph,\n",
" with_labels=True,\n",
" node_size=2000,\n",
" width=1.5,\n",
" pos=networkx.nx_pydot.graphviz_layout(airports_graph, prog='neato'),\n",
" node_color=airports_colors)"
]
},
{
"cell_type": "code",
"execution_count": 553,
"metadata": {},
"outputs": [],
"source": [
"route_dates_df = routes_df.assign(\n",
" dates=routes_df.apply(lambda row: [min_start + timedelta(days=days)\n",
" for days in range(int(row.min_day_of_dep), int(row.max_day_of_dep) + 1)],\n",
" axis=1))\n",
"\n",
"route_dates_df = route_dates_df.dates \\\n",
" .apply(pd.Series) \\\n",
" .merge(route_dates_df, right_index=True, left_index=True) \\\n",
" .drop(['dates', 'min_day_of_dep', 'max_day_of_dep'], axis=1) \\\n",
" .melt(id_vars=['origin_city', 'origin_cc', 'origin', 'destination', 'only_direct'], value_name=\"date\") \\\n",
" .drop('variable', axis=1) \\\n",
" .dropna()"
]
},
{
"cell_type": "code",
"execution_count": 554,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>origin_city</th>\n",
" <th>origin_cc</th>\n",
" <th>origin</th>\n",
" <th>destination</th>\n",
" <th>only_direct</th>\n",
" <th>date</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Amsterdam</td>\n",
" <td>NL</td>\n",
" <td>AMS</td>\n",
" <td>DME</td>\n",
" <td>True</td>\n",
" <td>2019-07-10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Moscow</td>\n",
" <td>RU</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>True</td>\n",
" <td>2019-07-13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Irkutsk</td>\n",
" <td>RU</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>True</td>\n",
" <td>2019-07-20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Beijing</td>\n",
" <td>CN</td>\n",
" <td>PEK</td>\n",
" <td>PVG</td>\n",
" <td>True</td>\n",
" <td>2019-07-23</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Shanghai</td>\n",
" <td>CN</td>\n",
" <td>PVG</td>\n",
" <td>HND</td>\n",
" <td>True</td>\n",
" <td>2019-07-26</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" origin_city origin_cc origin destination only_direct date\n",
"0 Amsterdam NL AMS DME True 2019-07-10\n",
"1 Moscow RU DME IKT True 2019-07-13\n",
"2 Irkutsk RU IKT PEK True 2019-07-20\n",
"3 Beijing CN PEK PVG True 2019-07-23\n",
"4 Shanghai CN PVG HND True 2019-07-26"
]
},
"execution_count": 554,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"route_dates_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 555,
"metadata": {},
"outputs": [],
"source": [
"valid_routes_df = route_dates_df[route_dates_df.date <= max_start + timedelta(days=max_days)]"
]
},
{
"cell_type": "code",
"execution_count": 725,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>origin_city</th>\n",
" <th>origin_cc</th>\n",
" <th>origin</th>\n",
" <th>destination</th>\n",
" <th>only_direct</th>\n",
" <th>date</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Amsterdam</td>\n",
" <td>NL</td>\n",
" <td>AMS</td>\n",
" <td>DME</td>\n",
" <td>True</td>\n",
" <td>2019-07-10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Moscow</td>\n",
" <td>RU</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>True</td>\n",
" <td>2019-07-13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Irkutsk</td>\n",
" <td>RU</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>True</td>\n",
" <td>2019-07-20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Beijing</td>\n",
" <td>CN</td>\n",
" <td>PEK</td>\n",
" <td>PVG</td>\n",
" <td>True</td>\n",
" <td>2019-07-23</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Shanghai</td>\n",
" <td>CN</td>\n",
" <td>PVG</td>\n",
" <td>HND</td>\n",
" <td>True</td>\n",
" <td>2019-07-26</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Tokyo</td>\n",
" <td>JP</td>\n",
" <td>HND</td>\n",
" <td>AMS</td>\n",
" <td>False</td>\n",
" <td>2019-07-29</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Amsterdam</td>\n",
" <td>NL</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>True</td>\n",
" <td>2019-07-10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Moscow</td>\n",
" <td>RU</td>\n",
" <td>SVO</td>\n",
" <td>IKT</td>\n",
" <td>True</td>\n",
" <td>2019-07-13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Irkutsk</td>\n",
" <td>RU</td>\n",
" <td>IKT</td>\n",
" <td>NAY</td>\n",
" <td>True</td>\n",
" <td>2019-07-20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Beijing</td>\n",
" <td>CN</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>True</td>\n",
" <td>2019-07-23</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" origin_city origin_cc origin destination only_direct date\n",
"0 Amsterdam NL AMS DME True 2019-07-10\n",
"1 Moscow RU DME IKT True 2019-07-13\n",
"2 Irkutsk RU IKT PEK True 2019-07-20\n",
"3 Beijing CN PEK PVG True 2019-07-23\n",
"4 Shanghai CN PVG HND True 2019-07-26\n",
"5 Tokyo JP HND AMS False 2019-07-29\n",
"6 Amsterdam NL AMS SVO True 2019-07-10\n",
"7 Moscow RU SVO IKT True 2019-07-13\n",
"8 Irkutsk RU IKT NAY True 2019-07-20\n",
"9 Beijing CN PEK SHA True 2019-07-23"
]
},
"execution_count": 725,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"valid_routes_df.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 557,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"origin_city 363\n",
"origin_cc 363\n",
"origin 363\n",
"destination 363\n",
"only_direct 363\n",
"date 363\n",
"dtype: int64"
]
},
"execution_count": 557,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"valid_routes_df.count()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Prices"
]
},
{
"cell_type": "code",
"execution_count": 535,
"metadata": {},
"outputs": [],
"source": [
"def get_prices(origin, destination, date, only_direct):\n",
" response = call_api('/shopping/flight-offers',\n",
" origin=origin,\n",
" destination=destination,\n",
" nonStop='true' if only_direct else 'false',\n",
" departureDate=date.strftime(\"%Y-%m-%d\"))\n",
" \n",
" if 'data' not in response:\n",
" print(response)\n",
" return []\n",
" \n",
" return [(origin, destination, date,\n",
" Decimal(offer_item['price']['total']),\n",
" parse_date(offer_item['services'][0]['segments'][0]['flightSegment']['departure']['at']),\n",
" parse_date(offer_item['services'][0]['segments'][-1]['flightSegment']['arrival']['at']),\n",
" len(offer_item['services'][0]['segments']))\n",
" for flight in response['data']\n",
" for offer_item in flight['offerItems']]"
]
},
{
"cell_type": "code",
"execution_count": 726,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[('IKT',\n",
" 'PEK',\n",
" datetime.date(2019, 7, 20),\n",
" Decimal('209.11'),\n",
" datetime.datetime(2019, 7, 20, 1, 50, tzinfo=tzoffset(None, 28800)),\n",
" datetime.datetime(2019, 7, 20, 4, 40, tzinfo=tzoffset(None, 28800)),\n",
" 1),\n",
" ('IKT',\n",
" 'PEK',\n",
" datetime.date(2019, 7, 20),\n",
" Decimal('262.98'),\n",
" datetime.datetime(2019, 7, 20, 15, 15, tzinfo=tzoffset(None, 28800)),\n",
" datetime.datetime(2019, 7, 20, 18, 5, tzinfo=tzoffset(None, 28800)),\n",
" 1)]"
]
},
"execution_count": 726,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"get_prices('IKT', 'PEK', date(2019, 7, 20), True)[:5]"
]
},
{
"cell_type": "code",
"execution_count": 559,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n",
"{'errors': [{'status': 404, 'code': 1797, 'title': 'NOT FOUND', 'detail': 'No itinerary found for requested segment 1', 'source': {'parameter': 'origin/destination/date(s) combination'}}]}\n"
]
}
],
"source": [
"prices_df = pd.DataFrame([price\n",
" for route in valid_routes_df.to_dict('record')\n",
" for price in get_prices(route['origin'], route['destination'], route['date'], route['only_direct'])],\n",
" columns=['origin', 'destination', 'date', 'price', 'departure_at', 'arrival_at', 'segments'])"
]
},
{
"cell_type": "code",
"execution_count": 560,
"metadata": {},
"outputs": [],
"source": [
"prices_df.to_csv('prices_3.csv')"
]
},
{
"cell_type": "code",
"execution_count": 561,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>origin</th>\n",
" <th>destination</th>\n",
" <th>date</th>\n",
" <th>price</th>\n",
" <th>departure_at</th>\n",
" <th>arrival_at</th>\n",
" <th>segments</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-13</td>\n",
" <td>257.40</td>\n",
" <td>2019-07-13 21:40:00+03:00</td>\n",
" <td>2019-07-14 08:25:00+08:00</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-13</td>\n",
" <td>257.40</td>\n",
" <td>2019-07-13 23:00:00+03:00</td>\n",
" <td>2019-07-14 09:45:00+08:00</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-13</td>\n",
" <td>254.32</td>\n",
" <td>2019-07-13 19:55:00+03:00</td>\n",
" <td>2019-07-14 06:25:00+08:00</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-13</td>\n",
" <td>227.40</td>\n",
" <td>2019-07-13 18:30:00+03:00</td>\n",
" <td>2019-07-14 05:15:00+08:00</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-20</td>\n",
" <td>209.11</td>\n",
" <td>2019-07-20 01:50:00+08:00</td>\n",
" <td>2019-07-20 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" origin destination date price departure_at \\\n",
"0 DME IKT 2019-07-13 257.40 2019-07-13 21:40:00+03:00 \n",
"1 DME IKT 2019-07-13 257.40 2019-07-13 23:00:00+03:00 \n",
"2 DME IKT 2019-07-13 254.32 2019-07-13 19:55:00+03:00 \n",
"3 DME IKT 2019-07-13 227.40 2019-07-13 18:30:00+03:00 \n",
"4 IKT PEK 2019-07-20 209.11 2019-07-20 01:50:00+08:00 \n",
"\n",
" arrival_at segments \n",
"0 2019-07-14 08:25:00+08:00 1 \n",
"1 2019-07-14 09:45:00+08:00 1 \n",
"2 2019-07-14 06:25:00+08:00 1 \n",
"3 2019-07-14 05:15:00+08:00 1 \n",
"4 2019-07-20 04:40:00+08:00 1 "
]
},
"execution_count": 561,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"prices_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 592,
"metadata": {},
"outputs": [],
"source": [
"prices_with_city_df = prices_df \\\n",
" .assign(duration=prices_df.arrival_at - prices_df.departure_at,\n",
" origin_city=prices_df.origin.apply(airport_to_city.__getitem__),\n",
" destination_city=prices_df.destination.apply(airport_to_city.__getitem__))\n",
"prices_with_city_df['route'] = prices_with_city_df.origin_city + \" ✈️ \" + prices_with_city_df.destination_city"
]
},
{
"cell_type": "code",
"execution_count": 589,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>origin</th>\n",
" <th>destination</th>\n",
" <th>date</th>\n",
" <th>price</th>\n",
" <th>departure_at</th>\n",
" <th>arrival_at</th>\n",
" <th>segments</th>\n",
" <th>duration</th>\n",
" <th>origin_city</th>\n",
" <th>destination_city</th>\n",
" <th>route</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-13</td>\n",
" <td>257.40</td>\n",
" <td>2019-07-13 21:40:00+03:00</td>\n",
" <td>2019-07-14 08:25:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:45:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow✈️Irkutsk</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-13</td>\n",
" <td>257.40</td>\n",
" <td>2019-07-13 23:00:00+03:00</td>\n",
" <td>2019-07-14 09:45:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:45:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow✈️Irkutsk</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-13</td>\n",
" <td>254.32</td>\n",
" <td>2019-07-13 19:55:00+03:00</td>\n",
" <td>2019-07-14 06:25:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:30:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow✈️Irkutsk</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-13</td>\n",
" <td>227.40</td>\n",
" <td>2019-07-13 18:30:00+03:00</td>\n",
" <td>2019-07-14 05:15:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:45:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow✈️Irkutsk</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-20</td>\n",
" <td>209.11</td>\n",
" <td>2019-07-20 01:50:00+08:00</td>\n",
" <td>2019-07-20 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk✈️Beijing</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" origin destination date price departure_at \\\n",
"0 DME IKT 2019-07-13 257.40 2019-07-13 21:40:00+03:00 \n",
"1 DME IKT 2019-07-13 257.40 2019-07-13 23:00:00+03:00 \n",
"2 DME IKT 2019-07-13 254.32 2019-07-13 19:55:00+03:00 \n",
"3 DME IKT 2019-07-13 227.40 2019-07-13 18:30:00+03:00 \n",
"4 IKT PEK 2019-07-20 209.11 2019-07-20 01:50:00+08:00 \n",
"\n",
" arrival_at segments duration origin_city destination_city \\\n",
"0 2019-07-14 08:25:00+08:00 1 05:45:00 Moscow Irkutsk \n",
"1 2019-07-14 09:45:00+08:00 1 05:45:00 Moscow Irkutsk \n",
"2 2019-07-14 06:25:00+08:00 1 05:30:00 Moscow Irkutsk \n",
"3 2019-07-14 05:15:00+08:00 1 05:45:00 Moscow Irkutsk \n",
"4 2019-07-20 04:40:00+08:00 1 02:50:00 Irkutsk Beijing \n",
"\n",
" route \n",
"0 Moscow✈️Irkutsk \n",
"1 Moscow✈️Irkutsk \n",
"2 Moscow✈️Irkutsk \n",
"3 Moscow✈️Irkutsk \n",
"4 Irkutsk✈️Beijing "
]
},
"execution_count": 589,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"prices_with_city_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 593,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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D27evMny5cvx9PSkXLlyDB48mPT0dMN5W7dupWnTptja2lKuXDmaN29OREQEmzZt4o033uDKlSuGkfQvvvgCgLS0NEaNGoWbmxu2trY0a9aMbdu2GdrctGkTmqaxefNmGjdujKWlJTt27ABypjBUqlQJOzs7Bg8eTGpqqtF17N27l/bt21OhQgUcHBx45plnCA4ONhxPS0tD0zTmzp1Lly5dsLGxoU6dOuzevZuoqCjat2+Pra0tjRs3JjQ0tMCv76MmCa8QQgjxGDh9II4fx+/h29e38eP4PZw+EFei8dy4cYNOnTpRqVIlgoODWbVqFdu2beP111/Ps/62bdto3749EydO5JNPPqFWrVo888wzLFiwwKjeggULGDBgAKampkRFRdGlSxeaN2/OsWPHmDNnDgsXLmTChAn5xjVt2jS+//57w37nzp3R6/UcOXKkUNc3b948+vXrh5mZGf3792fevHm56iQlJfHtt9+ycuVK/vzzT3bv3k2PHj34+eef+f3331m1ahWrVq0ynJuens6LL75I+/btCQ0NZd++fbz11luYmJjQtm1bpk2bRvny5Q0j6cOHDwegf//+HDx4kJUrV3L8+HF69+5N586dCQsLM4pn3LhxTJs2jbCwMBo2bMjixYv57LPPmDp1KocOHaJKlSp88803RufcvHmTwYMHs2fPHvbv34+3tzfPPfcc169fN6o3efJkBg4cyNGjR6lXrx59+vThtddeY+TIkRw+fBhHR0cGDx5cqNf4kVJKyXZra9y4sRJCCCGK0qlTpx66jYj9seq74dvV/w3bati+G75dReyPLYII723VqlUqJ10w9vXXX6sKFSqolJQUQ9nGjRuVpmnq/PnzSimlevfurXr27KlWr16tdDqdWr58uVEbS5YsUU5OTiojI0MppdThw4cVoE6fPq2UUuq9995TPj4+Sq/XG86ZM2eOsra2Npxzt7lz5yo7OzvVt29f1apVK1W9enUFKEDZ2dkpNzc31bBhQ3Xy5Ml8r/natWvKyspKhYaGKqWUOnnypLK0tFQJCQlGcQAqKirKUPbWW28pCwsLde3aNUPZ7ddAKaUuXLigALV///48+50zZ46qUKGCUdnJkyeViYmJiouLMyrv1KmTGjlypFIq53UH1Pr1643qNGzYUL399ttGZa1atVK1a9fO99qzs7OVo6OjWrVqlVJK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5z8/5mt961vfoqysjHvvvZcdO3bw4osv8sQTTyQdM3r0aN5//31WrFjB9u3bueuuu5JWleguf/vb3xgwYADRaBSj8eQ2TnnwwQeprq7myiuv7PD5O+64g4qKCu644w6Ki4t54403uP/++7nrrrtwOByUlpZy//3388knn7B3716WLVvGpk2bEn8e3/ve91i/fj233norGzduZMeOHTz11FOUl5fjdDq5/fbbue+++3jzzTcpLi7m9ttvp6qqijvuuCPRh/nz57N8+XKampo466yzEm1///vfmT17duJDTneSwCuEEOK0YrIYKRiTltRmthqxOfvvxhOFc8/jwlvvwp2VDUrhzsrmwlvvonDued3yen/5y18477zzyMzMbPfcV77yFcrKynj33XdP+vqxWIy7776bcePGsXDhQnJzcxMjiiaTid/97nc89dRT5Ofn8/nPfx6Ab37zm/z1r3/l2WefZfLkycydO5cnn3wysYzZ0QwePJjFixezZMkSJk+ezGOPPZa0TBbEQ+OMGTP43Oc+x7nnnovT6eT6668/6fd3onbs2MGyZcu4//77T/oaZrOZrKyspBrdtgoKCnjrrbdYv349U6ZM4Rvf+AbXXnstP/vZzwBwOBzs3LmTr3zlK4wePZqvf/3rXH/99dx3330ATJkyhffee4/t27cza9YsZs6cyfPPP58o5fjFL37B1VdfzU033cSUKVPYtGkTS5YsYcCAAYk+zJkzB4C5c+cmgv38+fOJRCI9Us4AoE7lE1qnX0ypAcDDwCWAG9gD3K61/qDleQU8BNwKpAOrgTu11lvbXCMd+B1wRUvTq8DdWuuGNsdMBP4fMAOoA/4E/EQf580WFRXpM2FnFyGEON156gO8t2gbB3Y24M60sfCmceQMcWM0973thYuLiyksLOztbghx2jrWvyGl1DqtdVGHT7Zh6vJeHYVSKg34GFgBXApUA8OBtlMZvw98F7gR2AH8N/CuUmqM1rr1/tVzwGDg4pbHTwHPApe3vE4K8C7wITAdGAssArzAr7rn3QkhhOhJrnQbF986kUgkhkGB3W1BGY4/q10IcWbqscBLPMxWaq3bFhwlCmRaRnfvBR7WWr/U0vZ14oH4OuBPSqlC4kF3jtZ6ZcsxtwEftYTiHcD1gAP4utbaD2xRSo0FvqOU+vXxRnmFEEKcHmyu/lvCIIToWj1Z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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3d3c123a90>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"@FuncFormatter\n",
"def timedelta_formatter(val, _):\n",
" return str(timedelta(seconds=val / 1000 / 1000 / 1000))\n",
"\n",
"ax = sns.scatterplot(x='duration', y='price', hue='route',\n",
" data=prices_with_city_df)\n",
"ax.xaxis.set_major_formatter(timedelta_formatter)\n",
"ax.tick_params(axis='x', rotation=45)\n",
"plt.tight_layout()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Limit to 800 eur per flight"
]
},
{
"cell_type": "code",
"execution_count": 610,
"metadata": {},
"outputs": [],
"source": [
"valid_prices_with_city_df = prices_with_city_df[prices_with_city_df.price <= 800]"
]
},
{
"cell_type": "code",
"execution_count": 611,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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+vXrD/tzighVqlQJ+zkTEhIoX748W7eGrwIbauvWrbz++ut8+OGHfPvtt1x11VUANG3alLVr17Jx40bGjx8f1t7D6dOnD2PHjmXDhg1MmzYt1/SHwM8fF3cwBOzQoQMHDhxg5cqVVKhQgd69e3POOedw7rnn8uSTT4b93AsWLKBr1665fv9Vq1aRkZERNkGyRIkStGvXjqVLlwa/1/79+5k3bx5paWl06NCBs846i7S0NMBN6gtNcyksFgAXBRl7c9m2D7KzIt8WY4wxRd5X48eSeWB/2LbMA/v5avzYQvueI0eOJCsri5o1axIfH098fDyPPvoon376KRs2bAg7NiEhIfj/QOCW27ZAvm6fPn1Ys2YN1157LStWrOD000/nwQcfPGxbAs8bMWIECxcuDH4tXryYJUuWhB2bnJyc55/18ccf54knnuCuu+7i888/Z+HChVx00UWHTKIL/ZkCP1du20LzkkOpKhMmTKBhw4bBbYFAsGHDhpQqVSpP7T7rrLOIi4vj6quvpmvXrtSoUSNPzw/8XsaMGcPXX39Np06d+Oijjzj11FOZOnVqnl7rcK+dkpJCy5YtmTFjBmlpaXTp0oW2bduyfv16Vq5cybx58ywALjaqNYfkyuHbTh8A5apHpz3GGGOKtF07ci9pdbjtRyszM5NXX32VoUOHhgWcixYtokmTJvmqWpBTjRo16Nu3L2+//Tb//Oc/eemllwBITEwE3KhsQGpqKtWqVWPVqlWccsoph3z9mfr16/P111+7PFBv7ty5YcfMnDmT888/n6uuuopmzZpRu3btQybKFQQRCWvvpk2b+OGHHxg2bBhjx+b9YiYuLo7evXuTlpZGnz59cj2mfv36zJ07NywonzlzJomJidSuXTu4rWnTptxzzz3BEdlXX30VgObNmzN9+vRcX7t27dokJiYya9as4LasrCzmzJlDgwYNgts6d+7MjBkz+OKLL+jcuTNJSUm0adOGRx55hPj4eFq3bp3nnz2vLAAuCpJT4frp0LYfNLwYek+Cqk2j3SpjjDFFVJmKua8eerjtR2vSpEls376dG264gUaNGoV99ejRgzFjxoQFlHk1cOBApkyZwurVq1m4cCFTpkwJBkxVqlShVKlSTJ06lS1btrBz504AHnroIYYNG8bw4cNZvnw5ixcvZuzYsQwdOvRPv9dNN93E2rVrue22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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3d3bf80b70>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"ax = sns.scatterplot(x='duration', y='price', hue='route',\n",
" data=valid_prices_with_city_df)\n",
"ax.xaxis.set_major_formatter(timedelta_formatter)\n",
"ax.tick_params(axis='x', rotation=45)\n",
"plt.tight_layout()"
]
},
{
"cell_type": "code",
"execution_count": 624,
"metadata": {},
"outputs": [],
"source": [
"next_flight_origin_city = dict(zip(places_df.city.iloc[:-2], places_df.city.iloc[1:-1]))\n",
"place_min_days = dict(zip(places_df.city.iloc[:-1], places_df.min_days.iloc[:-1]))\n",
"place_max_days = dict(zip(places_df.city.iloc[:-1], places_df.max_days.iloc[:-1]))"
]
},
{
"cell_type": "code",
"execution_count": 704,
"metadata": {},
"outputs": [],
"source": [
"def build_itinerary(place, date):\n",
" if place is None:\n",
" return\n",
" \n",
" next_place = next_flight_origin_city.get(place)\n",
" \n",
" for days in range(place_min_days[place], place_max_days[place] + 1):\n",
" flight_date = date + timedelta(days=days)\n",
" for rest_flights in build_itinerary(next_place, flight_date):\n",
" yield [(place, flight_date), *rest_flights]\n",
" \n",
" if next_place is None:\n",
" yield [(place, flight_date)]"
]
},
{
"cell_type": "code",
"execution_count": 708,
"metadata": {},
"outputs": [],
"source": [
"itinerary = [*build_itinerary('Amsterdam', min_start)]"
]
},
{
"cell_type": "code",
"execution_count": 701,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[('Amsterdam', datetime.date(2019, 7, 10)),\n",
" ('Moscow', datetime.date(2019, 7, 13)),\n",
" ('Irkutsk', datetime.date(2019, 7, 20)),\n",
" ('Beijing', datetime.date(2019, 7, 23)),\n",
" ('Shanghai', datetime.date(2019, 7, 26)),\n",
" ('Tokyo', datetime.date(2019, 7, 29))],\n",
" [('Amsterdam', datetime.date(2019, 7, 10)),\n",
" ('Moscow', datetime.date(2019, 7, 13)),\n",
" ('Irkutsk', datetime.date(2019, 7, 20)),\n",
" ('Beijing', datetime.date(2019, 7, 23)),\n",
" ('Shanghai', datetime.date(2019, 7, 26)),\n",
" ('Tokyo', datetime.date(2019, 7, 30))],\n",
" [('Amsterdam', datetime.date(2019, 7, 10)),\n",
" ('Moscow', datetime.date(2019, 7, 13)),\n",
" ('Irkutsk', datetime.date(2019, 7, 20)),\n",
" ('Beijing', datetime.date(2019, 7, 23)),\n",
" ('Shanghai', datetime.date(2019, 7, 26)),\n",
" ('Tokyo', datetime.date(2019, 7, 31))]]"
]
},
"execution_count": 701,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"itinerary[:3]"
]
},
{
"cell_type": "code",
"execution_count": 690,
"metadata": {},
"outputs": [],
"source": [
"def find_flights(prices_with_city_df, itinerary_route, n_cheapest):\n",
" result_df = None\n",
" for place, date in itinerary_route:\n",
" place_df = prices_with_city_df \\\n",
" [(prices_with_city_df.origin_city == place) & (prices_with_city_df.date == date)] \\\n",
" .sort_values('price', ascending=True) \\\n",
" .head(n_cheapest) \\\n",
" .add_prefix(f'{place}_')\n",
" \n",
" if result_df is None:\n",
" result_df = place_df\n",
" else:\n",
" result_df = result_df \\\n",
" .assign(key=1) \\\n",
" .merge(place_df.assign(key=1), on=\"key\") \\\n",
" .drop(\"key\", axis=1)\n",
" \n",
" result_df['total_price'] = reduce(operator.add, (\n",
" result_df[column] for column in result_df.columns\n",
" if 'price' in column and column != 'total_price'\n",
" ))\n",
" \n",
" result_df = result_df \\\n",
" .sort_values('total_price', ascending=True) \\\n",
" .head(n_cheapest)\n",
" \n",
" \n",
" \n",
" result_df['total_flights_duration'] = reduce(operator.add, (\n",
" result_df[column] for column in result_df.columns\n",
" if 'duration' in column\n",
" ))\n",
" \n",
" return result_df[['total_price', 'total_flights_duration'] + [\n",
" column for column in result_df.columns\n",
" if 'total_' not in column]]"
]
},
{
"cell_type": "code",
"execution_count": 692,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>total_price</th>\n",
" <th>total_flights_duration</th>\n",
" <th>Amsterdam_origin</th>\n",
" <th>Amsterdam_destination</th>\n",
" <th>Amsterdam_date</th>\n",
" <th>Amsterdam_price</th>\n",
" <th>Amsterdam_departure_at</th>\n",
" <th>Amsterdam_arrival_at</th>\n",
" <th>Amsterdam_segments</th>\n",
" <th>Amsterdam_duration</th>\n",
" <th>Amsterdam_origin_city</th>\n",
" <th>Amsterdam_destination_city</th>\n",
" <th>Amsterdam_route</th>\n",
" <th>Moscow_origin</th>\n",
" <th>Moscow_destination</th>\n",
" <th>Moscow_date</th>\n",
" <th>Moscow_price</th>\n",
" <th>Moscow_departure_at</th>\n",
" <th>Moscow_arrival_at</th>\n",
" <th>Moscow_segments</th>\n",
" <th>Moscow_duration</th>\n",
" <th>Moscow_origin_city</th>\n",
" <th>Moscow_destination_city</th>\n",
" <th>Moscow_route</th>\n",
" <th>Irkutsk_origin</th>\n",
" <th>Irkutsk_destination</th>\n",
" <th>Irkutsk_date</th>\n",
" <th>Irkutsk_price</th>\n",
" <th>Irkutsk_departure_at</th>\n",
" <th>Irkutsk_arrival_at</th>\n",
" <th>Irkutsk_segments</th>\n",
" <th>Irkutsk_duration</th>\n",
" <th>Irkutsk_origin_city</th>\n",
" <th>Irkutsk_destination_city</th>\n",
" <th>Irkutsk_route</th>\n",
" <th>Beijing_origin</th>\n",
" <th>Beijing_destination</th>\n",
" <th>Beijing_date</th>\n",
" <th>Beijing_price</th>\n",
" <th>Beijing_departure_at</th>\n",
" <th>Beijing_arrival_at</th>\n",
" <th>Beijing_segments</th>\n",
" <th>Beijing_duration</th>\n",
" <th>Beijing_origin_city</th>\n",
" <th>Beijing_destination_city</th>\n",
" <th>Beijing_route</th>\n",
" <th>Shanghai_origin</th>\n",
" <th>Shanghai_destination</th>\n",
" <th>Shanghai_date</th>\n",
" <th>Shanghai_price</th>\n",
" <th>Shanghai_departure_at</th>\n",
" <th>Shanghai_arrival_at</th>\n",
" <th>Shanghai_segments</th>\n",
" <th>Shanghai_duration</th>\n",
" <th>Shanghai_origin_city</th>\n",
" <th>Shanghai_destination_city</th>\n",
" <th>Shanghai_route</th>\n",
" <th>Tokyo_origin</th>\n",
" <th>Tokyo_destination</th>\n",
" <th>Tokyo_date</th>\n",
" <th>Tokyo_price</th>\n",
" <th>Tokyo_departure_at</th>\n",
" <th>Tokyo_arrival_at</th>\n",
" <th>Tokyo_segments</th>\n",
" <th>Tokyo_duration</th>\n",
" <th>Tokyo_origin_city</th>\n",
" <th>Tokyo_destination_city</th>\n",
" <th>Tokyo_route</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1901.41</td>\n",
" <td>1 days 20:45:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-10</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-10 21:15:00+02:00</td>\n",
" <td>2019-07-11 01:30:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-13</td>\n",
" <td>227.40</td>\n",
" <td>2019-07-13 18:30:00+03:00</td>\n",
" <td>2019-07-14 05:15:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:45:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-20</td>\n",
" <td>209.11</td>\n",
" <td>2019-07-20 01:50:00+08:00</td>\n",
" <td>2019-07-20 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-23</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-23 11:30:00+08:00</td>\n",
" <td>2019-07-23 14:00:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:30:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>SHA</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-26</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-26 14:35:00+08:00</td>\n",
" <td>2019-07-26 18:15:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:40:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-29</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-29 17:55:00+09:00</td>\n",
" <td>2019-07-30 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2800</th>\n",
" <td>1901.41</td>\n",
" <td>1 days 20:30:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-10</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-10 11:50:00+02:00</td>\n",
" <td>2019-07-10 16:05:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-13</td>\n",
" <td>227.40</td>\n",
" <td>2019-07-13 18:30:00+03:00</td>\n",
" <td>2019-07-14 05:15:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:45:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-20</td>\n",
" <td>209.11</td>\n",
" <td>2019-07-20 01:50:00+08:00</td>\n",
" <td>2019-07-20 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-23</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-23 21:30:00+08:00</td>\n",
" <td>2019-07-23 23:45:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:15:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>PVG</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-26</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-26 14:35:00+08:00</td>\n",
" <td>2019-07-26 18:15:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:40:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-29</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-29 17:55:00+09:00</td>\n",
" <td>2019-07-30 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2900</th>\n",
" <td>1901.41</td>\n",
" <td>1 days 20:30:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-10</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-10 21:15:00+02:00</td>\n",
" <td>2019-07-11 01:30:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-13</td>\n",
" <td>227.40</td>\n",
" <td>2019-07-13 18:30:00+03:00</td>\n",
" <td>2019-07-14 05:15:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:45:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-20</td>\n",
" <td>209.11</td>\n",
" <td>2019-07-20 01:50:00+08:00</td>\n",
" <td>2019-07-20 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-23</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-23 10:00:00+08:00</td>\n",
" <td>2019-07-23 12:15:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:15:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>SHA</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-26</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-26 14:35:00+08:00</td>\n",
" <td>2019-07-26 18:15:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:40:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-29</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-29 17:55:00+09:00</td>\n",
" <td>2019-07-30 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3000</th>\n",
" <td>1901.41</td>\n",
" <td>1 days 20:30:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-10</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-10 21:15:00+02:00</td>\n",
" <td>2019-07-11 01:30:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-13</td>\n",
" <td>227.40</td>\n",
" <td>2019-07-13 18:30:00+03:00</td>\n",
" <td>2019-07-14 05:15:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:45:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-20</td>\n",
" <td>209.11</td>\n",
" <td>2019-07-20 01:50:00+08:00</td>\n",
" <td>2019-07-20 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-23</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-23 10:00:00+08:00</td>\n",
" <td>2019-07-23 12:15:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:15:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>PVG</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-26</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-26 14:35:00+08:00</td>\n",
" <td>2019-07-26 18:15:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:40:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-29</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-29 17:55:00+09:00</td>\n",
" <td>2019-07-30 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3100</th>\n",
" <td>1901.41</td>\n",
" <td>1 days 20:30:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-10</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-10 21:15:00+02:00</td>\n",
" <td>2019-07-11 01:30:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-13</td>\n",
" <td>227.40</td>\n",
" <td>2019-07-13 18:30:00+03:00</td>\n",
" <td>2019-07-14 05:15:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:45:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-20</td>\n",
" <td>209.11</td>\n",
" <td>2019-07-20 01:50:00+08:00</td>\n",
" <td>2019-07-20 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-23</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-23 17:00:00+08:00</td>\n",
" <td>2019-07-23 19:15:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:15:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>SHA</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-26</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-26 14:35:00+08:00</td>\n",
" <td>2019-07-26 18:15:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:40:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-29</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-29 17:55:00+09:00</td>\n",
" <td>2019-07-30 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" total_price total_flights_duration Amsterdam_origin \\\n",
"0 1901.41 1 days 20:45:00 AMS \n",
"2800 1901.41 1 days 20:30:00 AMS \n",
"2900 1901.41 1 days 20:30:00 AMS \n",
"3000 1901.41 1 days 20:30:00 AMS \n",
"3100 1901.41 1 days 20:30:00 AMS \n",
"\n",
" Amsterdam_destination Amsterdam_date Amsterdam_price \\\n",
"0 SVO 2019-07-10 203.07 \n",
"2800 SVO 2019-07-10 203.07 \n",
"2900 SVO 2019-07-10 203.07 \n",
"3000 SVO 2019-07-10 203.07 \n",
"3100 SVO 2019-07-10 203.07 \n",
"\n",
" Amsterdam_departure_at Amsterdam_arrival_at \\\n",
"0 2019-07-10 21:15:00+02:00 2019-07-11 01:30:00+03:00 \n",
"2800 2019-07-10 11:50:00+02:00 2019-07-10 16:05:00+03:00 \n",
"2900 2019-07-10 21:15:00+02:00 2019-07-11 01:30:00+03:00 \n",
"3000 2019-07-10 21:15:00+02:00 2019-07-11 01:30:00+03:00 \n",
"3100 2019-07-10 21:15:00+02:00 2019-07-11 01:30:00+03:00 \n",
"\n",
" Amsterdam_segments Amsterdam_duration Amsterdam_origin_city \\\n",
"0 1 03:15:00 Amsterdam \n",
"2800 1 03:15:00 Amsterdam \n",
"2900 1 03:15:00 Amsterdam \n",
"3000 1 03:15:00 Amsterdam \n",
"3100 1 03:15:00 Amsterdam \n",
"\n",
" Amsterdam_destination_city Amsterdam_route Moscow_origin \\\n",
"0 Moscow Amsterdam ✈️ Moscow DME \n",
"2800 Moscow Amsterdam ✈️ Moscow DME \n",
"2900 Moscow Amsterdam ✈️ Moscow DME \n",
"3000 Moscow Amsterdam ✈️ Moscow DME \n",
"3100 Moscow Amsterdam ✈️ Moscow DME \n",
"\n",
" Moscow_destination Moscow_date Moscow_price Moscow_departure_at \\\n",
"0 IKT 2019-07-13 227.40 2019-07-13 18:30:00+03:00 \n",
"2800 IKT 2019-07-13 227.40 2019-07-13 18:30:00+03:00 \n",
"2900 IKT 2019-07-13 227.40 2019-07-13 18:30:00+03:00 \n",
"3000 IKT 2019-07-13 227.40 2019-07-13 18:30:00+03:00 \n",
"3100 IKT 2019-07-13 227.40 2019-07-13 18:30:00+03:00 \n",
"\n",
" Moscow_arrival_at Moscow_segments Moscow_duration \\\n",
"0 2019-07-14 05:15:00+08:00 1 05:45:00 \n",
"2800 2019-07-14 05:15:00+08:00 1 05:45:00 \n",
"2900 2019-07-14 05:15:00+08:00 1 05:45:00 \n",
"3000 2019-07-14 05:15:00+08:00 1 05:45:00 \n",
"3100 2019-07-14 05:15:00+08:00 1 05:45:00 \n",
"\n",
" Moscow_origin_city Moscow_destination_city Moscow_route \\\n",
"0 Moscow Irkutsk Moscow ✈️ Irkutsk \n",
"2800 Moscow Irkutsk Moscow ✈️ Irkutsk \n",
"2900 Moscow Irkutsk Moscow ✈️ Irkutsk \n",
"3000 Moscow Irkutsk Moscow ✈️ Irkutsk \n",
"3100 Moscow Irkutsk Moscow ✈️ Irkutsk \n",
"\n",
" Irkutsk_origin Irkutsk_destination Irkutsk_date Irkutsk_price \\\n",
"0 IKT PEK 2019-07-20 209.11 \n",
"2800 IKT PEK 2019-07-20 209.11 \n",
"2900 IKT PEK 2019-07-20 209.11 \n",
"3000 IKT PEK 2019-07-20 209.11 \n",
"3100 IKT PEK 2019-07-20 209.11 \n",
"\n",
" Irkutsk_departure_at Irkutsk_arrival_at Irkutsk_segments \\\n",
"0 2019-07-20 01:50:00+08:00 2019-07-20 04:40:00+08:00 1 \n",
"2800 2019-07-20 01:50:00+08:00 2019-07-20 04:40:00+08:00 1 \n",
"2900 2019-07-20 01:50:00+08:00 2019-07-20 04:40:00+08:00 1 \n",
"3000 2019-07-20 01:50:00+08:00 2019-07-20 04:40:00+08:00 1 \n",
"3100 2019-07-20 01:50:00+08:00 2019-07-20 04:40:00+08:00 1 \n",
"\n",
" Irkutsk_duration Irkutsk_origin_city Irkutsk_destination_city \\\n",
"0 02:50:00 Irkutsk Beijing \n",
"2800 02:50:00 Irkutsk Beijing \n",
"2900 02:50:00 Irkutsk Beijing \n",
"3000 02:50:00 Irkutsk Beijing \n",
"3100 02:50:00 Irkutsk Beijing \n",
"\n",
" Irkutsk_route Beijing_origin Beijing_destination Beijing_date \\\n",
"0 Irkutsk ✈️ Beijing PEK SHA 2019-07-23 \n",
"2800 Irkutsk ✈️ Beijing PEK SHA 2019-07-23 \n",
"2900 Irkutsk ✈️ Beijing PEK SHA 2019-07-23 \n",
"3000 Irkutsk ✈️ Beijing PEK SHA 2019-07-23 \n",
"3100 Irkutsk ✈️ Beijing PEK SHA 2019-07-23 \n",
"\n",
" Beijing_price Beijing_departure_at Beijing_arrival_at \\\n",
"0 171.64 2019-07-23 11:30:00+08:00 2019-07-23 14:00:00+08:00 \n",
"2800 171.64 2019-07-23 21:30:00+08:00 2019-07-23 23:45:00+08:00 \n",
"2900 171.64 2019-07-23 10:00:00+08:00 2019-07-23 12:15:00+08:00 \n",
"3000 171.64 2019-07-23 10:00:00+08:00 2019-07-23 12:15:00+08:00 \n",
"3100 171.64 2019-07-23 17:00:00+08:00 2019-07-23 19:15:00+08:00 \n",
"\n",
" Beijing_segments Beijing_duration Beijing_origin_city \\\n",
"0 1 02:30:00 Beijing \n",
"2800 1 02:15:00 Beijing \n",
"2900 1 02:15:00 Beijing \n",
"3000 1 02:15:00 Beijing \n",
"3100 1 02:15:00 Beijing \n",
"\n",
" Beijing_destination_city Beijing_route Shanghai_origin \\\n",
"0 Shanghai Beijing ✈️ Shanghai SHA \n",
"2800 Shanghai Beijing ✈️ Shanghai PVG \n",
"2900 Shanghai Beijing ✈️ Shanghai SHA \n",
"3000 Shanghai Beijing ✈️ Shanghai PVG \n",
"3100 Shanghai Beijing ✈️ Shanghai SHA \n",
"\n",
" Shanghai_destination Shanghai_date Shanghai_price \\\n",
"0 NRT 2019-07-26 394.07 \n",
"2800 NRT 2019-07-26 394.07 \n",
"2900 NRT 2019-07-26 394.07 \n",
"3000 NRT 2019-07-26 394.07 \n",
"3100 NRT 2019-07-26 394.07 \n",
"\n",
" Shanghai_departure_at Shanghai_arrival_at Shanghai_segments \\\n",
"0 2019-07-26 14:35:00+08:00 2019-07-26 18:15:00+09:00 1 \n",
"2800 2019-07-26 14:35:00+08:00 2019-07-26 18:15:00+09:00 1 \n",
"2900 2019-07-26 14:35:00+08:00 2019-07-26 18:15:00+09:00 1 \n",
"3000 2019-07-26 14:35:00+08:00 2019-07-26 18:15:00+09:00 1 \n",
"3100 2019-07-26 14:35:00+08:00 2019-07-26 18:15:00+09:00 1 \n",
"\n",
" Shanghai_duration Shanghai_origin_city Shanghai_destination_city \\\n",
"0 02:40:00 Shanghai Tokyo \n",
"2800 02:40:00 Shanghai Tokyo \n",
"2900 02:40:00 Shanghai Tokyo \n",
"3000 02:40:00 Shanghai Tokyo \n",
"3100 02:40:00 Shanghai Tokyo \n",
"\n",
" Shanghai_route Tokyo_origin Tokyo_destination Tokyo_date \\\n",
"0 Shanghai ✈️ Tokyo NRT AMS 2019-07-29 \n",
"2800 Shanghai ✈️ Tokyo NRT AMS 2019-07-29 \n",
"2900 Shanghai ✈️ Tokyo NRT AMS 2019-07-29 \n",
"3000 Shanghai ✈️ Tokyo NRT AMS 2019-07-29 \n",
"3100 Shanghai ✈️ Tokyo NRT AMS 2019-07-29 \n",
"\n",
" Tokyo_price Tokyo_departure_at Tokyo_arrival_at \\\n",
"0 696.12 2019-07-29 17:55:00+09:00 2019-07-30 14:40:00+02:00 \n",
"2800 696.12 2019-07-29 17:55:00+09:00 2019-07-30 14:40:00+02:00 \n",
"2900 696.12 2019-07-29 17:55:00+09:00 2019-07-30 14:40:00+02:00 \n",
"3000 696.12 2019-07-29 17:55:00+09:00 2019-07-30 14:40:00+02:00 \n",
"3100 696.12 2019-07-29 17:55:00+09:00 2019-07-30 14:40:00+02:00 \n",
"\n",
" Tokyo_segments Tokyo_duration Tokyo_origin_city Tokyo_destination_city \\\n",
"0 2 1 days 03:45:00 Tokyo Amsterdam \n",
"2800 2 1 days 03:45:00 Tokyo Amsterdam \n",
"2900 2 1 days 03:45:00 Tokyo Amsterdam \n",
"3000 2 1 days 03:45:00 Tokyo Amsterdam \n",
"3100 2 1 days 03:45:00 Tokyo Amsterdam \n",
"\n",
" Tokyo_route \n",
"0 Tokyo ✈️ Amsterdam \n",
"2800 Tokyo ✈️ Amsterdam \n",
"2900 Tokyo ✈️ Amsterdam \n",
"3000 Tokyo ✈️ Amsterdam \n",
"3100 Tokyo ✈️ Amsterdam "
]
},
"execution_count": 692,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"find_flights(prices_with_city_df, itinerary[0], 100).head(5)"
]
},
{
"cell_type": "code",
"execution_count": 710,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3564"
]
},
"execution_count": 710,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(itinerary)"
]
},
{
"cell_type": "code",
"execution_count": 711,
"metadata": {},
"outputs": [],
"source": [
"itinerary_df = reduce(pd.DataFrame.append, (find_flights(prices_with_city_df, itinerary_route, 10)\n",
" for itinerary_route in itinerary))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The result"
]
},
{
"cell_type": "code",
"execution_count": 715,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>total_price</th>\n",
" <th>total_flights_duration</th>\n",
" <th>Amsterdam_origin</th>\n",
" <th>Amsterdam_destination</th>\n",
" <th>Amsterdam_date</th>\n",
" <th>Amsterdam_price</th>\n",
" <th>Amsterdam_departure_at</th>\n",
" <th>Amsterdam_arrival_at</th>\n",
" <th>Amsterdam_segments</th>\n",
" <th>Amsterdam_duration</th>\n",
" <th>Amsterdam_origin_city</th>\n",
" <th>Amsterdam_destination_city</th>\n",
" <th>Amsterdam_route</th>\n",
" <th>Moscow_origin</th>\n",
" <th>Moscow_destination</th>\n",
" <th>Moscow_date</th>\n",
" <th>Moscow_price</th>\n",
" <th>Moscow_departure_at</th>\n",
" <th>Moscow_arrival_at</th>\n",
" <th>Moscow_segments</th>\n",
" <th>Moscow_duration</th>\n",
" <th>Moscow_origin_city</th>\n",
" <th>Moscow_destination_city</th>\n",
" <th>Moscow_route</th>\n",
" <th>Irkutsk_origin</th>\n",
" <th>Irkutsk_destination</th>\n",
" <th>Irkutsk_date</th>\n",
" <th>Irkutsk_price</th>\n",
" <th>Irkutsk_departure_at</th>\n",
" <th>Irkutsk_arrival_at</th>\n",
" <th>Irkutsk_segments</th>\n",
" <th>Irkutsk_duration</th>\n",
" <th>Irkutsk_origin_city</th>\n",
" <th>Irkutsk_destination_city</th>\n",
" <th>Irkutsk_route</th>\n",
" <th>Beijing_origin</th>\n",
" <th>Beijing_destination</th>\n",
" <th>Beijing_date</th>\n",
" <th>Beijing_price</th>\n",
" <th>Beijing_departure_at</th>\n",
" <th>Beijing_arrival_at</th>\n",
" <th>Beijing_segments</th>\n",
" <th>Beijing_duration</th>\n",
" <th>Beijing_origin_city</th>\n",
" <th>Beijing_destination_city</th>\n",
" <th>Beijing_route</th>\n",
" <th>Shanghai_origin</th>\n",
" <th>Shanghai_destination</th>\n",
" <th>Shanghai_date</th>\n",
" <th>Shanghai_price</th>\n",
" <th>Shanghai_departure_at</th>\n",
" <th>Shanghai_arrival_at</th>\n",
" <th>Shanghai_segments</th>\n",
" <th>Shanghai_duration</th>\n",
" <th>Shanghai_origin_city</th>\n",
" <th>Shanghai_destination_city</th>\n",
" <th>Shanghai_route</th>\n",
" <th>Tokyo_origin</th>\n",
" <th>Tokyo_destination</th>\n",
" <th>Tokyo_date</th>\n",
" <th>Tokyo_price</th>\n",
" <th>Tokyo_departure_at</th>\n",
" <th>Tokyo_arrival_at</th>\n",
" <th>Tokyo_segments</th>\n",
" <th>Tokyo_duration</th>\n",
" <th>Tokyo_origin_city</th>\n",
" <th>Tokyo_destination_city</th>\n",
" <th>Tokyo_route</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1817.04</td>\n",
" <td>1 days 19:50:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-11</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-11 21:15:00+02:00</td>\n",
" <td>2019-07-12 01:30:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-15</td>\n",
" <td>198.03</td>\n",
" <td>2019-07-15 18:35:00+03:00</td>\n",
" <td>2019-07-16 05:05:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:30:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-22</td>\n",
" <td>154.11</td>\n",
" <td>2019-07-22 01:50:00+08:00</td>\n",
" <td>2019-07-22 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-25</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-25 21:50:00+08:00</td>\n",
" <td>2019-07-25 23:55:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:05:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>PVG</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-28</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-28 17:15:00+08:00</td>\n",
" <td>2019-07-28 20:40:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:25:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-31</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-31 17:55:00+09:00</td>\n",
" <td>2019-08-01 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>1817.04</td>\n",
" <td>1 days 19:50:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-11</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-11 21:15:00+02:00</td>\n",
" <td>2019-07-12 01:30:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-15</td>\n",
" <td>198.03</td>\n",
" <td>2019-07-15 18:35:00+03:00</td>\n",
" <td>2019-07-16 05:05:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:30:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-22</td>\n",
" <td>154.11</td>\n",
" <td>2019-07-22 01:50:00+08:00</td>\n",
" <td>2019-07-22 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-25</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-25 21:50:00+08:00</td>\n",
" <td>2019-07-25 23:55:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:05:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>SHA</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-28</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-28 17:15:00+08:00</td>\n",
" <td>2019-07-28 20:40:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:25:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-31</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-31 17:55:00+09:00</td>\n",
" <td>2019-08-01 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1817.04</td>\n",
" <td>1 days 20:00:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-10</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-10 21:15:00+02:00</td>\n",
" <td>2019-07-11 01:30:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-15</td>\n",
" <td>198.03</td>\n",
" <td>2019-07-15 18:35:00+03:00</td>\n",
" <td>2019-07-16 05:05:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:30:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-22</td>\n",
" <td>154.11</td>\n",
" <td>2019-07-22 01:50:00+08:00</td>\n",
" <td>2019-07-22 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-25</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-25 13:00:00+08:00</td>\n",
" <td>2019-07-25 15:15:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:15:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>PVG</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-28</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-28 17:15:00+08:00</td>\n",
" <td>2019-07-28 20:40:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:25:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-31</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-31 17:55:00+09:00</td>\n",
" <td>2019-08-01 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" <tr>\n",
" <th>70</th>\n",
" <td>1817.04</td>\n",
" <td>1 days 20:00:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-10</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-10 11:50:00+02:00</td>\n",
" <td>2019-07-10 16:05:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-15</td>\n",
" <td>198.03</td>\n",
" <td>2019-07-15 18:35:00+03:00</td>\n",
" <td>2019-07-16 05:05:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:30:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-22</td>\n",
" <td>154.11</td>\n",
" <td>2019-07-22 01:50:00+08:00</td>\n",
" <td>2019-07-22 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-25</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-25 18:00:00+08:00</td>\n",
" <td>2019-07-25 20:15:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:15:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>PVG</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-28</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-28 17:15:00+08:00</td>\n",
" <td>2019-07-28 20:40:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:25:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-31</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-31 17:55:00+09:00</td>\n",
" <td>2019-08-01 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" <tr>\n",
" <th>60</th>\n",
" <td>1817.04</td>\n",
" <td>1 days 20:00:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-10</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-10 11:50:00+02:00</td>\n",
" <td>2019-07-10 16:05:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-15</td>\n",
" <td>198.03</td>\n",
" <td>2019-07-15 18:35:00+03:00</td>\n",
" <td>2019-07-16 05:05:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:30:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-22</td>\n",
" <td>154.11</td>\n",
" <td>2019-07-22 01:50:00+08:00</td>\n",
" <td>2019-07-22 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-25</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-25 13:00:00+08:00</td>\n",
" <td>2019-07-25 15:15:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:15:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>PVG</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-28</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-28 17:15:00+08:00</td>\n",
" <td>2019-07-28 20:40:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:25:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-31</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-31 17:55:00+09:00</td>\n",
" <td>2019-08-01 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1817.04</td>\n",
" <td>1 days 20:00:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-11</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-11 21:15:00+02:00</td>\n",
" <td>2019-07-12 01:30:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-15</td>\n",
" <td>198.03</td>\n",
" <td>2019-07-15 18:35:00+03:00</td>\n",
" <td>2019-07-16 05:05:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:30:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-22</td>\n",
" <td>154.11</td>\n",
" <td>2019-07-22 01:50:00+08:00</td>\n",
" <td>2019-07-22 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-25</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-25 13:00:00+08:00</td>\n",
" <td>2019-07-25 15:15:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:15:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>PVG</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-28</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-28 17:15:00+08:00</td>\n",
" <td>2019-07-28 20:40:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:25:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-31</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-31 17:55:00+09:00</td>\n",
" <td>2019-08-01 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1817.04</td>\n",
" <td>1 days 20:05:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-10</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-10 11:50:00+02:00</td>\n",
" <td>2019-07-10 16:05:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-15</td>\n",
" <td>198.03</td>\n",
" <td>2019-07-15 18:35:00+03:00</td>\n",
" <td>2019-07-16 05:05:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:30:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-22</td>\n",
" <td>154.11</td>\n",
" <td>2019-07-22 01:50:00+08:00</td>\n",
" <td>2019-07-22 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-25</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-25 12:00:00+08:00</td>\n",
" <td>2019-07-25 14:20:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:20:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>PVG</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-28</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-28 17:15:00+08:00</td>\n",
" <td>2019-07-28 20:40:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:25:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-31</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-31 17:55:00+09:00</td>\n",
" <td>2019-08-01 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>1817.04</td>\n",
" <td>1 days 20:05:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-10</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-10 11:50:00+02:00</td>\n",
" <td>2019-07-10 16:05:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-15</td>\n",
" <td>198.03</td>\n",
" <td>2019-07-15 18:35:00+03:00</td>\n",
" <td>2019-07-16 05:05:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:30:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-22</td>\n",
" <td>154.11</td>\n",
" <td>2019-07-22 01:50:00+08:00</td>\n",
" <td>2019-07-22 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-25</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-25 12:00:00+08:00</td>\n",
" <td>2019-07-25 14:20:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:20:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>SHA</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-28</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-28 17:15:00+08:00</td>\n",
" <td>2019-07-28 20:40:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:25:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-31</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-31 17:55:00+09:00</td>\n",
" <td>2019-08-01 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" <tr>\n",
" <th>70</th>\n",
" <td>1817.04</td>\n",
" <td>1 days 20:05:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-11</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-11 21:15:00+02:00</td>\n",
" <td>2019-07-12 01:30:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-15</td>\n",
" <td>198.03</td>\n",
" <td>2019-07-15 18:35:00+03:00</td>\n",
" <td>2019-07-16 05:05:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:30:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-22</td>\n",
" <td>154.11</td>\n",
" <td>2019-07-22 01:50:00+08:00</td>\n",
" <td>2019-07-22 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-25</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-25 18:30:00+08:00</td>\n",
" <td>2019-07-25 20:50:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:20:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>PVG</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-28</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-28 17:15:00+08:00</td>\n",
" <td>2019-07-28 20:40:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:25:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-31</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-31 17:55:00+09:00</td>\n",
" <td>2019-08-01 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" <tr>\n",
" <th>60</th>\n",
" <td>1817.04</td>\n",
" <td>1 days 20:05:00</td>\n",
" <td>AMS</td>\n",
" <td>SVO</td>\n",
" <td>2019-07-11</td>\n",
" <td>203.07</td>\n",
" <td>2019-07-11 21:15:00+02:00</td>\n",
" <td>2019-07-12 01:30:00+03:00</td>\n",
" <td>1</td>\n",
" <td>03:15:00</td>\n",
" <td>Amsterdam</td>\n",
" <td>Moscow</td>\n",
" <td>Amsterdam ✈️ Moscow</td>\n",
" <td>DME</td>\n",
" <td>IKT</td>\n",
" <td>2019-07-15</td>\n",
" <td>198.03</td>\n",
" <td>2019-07-15 18:35:00+03:00</td>\n",
" <td>2019-07-16 05:05:00+08:00</td>\n",
" <td>1</td>\n",
" <td>05:30:00</td>\n",
" <td>Moscow</td>\n",
" <td>Irkutsk</td>\n",
" <td>Moscow ✈️ Irkutsk</td>\n",
" <td>IKT</td>\n",
" <td>PEK</td>\n",
" <td>2019-07-22</td>\n",
" <td>154.11</td>\n",
" <td>2019-07-22 01:50:00+08:00</td>\n",
" <td>2019-07-22 04:40:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:50:00</td>\n",
" <td>Irkutsk</td>\n",
" <td>Beijing</td>\n",
" <td>Irkutsk ✈️ Beijing</td>\n",
" <td>PEK</td>\n",
" <td>SHA</td>\n",
" <td>2019-07-25</td>\n",
" <td>171.64</td>\n",
" <td>2019-07-25 11:00:00+08:00</td>\n",
" <td>2019-07-25 13:20:00+08:00</td>\n",
" <td>1</td>\n",
" <td>02:20:00</td>\n",
" <td>Beijing</td>\n",
" <td>Shanghai</td>\n",
" <td>Beijing ✈️ Shanghai</td>\n",
" <td>PVG</td>\n",
" <td>NRT</td>\n",
" <td>2019-07-28</td>\n",
" <td>394.07</td>\n",
" <td>2019-07-28 17:15:00+08:00</td>\n",
" <td>2019-07-28 20:40:00+09:00</td>\n",
" <td>1</td>\n",
" <td>02:25:00</td>\n",
" <td>Shanghai</td>\n",
" <td>Tokyo</td>\n",
" <td>Shanghai ✈️ Tokyo</td>\n",
" <td>NRT</td>\n",
" <td>AMS</td>\n",
" <td>2019-07-31</td>\n",
" <td>696.12</td>\n",
" <td>2019-07-31 17:55:00+09:00</td>\n",
" <td>2019-08-01 14:40:00+02:00</td>\n",
" <td>2</td>\n",
" <td>1 days 03:45:00</td>\n",
" <td>Tokyo</td>\n",
" <td>Amsterdam</td>\n",
" <td>Tokyo ✈️ Amsterdam</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" total_price total_flights_duration Amsterdam_origin Amsterdam_destination \\\n",
"10 1817.04 1 days 19:50:00 AMS SVO \n",
"40 1817.04 1 days 19:50:00 AMS SVO \n",
"0 1817.04 1 days 20:00:00 AMS SVO \n",
"70 1817.04 1 days 20:00:00 AMS SVO \n",
"60 1817.04 1 days 20:00:00 AMS SVO \n",
"0 1817.04 1 days 20:00:00 AMS SVO \n",
"10 1817.04 1 days 20:05:00 AMS SVO \n",
"40 1817.04 1 days 20:05:00 AMS SVO \n",
"70 1817.04 1 days 20:05:00 AMS SVO \n",
"60 1817.04 1 days 20:05:00 AMS SVO \n",
"\n",
" Amsterdam_date Amsterdam_price Amsterdam_departure_at \\\n",
"10 2019-07-11 203.07 2019-07-11 21:15:00+02:00 \n",
"40 2019-07-11 203.07 2019-07-11 21:15:00+02:00 \n",
"0 2019-07-10 203.07 2019-07-10 21:15:00+02:00 \n",
"70 2019-07-10 203.07 2019-07-10 11:50:00+02:00 \n",
"60 2019-07-10 203.07 2019-07-10 11:50:00+02:00 \n",
"0 2019-07-11 203.07 2019-07-11 21:15:00+02:00 \n",
"10 2019-07-10 203.07 2019-07-10 11:50:00+02:00 \n",
"40 2019-07-10 203.07 2019-07-10 11:50:00+02:00 \n",
"70 2019-07-11 203.07 2019-07-11 21:15:00+02:00 \n",
"60 2019-07-11 203.07 2019-07-11 21:15:00+02:00 \n",
"\n",
" Amsterdam_arrival_at Amsterdam_segments Amsterdam_duration \\\n",
"10 2019-07-12 01:30:00+03:00 1 03:15:00 \n",
"40 2019-07-12 01:30:00+03:00 1 03:15:00 \n",
"0 2019-07-11 01:30:00+03:00 1 03:15:00 \n",
"70 2019-07-10 16:05:00+03:00 1 03:15:00 \n",
"60 2019-07-10 16:05:00+03:00 1 03:15:00 \n",
"0 2019-07-12 01:30:00+03:00 1 03:15:00 \n",
"10 2019-07-10 16:05:00+03:00 1 03:15:00 \n",
"40 2019-07-10 16:05:00+03:00 1 03:15:00 \n",
"70 2019-07-12 01:30:00+03:00 1 03:15:00 \n",
"60 2019-07-12 01:30:00+03:00 1 03:15:00 \n",
"\n",
" Amsterdam_origin_city Amsterdam_destination_city Amsterdam_route \\\n",
"10 Amsterdam Moscow Amsterdam ✈️ Moscow \n",
"40 Amsterdam Moscow Amsterdam ✈️ Moscow \n",
"0 Amsterdam Moscow Amsterdam ✈️ Moscow \n",
"70 Amsterdam Moscow Amsterdam ✈️ Moscow \n",
"60 Amsterdam Moscow Amsterdam ✈️ Moscow \n",
"0 Amsterdam Moscow Amsterdam ✈️ Moscow \n",
"10 Amsterdam Moscow Amsterdam ✈️ Moscow \n",
"40 Amsterdam Moscow Amsterdam ✈️ Moscow \n",
"70 Amsterdam Moscow Amsterdam ✈️ Moscow \n",
"60 Amsterdam Moscow Amsterdam ✈️ Moscow \n",
"\n",
" Moscow_origin Moscow_destination Moscow_date Moscow_price \\\n",
"10 DME IKT 2019-07-15 198.03 \n",
"40 DME IKT 2019-07-15 198.03 \n",
"0 DME IKT 2019-07-15 198.03 \n",
"70 DME IKT 2019-07-15 198.03 \n",
"60 DME IKT 2019-07-15 198.03 \n",
"0 DME IKT 2019-07-15 198.03 \n",
"10 DME IKT 2019-07-15 198.03 \n",
"40 DME IKT 2019-07-15 198.03 \n",
"70 DME IKT 2019-07-15 198.03 \n",
"60 DME IKT 2019-07-15 198.03 \n",
"\n",
" Moscow_departure_at Moscow_arrival_at Moscow_segments \\\n",
"10 2019-07-15 18:35:00+03:00 2019-07-16 05:05:00+08:00 1 \n",
"40 2019-07-15 18:35:00+03:00 2019-07-16 05:05:00+08:00 1 \n",
"0 2019-07-15 18:35:00+03:00 2019-07-16 05:05:00+08:00 1 \n",
"70 2019-07-15 18:35:00+03:00 2019-07-16 05:05:00+08:00 1 \n",
"60 2019-07-15 18:35:00+03:00 2019-07-16 05:05:00+08:00 1 \n",
"0 2019-07-15 18:35:00+03:00 2019-07-16 05:05:00+08:00 1 \n",
"10 2019-07-15 18:35:00+03:00 2019-07-16 05:05:00+08:00 1 \n",
"40 2019-07-15 18:35:00+03:00 2019-07-16 05:05:00+08:00 1 \n",
"70 2019-07-15 18:35:00+03:00 2019-07-16 05:05:00+08:00 1 \n",
"60 2019-07-15 18:35:00+03:00 2019-07-16 05:05:00+08:00 1 \n",
"\n",
" Moscow_duration Moscow_origin_city Moscow_destination_city \\\n",
"10 05:30:00 Moscow Irkutsk \n",
"40 05:30:00 Moscow Irkutsk \n",
"0 05:30:00 Moscow Irkutsk \n",
"70 05:30:00 Moscow Irkutsk \n",
"60 05:30:00 Moscow Irkutsk \n",
"0 05:30:00 Moscow Irkutsk \n",
"10 05:30:00 Moscow Irkutsk \n",
"40 05:30:00 Moscow Irkutsk \n",
"70 05:30:00 Moscow Irkutsk \n",
"60 05:30:00 Moscow Irkutsk \n",
"\n",
" Moscow_route Irkutsk_origin Irkutsk_destination Irkutsk_date \\\n",
"10 Moscow ✈️ Irkutsk IKT PEK 2019-07-22 \n",
"40 Moscow ✈️ Irkutsk IKT PEK 2019-07-22 \n",
"0 Moscow ✈️ Irkutsk IKT PEK 2019-07-22 \n",
"70 Moscow ✈️ Irkutsk IKT PEK 2019-07-22 \n",
"60 Moscow ✈️ Irkutsk IKT PEK 2019-07-22 \n",
"0 Moscow ✈️ Irkutsk IKT PEK 2019-07-22 \n",
"10 Moscow ✈️ Irkutsk IKT PEK 2019-07-22 \n",
"40 Moscow ✈️ Irkutsk IKT PEK 2019-07-22 \n",
"70 Moscow ✈️ Irkutsk IKT PEK 2019-07-22 \n",
"60 Moscow ✈️ Irkutsk IKT PEK 2019-07-22 \n",
"\n",
" Irkutsk_price Irkutsk_departure_at Irkutsk_arrival_at \\\n",
"10 154.11 2019-07-22 01:50:00+08:00 2019-07-22 04:40:00+08:00 \n",
"40 154.11 2019-07-22 01:50:00+08:00 2019-07-22 04:40:00+08:00 \n",
"0 154.11 2019-07-22 01:50:00+08:00 2019-07-22 04:40:00+08:00 \n",
"70 154.11 2019-07-22 01:50:00+08:00 2019-07-22 04:40:00+08:00 \n",
"60 154.11 2019-07-22 01:50:00+08:00 2019-07-22 04:40:00+08:00 \n",
"0 154.11 2019-07-22 01:50:00+08:00 2019-07-22 04:40:00+08:00 \n",
"10 154.11 2019-07-22 01:50:00+08:00 2019-07-22 04:40:00+08:00 \n",
"40 154.11 2019-07-22 01:50:00+08:00 2019-07-22 04:40:00+08:00 \n",
"70 154.11 2019-07-22 01:50:00+08:00 2019-07-22 04:40:00+08:00 \n",
"60 154.11 2019-07-22 01:50:00+08:00 2019-07-22 04:40:00+08:00 \n",
"\n",
" Irkutsk_segments Irkutsk_duration Irkutsk_origin_city \\\n",
"10 1 02:50:00 Irkutsk \n",
"40 1 02:50:00 Irkutsk \n",
"0 1 02:50:00 Irkutsk \n",
"70 1 02:50:00 Irkutsk \n",
"60 1 02:50:00 Irkutsk \n",
"0 1 02:50:00 Irkutsk \n",
"10 1 02:50:00 Irkutsk \n",
"40 1 02:50:00 Irkutsk \n",
"70 1 02:50:00 Irkutsk \n",
"60 1 02:50:00 Irkutsk \n",
"\n",
" Irkutsk_destination_city Irkutsk_route Beijing_origin \\\n",
"10 Beijing Irkutsk ✈️ Beijing PEK \n",
"40 Beijing Irkutsk ✈️ Beijing PEK \n",
"0 Beijing Irkutsk ✈️ Beijing PEK \n",
"70 Beijing Irkutsk ✈️ Beijing PEK \n",
"60 Beijing Irkutsk ✈️ Beijing PEK \n",
"0 Beijing Irkutsk ✈️ Beijing PEK \n",
"10 Beijing Irkutsk ✈️ Beijing PEK \n",
"40 Beijing Irkutsk ✈️ Beijing PEK \n",
"70 Beijing Irkutsk ✈️ Beijing PEK \n",
"60 Beijing Irkutsk ✈️ Beijing PEK \n",
"\n",
" Beijing_destination Beijing_date Beijing_price Beijing_departure_at \\\n",
"10 SHA 2019-07-25 171.64 2019-07-25 21:50:00+08:00 \n",
"40 SHA 2019-07-25 171.64 2019-07-25 21:50:00+08:00 \n",
"0 SHA 2019-07-25 171.64 2019-07-25 13:00:00+08:00 \n",
"70 SHA 2019-07-25 171.64 2019-07-25 18:00:00+08:00 \n",
"60 SHA 2019-07-25 171.64 2019-07-25 13:00:00+08:00 \n",
"0 SHA 2019-07-25 171.64 2019-07-25 13:00:00+08:00 \n",
"10 SHA 2019-07-25 171.64 2019-07-25 12:00:00+08:00 \n",
"40 SHA 2019-07-25 171.64 2019-07-25 12:00:00+08:00 \n",
"70 SHA 2019-07-25 171.64 2019-07-25 18:30:00+08:00 \n",
"60 SHA 2019-07-25 171.64 2019-07-25 11:00:00+08:00 \n",
"\n",
" Beijing_arrival_at Beijing_segments Beijing_duration \\\n",
"10 2019-07-25 23:55:00+08:00 1 02:05:00 \n",
"40 2019-07-25 23:55:00+08:00 1 02:05:00 \n",
"0 2019-07-25 15:15:00+08:00 1 02:15:00 \n",
"70 2019-07-25 20:15:00+08:00 1 02:15:00 \n",
"60 2019-07-25 15:15:00+08:00 1 02:15:00 \n",
"0 2019-07-25 15:15:00+08:00 1 02:15:00 \n",
"10 2019-07-25 14:20:00+08:00 1 02:20:00 \n",
"40 2019-07-25 14:20:00+08:00 1 02:20:00 \n",
"70 2019-07-25 20:50:00+08:00 1 02:20:00 \n",
"60 2019-07-25 13:20:00+08:00 1 02:20:00 \n",
"\n",
" Beijing_origin_city Beijing_destination_city Beijing_route \\\n",
"10 Beijing Shanghai Beijing ✈️ Shanghai \n",
"40 Beijing Shanghai Beijing ✈️ Shanghai \n",
"0 Beijing Shanghai Beijing ✈️ Shanghai \n",
"70 Beijing Shanghai Beijing ✈️ Shanghai \n",
"60 Beijing Shanghai Beijing ✈️ Shanghai \n",
"0 Beijing Shanghai Beijing ✈️ Shanghai \n",
"10 Beijing Shanghai Beijing ✈️ Shanghai \n",
"40 Beijing Shanghai Beijing ✈️ Shanghai \n",
"70 Beijing Shanghai Beijing ✈️ Shanghai \n",
"60 Beijing Shanghai Beijing ✈️ Shanghai \n",
"\n",
" Shanghai_origin Shanghai_destination Shanghai_date Shanghai_price \\\n",
"10 PVG NRT 2019-07-28 394.07 \n",
"40 SHA NRT 2019-07-28 394.07 \n",
"0 PVG NRT 2019-07-28 394.07 \n",
"70 PVG NRT 2019-07-28 394.07 \n",
"60 PVG NRT 2019-07-28 394.07 \n",
"0 PVG NRT 2019-07-28 394.07 \n",
"10 PVG NRT 2019-07-28 394.07 \n",
"40 SHA NRT 2019-07-28 394.07 \n",
"70 PVG NRT 2019-07-28 394.07 \n",
"60 PVG NRT 2019-07-28 394.07 \n",
"\n",
" Shanghai_departure_at Shanghai_arrival_at Shanghai_segments \\\n",
"10 2019-07-28 17:15:00+08:00 2019-07-28 20:40:00+09:00 1 \n",
"40 2019-07-28 17:15:00+08:00 2019-07-28 20:40:00+09:00 1 \n",
"0 2019-07-28 17:15:00+08:00 2019-07-28 20:40:00+09:00 1 \n",
"70 2019-07-28 17:15:00+08:00 2019-07-28 20:40:00+09:00 1 \n",
"60 2019-07-28 17:15:00+08:00 2019-07-28 20:40:00+09:00 1 \n",
"0 2019-07-28 17:15:00+08:00 2019-07-28 20:40:00+09:00 1 \n",
"10 2019-07-28 17:15:00+08:00 2019-07-28 20:40:00+09:00 1 \n",
"40 2019-07-28 17:15:00+08:00 2019-07-28 20:40:00+09:00 1 \n",
"70 2019-07-28 17:15:00+08:00 2019-07-28 20:40:00+09:00 1 \n",
"60 2019-07-28 17:15:00+08:00 2019-07-28 20:40:00+09:00 1 \n",
"\n",
" Shanghai_duration Shanghai_origin_city Shanghai_destination_city \\\n",
"10 02:25:00 Shanghai Tokyo \n",
"40 02:25:00 Shanghai Tokyo \n",
"0 02:25:00 Shanghai Tokyo \n",
"70 02:25:00 Shanghai Tokyo \n",
"60 02:25:00 Shanghai Tokyo \n",
"0 02:25:00 Shanghai Tokyo \n",
"10 02:25:00 Shanghai Tokyo \n",
"40 02:25:00 Shanghai Tokyo \n",
"70 02:25:00 Shanghai Tokyo \n",
"60 02:25:00 Shanghai Tokyo \n",
"\n",
" Shanghai_route Tokyo_origin Tokyo_destination Tokyo_date Tokyo_price \\\n",
"10 Shanghai ✈️ Tokyo NRT AMS 2019-07-31 696.12 \n",
"40 Shanghai ✈️ Tokyo NRT AMS 2019-07-31 696.12 \n",
"0 Shanghai ✈️ Tokyo NRT AMS 2019-07-31 696.12 \n",
"70 Shanghai ✈️ Tokyo NRT AMS 2019-07-31 696.12 \n",
"60 Shanghai ✈️ Tokyo NRT AMS 2019-07-31 696.12 \n",
"0 Shanghai ✈️ Tokyo NRT AMS 2019-07-31 696.12 \n",
"10 Shanghai ✈️ Tokyo NRT AMS 2019-07-31 696.12 \n",
"40 Shanghai ✈️ Tokyo NRT AMS 2019-07-31 696.12 \n",
"70 Shanghai ✈️ Tokyo NRT AMS 2019-07-31 696.12 \n",
"60 Shanghai ✈️ Tokyo NRT AMS 2019-07-31 696.12 \n",
"\n",
" Tokyo_departure_at Tokyo_arrival_at Tokyo_segments \\\n",
"10 2019-07-31 17:55:00+09:00 2019-08-01 14:40:00+02:00 2 \n",
"40 2019-07-31 17:55:00+09:00 2019-08-01 14:40:00+02:00 2 \n",
"0 2019-07-31 17:55:00+09:00 2019-08-01 14:40:00+02:00 2 \n",
"70 2019-07-31 17:55:00+09:00 2019-08-01 14:40:00+02:00 2 \n",
"60 2019-07-31 17:55:00+09:00 2019-08-01 14:40:00+02:00 2 \n",
"0 2019-07-31 17:55:00+09:00 2019-08-01 14:40:00+02:00 2 \n",
"10 2019-07-31 17:55:00+09:00 2019-08-01 14:40:00+02:00 2 \n",
"40 2019-07-31 17:55:00+09:00 2019-08-01 14:40:00+02:00 2 \n",
"70 2019-07-31 17:55:00+09:00 2019-08-01 14:40:00+02:00 2 \n",
"60 2019-07-31 17:55:00+09:00 2019-08-01 14:40:00+02:00 2 \n",
"\n",
" Tokyo_duration Tokyo_origin_city Tokyo_destination_city \\\n",
"10 1 days 03:45:00 Tokyo Amsterdam \n",
"40 1 days 03:45:00 Tokyo Amsterdam \n",
"0 1 days 03:45:00 Tokyo Amsterdam \n",
"70 1 days 03:45:00 Tokyo Amsterdam \n",
"60 1 days 03:45:00 Tokyo Amsterdam \n",
"0 1 days 03:45:00 Tokyo Amsterdam \n",
"10 1 days 03:45:00 Tokyo Amsterdam \n",
"40 1 days 03:45:00 Tokyo Amsterdam \n",
"70 1 days 03:45:00 Tokyo Amsterdam \n",
"60 1 days 03:45:00 Tokyo Amsterdam \n",
"\n",
" Tokyo_route \n",
"10 Tokyo ✈️ Amsterdam \n",
"40 Tokyo ✈️ Amsterdam \n",
"0 Tokyo ✈️ Amsterdam \n",
"70 Tokyo ✈️ Amsterdam \n",
"60 Tokyo ✈️ Amsterdam \n",
"0 Tokyo ✈️ Amsterdam \n",
"10 Tokyo ✈️ Amsterdam \n",
"40 Tokyo ✈️ Amsterdam \n",
"70 Tokyo ✈️ Amsterdam \n",
"60 Tokyo ✈️ Amsterdam "
]
},
"execution_count": 715,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"itinerary_df \\\n",
" .sort_values(['total_price', 'total_flights_duration']) \\\n",
" .head(10)"
]
}
],
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment