【航空会社/出発地別の飛行機の遅延ランキング】Webデータを独自に集計

「到着空港にあるレートの良いMoney exchangerで両替しようと思っていたら、飛行機が遅れて営業時間中に間に合わなかった!」
「得意先を到着空港に出迎えに行ったら、予定より45分も早く到着していて待たせてしまった!」
航空便の定時運航率って、実際のところどれくらいなのでしょうか?
航空会社によっても定時運航率が高いところと低いところがありそうです。
また出発時間が遅れれば到着時間も遅れるわけで、出発空港による傾向もありそうです。
そこで今回は、バンコクのスワンナプーム空港の到着便で統計を取ってみました。
フライトステータスをWebスクレイピング
スワンナプーム空港の到着便のフライトステータスは
SUVARNABHUMI AIRPORT-FLIGHT STATUS – Arrivals
のWebサイトに公開されているので、これをPythonを使ってWebスクレイピングしました。
このサイトでは各フライトについてETA(予定到着時間)とATA(実際の到着時間)がリアルタイムで更新されていますが、6時間以前のデータは自動的に消去されてしまうようになっています。
そのため、scheduleライブラリを使って6時間おきに定時実行しました。
データ収集期間は6月19日から6月26日までの1週間としました。
この間の到着便数は1,651便です。
データ数が少ないため、あくまでも参考程度であることをご承知おき下さい。
遅延時間のヒストグラム
まずは1,651便の遅延時間がどのように分布しているのかを見るために、ヒストグラムを描いてみます。
ExcelやPythonによるヒストグラムの描き方についてはこちらを参照してみて下さい。
Excelでヒストグラムを描く二通りの方法。正規分布の近似曲線も併せて表示!
Pythonで「ヒストグラム+正規分布の近似曲線」を作成する4通りの方法
ヒストグラムは次のようになりました。

