英国某电商运营数据和CRM分析

本文通过Python的Pandas库分析了一家英国电商一年的运营数据,包括用户地区分布、价值及活跃度,并基于此为网站发展提供策略建议。数据预处理后,发现大部分交易集中在英国,且80%以上的GMV来自本土。网站在8月至11月的GMV显著增长,客单价主要集中在400磅以下。用户分析显示,高价值用户较少,流失用户主要集中在低价值区域,但年终促销能有效提升用户活跃度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

英国某电商运营数据和CRM分析(python-pandas&plt,附代码及原数据)


基于电商网站交易记录,使用python对网站一年内运营情况,客户地区分布,客户价值及活跃度进行分析,并基于分析结果为网站发展战略提出建议。代码见文末。

数据描述及预处理

原数据
原数据来自于 Kaggle E-com data, csv格式公开数据。包含客户ID,商品描述,价格,下单时间等。数据时间跨度为1年。格式如下表所示:

InvoiceNo StockCode Description Quantity InvoiceDate UnitPrice CustomerID Country
536365 85123A WHITE HANGING HEART T-LIGHT HOLDER 6 2010-12-01 08:26:00 2.55 17850 United Kingdom

数据处理
删除无效数据(CustomerID为空)以及退单数据后总共392692条数据,每条数据为一个客户购买的一种商品。添加购物篮表格和客户表格,购物篮表格将每个客户一次购买的不同商品条目合并为一次下单,总共18439次下单交易;客户表格用于统计RFM信息,总共4345位客户。

一年内网站经营情况综述

区域分布
一年中,80%以上的成交金额来自英国,占GMV(总成交金额)的绝大部分,荷兰、爱尔兰、德国、法国紧随其后,由于商品邮寄的地域性限制主要市场为英国本土及周边国家。
此处输入图片的描述

2011年网站总成交金额变化趋势
网站每月GMV2011年上半年波动,8月至11月出现大幅度增长,本土订单成交金额与GMV变化趋势相同。下单数与GMV变化联系紧密,下半年的增长也主要由订单数的增长导致。
此处输入图片的描述

客单价分布
70%以上单次订单金额小于400磅,平均客单价为478磅。
此处输入图片的描述

尽管来自英国本土的成交金额占比很高,但这并不代表其他地区的客户价值低。如下图,10个其他国家平均客单价都高于英国,尤其如爱尔兰、法国、德国,平均客单价和下单数都相对较高,是非常有潜力的海外市场。
此处输入图片的描述

用户分析

用户流失情况
如果定义90天内未下单为用户流失,用户流失情况如下图。3月至年末用户流失量基本平稳,没有很大异常。当月下单用户数4-8月持续下降达到低谷,下半年反弹。值得注意的是12月份用户流失的大幅降低和下单用户的大幅上升,这可能与年终大规模促销活动有关。
此处输入图片的描述

下图为RFM的可视化图表,纵轴平均客单价代表该客户的‘Monetary Value’,横轴总成交次数代表该客户消费的‘Frequency’,点的颜色指示距离最近一次消费天数,代表‘Recency’。高价值区域(high M & high F,图中右上角)客户较少,大多数用户集中在较低价值区域(左下角)。忠诚度高(high F) 的用户最近大多有消费行为,忠诚度低的用户流失较为严重。
此处输入图片的描述

由于数据非常有限,所做的判断和相关建议未必符合真实情况。仅基于现有交易数据,此次分析的主要洞察和建议如下:

  • 周边国家海外市场具有潜在价值,值得进行战略拓展
  • 积极引导用户向高价值方向发展,挽留/唤醒流失用户的重点应放在具有中高价值的用户。
  • 年终营销活动对于用户留存激活有明显效果,衡量成本情况下可考虑一年内多次实施,维持用户持续增长。

数据处理代码

import pandas as pd

deals = pd.read_csv('e-commerce data.csv',encoding="ISO-8859-1",dtype={
    
    'CustomerID': str,'InvoiceID': str})

deals.InvoiceDate = pd.to_datetime(deals.InvoiceDate)

deals = deals.assign(total = deals.UnitPrice * deals.Quantity)

count_null = pd.DataFrame(deals.isnull().sum()).T.rename(index = {
    
    0: 'null values'})
print(count_null)
deals = deals.dropna( subset = ['CustomerID'] , how = 'any')
deals = deals.drop_duplicates()
## deals contains cancelled deals, with negative payments, here we only 
## consider purchases that have been made regardless whether it is cancelled later
deals_cancelled = deals.loc[deals.total < 0, :]
deals =  deals.loc[deals.total >0, :]

## 每单交易表
grouped_deals = deals.groupby([deals['CustomerID'], deals['Country'],deals['InvoiceDate']], group_keys = True)
basket = grouped_deals['total'].sum()
basket = basket.reset_index()
basket = basket.drop(0,axis = 0)

## create customer table with recency, frequency, monetry value
now = max(deals.InvoiceDate)
customers_g = basket.groupby(['CustomerID','Country'])
customers = pd.DataFrame({
    
    'last_date' : customers_g['InvoiceDate'].max() , 
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值