数据集为美国各州机场的航班信息,包含出发地,目的地,是否出 发延迟15分钟,是否到达延迟15分钟等。
加载数据
import numpy as np import pandas as pd import matplotlib.pyplot as plt #支持中文显示 plt.rcParams['font.family']='Kaiti' # 使用非unicode的负号,当使用中文时候要设置 plt.rcParams['axes.unicode_minus']=False data = pd.read_csv('airport-ontime.csv')
数据详细
数据探索和清洗
data.info()
可以看到总共502617行、17列。其中DEP_DEL15(起飞是否延迟)非空 值是492974行,ARR_DEL15(到达是否延迟)非空值是490716 行,Unnamed这列全部为空值。
缺失值处理
#删除Unnamed列 data.dropna(axis=1,how='all',inplace=True) data.info()
重复值查看
# 重复值查看 data.duplicated().any() data.drop_duplicates(inplace=True) data.info()
起飞和到达延迟总体状况分析
查询起飞是否延迟
data['DEP_DEL15'].head()
统计起飞延迟与不延迟,使用饼状图来显示
s = data['DEP_DEL15'].dropna() delays = s.value_counts() display(delays) delays.name='' delays.plot(kind='pie',labels=['起飞不延迟','起飞延迟'],autopct='%.2f',title='起飞延迟总体情况')
统计到达延迟与不延迟,使用饼状图显示
s = data['ARR_DEL15'].dropna() delays = s.value_counts() display(delays) delays.name='' delays.plot(kind='pie',labels=['到达不延迟','到达延迟'],autopct='%.2f',title='到达延迟总体情况')
机场飞机延迟数量分析
机场航班起飞延迟百分比=机场起飞延迟的航班数/机场航班总起飞 数。机场起飞延迟的航班数前面已经获取到变量 depart_delay_counts中,还需要获取机场总航班。
机场起飞延迟数
#针对机场延迟数量来分析,找出哪个机场延迟数量最多 # 缺失值处理 d =data[['ORIGIN_STATE_ABR','DEP_DEL15']].dropna() depart_delay_couots =d.groupby('ORIGIN_STATE_ABR') ['DEP_DEL15'].sum() # 设置画布大小 figsize=(a,b) a表示画布宽,b表示画布高,单位英寸 depart_delay_couots.sort_values(ascending=False).plot(kind='bar',figsize=(14,6))
机场到达延迟数
# 缺失值处理 d =data[['DEST_STATE_ABR','ARR_DEL15']].dropna() arrive_delay_couots =d.groupby('DEST_STATE_ABR') ['ARR_DEL15'].sum() # 设置画布大小 figsize=(a,b) a表示画布宽,b表示画布高,单位英寸 arrive_delay_couots.sort_values(ascending=False).plot(kind='bar',figsize=(14,6))
合并机场起飞和延迟状况
# 合并机场起飞和延迟状况 delay_df=pd.DataFrame([depart_delay_couots,arrive_delay_couots]).T delay_df.columns=['起飞延迟','到达延迟'] delay_df.sort_values('起飞延迟',ascending=False).plot(kind='bar',figsize=(14,6),title='机场起飞到达延迟状况')