异常值分析
异常值分析是检验数据是否有录入错误以及含有不合常理的数据。忽视异常值的存在是十分危险的,不加剔除地把异常值包括进数据的计算分析过程中,对结果会产生不良影响,忽视异常值的出现,分析其产生的原因,常常成为发现问题进而改进决策的契机。
下面分析餐饮数据的异常值
餐饮数据主要包括日期值和销售值,其中通过分析,发现销售值中有缺失值,下面通过箱线图来展示缺失值。
1 #-*- coding: utf-8 -*- 2 import pandas as pd 3 4 data=pd.read_csv('catering_sale.csv') 5 print(data) 6 import matplotlib.pyplot as plt #导入图像库 7 plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 8 plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号 9 10 plt.figure() #建立图像 11 p = data.boxplot(return_type='dict') #画箱线图,直接使用DataFrame的方法 12 x = p['fliers'][0].get_xdata() # 'flies'即为异常值的标签 13 y = p['fliers'][0].get_ydata() 14 y.sort() #从小到大排序,该方法直接改变原对象 15 16 #用annotate添加注释 17 #其中有些相近的点,注解会出现重叠,难以看清,需要一些技巧来控制。 18 #以下参数都是经过调试的,需要具体问题具体调试。 19 for i in range(len(x)): 20 if i>0: 21 plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i])) 22 else: 23 plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.08,y[i])) 24 25 plt.show() #展示箱线图
通过箱线图的分析,可以判断在箱线图外的点有7个,再结合实际的情况,需要讲有些符合条件的点加到其中,然后进行后续处理。