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))