Numpy、Pandas与matplotlib数据分析案例_案例3_机场延迟分析

1.总结

步骤具体操作
数据导入选定所需要行列导入、设置编码格式、设置显示行列数量
数据的基本查看查看全部的信息(info、describe)
查看全部的信息(info、describe)、单独分析某一列的比例查看缺失值、分析缺失值(如何处理和原因)、处理缺失值(删除);查看是否存在重复值(存在就删掉)
数据分析(两种类别)基本的数值查看、绘制有关查看分布的图形(饼图)
数据分析(分组)基本的数值查看与处理、分组聚合后进行排序、查看数据与绘制图像(条形图)

2.加载数据

import numpy as py
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

data.info()

在这里插入图片描述

3.数据基本查看和缺失值、重复值处理

# 1.缺失值处理
# 方法1:先查看是否存在缺失值
data.info()
'''
可以看到总共502617行、17列。其中DEP_DEL15(起飞是否延迟)非空值是492974行,ARR_DEL15(到达是否延迟)非空值是490716
行,Unnamed这列全部为空值。
'''

# 处理缺失值
data.dropna(axis=1, how='all', inplace=True)
# 方法2:再次查看重复值
data.isnull().sum()

# 2.重复值查看
# 是否存在重复值
data.duplicated().any()
# 删除重复值
data.drop_duplicates(inplace=True)

4.统计到达与起飞是否延迟数据分析

因为只有两类,延迟与不延迟,只需要对其使用饼图可视化最为方便

# 1.起飞延迟状况分析
# 1.1 查询起飞是否延迟数据
data['DEP_DEL15']
data['DEP_DEL15'].isnull().any() # 查看是否存在缺失值
data['DEP_DEL15'].dropna(inplace=True) # 删除缺失值
delays = data['DEP_DEL15'].value_counts()
delays
delays.name = ''
# 绘制饼图
delays.plot(kind='pie',labels=['起飞不延迟','起飞延迟'],autopct='%.2f',title='起飞延迟总体情况')

# 2.统计到达是否延迟数据
s = data['ARR_DEL15'].dropna()
delays = s.value_counts()
delays.name = ''
delays.plot(kind='pie',labels=['到达不延迟','到达延迟'],autopct='%.2f',title='到达延迟总体情况')

5.每个机场起飞与到达延迟分析

# 1.针对每个机场起飞延迟数量分析
# 观察数据发现,延迟用1表示,没延迟用0表示;我们就直接计算出一个机场里面1的总和
data.info() # 数据基本查看
d = data[['ORIGIN_STATE_ABR','DEP_DEL15']].dropna()# 汇总并删除缺失值
depart_delay_counts = d.groupby('ORIGIN_STATE_ABR')['DEP_DEL15'].sum()# 分组聚合
depart_delay_counts.sort_values(ascending=False).plot(kind='bar',figsize=(14,6))# 排序后绘制条形图

# 2.震度每个机场到达延迟数量分析
d = data[['DEST_STATE_ABR','ARR_DEL15']].dropna()
arrive_delay_counts = d.groupby('DEST_STATE_ABR')['ARR_DEL15'].sum()
arrive_delay_counts.sort_values(ascending=False).plot(kind='bar',figsize=(14,6))

# 3.合并上述两种情况
# 合并数据集后对df进行转至
delay_df = pd.DataFrame([depart_delay_counts,arrive_delay_counts]).T
# 设置列标题
delay_df.columns = ['起飞延迟','到达延迟']
delay_df.sort_values('起飞延迟',ascending=False).plot(kind='bar',figsize=(14,6),title='机场起飞到达延迟状况')

6.机场延迟所在百分比分析

# 1.计算机场起飞\到达总航班数量
d = data[['ORIGIN_STATE_ABR','DEP_DEL15']].dropna()
departs = d['ORIGIN_STATE_ABR'].value_counts()
d = data[['DEST_STATE_ABR','ARR_DEL15']].dropna()
arrives = d['DEST_STATE_ABR'].value_counts()
# 计算机场航班起飞\到达延迟的百分比
pct_departure_delays = depart_delay_counts/departs
pct_arrive_delays = arrive_delay_counts/arrives


# 2.合并起飞延迟百分比和到达延迟的百分比数据并用柱状图描述
pct_delay_df = pd.DataFrame([pct_departure_delays,pct_arrive_delays]).T
pct_delay_df.columns = ['起飞延迟百分比','到达延迟百分比']
pct_delay_df.sort_values('起飞延迟百分比',ascending=False).plot(kind='bar',title='机场起飞到达延迟百分比',figsize=(14,6))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

想成为数据分析师的开发工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值