数据质量分析 
	为数据预处理的前提,主要是检查脏数据 :
缺失值 
异常值 
不一致的值 
重复数据及含有特殊符号的数据 
 
缺失值分析 
	两种情况:①记录缺失	②记录中的某些字段缺失
	缺失分析:缺失值的属性个数,每个属性的未缺失数、缺失数和缺失率。
异常值分析 
简单统计量分析 
	一般设定统计量的最大值、最小值,看是否不在区间内。
3 σ 3\sigma 3 σ 	数据符合正态分布 ,异常值为与平均值的偏差超过3倍标准差 的值。(P ( ∣ x − μ ∣ > 3 σ ) ≤ 0.003 P(|x-\mu|>3\sigma)\le0.003 P ( ∣ x − μ ∣ > 3 σ ) ≤ 0 . 0 0 3 
盒图分析 
	Q L : 下四分位数 Q_L: 下四分位数 Q L  : 下 四 分 位 数 
	Q U : 上四分位数 Q_U: 上四分位数 Q U  : 上 四 分 位 数 
	I Q R : 四分位数间距 IQR: 四分位数间距 I Q R : 四 分 位 数 间 距 
	异常值: < Q L − 1.5 I Q R ∣ ∣ > Q L + 1.5 I Q R 异常值: <Q_L-1.5IQR || >Q_L+1.5IQR 异 常 值 : < Q L  − 1 . 5 I Q R ∣ ∣ > Q L  + 1 . 5 I Q R 
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 """ Created on Sun May  3 11:31:50 2020 @author: SANG """ import  pandas as  pdimport  matplotlib.pyplot as  pltcatering_sale='data/catering_sale.xls'   data=pd.read_excel(catering_sale,index_col=u'日期' ) plt.rcParams['font.sans-serif' ]=['SimHei' ] plt.rcParams['axes.unicode_minus' ]=False  plt.figure(dpi=256 ) p=data.boxplot(return_type='dict' ) x=p['fliers' ][0 ].get_xdata()  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.show() 
一致性分析 
	一般是数据更新不一致,导致数据之间的矛盾。
数据特征分析 
分布分析 
频率分布分析 
求极差(最大值-最小值) 
决定组距和组数(组数=极差/组距) 
决定分点(把数据划分成若干区间的点) 
绘制频率分布直方图 
 
对比分析 
+ 绝对数比较
+ 相对数比较
统计量分析 
集中趋势度量 
均值 
中位数 
众数 
 
离散趋势度量 
极差 
标准差s = ∑ ( x i − x ˉ ) 2 n s=\sqrt{\frac{\sum(x_i-\bar{x})^2}{n}} s = n ∑ ( x i  − x ˉ ) 2    
变异系数C V = s x ˉ CV=\frac{s}{\bar{x}} C V = x ˉ s   
四分位数间距=上四分位数Q U Q_U Q U  Q L Q_L Q L   
 
还是分析上面的餐饮数据,这次分析其统计量 。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 """ Created on Sun May  3 15:33:04 2020 @author: SANG """ import  pandas as  pdcatering_sale='data/catering_sale.xls'  data=pd.read_excel(catering_sale,index_col=u'日期' ) data=data[(data[u'销量' ]>400 )&(data[u'销量' ]<5000 )] statistics=data.describe() statistics.loc['range' ]=statistics.loc['max' ]-statistics.loc['min' ] statistics.loc['var' ]=statistics.loc['std' ]/statistics.loc['mean' ] statistics.loc['dis' ]=statistics.loc['75%' ]-statistics.loc['25%' ] print (statistics)
1 2 3 4 5 6 7 8 9 10 11 12                 销量 count   195.000000  mean   2744.595385  std     424.739407  min      865.000000 25 %    2460.600000 50 %    2655.900000 75 %    3023.200000 max     4065.200000 range   3200.200000 var       0.154755  dis     562.600000  
贡献度分析 
	即帕累托分析 。大概类似于看哪20%数据(或者更多更少)贡献了80%。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 """ Created on Sun May  3 15:50:30 2020 @author: SANG """ import  pandas as  pdimport  matplotlib.pyplot as  pltdish_profit='data/catering_dish_profit.xls'  data=pd.read_excel(dish_profit,index_col=u'菜品名' ) data=data[u'盈利' ].copy() data.sort_values(ascending=False ) plt.rcParams['font.sans-serif' ]=['SimHei' ] plt.rcParams['axes.unicode_minus' ]=False  plt.figure(dpi=256 ) data.plot(kind='bar' ) plt.ylabel(u'盈利(元)' ) p=1.0 *data.cumsum()/data.sum () 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' )) plt.ylabel(u'盈利(比例)' ) plt.show() 
相关性分析 
两个变量,绘制散点图 
多个变量,绘制散点图矩阵 
计算相关系数 
Pearson相关系数(数据服从正态分布) 
Spearman相关系数 
判定系数(相关系数的平方) 
 
 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 """ Created on Wed May  6 09:42:25 2020 @author: SANG """ import  pandas as  pdcatering_sale='data/catering_sale_all.xls'  data=pd.read_excel(catering_sale, index_col=u'日期' ) print (data.corr())print (data.corr()[u'百合酱蒸凤爪' ])print (data[u'百合酱蒸凤爪' ].corr(data[u'翡翠蒸香茜饺' ]))