第三章 数据探索
3.1 数据质量分析
脏数据包括:缺失值;异常值;不一致的值;重复数据及含有特殊符号的数据;
1.缺失值处理
统计缺失率,缺失数
2.异常值处理
(1)简单统计量分析
(2)3Q原则
正态分布情况下,小概率事件为异常值
不服从正太分布的,可以用原离平均值多少倍标准差来分析
(3)箱线图分析
使用describe()描述
import pandas as pd
catering_sale='catering_sale.xls'
data=pd.read_excel(catering_sale,index_col=u'日期')
print data
des=data.describe()
print des
运行结果:
箱线图
import pandas as pd
from matplotlib.font_manager import FontProperties
catering_sale='catering_sale.xls'
data=pd.read_excel(catering_sale,index_col=u'日期')
import matplotlib.pyplot as plt
print plt
myfont = FontProperties(fname='/usr/share/fonts/wqy-zenhei/wqy-zenhei.ttc')
plt.rcParams['axes.unicode_minus']=False
plt.figure()
p=data.boxplot(return_type = 'dict')
x = p['fliers'][0].get_xdata() # 'flies'即为异常值的标签
y = p['fliers'][0].get_ydata()
y.sort()
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.savefig("/home/python/syy/images/pic1.png")
运行结果:
报错1.x = p[‘fliers’][0].get_xdata() # ‘flies’即为异常值的标签 y =
p[‘fliers’][0].get_ydata() 解决: p=data.boxplot(return_type = ‘dict’)
3.2 统计量分析
统计量
from __future__ import print_function
import pandas as pd
catering_sale = 'catering_sale.xls' #餐饮数据
data = pd.read_excel(catering_sale, index_col = u'日期') #读取数据,指定“日期”列为索引列
data = data[(dat