Python数据分析与挖掘实战第三章笔记之数据质量分析

# 3.1数据质量分析
# 数据质量分析主要任务是检查原始数据中是否存在脏数据(缺失值,异常值,不一致的值,重复数据及含有特殊符号的数据)
# 缺失值:使用简单的统计分析可以得到含有缺失值的属性的个数,以及每个属性的未缺失数,缺失数与缺失率等。对于缺失值处理分为删除存在缺失值的记录,对可能的值进行插补和不处理。
# 异常值也称为离群点。简单的描述性统计,查看哪些数据是不合理的,常用的统计量是最大值和最小值;如果数据服从正态分布,可以按3西格玛原则,测定值中与平均值的偏差超过3倍标准差;
# 箱型图分析,异常值定义为小于Q-1.5IQR或者大于Q+1.5IQR
import pandas as pd
catering_sale='E:/WTTfiles/自我学习/机器学习/python数据分析与挖掘实战/chapter3/demo/data/catering_sale.xls'
data=pd.read_excel(catering_sale,index_col=u'日期')#读取数据,指定日期列为索引列,pandas读取excle数据时需要先下载安装xlrd模块
print(data.describe())#describe可以查看数据的基本情况
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']#matplotlib默认英文字体,要想显示中文标签,手动指定默认字体为中文
plt.rcParams['axes.unicode_minus']=False#用来正常显示负号

plt.figure()
p=data.boxplot(return_type='dict')#画箱线图
x=p['fliers'][0].get_xdata()#异常值的标签为fliers
y=p['fliers'][0].get_ydata()
y.sort()#从小到大排序
#annotate添加注释。其中有些相近的点,注释会出现重叠,需要一些技巧来控制
for i in range(len(x)):
    if i>0:
        plt.annotate(y[i],xy=(x[i],y[i]),xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i]))
    else:
        plt.annotate(y[i],xy=(x[i],y[i]),xytext=(x[i]+0.08,y[i]))

plt.show()
#运行程序,得到count=200,len(data)可得数据有201个,所以缺失值为1
#得到箱线图有7个异常值,结合具体业务,规定过滤原则为日销量在400以下5000以上为异常值,所以异常值有5个。
                销量
count   200.000000
mean   2755.214700
std     751.029772
min      22.000000
25%    2451.975000
50%    2655.850000
75%    3026.125000
max    9106.440000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值