数据质量分析
一.题目内容
以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()
运行结果展示: