电商数据分析练习

本文通过分析电商数据,包括发票编号、库存编码、商品描述、数量、单价、顾客ID、国家和总价等,进行了数据探索和清洗。运用RFM模型,分析了客户购买行为,发现销售额在节日季度显著增加,单价和总价高度相关,且大部分客户为一次性购买。最后,通过RFM模型将客户分为不同类别,为营销策略提供依据。
摘要由CSDN通过智能技术生成

背景

本次练习的数据集来自于kaggle。该数据集是英国线上零售一年中(2010年12月1日至2011年12月9日)所有跨国交易记录。这家公司主要销售的是各类独特的礼品,许多公司的消费者都是批发商。

1、数据探索:分析各单变量的分布,并清洗数据;分析各变量相关关系,各月的销售情况

2、利用RFM模型,对顾客重要程度分组

EDA

1 数据集的基本情况

data.info()
data.head()

数据集中包含了541,909条数据记录,共有8个属性。

  • InvoiceNo:发票编号
  • StockCode:库存编码
  • Description:商品描述
  • Quantity:数量
  • InvoiceDate:发票日期
  • UnitPrice:单价
  • CustomerID:顾客ID
  • Country:国家

缺失值情况:

data.isnull().sum()/len(data)

商品描述:缺失值占比0.26%;数据缺失较少,此处以'unknown'填充。

顾客ID:缺失值占比24.93%;数据缺失严重,实际场景需要找业务部门确认缺失原因;此处对缺失值暂时以0填充标记。

data1 = data.copy()
data1.Description.fillna('unknown',inplace=True)
data1.CustomerID.fillna(0,inplace=True)

2 单变量分析

2.1 发票编号

invoice_number = data1.InvoiceNo.unique().shape[0]
product_per_invoice = len(data1)/invoice_number

一共有25900张不同的发票,平均每张发票对应21条记录(即21种商品)。

2.2 库存编码

data1.StockCode.unique().shape[0]

一共有4070种不同的库存编码

2.3 商品描述

data1.Description.unique().shape[0]

一共有4220种不同的商品;这里也可以看出库存编码和商品之间并非一一对应。

2.4 数量

data1.Quantity.describe()

数量的最小值为-80995,最大值为80995,很明显存在异常。

对于数量小于0的单子,可能是退货部分,占比约2%,本次分析姑且不考虑这部分数据,做删除处理;

对于数量大于0的单子,有的数值格外的大,考虑数据集来自于批发商的采买,有可能存在某些小物件,采买的数量比较大,需要结合实际的业务情况,给出合适的阈值剔除或替换异常值。我这里,将对数量大于(75%分位点+1.5*IQR)的数据,用均值填充。

data2 = data1[data1.Quantity>0]
IQR = data2.Quanti
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值