案例一、航班准点预测(仅供学习参考)

GitHub项目连接地址:https://github.com/Maxwellwk/DataAnalysisCase/tree/master/PrimaryCase

美国航班的准点预测
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
# 航班数据的链接网址
link = 'https://projects.fivethirtyeight.com/flights/'
# 查看本地dada目录中的数据文件(项目中的实验数据都在data目录中)
# win中
# !dir "../data/"
# linux中
!ls "../data"
1970-2016世界恐怖袭击数据-utf8.csv
AMZN.csv
BABA.csv
HR.csv
Pokemon.csv
apply_demo.csv
city_weather.csv
demo_duplicate.csv
iris.csv
movie_metadata.csv
sales-funnel.xlsx
top5.csv
train.csv
usa_flights.csv
亚洲国家20年人口数据-gb2312.csv
亚洲国家20年人口数据-utf8.csv
欧洲国家20年旅游收入数据-gb2312.csv
欧洲国家20年旅游收入数据-utf8.csv
国家各项税收.csv
# 从本地读取航班数据
flights_df = pd.read_csv("../data/usa_flights.csv")
# 查看前五行数据
flights_df.head()
flight_dateunique_carrierflight_numorigindestarr_delaycancelleddistancecarrier_delayweather_delaylate_aircraft_delaynas_delaysecurity_delayactual_elapsed_time
002/01/2015 0:00AA1JFKLAX-19.002475NaNNaNNaNNaNNaN381.0
103/01/2015 0:00AA1JFKLAX-39.002475NaNNaNNaNNaNNaN358.0
204/01/2015 0:00AA1JFKLAX-12.002475NaNNaNNaNNaNNaN385.0
305/01/2015 0:00AA1JFKLAX-8.002475NaNNaNNaNNaNNaN389.0
406/01/2015 0:00AA1JFKLAX25.0024750.00.0

1.查看飞机延误时间最长的前10名

flights_df.sort_values('arr_delay', ascending=False)[:10]
 flight_dateunique_carrierflight_numorigindestarr_delaycancelleddistancecarrier_delayweather_delaylate_aircraft_delaynas_delaysecurity_delayactual_elapsed_time
1107311/01/2015 0:00AA1595AUSDFW1444.001901444.00.00.00.00.059.0
1021413/01/2015 0:00AA1487OMADFW1392.005831392.00.00.00.00.0117.0
1243003/01/2015 0:00AA1677MEMDFW1384.004321380.00.00.04.00.0104.0
844304/01/2015 0:00AA1279OMADFW1237.005831222.00.015.00.00.0102.0
1032805/01/2015 0:00AA1495EGEDFW1187.007211019.00.0168.00.00.0127.0
3657004/01/2015 0:00DL1435MIAMSP1174.0015011174.00.00.00.00.0231.0
3649504/01/2015 0:00DL1367ROCATL1138.007491112.00.00.026.00.0171.0
5907214/01/2015 0:00DL1687SANMSP1084.0015321070.00.00.014.00.0240.0
3217305/01/2015 0:00AA970LASLAX1042.002361033.00.09.00.00.066.0
5648812/01/2015 0:00DL2117ATLCOS1016.0011841016.00.00.00.00.0193.0

可得出初步结论,航空公司AA、DL的延误频次要比其他航空公司高,且AA航空公司比Dl航空公司高。如果有急事出行的话,可以尽量避开这两家航班公司。

2.计算延误和没有延误的飞机所占的比例

# 添加一列判断航班是否延误
flights_df['delayed'] = flights_df['arr_delay'].apply(lambda x: x > 0)
# 查看前五行数据
flights_df.head()
 flight_dateunique_carrierflight_numorigindestarr_delaycancelleddistancecarrier_delayweather_delaylate_aircraft_delaynas_delaysecurity_delayactual_elapsed_timedelayed
002/01/2015 0:00AA1JFKLAX-19.002475NaNNaNNaNNaNNaN381.0False
103/01/2015 0:00AA1JFKLAX-39.002475NaNNaNNaNNaNNaN358.0False
204/01/2015 0:00AA1JFKLAX-12.002475NaNNaNNaNNaNNaN385.0False
305/01/2015 0:00AA1JFKLAX-8.002475NaNNaNNaNNaNNaN389.0False
406/01/2015 0:00AA1JFKLAX25.0024750.00.00.025.00.0424.0True
# 查看延误飞机的数量(False:非延误  True:延误)
delay_data = flights_df['delayed'].value_counts()
delay_data

False    103037
True      98627
Name: delayed, dtype: int64

# 计算延误航班所占的比例
delay_data[1]/(delay_data[0]+delay_data[1])

0.4890659711202793
由此可得出在美国的所有航班中,有48%的航班都发生过延误。

# 计算每一个航空公司延误的情况
delay_group = flights_df.groupby(['unique_carrier', 'delayed'])
df_delay = delay_group.size().unstack()
df_delay
Out[13]:
delayedFalseTrue
unique_carrier  
AA89129841
AS35272104
B648324401
DL177199803
EV1059611371
F911031848
HA13511354
MQ46928060
NK15502133
OO997710804
UA78858624
US78506353
VX1254781
WN2178921150

由上表可以得出,大部分航空公司的准点次数要大于延误次数

图形展示

import matplotlib.pyplot as plt
# barh 柱状图
# stacked=True 横向展示
# figsize=[16, 6] 宽16,高6
# colormap='winter' 使用winter色
df_delay.plot(kind='barh', stacked=True, figsize=[16, 6], colormap='winter')
plt.show()

由图形可以更直观的看出,飞行次数最多的公司是WN。虽然Dl公司的延时时间是相对比较长的,但他的延误次数却相比与其他公司要低。其次AS、VX两家小型航空公司的延误次数也比较低。

4.透视表

# index 索引
# columns 列名
# values 要显示的值
# aggfunc 聚合函数
flight_by_carrier = flights_df.pivot_table(index='flight_date', columns='unique_carrier', values='flight_num', aggfunc='count')
flight_by_carrier
unique_carrierAAASB6DLEVF9HAMQNKOOUAUSVXWN
flight_date              
02/01/2015 0:0015454777592271182425422410462871763142011771763518
03/01/2015 0:001453449711203117441922029372851681123310281603328
04/01/2015 0:0015344587592258183324920610272841731128311581693403
05/01/2015 0:0015324337542212181126420910392881737143211571743506
06/01/2015 0:001400415692205416862492029662791527129410031523396
07/01/2015 0:001420419694210717052282089982841557125911431513398
08/01/2015 0:0014474447312214175922420810092841625133111711643398
09/01/2015 0:0014484477302204176722922210102891631133111691673364
10/01/2015 0:0012854126411584113316820176828512709089121092668
11/01/2015 0:001426432711208215852222069792861558116210611562888
12/01/2015 0:0014454267182280175423620910032811628133710861613324
13/01/2015 0:00140440766620791678210202972272151412619961453374
14/01/2015 0:001414412667214616882262069982791559125811421513374

由透视表我们可以看出,每天航班次数最多的公司是WN,其次是DL和EV。由此可猜测他们几家应该是大型航空公司。

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小獾哥

谢谢

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值