PyGWalker를 사용한 비행기 추락 데이터 시각화
현대 항공 시대에는 비행기 추락을 이해하는 것이 매우 중요합니다. 이는 안전 조치를 향상시키는 데 도움이 되는데 더불어 항공 산업에 영향을 미친 요인들에 대한 통찰력을 제공합니다. 이 노트북에서는 데이터 주도의 여정을 시작하여 비행기 추락 기록에 대해 깊게 파고들 것입니다. 비주얼 데이터 탐색을 위한 혁신적인 Python 라이브러리 인 PyGWalker의 능력을 활용하여 이러한 불운한 사건들로부터 패턴, 트렌드 및 주요 결론을 발견하기 위해 노력합니다.
PyGWalker란?
PyGWalker는 판다스 데이터프레임을 Tableau와 유사한 대화 형 사용자 인터페이스로 변환하는 혁신적인 Python 라이브러리입니다. 이 사용자 인터페이스는 효율적이고 직관적인 데이터 시각화를 위해 맞춤화되어 있으며, 포괄적인 코딩이 필요하지 않고 데이터 세트에서 숨겨진 패턴과 통찰력을 발견할 수 있습니다. 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. Time 열 정리
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. Date와 Time 열 결합
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('운영자').filter(lambda x: len(x) >= 20)
# 필터링된 데이터프레임을 pygwalker에 전달하여 시각화합니다.
walker_filtered = pyg.walk(filtered_df, spec="config1.json", use_preview=True)
운영자별 총 사망자 수
각 운영자와 관련된 총 사망자 수를 이해하는 것은 그들이 겪은 사고의 심각성에 대한 통찰력을 제공할 수 있습니다.
# 각 운영자에 대한 총 사망자 수 계산
total_fatalities = filtered_df.groupby('운영자')['Fatalities'].sum().reset_index()
total_fatalities.columns = ['운영자', '총 사망자 수']
# 총 사망자 수 데이터프레임을 pygwalker에 전달하여 시각화합니다.
walker_fatalities = pyg.walk(total_fatalities, spec="config2.json", use_preview=True)
깊이 파고들기: 아에로플로트 항공사
아에로플로트는 우리 데이터셋에서 주요한 운송사로서 더 자세히 알아보는 가치가 있습니다. 우리는 아에로플로트와 연결된 연간 사망자수를 분석하여 연도별 안전 기록을 이해하기 위해 알아볼 것입니다.
# 아에로플로트 운송사를 필터링합니다.
aeroflot_df = filtered_df[filtered_df['Operator'].str.contains('AEROFLOT', case=False, na=False)]
# '아에로플로트'의 연간 사망자수 계산하기
yearly_aeroflot_fatalities = aeroflot_df.groupby(aeroflot_df['DateTime'].dt.year)['Fatalities'].sum().reset_index()
yearly_aeroflot_fatalities.columns = ['연도', '사망자수']
# '아에로플로트'의 연간 사망자수 데이터프레임을 pygwalker에 전달하여 시각화합니다.
walker_aeroflot = pyg.walk(yearly_aeroflot_fatalities, spec="config3.json", use_preview=True)
결론
이 노트북을 통해 PyGWalker를 사용하여 항공기 추락 데이터를 대화식으로 탐색했습니다. 시각화를 통해 항공기 추락의 전반적인 추세, 특정 운송사의 패턴, 그리고 아에로플로트와 같은 주요 운송사의 안전 기록에 대한 통찰력을 얻을 수 있었습니다. 이러한 통찰력은 항공 안전의 역사적 맥락을 이해하는 데 귀중하며, 항공 산업에서의 미래 연구 및 정책 결정에도 도움이 될 수 있습니다.
FAQ
- 항공기 추락 데이터를 분석하는 데 시각적 탐색이 왜 중요한가요?
시각적 탐색은 복잡한 데이터셋에 대한 빠르고 직관적인 이해를 돕습니다. 항공기 추락 데이터의 맥락에서는 패턴, 빈번한 사고 발생 기간, 위험한 운송사를 식별하는 데 도움이 됩니다. 데이터를 시각적으로 분석함으로써 이해관계자는 정보에 기반한 결정을 내릴 수 있으며, 예방적인 안전 조치를 시행할 수 있습니다.
- PyGWalker는 다른 데이터 시각화 도구와 어떻게 차별화됩니까?
PyGWalker는 독특한 접근 방식을 갖고 있으며, pandas 데이터프레임을 직접 Tableau와 유사한 대화식 UI로 변환합니다. 포괄적인 시각화를 생성하는 데 필요한 코드를 크게 줄이기 때문에 데이터 과학자에게는 효율적이고, 비전문가에게는 접근성이 높습니다.
- PyGWalker는 대용량 데이터셋에 적합한가요?
네, PyGWalker는 대용량 데이터셋을 효과적으로 처리할 수 있도록 설계되었습니다. 직관적인 인터페이스를 통해 데이터셋의 크기에 관계없이 원활한 탐색과 이동이 가능합니다. 그러나 모든 도구와 마찬가지로 성능은 시스템 자원과 데이터의 복잡성에 따라 다를 수 있습니다.
FAQ:
-
항공기 추락 데이터는 무엇인가요?
- 답변: 항공기 추락 데이터는 출처와 조사 기간에 따라 다양합니다. 항공 안전 네트워크(Aviation Safety Network) 및 국립운송안전위원회(National Transportation Safety Board, NTSB)와 같은 다양한 기관과 조직이 항공 사고와 사건에 대한 기록을 유지합니다. 자세한 통계는 각각의 웹사이트에서 확인할 수 있습니다.
-
하루에 얼마나 많은 항공편이 추락하나요?
- 답변: 정확한 수는 다를 수 있지만, 항공 여행은 매우 안전합니다. 전 세계에서 대형 상업 여객기 사고는 연간 평균 2건 이하입니다. 하루에 10만 건 이상의 상업 항공편이 운영되는 것을 감안하면, 추락 비율은 매우 낮습니다.
-
몇 건의 항공기 추락사고가 연간 발생하나요?
- 답변: 전 세계에서 상업 여객 및 화물 항공기를 포함한 총 사고는 연간 평균 20건 이하입니다. 그러나 이 수는 여러 요인과 "추락"으로 간주되는 기준에 따라 다를 수 있습니다.
-
총 역사에서 몇 건의 항공기 추락사고가 발생했나요?
- 답변: 항공의 탄생 이래 수천 건의 항공기 추락사고가 발생했습니다. 사소한 사건부터 큰 사고까지 다양합니다. 자세한 통계 및 구체적인 수는 항공 안전 네트워크와 같은 기관에서 상세한 데이터베이스를 제공합니다.