数据质量分析:
主要针对缺失值、异常值、不一致的值、重复数据以及含有特殊符号
异常值的查明箱型图统计
利用箱型图对数据异常值进行查明
import os
path=os.path.abspath('.')#当前所处文件夹的绝对路径
import pandas as pd
catering_sale = './data/catering_sale.xls' #餐饮数据
data = pd.read_excel(catering_sale)
import matplotlib.pyplot as plt #导入图像库
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
plt.figure() #建立图像
p = data.boxplot(return_type='dict') #画箱线图,直接使用DataFrame的方法,p为字典类型,其中键值为'fliers'的元素储存有异常值的信息
x=p['fliers'][0].get_xdata()#fliers为异常值的标签,[0]为销量的异常值
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() #展示箱线图数据特征分析:1分布分析
1.1定量数据分析(利用频率分布直方图)
步骤:(1)求极差;(2)决定组距与组数;(3)决定分点;(4)列出频率分布表;(5)绘制频率分布直方图
1.2定性数据分析(饼图或条形图)
主要是各对象的分类
2对比分析
2.1绝对数比较
绝对数比较是利用绝对数进行对比,从而寻找差异的方法
2.2相对数比较
分类:
(1)结构相对数:即同一总体内部的部分数值与全部数值对比求比重,如支出额占消费支出总额比重
(2)比例相对数:将同一总体内部不同部分的数值进行对比,如投资与消费比例
(3)比较相对数:将同一时期两个性质相同的指数进行对比
(4)强度相对数:将性质不同但有一定联系的总量指标进行对比,如人口密度
(5)计划完成程度相对数:某一时期实际完成数与计划完成数的对比
(6)动态相对数:将同一现象在不同时期的指数数值进行对比,如发展速度
3统计量分析
3.1集中趋势度量
均值,中位数,众数(数据集中出现最频繁的值)
3.2离中趋势度量
极差(最大值-最小值),标准差(多个数据集与平均值的差的累加的和,再求平均数),
变异系数CV(标准差/平均值)
四分位数间距(上四分位数与下四分位数的差)
4周期性分析
5贡献性分析
例子:对于一个公司来讲,80%的利润常来自于20%最畅销的产品,而其他80%产品则产生了20%的利润
菜单盈利帕累托图
import pandas as pd
dish_profit='./data/catering_dish_profit.xls'
data=pd.read_excel(dish_profit,index_col=u'菜品名')
data=data[u'盈利'].copy()#这里创建副本,是想保持原本数据的结构
data.sort_values(ascending=False)
import matplotlib.pyplot as plt #导入图像库
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
plt.figure()
data.plot(kind='bar')#画柱状图
plt.ylabel(u'盈利(元)')#标记Y轴
p = 1.0*data.cumsum()/data.sum()#.cumsum()为累加函数
p.plot(color = 'r', secondary_y = True, style = '-o',linewidth = 2)#画线性图
#标注
plt.annotate(format(p[6], '.4%'), xy = (6, p[6]), xytext=(6*0.9, p[6]*0.9), arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")) #添加注释,即85%处的标记。这里包括了指定箭头样式。
plt.ylabel(u'盈利(比例)')
plt.show()6相关性分析
6.1绘制散点图
6.2计算相关系数
(1)Pearson相关系数(用于分析两连续变量间的关系)
餐饮数据相关性分析
import pandas as pd
catering_sale='./data/catering_sale_all.xls'#餐饮数据,含有其他属性
data=pd.read_excel(catering_sale,index_col=u'日期') #读取数据,指定“日期”列为索引列
data.corr()#相关系数矩阵,即给出了任意两款菜式之间的相关系数
corr_analy=data.corr()[u'生炒菜心'] #只显示'生炒菜心'与其他菜式的相关系数
data[u'生炒菜心'].corr(data[u'乐膳真味鸡'])
print(corr_analy.sort_values(ascending=False)[:3])统计函数:
1统计作图函数:
在作图前,先创建原始图:
底图有了以后,则通过plot(kind="作图类型")、pie()、hist()、boxplot()等作图,如:
plt.plot(x,y,S)....plt.hist()....plt.pie()
#绘制y对于x,S定义绘制图形的类型
D.plot(kind=box)
#Series与DataFrame内置函数,没指定kind则默认线性图
本文详细介绍数据质量分析方法,包括缺失值、异常值的处理及利用箱型图进行异常值检测。并通过实例展示了如何进行数据特征分析,涵盖分布分析、对比分析、统计量分析等多种分析手段。
1939

被折叠的 条评论
为什么被折叠?



