数据质量分析

一.题目内容

以catering_sale.csv数据为蓝本,完成如下初步分析:

1,输出数据集的基本信息,比如最大值,最小值,平均值等 (pandas describe)

2,统计缺失的变量和样本个数 (isnull)

3,通过箱式图判断异常点(附加练习)(matplotlib boxplot),并显示疑似异常点的销量值。

二.实现过程记录

1,读取文件内容

 

# 导入pandas库
import pandas as pd

# 读取文件内容
data = pd.read_csv(r'F:\catering_sale.csv')
# 检查读取内容
print(data)

 

  运行结果展示:

 

 2,获取最大值,最小值,平均值

# 获取最大值,最小值,平均值
maxSales = data['销量'].max()
minSales = data['销量'].min()
averageSales = data['销量'].mean()

print('销量的最大值:' + str(maxSales))
print('销量的最小值:' + str(minSales))
print('销量的平均值:' + str(averageSales))

  运行结果展示:

3,统计缺失的变量和样本个数 

 

print("销量缺失个数:", data['销量'].isnull().sum())

print("样本总数:", data.shape[0])

 

运行结果展示:

 

 4,通过箱式图判断异常点(附加练习)(matplotlib boxplot),并显示疑似异常点的销量值。

df = pd.DataFrame(data)
plt.rcParams['font.sans-serif'] = ['KaiTi']  # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
# 创建图布局
fig, ax = plt.subplots(1, 1, figsize=(8, 5))
# 函数boxplot用于绘制箱型图
df.boxplot(column='销量', ax=ax)
plt.show()

运行结果展示:

 

 

5,  通过箱式图进行异常检测

 

p = data.plot.box(return_type='dict')
x = p["fliers"][0].get_xdata() # flier:异常值标签
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()

 

运行结果展示:

 

posted @ 2021-03-24 16:20  OHHO  阅读(156)  评论(1)    收藏  举报