英国在线零售商数据分析

2019-10-15  本文已影响0人  tuimer

前言:

数据分析的一般流程,首先确定问题,再带着问题进行下面的分析步骤

分析流程.png

0、分析问题

一份数据可以分析很多维度,为了分析的效率,首先需要明确此次分析的目的(问题)及深度,避免陷入盲目无尽的分析

  1. 订单维度:笔单价和连带率是多少?订单金额与订单内商品件数的关系如何?

  2. 客户维度:客单价是多少?客户消费金额与消费件数的关系如何?

1.理解数据

理解业务指标

我们的问题中有许多业务指标,首先需要理解这些指标的含义

  1. 订单维度:

    • 笔单价

      指每笔交易记录(一张水单)对应的平均交易金额,一般以消费金额除以消费笔数来计量

      商品总额/总笔数

    • 连带率

      指顾客每次购物购买了几件商品

      商品总数量/总笔数

    • 订单金额

      订单单价*订单内商品件数

    • 订单内商品数

      同一笔订单的所有商品件数

  2. 客户维度:

    • 客单价

      销售额/客户数

    • 客户消费金额

      按客户分组的总金额

    • 消费件数

      按客户分组统计的总件数

再理解原始数据,数据共541,909条记录,8个字段

原始数据.png

这些字段的含义分别是发票编号、产品货号、描述、件数、发票时间、单价、订单来源国家

数据探索

查看数据集的情况,可以看到 Description约有1.5k个值缺失,CustomerID字段有13.7w个值缺失

数据集情况
# 增加一个总金额字段
data['sumPrice'] = data['Quantity'].astype(float) * data['UnitPrice'].astype(float)

看一下数值数据的概况


数值数据

可以看到商品数量和单价居然有负值,查看一下这些异常值

异常数据

可以看到发票号是C开头的,得知这是cancel取消的意思,也就是说这些订单被取消了

最大被取消的一单有8万件商品,共有10624条这样的数量为负的记录,后续需要将这些数据做数据清洗

2.数据清洗

前面数据探索发现Description字段和CustomerID字段有部分数据缺失,无法填充值,所以做删除处理

#删除用户ID字段有缺失的记录
data = data[-data['CustomerID'].isnull()]

异常数据包括数量字段为负值以及单价为负的情况,由于缺失的数据相对于总的记录来说较小,所以这里直接丢弃这部分记录。

# 清洗掉数量为负或者单价<=0的记录
df_success = data[data['sumPrice']>0]</pre>

清洗完的数据有397,884条记录。

3. 数据建模

订单维度

# 商品总额/总笔数
    price_per_order = sum(df_success['sumPrice'])/df_success.shape[0]</pre>
得到**笔单价22.40元每单**
APR = df_success.shape[0]/(df_success['InvoiceNo'].nunique())

连带率约为21.47,连带率非常好!顾客平均每次购买21样商品,这应该是个超市批发数据

price_per_order = sum(df_success['sumPrice'])/(df_success['InvoiceNo'].nunique())

平均每张订单金额为480.87

n = sum(df_success['Quantity'])/(df_success['InvoiceNo'].nunique())</pre>

平均每个订单278.86件商品。

客户维度:

price_per_cust = sum(df_success['sumPrice'])/(df_success['CustomerID'].nunique())</pre>

平均每位顾客消费2054.27

# 使用数据透视表计算每位顾客金额和件数
    cust_pivot=pd.pivot_table(df_success,index = 'CustomerID', values = ['sumPrice', 'Quantity'],aggfunc=np.sum)</pre>
按客户分组透视

可以看到排名第一的大客户14646订购数量高达19万件

商品维度

4.数据可视化

可以看到花钱最多的14646顾客,购买数量及购买金额都是最多的,而购买金额排2、3、位的顾客,购买金额和购买数量比值较大,购买的是一些高价值商品

可以看出货号为23843的商品卖的钱最多,而23166的销量与23843几乎持平,销售总金额仅有一半,说明它的单价较低,但客户需求量较高,要保证库存

5. 进一步分析

......

上一篇下一篇

猜你喜欢

热点阅读