一 基本表的数据读取和常见值提取

读取表的数据

import matplotlib.pyplot as plt
import pandas as pd
data = pd.read_csv(r'G:\大三下\catering_sale1.csv',encoding='gbk')
print('基本表',data.iloc[:,:],end = '\n')#读取

结果如下

箱线图之数据质量分析_箱线图

常用值的一键提取

print('常用数据',data.describe(),end='\n')

结果

箱线图之数据质量分析_箱线图_02

 

 

 

二 常用值分别提取

几个常用值输出

print('常用数据',data.describe(),end='\n')
print('最小值',data['销量'].min(),end='\n')
print('最大值',data['销量'].max(),end='\n')
print('平均值',data['销量'].mean(),end='\n')
print('缺失值个数',data['销量'].isnull().sum(),end='\n')
print('样本个数',data['销量'].shape[0],end='\n')

结果

箱线图之数据质量分析_箱线图_03

 

 

 

三 两种箱线图分析数据

1 利用plotly库分析

pip install plotly安装好plotly库,然后绘制箱线图

import plotly
import pandas as pd
import plotly.graph_objs as go
data = pd.read_csv(r'G:\大三下\catering_sale1.csv',encoding='gbk')
data['销量'].fillna(0,inplace=True)
d = [go.Box(
            y=list(data['销量']),
            fillcolor="green",
            marker_color="pink",
            name="销量" 
    )]
layout = go.Layout(plot_bgcolor='grey',width=500,height=500)
fig = go.Figure(data=d,layout=layout)
fig.show()
plotly.offline.plot(d)  # 离线绘图

注意:在Jupter中注释最后一行直接运行(不需要离线就可以运行会很直观)。

结果如下:

箱线图之数据质量分析_箱线图_04

 

 这个图可以直观的分析数据中不合理数据的范围。

说明:这种方法绘出的图,鼠标放上去会显示各种数据,会比较直观。

2 利用pandas库和matplotlib库分析

代码如下:

plt.rcParams['font.sans-serif'] = ['SimHei'] 
plt.rcParams['axes.unicode_minus'] = False
plt.boxplot(x = data.销量, # 指定绘图数据
            patch_artist=True, # 要求用自定义颜色填充盒形图,默认白色填充
            showmeans=True, # 以点的形式显示均值
            boxprops = {'color':'black','facecolor':'steelblue'}, # 设置箱体属性,如边框色和填充色
            # 设置异常点属性,如点的形状、填充色和点的大小
             flierprops = {'marker':'o','markerfacecolor':'red', 'markersize':3}, 
             # 设置均值点的属性,如点的形状、填充色和点的大小             
            meanprops = {'marker':'D','markerfacecolor':'indianred', 'markersize':4}, 
            # 设置中位数线的属性,如线的类型和颜色
             medianprops = {'linestyle':'--','color':'orange'},
            labels = ['销量']
            )
# 添加图形标题
plt.title('销量箱线图')
plt.show()

结果如下:

箱线图之数据质量分析_箱线图_05

 

 

 建议:这个方法的图图没有上面方法绘成的图的那个直观,但是会更清晰,有利于做估计运算。