实验目的
1、应用数据探索的方法完成案例的质量探索和规律探索;
2、掌握频数分布、集中和离散趋势、偏度和峰度等图表绘制方法或统计方法。
实验任务与要求
任务:根据提供的数据,对航空公司1949-1960年的乘客人数完成数据探索任务。
要求:
1、根据数据集找出这12年来客运人数的趋势;
2、找出乘客人数的季节趋势;
3、对乘客人数做简单的描述性分析。
实验原理(技术)
应用数据探索的方法进行案例分析,包括数值统计与图表绘制等探索方法。
异常值分析是检验数据是否有录入错误以及含有不合常理的数据。异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称为离群点,异常值的分析也称为离群点的分析。异常值分析方法主要有:简单统计量分析、3σ原则、箱型图分析。
箱形图:依据实际数据绘制,不需要事先假定数据服从特定的分布形式,没有对数据作任何限制性要求,它只是真实直观地表现数据分布的本来面貌。
实验记载
步骤(算法、程序)、数据记录与处理、结果分析等
1.查看数据
1. 使用pandas导入数据
1. import pandas as pd 2. import numpy as np 3. 4. data = pd.read_excel('实验1data.xlsx') # 以年份为索引 5. print(data.shape) 6. # 观察各列数据 7. print(data.head())
2. 观察数据基本信息,对数据进行统计量描述,同时用相关函数进行数据的统计与查询
1. print('-------------------------统计量描述-------------------------') 2. explore = data.describe(percentiles=[], include='all').T # percentiles参数是指定计算多少的分位数表 3. explore['null'] = len(data) - explore['count'] # describe()函数自动计算非空值数,需要手动计算空值数 4. print(explore.head()) 5. explore = explore[['null', 'max', 'min','mean']] 6. explore.columns = [u'空值数', u'最大值', u'最小值',u'平均值'] # 表头重命名 7. # explore.to_csv('统计量描述.csv') # 保存结果 8. print('--------------------------空值统计--------------------------') 9. print(data.isnull().sum())
describe()函数对数据进行描述性分析
可以看到每年每月数据的分布情况
1. data.describe() 2. # 查看数据的基本描述
2.整理数据
将“year”字段作为索引
1. # 设置year为索引 2. data1=data.set_index('year') 3. data1
3.画箱型图
观察数据异常状态,数据没有异常
1. import matplotlib.pyplot as plt 2. 3. fig = plt.figure(figsize=(5,4)) # 设置画布大小 4. plt.rcParams['font.sans-serif'] = ['SimHei'] # 黑体 5. plt.rcParams['axes.unicode_minus'] = False # 解决无法显示符号的问题 6. 7. data.plot.box(title='箱型图') 8. plt.xlabel('月份') 9. plt.ylabel('数量') 10. 11. # 没有异常值
1. import matplotlib.pyplot as plt 2. 3. fig = plt.figure(figsize=(5,4)) # 设置画布大小 4. plt.rcParams['font.sans-serif'] = ['SimHei'] # 黑体 5. plt.rcParams['axes.unicode_minus'] = False # 解决无法显示符号的问题 6. 7. data.boxplot(notch=True,showmeans=True,patch_artist=True) 8. plt.title('箱型图') 9. plt.xlabel('月份') 10. plt.ylabel('数量') 11. plt.grid(False)