python数据分析(1)——数据质量分析
1. 前言
数据质量分析是数据挖掘中数据预处理的前提,主要任务是检查脏数据。
脏数据包括:
- 缺失值
- 异常值
- 不一致的值
- 重复数据或者含有特殊符号(#、*、¥)的数据
2. 缺失值
缺失值的处理分为删除存在缺失值的记录、对可能值的插补和不处理。
3. 异常值(离群点)
3.1 简单统计量分析
可以先对变量做一个描述性的统计,进而查看哪些数据是不合理的。 最常用的统计量是最大值和最小值:eg:客户年龄一般在0-150岁
3.2 正态分布分析
如果数据服从正态分布,异常值被定义为一组测定值中与平均值的偏差超过3倍标准差的值。
回忆一下初中的知识点,正态分布图,当时老师告诉我们,99.7%的数据都会落在平均值的偏差超过3倍标准差范围之间。
其他的0.3%就作为异常值了。
3.3 箱型图分析
箱线图(Box-plot)又称盒须图、盒式图或箱形图,是一种用作显示一组数据分散情况资料的统计图,在数据分析中经常被使用到,可以被用于异常值的检测。
3.3.1下四分位数Q1
- 确定四分位数的位置。Qi所在位置=i(n+1)/4,其中i=1,2,3。n表示序列中包含的项数。
- 根据位置,计算相应的四分位数。
3.3.2 中位数(第二个四分位数)Q2
中位数,即一组数由小到大排列处于中间位置的数。若序列数为偶数个,该组的中位数为中间两个数的平均数。
3.3.3 上四分位数Q3
计算方法同下四分位数。
3.3.4 上限
上限是非异常范围内的最大值。 首先要知道什么是四分位距如何计算的? 四分位距IQR=Q3-Q1,那么上限=Q3+1.5IQR
3.3.5 下限
下限是非异常范围内的最小值。 下限=Q1-1.5IQR
4. 一致性
不一致数据主要发生在数据集成的过程中,可能是由于被挖掘数据是来自于从不同的数据源、对于重复存放的数据未能进行一致性更新造成的。 例如两张存储用户电话的表只有一张更新。
5. 实例
数据
餐饮日销额数据
时间 | 2015/2/10 | 2015/2/11 | 2015/2/12 | 2015/2/13 | 2015/2/14 |
---|---|---|---|---|---|
销售额(元) | 2742.8 | 2014.3 | 865 | 3036.8 |
首先,我们用describe来查看数据的基本情况
python
import pandas as pd
dinnersale = 'dinnersale.xlsx'#数据文件地址
data=pd.read_excel(dinnersale,index_col=u'时间')#读取数据,指定索引列
describe=data.describe()#查看数据的基本情况
print(describe)
结果如下
其中count是非空值数,通过 len(data) 可以知道数据记录为多少条,这样就得到了缺省值数。
此外,提供的基本参数还有平均值(mean),标准差(std),最小值(min),1/4位数(25%),1/2位数(50%),3/4位数(75%)及最大值(max)。这样其实方便了大家使用箱型图排除异常值。
```python import pandas as pd import matplotlib.pyplot as plt dinnersale='dinnersale.xlsx' data=pd.read_excel(dinnersale,index_col=u'时间') plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False#用来正常显示负号
plt.figure() #建立图像 p=data.boxplot(return_type='dict') #画箱线图,直接使用DataFrame的方法
要指定返回类型否则下面下标获取不到
'fliers'即为异常值的标签
x=p['fliers'][0].get_xdata() y=p['fliers'][0].get_ydata() y.sort()#从小到大排序,该方法直接改变原对象
annotate添加注释
第一个参数是注释的内容
xy设置箭头尖的坐标
xytext设置注释内容显示的起始位置
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()#展示箱线图 ```
图片如下,异常值就是上下限外的(还需要结合实际情况)
Tips:
- 安装matplotlib包
python -m pip install -U matplotlib
- 数据质量分析很重要,记得老师说过数据70%在于前期的处理
参考文献
- 基于网络爬虫的计量数据分析系统开发(吉林大学·邹思宇)
- 数据挖掘在烟草行业质量管理中的应用(武汉理工大学·陶永峰)
- 股票数据库管理系统的设计与实现(电子科技大学·卢火)
- 基于数据挖掘的学生数据剖析系统研究(哈尔滨师范大学·李晓楠)
- CLARANS改进算法在音乐网站智能推荐系统中的应用(吉林大学·魏佳)
- 基于网络爬虫的计量数据分析系统开发(吉林大学·邹思宇)
- 网络流量统计分析系统(吉林大学·石景龙)
- 生物农药智能推荐系统的设计与实现(电子科技大学·彭亚飞)
- 一个数据需求管理系统的设计与实现(华中科技大学·陈志)
- 股票交易系统的设计与实现(吉林大学·王文卓)
- 制造业数据交互式分析平台的设计与实现(西安电子科技大学·杨妍)
- 基于Web使用挖掘的在线报名推荐系统的研究与实现(电子科技大学·王玥)
- 基于商品名称的电商平台商品自动分类的研究与实现(西南交通大学·黄超)
- 基于数据挖掘的用户上网行为分析(中央民族大学·丰玄霜)
- 基于网络爬虫的论坛数据分析系统的设计与实现(华中科技大学·黎曦)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设港湾 ,原文地址:https://m.bishedaima.com/yuanma/35375.html