最后一个项目——超市电商数据分析
数据源概况:
- 本案例将对某大型超市的零售数据进行数据分析,通过了
解运营状况,做出合理的决策。详细字段是:
Row ID:行编号;
Order ID:订单ID;
Order Date:订单日期;
Ship Date:发货日期;
Ship Mode:发货模式;
Customer ID:客户ID;
Customer Name:客户姓名;
Segment:客户类别;
City:客户所在城市;
State:客户城市所在州;
Country:客户所在国家;
Postal Code:邮编;
Market:商店所属区域;
Region:商店所属州;
Product ID:产品ID;
Category:产品类别;
Sub-Category:产品子类别;
Product Name:产品名称;
Sales:销售额;
Quantity:销售量;
Discount:折扣;
Profit:利润;
Shipping Cost:发货成本;
Order Priority:订单优先级;
读取、清洗数据:
- 使用pandas的read_csv读取数据后,查看各列数据的空值情
况,发现Postal Code字段(邮编字段)有空值,而且这一
列不重要,所以首先删除掉Postal Code列; - 使用DataFrame对象的describe()方法,没有发现异常数
据,所以,不必处理; - 将Order Date订单日期字段的数据修改为datetime类型;
- 为了后续分析方便,从订单日期中分别提取年、月、季度数
据,并添加三个列用来存取年、月、季度信息,分别
为:’Order-year’,’Order-month’,’quarter’
加载数据分析需要使用的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
plt.rcParams['font.sans-serif'] = ['SimHei']
warnings.filterwarnings('ignore')
#数据加载和整合
# 加载零售数据集,使用'ISO-8859-1'编码方式
df = pd.read_csv(r"E:\market.csv",encoding='ISO-8859-1')
df.head()
#数据大小
df.shape
#数据分布情况
df.describe()
得到结果:
代码:
数据分析:
利润分析
先根据年和月进行分组,再分别提取各年份(2011-2014
年)的数据,分析各年份对应月的利润情况。
客单价分析
客单价指商场(超市)每一个顾客平均购买商品的金额,客单
价反映顾客的购买水平;
客单价=销售额÷成交顾客数
通过计算并展示每年的客单价数据,可以反映每年的顾客购买
水平
每年销售额与销售额的增长率分析
通过年份分组,计算每年的销售额总和
销售额增长率 = (本年销售额-上年销售额) / 上年销售额 * 100%
= 本年销售额 / 上年销售额 - 1