PyGWalkerを使った航空機事故データの可視化
現代の航空技術の時代において、航空機事故の理解は非常に重要です。これは、安全対策の向上に助けになるだけでなく、歴史的に航空業界に影響を与えた要素についての洞察を提供します。このノートブックでは、データに基づいた旅に出発し、航空機事故の記録に深く入り込んでいきます。革新的なPythonライブラリであるPyGWalkerの機能を活用して、これらの不運な出来事からパターンや傾向、重要な知見を引き出すことを目指します。
PyGWalkerとは?
PyGWalkerは、pandasのデータフレームをTableauのようなインタラクティブなユーザーインターフェースに変換する革新的なPythonライブラリです。このUIは、データの可視化を効率的かつ直感的に行うために特別に設計されており、複雑なコーディングの必要がなくデータセットの隠れたパターンや洞察を発見することができます。PyGWalkerの魅力は、複雑なデータをよりアクセスしやすく理解しやすくする能力にあり、データサイエンスと意思決定の間のギャップを埋めることにあります。
PyGWalkerの詳細と始め方については、公式のGitHubリポジトリ (opens in a new tab)をご覧ください。
pip install -q pygwalker --pre
注意: 更新されたパッケージを使用するためには、カーネルを再起動する必要があることがあります。
航空機事故データセットの読み込みと探索
まず、データセットを読み込み、その構造を事前に調べます。
import pandas as pd
import numpy as np
from datetime import datetime
import pygwalker as pyg
# 1. データの読み込み
df = pd.read_csv('/kaggle/input/airplane-crashes-since-1908/Airplane_Crashes_and_Fatalities_Since_1908.csv')
航空機事故データのクリーニングと前処理
可視化の正確さを保証するために、データを前処理してクリーニングする必要があります。これには、欠損値の処理、関連する時間の特徴量の抽出などが含まれます。
# 2. 時間の列のクリーンアップ
df['Time'] = df['Time'].replace(np.nan, '00:00')
df['Time'] = df['Time'].str.replace('c: ', '').str.replace('c:', '').str.replace('c', '')
df['Time'] = df['Time'].str.replace('12\'20', '12:20').str.replace('18.40', '18:40').str.replace('0943', '09:43')
df['Time'] = df['Time'].str.replace('22\'08', '22:08').str.replace('114:20', '00:00')
# 'Time'の列から時間を抽出
df['Hour'] = df['Time'].str.split(':').str[0].astype(int)
# 3. 日付と時間の列を結合
df['DateTime'] = df['Date'] + ' ' + df['Time']
# 4. 日付形式に変換
def todate(x):
return datetime.strptime(x, '%m/%d/%Y %H:%M')
df['DateTime'] = df['DateTime'].apply(todate)
# 5. DateTimeから年、月、日を抽出する
df['Year'] = df['DateTime'].dt.year
df['Month'] = df['DateTime'].dt.month
df['Day'] = df['DateTime'].dt.day
print('日付は' + str(df.DateTime.min()) + 'から' + str(df.DateTime.max()) + 'までです')
# 6. Operatorの列のクリーンアップ
df['Operator'] = df['Operator'].str.upper()
PyGWalkerで航空機事故データを可視化
データがクリーニングされ、前処理されたため、PyGWalkerを使用して可視化することができます。これにより、データセットを対話的に探索し、有意義な洞察を得ることができます。
航空機事故データの概要
まず、航空機事故全体のデータセットを可視化して、一般的な概要を把握しましょう。
# 7. pygwalkerを使用して可視化する(config.jsonを事前に設定済みとして)
walker = pyg.walk(df, spec="config.json", use_preview=True)
オンラインHTMLバージョンのデータを[こちら]で試してみることができます。
以下は、航空機事故データセットのいくつかのクイックなデータ可視化です:
航空機事故発生件数と死者数の概要
年ごとの航空機事故データ
月ごとの航空機事故データ
日ごとの航空機事故データ
時間ごとの航空機事故データ
運航業者別の洞察
より具体的な洞察を得るために、特にデータセット内の記録数が多い個々の運航業者に焦点を当てます。
# カウントが20未満の運航業者をフィルタリング
filtered_df = df.groupby('Operator').filter(lambda x: len(x) >= 20)
# フィルタされたデータフレームをpygwalkerに渡して可視化
walker_filtered = pyg.walk(filtered_df, spec="config1.json", use_preview=True)
運航業者別の総死者数
各運航業者に関連する総死者数を理解することで、彼らが経験した事故の深刻さについての洞察を得ることができます。
# 各運航業者の総死者数を計算する
total_fatalities = filtered_df.groupby('Operator')['Fatalities'].sum().reset_index()
total_fatalities.columns = ['Operator', 'TotalFatalities']
# 総死者数のデータフレームをpygwalkerに渡して可視化
walker_total_fatalities = pyg.walk(total_fatalities, spec="config2.json", use_preview=True)
以上が日本語に翻訳されたマークダウンファイルです。 walker_fatalities = pyg.walk(total_fatalities, spec="config2.json", use_preview=True)
重点調査:アエロフロート航空会社
アエロフロートは、データセット内で主要な運営者であるため、より詳しく調査する価値があります。アエロフロートに関連する年間死亡者数を分析し、その安全記録を把握します。
# 'Aeroflot'航空会社のフィルタリング
aeroflot_df = filtered_df[filtered_df['Operator'].str.contains('AEROFLOT', case=False, na=False)]
# 'Aeroflot'の年間死亡者数を計算します
yearly_aeroflot_fatalities = aeroflot_df.groupby(aeroflot_df['DateTime'].dt.year)['Fatalities'].sum().reset_index()
yearly_aeroflot_fatalities.columns = ['Year', 'Fatalities']
# 'Aeroflot'の年間死亡者数データフレームをpygwalkerに渡して可視化します
walker_aeroflot = pyg.walk(yearly_aeroflot_fatalities, spec="config3.json", use_preview=True)
結論
このノートブックを通じて、PyGWalkerを使用して航空機クラッシュのデータセットを対話的に探索しました。私たちの可視化は、航空機クラッシュの全体的な傾向、特定の運営者のパターン、およびアエロフロート航空などの主要な運営者の安全記録についての洞察を提供しました。このような洞察は、航空安全の歴史的な文脈を理解するために貴重であり、航空産業における将来の研究や政策決定に役立ちます。
よくある質問
- 航空機クラッシュデータを分析するための視覚的探索の重要性は何ですか?
視覚的探索は、複雑なデータセットをより迅速かつ直感的に理解するのに役立ちます。航空機クラッシュデータの文脈では、パターンの特定、頻繁なインシデントの時間枠、高リスクの運営者の特定に役立ちます。データをビジュアル的に分析することで、関係者は情報を得て、積極的な安全対策を実施することができます。
- PyGWalkerは他のデータ可視化ツールとどう違いますか?
PyGWalkerは、pandasのデータフレームを直接Tableauに似たインタラクティブなUIに変換する独自のアプローチを持っています。網羅的な可視化を作成する際のコーディングの必要性をなくし、データサイエンティストにとって効率的で非技術者にもアクセスしやすいものにします。
- PyGWalkerは大規模なデータセットに適していますか?
はい、PyGWalkerは大規模なデータセットを効果的に処理するように設計されています。直感的なインタフェースにより、データセットのサイズに関係なくスムーズなナビゲーションと探索が可能です。ただし、どのツールでも、システムのリソースとデータの複雑さに基づいてパフォーマンスは異なる場合があります。
よくある質問:
-
航空機クラッシュのデータはどこから取得できますか?
- 回答:航空機事故のデータは、情報源と調査期間によって異なります。航空安全ネットワークや国家運輸安全委員会(NTSB)などのさまざまな機関や団体が、航空機の事故やインシデントの記録を保持しています。詳細な統計情報は、それぞれのウェブサイトで見つけることができます。
-
1日に何便の飛行機が墜落しますか?
- 回答:正確な数は異なる場合がありますが、航空旅行は非常に安全であることに注意してください。世界全体で年間平均2回未満の大型商業旅客機の事故があります。一日に10万便以上の商業便が運行されていることを考えると、墜落率は非常に低いです。
-
1年に何回飛行機が墜落しますか?
- 回答:平均して、世界中で商業旅客機および貨物機に関連する合計事故は年間20回未満です。ただし、この数はいくつかの要因や「墜落」と見なされる条件によって異なる場合があります。
-
航空機の歴史上の墜落回数は何回ですか?
- 回答:航空の始まり以来、細部に至るまでさまざまな規模の墜落事故が数千回発生しています。詳細な統計と具体的な数値については、航空安全ネットワークなどの機関が包括的なデータベースを提供しています。