kaggle 电商数据分析

本文基于kaggle上的电商数据集进行分析,涵盖了数据清洗、退货情况研究以及客户RFM分析。在数据清洗阶段,处理了Description字段的缺失值和CustomerID的空值。对于退货,通过创建quantity_canceled标签来跟踪退货量,发现1月和12月的退货率较高可能与节假日购物有关。在RFM分析中,根据客户最近购买时间、购买频率和消费金额进行了客户分类,有助于理解客户行为和价值。

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

kaggle电商零售数据分析案例

项目背景

这个数据集是kaggle上面的一个电商数据集,其中包含2010年12月12日至2011年12月9日之间在英国注册的非商店在线零售的所有交易。该公司主要销售各种独特的礼品之类,其中许多客户该公司是批发商。因此本次数据分析将对客户进行分析,并对客户进行相关分层处理。

数据清洗

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import os
import warnings
import missingno as msno
warnings.filterwarnings('ignore')

data = pd.read_csv('data.csv',encoding = 'utf-8', dtype = {'CustomerID' : str})
data.head()

看到这个是数据的前五行
这就是data数据集的前五行。
接下来观看数据概况

data.describe()

在这里插入图片描述
我们看到这里面Description和CustomerID字段都有相应的缺失,因此我们选择将这里面的数据进行处理。

首先我们选择将Description字段里面缺失的行删除,另外我们将CustinerID中确实字段填补为U。

data.dropna(axis = 0, subset = ['Description'], inplace = True)
data.CustomerID = data.CustomerID.fillna('U')

做好以上处理后我们看每个客户的每个订单的购买商品数量

temp = data.groupby(by=['CustomerID', 'InvoiceNo'], as_index=False)['StockCode'].count()
temp.rename(columns = {'StockCode': 'product numbers'})

在这里插入图片描述

退货情况分析

数据集标签InvioceNo里有一些编号包含’C’,这代表这些订单时退货订单,因此我们需要对这些退货订单进行处理。我们写一个函数,找出退货订单的原订单。这里面会有如下两种情况:

  1. 退货订单没有对应的原订单
  2. 退货订单存在一个或一个以上的原订单。
    因此我们创建一个quantity_canceled的标签,用来记录每一个订单退货量,方便我们之后计算相应的单笔订单真实消费额。
data_cleaned = data.copy(deep = True)
data_cleaned['quantity_canceled'] = 0
unpaired_invoice = []
paired_invoice = []
for index, col in data.iterrows():
   if col['Quantity'] > 0 or col['Description'] == 'Discount':
       continue
   #提取出和取消订单的商品配对的原订单    
   df_test = data[(data['CustomerID'] == col['Cu
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值