Visualización de Datos de Accidentes de Avión con PyGWalker
En la era de la aviación moderna, comprender los accidentes de avión es de suma importancia. No solo ayuda a mejorar las medidas de seguridad, sino que también nos brinda información sobre los factores que han impactado históricamente a la industria de la aviación. En este notebook, emprendemos un viaje basado en datos, adentrándonos en registros de accidentes de avión. Aprovechando las capacidades de PyGWalker, una biblioteca revolucionaria de Python para la exploración visual de datos, buscamos descubrir patrones, tendencias y conclusiones clave de estos desafortunados incidentes a lo largo de los años.
¿Qué es PyGWalker?
PyGWalker es una innovadora biblioteca de Python diseñada para transformar dataframes de pandas en una interfaz de usuario interactiva que recuerda a Tableau. Esta interfaz de usuario está diseñada para una visualización eficiente e intuitiva de datos, permitiendo a los usuarios descubrir patrones e información oculta en sus conjuntos de datos sin la necesidad de programación extensa. La belleza de PyGWalker radica en su capacidad para hacer que los datos complejos sean más accesibles y comprensibles, acortando la brecha entre la ciencia de datos y la toma de decisiones.
Para obtener más detalles y comenzar con PyGWalker, visita su repositorio oficial en GitHub (opens in a new tab).
pip install -q pygwalker --pre
Nota: puede que debas reiniciar el kernel para usar paquetes actualizados.
Cargar y Explorar el Conjunto de Datos de Accidentes de Avión
Comenzamos cargando el conjunto de datos y echando un primer vistazo a su estructura.
import pandas as pd
import numpy as np
from datetime import datetime
import pygwalker as pyg
# 1. Leer los datos
df = pd.read_csv('/kaggle/input/airplane-crashes-since-1908/Airplane_Crashes_and_Fatalities_Since_1908.csv')
Limpieza y Preprocesamiento de Datos para el Conjunto de Datos de Accidentes de Avión
Para asegurar la precisión de nuestras visualizaciones, necesitamos preprocesar y limpiar nuestros datos. Esto implica manejar valores faltantes, extraer características relevantes de tiempo y más.
# 2. Limpieza de la columna Tiempo
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')
# Extracción de la hora de la columna 'Tiempo'
df['Hour'] = df['Time'].str.split(':').str[0].astype(int)
# 3. Combinación de las columnas Fecha y Tiempo
df['DateTime'] = df['Date'] + ' ' + df['Time']
# 4. Convertir al formato de fecha y hora
def todate(x):
return datetime.strptime(x, '%m/%d/%Y %H:%M')
df['DateTime'] = df['DateTime'].apply(todate)
# 5. Extraer Año, Mes y Día de DateTime
df['Year'] = df['DateTime'].dt.year
df['Month'] = df['DateTime'].dt.month
df['Day'] = df['DateTime'].dt.day
print('El rango de fechas va desde ' + str(df.DateTime.min()) + ' hasta ' + str(df.DateTime.max()))
# 6. Limpieza de la columna Operador
df['Operator'] = df['Operator'].str.upper()
Visualizar los Datos de Accidentes de Avión con PyGWalker
Con nuestros datos limpios y preprocesados, ahora podemos proceder a visualizarlos usando PyGWalker. Esto nos permitirá explorar interactivamente el conjunto de datos y extraer conclusiones significativas.
Información General del Conjunto de Datos de Accidentes de Avión
Comencemos visualizando todo el conjunto de datos para obtener una visión general de los accidentes de avión.
# 7. Usar pygwalker para la visualización (asumiendo que ya has configurado config.json)
walker = pyg.walk(df, spec="config.json", use_preview=True)
Puedes probar la versión HTML en línea de los datos aquí
Aquí hay algunas visualizaciones rápidas de datos para el Conjunto de Datos de Accidentes de Avión:
Resumen de los incidentes de accidentes de avión y el número de víctimas mortales
Datos de Accidentes de Avión por Año
Datos de Accidentes de Avión por Mes
Datos de Accidentes de Avión por Día
Datos de Accidentes de Avión por Hora
Información Específica del Operador
Para obtener información más específica, nos centraremos en operadores individuales, especialmente aquellos con un número significativo de registros en nuestro conjunto de datos.
# Filtrar operadores con un conteo menor a 20
filtered_df = df.groupby('Operator').filter(lambda x: len(x) >= 20)
# Pasar el dataframe filtrado a pygwalker para visualización
walker_filtered = pyg.walk(filtered_df, spec="config1.json", use_preview=True)
Total de Fatalidades por Operador
Comprender el total de fatalidades asociadas con cada operador puede proporcionar información sobre la gravedad de los accidentes que han experimentado.
# Calcular el total de fatalidades para cada operador
total_fatalities = filtered_df.groupby('Operador')['Fatalidades'].sum().reset_index()
total_fatalities.columns = ['Operador', 'TotalFatalidades']
# Pasar el dataframe de total de fatalidades a pygwalker para visualización
walker_fatalities = pyg.walk(total_fatalities, spec="config2.json", use_preview=True)
Análisis Detallado: Aerolínea Aeroflot
Aeroflot, como un operador importante en nuestro conjunto de datos, merece un análisis más detallado. Analizaremos las fatalidades anuales asociadas con Aeroflot para comprender su historial de seguridad a lo largo de los años.
# Filtrar la aerolínea 'Aeroflot'
aeroflot_df = filtered_df[filtered_df['Operador'].str.contains('AEROFLOT', case=False, na=False)]
# Calcular las fatalidades anuales para 'Aeroflot'
fatalidades_anuales_aeroflot = aeroflot_df.groupby(aeroflot_df['FechaHora'].dt.year)['Fatalidades'].sum().reset_index()
fatalidades_anuales_aeroflot.columns = ['Año', 'Fatalidades']
# Pasar el dataframe de fatalidades anuales para 'Aeroflot' a pygwalker para visualización
walker_aeroflot = pyg.walk(fatalidades_anuales_aeroflot, spec="config3.json", use_preview=True)
Conclusión
A través de este cuaderno, hemos explorado de manera interactiva el conjunto de datos de accidentes de avión utilizando PyGWalker. Nuestras visualizaciones han proporcionado información sobre las tendencias generales de los accidentes de avión, patrones específicos de cada operador y el historial de seguridad de importantes operadores como Aeroflot. Estos conocimientos son invaluables para comprender el contexto histórico de la seguridad de la aviación y pueden guiar futuras investigaciones y decisiones de políticas en la industria de la aviación.
Preguntas Frecuentes (FAQ):
-
¿Cuáles son los datos de los accidentes de avión?
- Respuesta: Los datos de los accidentes de avión varían según la fuente y el período de investigación. Diversas agencias y organizaciones, como la Aviation Safety Network y la Junta Nacional de Seguridad en el Transporte (NTSB), mantienen registros de incidentes y accidentes de aviación. Las estadísticas detalladas se pueden encontrar en sus respectivos sitios web.
-
¿Cuántos vuelos tienen accidentes cada día?
- Respuesta: Si bien el número exacto puede variar, es importante tener en cuenta que los viajes aéreos son increíblemente seguros. En promedio, hay menos de dos accidentes de grandes aviones comerciales de pasajeros en todo el mundo por año. Teniendo en cuenta que hay más de 100,000 vuelos comerciales diarios, la tasa de accidentes es extremadamente baja.
-
¿Cuántos accidentes de avión hay por año?
- Respuesta: En promedio, hay menos de 20 accidentes totales que involucran aviones comerciales de pasajeros y carga en todo el mundo cada año. Sin embargo, este número puede variar según varios factores y los criterios de lo que se considera un "accidente".
-
¿Cuántos accidentes de avión ha habido en total en la historia?
- Respuesta: Desde el inicio de la aviación, ha habido miles de accidentes de avión, desde incidentes menores hasta accidentes importantes. Para obtener estadísticas detalladas y números específicos, organizaciones como la Aviation Safety Network proporcionan bases de datos exhaustivas.