予想通り、ゼロを中心とする釣鐘状の分布になっています。
遅延時間の中央値を計算したところもゼロでした。
遅延時間ゼロ近辺で着陸するのが通常のようです。
ちなみに最も遅れたのはチェンライ発タイスマイルの6時間29分、逆に最も予定より早く着いたのはソウル発エアプレミアの-57分でした。
航空会社別の遅延時間ランキング
次に航空会社別の遅延時間の平均を調べてみました。
便数が少なければ「たまたま」ということも考えられるので、便数についても参考までに含めました。
| 航空会社 | 遅延時間(分) | 便数 |
| Kuwait Airways | 133 | 3 |
| Jetstar | 100 | 2 |
| Philippine Airlines | 72 | 11 |
| Vietravel Airlines | 64 | 10 |
| Nepal Airlines | 54 | 2 |
| KLM | 52 | 3 |
| SpiceJet | 45 | 8 |
| Garuda Indonesia | 45 | 4 |
| Qantas | 33 | 5 |
| VietJet Air | 31 | 18 |
| S7 Airlines | 30 | 2 |
| Pacific Airlines | 29 | 9 |
| Myanmar Airways | 28 | 22 |
| Shanghai Airlines | 28 | 4 |
| Lao Airlines | 28 | 5 |
| Biman Bangladesh Airlines | 27 | 5 |
| Cebu Pacific Air | 26 | 13 |
| US-Bangla Airlines | 26 | 2 |
| EL AL | 24 | 4 |
| SriLankan Airlines | 23 | 4 |
| SWISS | 21 | 2 |
| Turkish Airlines | 20 | 7 |
| Cambodia Airways | 20 | 5 |
| Air China | 19 | 9 |
| Lufthansa | 19 | 5 |
| Greater Bay Airlines | 18 | 5 |
| Bamboo Airways | 17 | 6 |
| China Southern Airlines | 16 | 14 |
| Air India | 16 | 7 |
| Austrian | 15 | 4 |
| Asiana Airlines | 13 | 5 |
| Air Austral | 13 | 1 |
| Jetstar Asia | 12 | 9 |
| Gulf Air | 12 | 6 |
| Hainan Airlines | 11 | 10 |
| Singapore Airlines | 11 | 20 |
| SalamAir | 10 | 2 |
| Shandong Airlines | 10 | 1 |
| Jeju Air | 10 | 8 |
| Xiamen Airlines | 10 | 12 |
| EVA Air | 9 | 23 |
| Qatar Airways | 9 | 18 |
| Scoot | 9 | 20 |
| AirAsia | 9 | 2 |
| Saudia | 8 | 6 |
| Guangxi Beibu Gulf Airlines | 8 | 5 |
| Royal Jordanian | 7 | 2 |
| Vistara | 6 | 8 |
| Mahan Air | 5 | 1 |
| Malaysia Airlines | 5 | 16 |
| Thai Airways | 5 | 200 |
| Thai Vietjet Air | 4 | 203 |
| Jin Air | 4 | 9 |
| Vietnam Airlines | 4 | 25 |
| Qingdao Airlines | 4 | 4 |
| Starlux Airlines | 3 | 9 |
| Hong Kong Express | 2 | 13 |
| Thai AirAsia | 2 | 55 |
| Hong Kong Airlines | 1 | 17 |
| Emirates | -1 | 19 |
| Thai Smile | -1 | 199 |
| China Eastern Airlines | -1 | 9 |
| West Air (China) | -2 | 4 |
| China Airlines | -2 | 15 |
| IndiGo | -2 | 19 |
| T’Way Air | -3 | 4 |
| Oman Air | -3 | 7 |
| Etihad Airways | -3 | 6 |
| Bangkok Airways | -3 | 193 |
| Juneyao Airline | -4 | 2 |
| Korean Air | -4 | 13 |
| Peach Aviation | -4 | 3 |
| Sichuan Airlines | -6 | 5 |
| Air Astana | -6 | 1 |
| JAL | -7 | 18 |
| Lanmei Airlines | -8 | 5 |
| Air Busan | -9 | 10 |
| Shenzhen Airlines | -9 | 4 |
| Ethiopian Airlines | -10 | 6 |
| Hebei Airlines | -10 | 1 |
| Air Macau | -10 | 2 |
| Sky Angkor Airlines | -11 | 8 |
| Aeroflot | -11 | 1 |
| Cathay Pacific | -11 | 21 |
| Kunming Airlines | -12 | 1 |
| Finnair | -13 | 4 |
| Tashi Air Pvt Ltd | -14 | 3 |
| Spring Airlines | -15 | 18 |
| ANA | -16 | 9 |
| Beijing Capital Airlines | -16 | 9 |
| Royal Bhutan Airlines | -18 | 7 |
| Myanmar National Airlines | -18 | 3 |
| Lucky Air | -24 | 2 |
| Air Japan | -26 | 5 |
| ZIPAIR Tokyo | -31 | 5 |
| Air Premia | -41 | 4 |
出発地別の遅延時間ランキング
では出発地別の遅延時間の傾向はあるのでしょうか?
やはりというべきか、日本発の便はすべて平均遅延時間はマイナス、つまり定刻より早く着いていました。
| 出発地 | 遅延時間(分) | 便数 |
| Kuwait (KWI) | 133 | 3 |
| Dayong (DYG) | 79 | 1 |
| Haikou (HAK) | 70 | 2 |
| Manila (MNL) | 57 | 23 |
| Amsterdam (AMS) | 45 | 5 |
| Ningbo (NGB) | 40 | 3 |
| Frankfurt (FRA) | 39 | 6 |
| Paris (CDG) | 35 | 4 |
| Copenhagen (CPH) | 31 | 4 |
| London (LHR) | 30 | 13 |
| Irkutsk (IKT) | 30 | 2 |
| Ho Chi Minh City (SGN) | 29 | 46 |
| Sydney (SYD) | 28 | 11 |
| Fuzhou (FOC) | 25 | 4 |
| Melbourne (MEL) | 25 | 11 |
| Tel Aviv-Yafo (TLV) | 24 | 4 |
| Stockholm (ARN) | 23 | 4 |
| Colombo (CMB) | 23 | 4 |
| Mandalay (MDL) | 23 | 3 |
| Istanbul (ISL) | 20 | 7 |
| Beijing (PEK) | 20 | 13 |
| Riyadh (RUH) | 19 | 2 |
| Chiang Rai (CEI) | 17 | 24 |
| Zurich (ZRH) | 16 | 6 |
| Dhaka (DAC) | 16 | 15 |
| Lanzhou (LHW) | 16 | 1 |
| Lahore (LHE) | 15 | 2 |
| Kathmandu (KTM) | 14 | 6 |
| Saint Denis de la Reunion (RUN) | 13 | 1 |
| Hanoi (HAN) | 12 | 41 |
| Delhi (DEL) | 12 | 30 |
| Munich (MUC) | 11 | 8 |
| Singapore (SIN) | 11 | 73 |
| Guangzhou (CAN) | 10 | 21 |
| Doha (DOH) | 10 | 16 |
| Jakarta (CGK) | 10 | 14 |
| Bandar Seri Begawan (BWN) | 10 | 2 |
| Yangon (RGN) | 9 | 35 |
| Shanghai (PVG) | 8 | 27 |
| Dubai (DXB) | 7 | 14 |
| Changzhou (CZX) | 7 | 3 |
| Macau (MFM) | 7 | 6 |
| Amman (AMM) | 7 | 2 |
| Chennai (MAA) | 6 | 3 |
| Vienna (VIE) | 6 | 7 |
| Tehran (IKA) | 5 | 1 |
| Qingdao (TAO) | 5 | 5 |
| Islamabad (ISB) | 5 | 2 |
| Vientiane (VTE) | 4 | 13 |
| Chongqing (CKG) | 4 | 2 |
| Jeddah (JED) | 4 | 4 |
| Taipei (TPE) | 4 | 46 |
| Narathiwat (NAW) | 3 | 4 |
| Phuket (HKT) | 3 | 112 |
| Hat Yai (HDY) | 3 | 27 |
| Kuala Lumpur (KUL) | 3 | 33 |
| Kolkata (CCU) | 3 | 13 |
| Karachi (KHI) | 3 | 2 |
| Koh Samui (USM) | 2 | 86 |
| Surat Thani (URT) | 1 | 13 |
| Udon Thani (UTH) | 1 | 28 |
| Chiang Mai (CNX) | 1 | 71 |
| Da Nang (DAD) | 1 | 14 |
| Hong Kong (HKG) | 1 | 72 |
| Angeles (CRK) | 0 | 5 |
| Nanning (NNG) | 0 | 8 |
| Muscat (MCT) | 0 | 9 |
| Xiamen (XMN) | 0 | 8 |
| Ubon Ratchathani (UBP) | -1 | 17 |
| Ulaanbaatar (UBN) | -1 | 1 |
| Bahrain (BAH) | -2 | 4 |
| Fukuoka (FUK) | -2 | 9 |
| Mumbai (BOM) | -2 | 16 |
| Hyderabad (HYD) | -4 | 4 |
| Nagoya (NGO) | -4 | 4 |
| Phnom Penh (PNH) | -4 | 47 |
| Khon Kaen (KKC) | -4 | 34 |
| Busan (PUS) | -4 | 13 |
| Krabi (KBV) | -5 | 30 |
| Chengdu (TFU) | -5 | 13 |
| Almaty (ALA) | -6 | 1 |
| Zhengzhou (CGO) | -7 | 2 |
| Abu Dhabi (AUH) | -8 | 5 |
| Seoul (ICN) | -9 | 58 |
| Shenzhen (SZX) | -9 | 4 |
| Shijiazhuang (SJW) | -10 | 1 |
| Penang (PEN) | -10 | 1 |
| Osaka (KIX) | -10 | 18 |
| Tokyo (HND) | -11 | 27 |
| Lampang (LPT) | -11 | 10 |
| Moscow (SVO) | -11 | 1 |
| Trat (TDX) | -11 | 10 |
| Kaohsiung (KHH) | -11 | 6 |
| Denpasar (DPS) | -13 | 6 |
| Daegu (TAE) | -13 | 2 |
| Helsinki (HEL) | -13 | 4 |
| Addis Ababa (ADD) | -13 | 3 |
| Sukhothai (THS) | -14 | 8 |
| Tokyo (NRT) | -15 | 33 |
| Bengaluru (BLR) | -18 | 8 |
| Siem Reap (REP) | -18 | 12 |
| Kunming (KMG) | -19 | 7 |
| Cebu City (CEB) | -19 | 1 |
| Hangzhou (HGH) | -20 | 4 |
| Phu Quoc (PQC) | -21 | 3 |
| Bhubaneswar (BBI) | -22 | 1 |
| Luang Prabang (LPQ) | -27 | 5 |
| Xian (XIY) | -30 | 5 |
| Ahmedabad (AMD) | -32 | 4 |
| Paro (PBH) | -44 | 2 |
| Bagdogra (IXB) | -46 | 1 |













