python小练习之航空公司数据练习题(二)
2020-06-28 11:50:51 来源:易采站长站 作者:易采站长站整理
思路:调用到达延误超过两小时函数,然后搜索出发延误dep_delay= 120]arr2_na = flights[(flights['arr_delay'].isnull())]arr2_na = arr2_na[arr2_na['arr_time']-arr2_na['sched_arr_time'] >= 200]answer = pd.concat((arr2, arr2_na), axis=0)
data = answer #调用延误超过两小时函数
data[data['dep_delay'].isnull()] #查看达延误超过两小时航班中有无缺失出发延误dep_delay的数据
answer1 = data[data['dep_delay'] <= 0]answer1.iloc[:5]

问题1f
寻找延误1小时但飞行弥补30分钟的航班的航班
"""
要求:寻找出发延误至少一小时但飞行过程中弥补了30分钟的航班
思路:寻找dep_delay>=60的航班为出发延误至少一小时,然后寻找arr_delay与dep_delay差值=60) &
(flights['dep_delay'] - flights['arr_delay'] >=30)
]answer.iloc[:5]
问题2
计算每驾飞机在第一次延误超过1小时前的飞行次数,这里有两种解法,可以利用列表的匹配进行判断,还可以使用groupby然后通过循环每个飞机的延迟来进行判断,
"""
方法一
要求:寻找每架飞机第一次延误一小时以前的飞行次数(不考虑航班取消情况)
思路:为了寻找到第一次延误一小时以前的飞行次数,那么应该首先寻找延误一小时的飞机有哪些,然后与原数据进行左连接
然后寻找到这些飞机第一次延误一小时的航班时间,寻找该飞机航班时间小于第一次延误一小时的航班时间,
并统计次数,即可获得每个飞机第一次延误1小时之前的飞行次数
"""#寻找延误1小时以上的航班信息
arr1 = flights[flights['arr_delay'] >= 60] #从arr_delay已有数据中选择延误大于1小时的
arr1_na = flights[(flights['arr_delay'].isnull())]arr1_na = arr1_na[arr1_na['arr_time']-arr1_na['sched_arr_time'] >= 100] #从arr_delay缺失数据汇总选择延误大于1小时的
arr1_all = pd.concat((arr1,arr1_na), axis=0) #整合延误数据
arr1_all['is_duplicate'] = arr1_all.duplicated(['tailnum'])
tail_list = arr1_all[arr1_all['is_duplicate'] == False] #从所有延误一小时的航班中寻找飞机第一次延误1小时的航班
tail_list_date = tail_list[['tailnum','time_hour']] #仅保存飞机尾号与航班日期信息
orgin = flights
expand_list = pd.merge(orgin, tail_list_date, on = 'tailnum', how = 'left') #将飞机尾号与航班日期与原数据表进行左连接













闽公网安备 35020302000061号