python小练习之航空公司数据练习题(二)
2020-06-28 11:50:51 来源:易采站长站 作者:易采站长站整理
answer = tail_carrier[tail_carrier['tail_duplicated'] == True]answer.shape[0]
23
这里出现23个值,说明有的飞机不光属于一个公司,可能是几个公司所有的,所以题目的判断是错误的。
程序打包
import os
import pandas as pd
import numpy as np
class homework_2nd(): def __init__(self):
pass
def load_data(self):
"""
修改路径加载数据
"""
os.chdir('C:UsersHsmDesktop数据fixtures')
flights = pd.read_csv("flights.csv")
return flights
def check_data(self, flights):
"""
产看数据规模、变量名、信息、缺失数据统计
"""
print("1.查看数据规模")
print(flights.shape) #观察数据规模
print("-"*40)
print("n2.查看变量名")
print(flights.columns) #观察数据变量名
print("-"*40)
print("n3.查看数据基本信息")
flights.info() #观察变量数量与类型
print("-"*40)
flights.drop_duplicates() #重复值处理
print("n4.统计缺失值") #缺失值统计查看
nulls = np.sum(flights.isnull())
nullcols = nulls.loc[(nulls != 0)] print(nullcols)
print("这里有",len(nullcols),"个变量存在缺失值")
def question1_a(self, flights):
"""
要求:到达延误2小时或更多的航班
思路:寻找arr_delay大于120的航班,或者到达时间比预计达到时间多120分钟以上的航班(因为有航班延误数据缺失)
"""
arr2 = flights[flights['arr_delay'] >= 120] #选择延误arr_delay指标大于2小时的
arr2_na = flights[(flights['arr_delay'].isnull())] #指定arr_delay指标为空的数据,在其中进行寻找
arr2_na = arr2_na[arr2_na['arr_time']-arr2_na['sched_arr_time'] >= 200] #通过到达时间减去预计到达时间来判断是否延误两小时以上
#########################
#注意:
#考虑到如果存在00:05到达而预计23:30到达的航班,需要对时间进行咵天处理。反之也是如此
#但是由于缺失arr_delay数据中不存在类似于上述的咵天处理情况,因此直接使用到达与预计到达时间差作为判断指标是可行的
#########################
answer = pd.concat((arr2, arr2_na), axis=0) #将两段数据进行连接
return answer
def question1_b(self, flights):
"""
要求:寻找到达威廉·佩特斯·霍比机场(HOU)和乔治·布什洲际机场(IAH)的航班













闽公网安备 35020302000061号