python数据分析实战-在线零售业务的交易-电商平台零售数据分析(附源代码)

本文基于在线零售业务数据,运用Python进行RFM模型分析,旨在了解用户交易行为,划分用户群体并提出优化策略。通过数据清洗、计算RFM值、数据划分和可视化,得出重要价值客户和重要发展客户占比较大,建议针对不同客户群体实施定制化营销策略。
摘要由CSDN通过智能技术生成

电商平台零售数据分析

前面的博客中已经有使用在线零售业务数据进行数据分析,但是在这一篇,我们以不同的角度重新对这些数据进行分析。

数据来源及数据结构

国外的在线零售业务的交易数据,数据下载地址

现在以表格的形式解释一下里面的字段:

字段 说明
InvoiceNo 订单编号,含有6个整数,退货订单编号开头有字母C
StockCode 产品编号,由5个整数构成
Description 产品描述
Quantity 产品数量,有负号表示退货
InvoiceDate 订单日期和时间
UnitPrice 单位 英镑 单位产品的价格
CustomerID 客户编号,由5位数字组成
Country 国家的名称 每个客户所在的国家/地区的名称
分析目的
  • 用户分类(RFM模型),对比分析不同用户群体在时间、地区等维度下交易量,交易金额指标,并根据分析结果提出优化建议
  • R:最近一次消费时间(最近一次消费到参考时间的长度)
  • F:消费的频次(单位时间内消费多少次)
  • M:消费的金额(单位时间内总消费金额)

首先说一下思路:
1、清洗数据,去除掉退单的数据和异常值
2、按照RFM模型公式,计算各个模块的数值
3、 通过数据的划分,将模型的三个模块按照重要性进行划分。
4、 通过自定义函数,将模型进行整理
5、 通过柱状图和饼状图对模型所划分的区域进行展示。

下面来看代码,里面有详细代码注释:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import plotly as py
import  plotly.graph_objects as go
import seaborn as sns

sns.set_style('darkgrid')
data = pd.read_csv('data/data.csv')
# print(data.head(10))

#进行数据清洗
# print(data.info())
#从输出信息上来看,CustomerID 发现大量缺失,Description发现少量缺失

#去除掉重复值的值
data = data.drop_duplicates()
#通过描述信息查看是否出现异常值
print(data.describe())
#通过结果发现,UnitPrice出现负值,我们只需要正值  并且 退货数据必须剔除掉
data=data[(data['UnitPrice']>0)&(data['Quantity']>0)]

#接下来将缺失的CustomerID归为一类 代号U
data['CustomerID'].fillna('U',inplace=True)

#统计最近一次消费时间【-----


#时间格式转化成datatime 这里我们暂时不需要具体的时间,所以只留下年月日
data['Data'] = [i[0] for i in data['InvoiceDate'].str.split(' ')]

data['InvoiceDate'] = pd.to_datetime(data['Data'],errors='coerce')
#增加三列 分别记录年、月、日
data[<
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值