实验3:超市数据统计分析
实验目标
掌握数据收集和预处理的方法。
学会使用基本的数据分析技术(如统计、排序、可视化等)。
能够对超市销售数据进行分析并得出有意义的结论。
实验内容
任务1:数据收集
数据结构设计:
商品名称
商品类别(如食品、日用品、电子产品等)
销售数量
单价
销售日期
总价(数量×单价)
数据生成:
创建一个包含10条销售记录的表格(可以手动输入或使用随机生成的方法)。
任务2:数据预处理
数据清洗:
检查并处理缺失值(如某条记录缺少销售数量)。
检查并处理异常值(如单价为负数)。
数据转换:
计算每条记录的总价(数量×单价)。
将日期格式统一为YYYY-MM-DD。
任务3:数据分析
销售总额统计:
计算所有商品的销售总额。
按类别统计销售额:
统计每个类别商品的销售额占比。
最畅销商品:
找出销售数量最多的商品。
销售趋势分析:
绘制销售总额随日期变化的折线图。
任务4:结果展示
可视化:
使用柱状图展示各类别商品的销售额。
使用饼图展示各类别商品的销售额占比。
使用折线图展示销售总额随日期的变化趋势。
报告总结:
总结分析结果,提出改进建议(如哪些商品需要增加库存,哪些商品需要促销等)。
实验代码示例(以Python为例)
Python复制
importpandasaspd
importmatplotlib.pyplotasplt
#任务1:数据收集
data={
商品名称:[苹果,牛奶,面包,洗发水,手机,香蕉,鸡蛋,牙膏,电脑,橙子],
商品类别:[食品,食品,食品,日用品,电子产品,食品,食品,日用品,电子产品,食品],
销售数量:[10,5,8,20,5,15,20,30,3,12],
单价:[5.0,8.5,6.0,15.0,2999.0,3.5,7.0,5.0,4999.0,4.0],
销售日期:[2023-10-01,2023-10-02,2023-10-03,2023-10-04,2023-10-05,
2023-10-06,2023-10-07,2023-10-08,2023-10-09,2023-10-10]
}
df=pd.DataFrame(data)
df[总价]=df[销售数量]*df[单价]
#任务2:数据预处理
#检查缺失值
print(缺失值检查:)
print(df.isnull().sum())
#检查异常值(如单价为负数)
print(\n异常值检查:)
print(df[df[单价]0])
#任务3:数据分析
#销售总额
total_sales=df[总价].sum()
print(f\n销售总额:{total_sales:.2f}元)
#按类别统计销售额
category_sales=df.groupby(商品类别)[总价].sum()
print(\n各类别销售额:)
print(category_sales)
#最畅销商品(按销售数量)
best_selling=df.loc[df[销售数量].idxmax()]
print(f\n最畅销商品:{best_selling[商品名称]},销售数量:{best_selling[销售数量]})
#任务4:结果展示
#柱状图:各类别销售额
plt.figure(figsize=(10,6))
category_sales.plot(kind=bar)
plt.title(各类别销售额)
plt.xlabel(商品类别)
plt.ylabel(销售额(元))
plt.show()
#饼图:各类别销售额占比
plt.figure(figsize=(10,6))
category_sales.plot(kind=pie,autopct=%1.1f%%)
plt.title(各类别销售额占比)
plt.ylabel()
plt.show()
#折线图:销售总额随日期变化
date_sales=df.groupby(销售日期)[总价].sum()
plt.figure(figsize=(10,6))
date_sales.plot(kind=line,marker=o)
plt.title(销售总额随日期变化)
plt.xlabel(日期)
plt.ylabel(销售额(元))
plt.xticks(rotation=45)
plt.show()
实验总结
数据收集与预处理:
数据收集是分析的基础,确保数据的完整性和准确性。
数据预处理(如