18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 电子商务 > 电商母婴用品数据分析

电商母婴用品数据分析

时间:2023-03-26 07:30:02 | 来源:电子商务

时间:2023-03-26 07:30:02 来源:电子商务

一、项目背景

1.1 数据来源

数据集来源于阿里巴巴天池

Baby Goods Info Data-数据集-阿里云天池

1.2 数据集介绍

数据来自淘宝和天猫上购买婴儿用户,本数据集包括2个excel文件

表1购买商品(sample)sam_tianchi_mum_baby_trade_history.csv)

表2婴儿信息((sample)sam_tianchi_mum_baby.csv)

1.3 字段含义

1)表1购买商品字段

user_id:用户id

auction_id:购买行为编号

cat_id:商品种类ID

cat1:商品属于哪个类别

property:商品属性

buy_mount:购买数量

day:购买时间

2)表2婴儿信息表字段

user_id:用户id

birthday:出生日期

gender:性别(0 男性;1 女性;2 未知)

1.4 分析流程

本项目的分析流程如下:

背景介绍→提出问题→数据清洗→构建模型→总结建议

二、提出问题

需要解决的业务问题如下:

2.1 消费人群洞察,分析消费者的年龄、性别、购买喜好情况;

2.2 根据商品销售结构与购买数量,分析母婴产品整体销售情况;

2.3 根据总体销量,分析该电商平台年度销售情况;

2.4 根据销量,分析顾客指标 -- 连带率

2.5 商品属性分析

分析思路与指标如下:

三、数据清洗

3.1 列名重命名

为了方便接下来的分析工作,逐一对表1、表2数据集中的字段重新命名,用中文表示

3.2 删除重复值

“用户ID”是表1和表2的联结字段,为避免在navicat导入数据过程中出现错误,分别在Excel里查看表1和表2中“用户ID”列是否存在重复值。发现表1存有重复值并予以删除,表2无重复值,确保主键ID不重复。

3.3 导入数据

把表1购买商品和表2婴儿信息数据分别导入navicat中,把“用户ID”设置主键约束;由于表1“商品属性”单元格里的值长度太大,需要将对应数据类型设置为text,以免导入错误。

3.4 创建表&联结表

1)首先创建新表涵盖表1、表2所有内容,命名为“表3销售情况”。

CREATE TABLE 表3销售情况(用户ID VARCHAR(255) NOT NULL,购买行为编号 VARCHAR(255) NOT NULL,品类ID VARCHAR(255) NOT NULL,产品类目 VARCHAR(255) NOT NULL,商品属性 LONGTEXT NOT NULL,购买数量 DECIMAL(65) NOT NULL,购买时间 date NOT NULL,出生日期 date NOT NULL,性别 VARCHAR(255) NOT NULL,PRIMARY KEY(用户ID))ENGINE=INNODB;2)表1、表2通过“用户ID”字段相互联结,查询结果保留两表间共同的数据记录,最后把查询数据存储在新表中。

INSERT INTO `3销售情况`SELECT `1购买商品`.*, `2婴儿信息`.出生日期,`2婴儿信息`.性别FROM `1购买商品`,`2婴儿信息`WHERE `1购买商品`.用户ID = `2婴儿信息`.用户ID;3.5 一致化处理

这里只需对“性别”列进行一致化处理

UPDATE `3销售情况` SET `性别` = REPLACE(`性别`,'0','男');UPDATE `3销售情况` SET `性别` = REPLACE(`性别`,'1','女');UPDATE `3销售情况` SET `性别` = REPLACE(`性别`,'2','未知');3.6 异常值处理

1)首先在表3中添加字段,命名为“年龄”并设置好数值类型为decimal(65)

2)创建新表“age”存储年龄数据记录。数据集中有用户“购买时间”和婴儿“出生日期”字段,这里可以用公式(“购买时间”-“出生日期”)/365=产品使用者年龄,保留两位小数以便年龄分组。

CREATE TABLE age(用户ID VARCHAR(255) NOT NULL,age DECIMAL(65) NOT NULL,PRIMARY KEY(用户ID))ENGINE=INNODB;INSERT INTO age SELECT `表3销售情况`.`用户ID`,ROUND(DATEDIFF(`购买时间`,`出生日期`)/365,2)FROM `表3销售情况`;3)完善表3“年龄”空缺列

update `表3销售总体情况`,age set `表3销售总体情况`.`年龄` = age.age where `表3销售总体情况`.`用户ID` = age.`用户ID`;4)删除异常值

从图中看出,只有用户ID为89520261其数值明显偏离它所属样本的其余观测值,为保证数据集中程度,删除离群值,以便后续分析。

DELETE FROM `表3销售情况`WHERE `表3销售情况`.`用户ID`='89520261';

四、构建模型

4.1 消费人群洞察,分析消费者的年龄、性别、购买喜好情况

1)年龄分组

在表3添加字段“年龄分组”,设置数值类型为varchar(255),根据年龄大小依次分组

UPDATE `3销售情况`SET `3销售情况`.`年龄分组` = CASE WHEN `年龄`<=0 THEN '未出生' WHEN `年龄`>0 and `年龄`<=1 THEN '0-1岁' WHEN `年龄`>1 and `年龄`<=2 THEN '1-2岁' WHEN `年龄`>2 and `年龄`<=3 THEN '2-3岁' WHEN `年龄`>3 and `年龄`<=4 THEN '3-4岁' WHEN `年龄`>4 and `年龄`<=5 THEN '4-5岁' WHEN `年龄`>5 and `年龄`<=6 THEN '5-6岁' WHEN `年龄`>6 and `年龄`<=7 THEN '6-7岁' WHEN `年龄`>7 and `年龄`<=8 THEN '7-8岁' WHEN `年龄`>8 and `年龄`<=9 THEN '8-9岁' WHEN `年龄`>9 and `年龄`<=10 THEN '9-10岁' ELSE '10岁以上'END ;2)整体分布情况

SELECT `性别`,SUM(CASE WHEN `年龄分组`='未出生' THEN 1 ELSE 0 END) AS '未出生',SUM(CASE WHEN `年龄分组`='0-1岁' THEN 1 ELSE 0 END) AS '0-1岁',SUM(CASE WHEN `年龄分组`='1-2岁' THEN 1 ELSE 0 END) AS '1-2岁',SUM(CASE WHEN `年龄分组`='2-3岁' THEN 1 ELSE 0 END) AS '2-3岁',SUM(CASE WHEN `年龄分组`='3-4岁' THEN 1 ELSE 0 END) AS '3-4岁',SUM(CASE WHEN `年龄分组`='5-6岁' THEN 1 ELSE 0 END) AS '5-6岁',SUM(CASE WHEN `年龄分组`='6-7岁' THEN 1 ELSE 0 END) AS '6-7岁',SUM(CASE WHEN `年龄分组`='7-8岁' THEN 1 ELSE 0 END) AS '7-8岁',SUM(CASE WHEN `年龄分组`='8-9岁' THEN 1 ELSE 0 END) AS '8-9岁',SUM(CASE WHEN `年龄分组`='9-10岁' THEN 1 ELSE 0 END) AS '9-10岁',SUM(CASE WHEN `年龄分组`='10岁以上' THEN 1 ELSE 0 END) AS '10岁以上',CONCAT(ROUND(COUNT(*)/952*100,2),'%') AS '占比'FROM `表3销售情况`GROUP BY `性别`ORDER BY COUNT(*) DESC;从以上可以看出,该电商平台在销售母婴产品方面主要面向的消费人群是0-1岁婴儿,其次是1-2岁,第三是未出生的。在性别占比方面,男性与女性的比例相差不大,但男性儿童占比51.26%略高于女性儿童46.01%,说明有超过一半比例的消费者在该平台购买男性儿童使用的母婴产品

3)购买喜好

SELECT `产品大类`,SUM(CASE WHEN `性别`='男' THEN 1 ELSE 0 END) AS '男',SUM(CASE WHEN `性别`='女' THEN 1 ELSE 0 END) AS '女',SUM(CASE WHEN `性别`='未知' THEN 1 ELSE 0 END) AS '未知'FROM `表3销售情况`GROUP BY `产品大类`ORDER BY SUM(CASE WHEN `性别`='男' THEN 1 ELSE 0 END) DESC;从查询结果可以看出,消费者主要偏好购买50008168大类产品,50008168和50014815以男婴儿居多,剩余的大类男女占比旗鼓相当,无较大差距。

4.2 根据商品销售结构与购买数量状况,分析该电商平台母婴产品整体销售情况

1)商品自然分类法 -- 线分类法

根据商品自然分类方法中的线分类法(层次分类法),将商品按照层次逻辑分成若干类别,上层次与下层次间是隶属关系。这里我们把产品分为大类、中类,中类产品隶属大类产品。

2)产品大类售量比较

基于“表1购买商品”

SELECT `产品大类`,SUM(`购买数量`) AS `购买数量`,COUNT(`产品中类`) AS '竞品数目',CONCAT(ROUND(COUNT(`产品中类`)/SUM(`购买数量`)*100,1),'%') AS '竞品饱和度'FROM `表1购买商品`GROUP BY `产品大类`ORDER BY SUM(`购买数量`) DESC;该电商平台销售母婴用品有六大类别。其中ID28大类销量最高,但竞品数目相对缺乏,饱和度低;与之情况相同的ID50014815,销量次于ID28,说明这两大类产品有潜在市场空间,可在产品布局上适当增加对应类目其他竞品,以达到销售最大化。ID50008168大类销量位居第三,而竞品饱和度相对较高,该类目下竞品数量充足,消费者可供选择产品的余地更多,这也说明了以上消费者为什么主要偏好购买50008168了。而剩余的三大类产品,销量越低竞品饱和度则越高,说明商家在经营策略上有待考量。

3)选定ID50008168、ID28、ID50014815类目分析(基于表3销售情况)

①ID50008168大类

从性别上看:

SELECT `产品中类`,SUM(CASE WHEN `性别`='男' THEN `购买数量` ELSE 0 END) AS '男',SUM(CASE WHEN `性别`='女' THEN `购买数量` ELSE 0 END) AS '女',SUM(CASE WHEN `性别`='未知' THEN `购买数量` ELSE 0 END) AS '未知',SUM(CASE WHEN `性别`='男' THEN `购买数量` ELSE 0 END)+SUM(CASE WHEN `性别`='女' THEN `购买数量` ELSE 0 END) +SUM(CASE WHEN `性别`='未知' THEN `购买数量` ELSE 0 END) AS '总计'FROM `表3销售情况`WHERE `产品大类`='50008168'GROUP BY `产品中类`ORDER BY SUM(CASE WHEN `性别`='男' THEN `购买数量` ELSE 0 END)+SUM(CASE WHEN `性别`='女' THEN `购买数量` ELSE 0 END) +SUM(CASE WHEN `性别`='未知' THEN `购买数量` ELSE 0 END) DESC;以上结果可知,总体来说该大类下的TOP15每一竞品对应的男女购买人数相差不大,说明产品能满足大部分用户需求。

从购买时间上看:

2012年第三季度 - 2014年间总体销量波动上升,在每年3月、9-12月销量基本呈增长趋势。3月是春节后的月份,此时单位发工资、节后时间充裕、有高兴的事情等因素会影响消费者冲动性购买;9-12月是下半年促销月,双十一、双十二购买狂欢节,销量每年在增长。商家可根据分析结果安排上新或促销活动。

②ID28大类

从性别上看:

SELECT `产品中类`,SUM(CASE WHEN `性别`='男' THEN `购买数量` ELSE 0 END) AS '男',SUM(CASE WHEN `性别`='女' THEN `购买数量` ELSE 0 END) AS '女',SUM(CASE WHEN `性别`='未知' THEN `购买数量` ELSE 0 END) AS '未知',SUM(CASE WHEN `性别`='男' THEN `购买数量` ELSE 0 END)+SUM(CASE WHEN `性别`='女' THEN `购买数量` ELSE 0 END) +SUM(CASE WHEN `性别`='未知' THEN `购买数量` ELSE 0 END) AS '总计'FROM `表3销售情况`WHERE `产品大类`='28'GROUP BY `产品中类`ORDER BY SUM(CASE WHEN `性别`='男' THEN `购买数量` ELSE 0 END)+SUM(CASE WHEN `性别`='女' THEN `购买数量` ELSE 0 END) +SUM(CASE WHEN `性别`='未知' THEN `购买数量` ELSE 0 END) DESC;从查询结果发现如下问题:在大类ID28下,销量较为可观的TOP3产品分别是50013187、50011993、250822,消费群体以男婴儿为主,用户产品可选择的余地较少。

从购买时间上看:

2012年第三季度 - 2014年间出现不规律性峰值,规律性峰值只有每年5月份销量高,但促销月(618、双十一、双十二)活动力度不足,销量甚至低于其他月份。

③ID50014815大类

SELECT `产品中类`,SUM(CASE WHEN `性别`='男' THEN `购买数量` ELSE 0 END) AS '男',SUM(CASE WHEN `性别`='女' THEN `购买数量` ELSE 0 END) AS '女',SUM(CASE WHEN `性别`='未知' THEN `购买数量` ELSE 0 END) AS '未知',SUM(CASE WHEN `性别`='男' THEN `购买数量` ELSE 0 END)+SUM(CASE WHEN `性别`='女' THEN `购买数量` ELSE 0 END) +SUM(CASE WHEN `性别`='未知' THEN `购买数量` ELSE 0 END) AS '总计'FROM `表3销售情况`WHERE `产品大类`='50014815'GROUP BY `产品中类`ORDER BY SUM(CASE WHEN `性别`='男' THEN `购买数量` ELSE 0 END)+SUM(CASE WHEN `性别`='女' THEN `购买数量` ELSE 0 END) +SUM(CASE WHEN `性别`='未知' THEN `购买数量` ELSE 0 END) DESC;从以上图表可以知道,在同一类别所有产品中,只有50018831最为畅销,其余商品销量低迷,说明消费者选择单一,暂且说明该商品能满足消费者的需求和爱好。

从购买时间上看:

2012年第三季度 - 2014年间除2012年11月的双十一购物节销量异常高外,其他月份销量低而平稳。接着,分析2012年11月的双十一购物节销量为什么异常高?

查看数据源发现只有用户ID359601689的购买量达到了160,这里可与相关部门人员商讨确认数据是否录入错误或是其他因素导致,若数据正确无误,我们可将此认为是高价值用户,有针对性地实施落地策略。

4.3 根据总体销量,分析该电商平台年度销售情况

由“表1购买商品”分析年度总体销量

SELECT DATE_FORMAT(`购买时间`,'20%y') AS 'yr',SUM(CASE WHEN DATE_FORMAT(`购买时间`,'%m-%d')>='01-01' AND DATE_FORMAT(`购买时间`,'%m-%d')<='03-31' THEN `购买数量` ELSE 0 END) AS '第一季度',SUM(CASE WHEN DATE_FORMAT(`购买时间`,'%m-%d')>='04-01' AND DATE_FORMAT(`购买时间`,'%m-%d')<='06-30' THEN `购买数量` ELSE 0 END) AS '第二季度',SUM(CASE WHEN DATE_FORMAT(`购买时间`,'%m-%d')>='07-01' AND DATE_FORMAT(`购买时间`,'%m-%d')<='09-30' THEN `购买数量` ELSE 0 END) AS '第三季度',SUM(CASE WHEN DATE_FORMAT(`购买时间`,'%m-%d')>='10-01' AND DATE_FORMAT(`购买时间`,'%m-%d')<='12-31' THEN `购买数量` ELSE 0 END) AS '第四季度',(SUM(CASE WHEN DATE_FORMAT(`购买时间`,'%m-%d')>='01-01' AND DATE_FORMAT(`购买时间`,'%m-%d')<='03-31' THEN `购买数量` ELSE 0 END)+SUM(CASE WHEN DATE_FORMAT(`购买时间`,'%m-%d')>='04-01' AND DATE_FORMAT(`购买时间`,'%m-%d')<='06-30' THEN `购买数量` ELSE 0 END)+SUM(CASE WHEN DATE_FORMAT(`购买时间`,'%m-%d')>='07-01' AND DATE_FORMAT(`购买时间`,'%m-%d')<='09-30' THEN `购买数量` ELSE 0 END)+SUM(CASE WHEN DATE_FORMAT(`购买时间`,'%m-%d')>='10-01' AND DATE_FORMAT(`购买时间`,'%m-%d')<='12-31' THEN `购买数量` ELSE 0 END)) AS '总计'FROM `表1购买商品`GROUP BY DATE_FORMAT(`购买时间`,'20%y')ORDER BY DATE_FORMAT(`购买时间`,'20%y');
季度销量分布图
从查询结果简单观察到:母婴用品在2012-2014年间年度总销量逐年递增;产品在第四季度最畅销。我们可以根据公式 环比增长率=(本期数-上期数)/上期数*100% 计算年度环比增长率。由于2012年第一、第二季度数据缺失,2015年数据不完善,所以可以算出2014年销量环比2013年增长率为85%,销量非常可观。接下来,我们探讨一下在2012-2015年间哪几个月贡献率最高?

上图是把季度销量细化成月销量,图中能发现2012-2015年间几乎在每年6月份前后、10月份后都会出现峰值,对应的是年中618、双十一促销活动。随着销量呈每年增长趋势,此时可在6月、10月前策划产品上新活动,但该平台参与618促销活动力度远不如双十一,同时适度提高618促销力度。

4.4 客户连带率(*顾客指标)

连带率反映顾客每次购物的深度。

连带率(平均客件数) = 销量总数量÷成交总单数,这里我用“用户ID”总和来代替成交总单数

SELECT SUM(`表1购买商品`.`购买数量`)/COUNT(`表3销售情况`.`用户ID`) AS '连带率'FROM `表1购买商品` JOIN `表3销售情况` ON `表1购买商品`.`用户ID`=`表3销售情况`.`用户ID`从查询结果得出顾客连带率为1.61,说明交易中顾客平均买走2件商品。因为这里没有可对比的对象,所以无法判断连带率高低。若在此基础上提高连带率,我们可以从商品搭配、联合推荐角度出发,提高商品间的关联度。

4.5 商品属性分析

这里的商品属性我采用敲入VBA代码来实现去重归类、统计各属性出现的频次,根据出现频次高低来确定消费者喜好的产品特点。

Sub test()Set d = CreateObject("scripting.dictionary")For i = 2 To Cells(Rows.Count, 3).End(xlUp).Row If Cells(i, Columns.Count).End(xlToLeft).Column - 3 = 0 Then d(Rng) = d(Rng) + 1 Else arr = Range(Cells(i, 3), Cells(i, Cells(i, Columns.Count).End(xlToLeft).Column)) For Each Rng In arr d(Rng) = d(Rng) + 1 Next End IfNext[A1].Resize(d.Count) = Application.Transpose(d.Keys)[B1].Resize(d.Count) = Application.Transpose(d.Items)End Sub结论:排名前三产品属性分别是1628665:3233938、1628665:29790、1628665:3233939,但数据集并没有对这属性有详细说明,所以在产品布局、上新、品类拓展等方面依据主要商品属性规划。

五、总结建议

总结:

1、面向的消费人群主要是0-1岁,男女比例相差不大,男婴儿略高于女婴儿;

2、消费者喜欢购买ID50008168类目产品,主要是因为竞品数目多,相对于其他类目消费者可挑选产品余地更大;另外,该类目2012-2014年年销量波动上升,每年3月、9-12月份销量尤佳;

3、ID28、ID50014815销量高、竞品数目偏少。原因是ID28部分主推产品只面向单一客户,全年5月份销量最高,重要的促销月活动力度低下;ID50014815只有50018831产品带动销量,消费者并无其他更好的选择,竞争少;

4、年度销量逐年递增,第四季度销量最可观,年中618、双十一促销活动力度、销量呈上升趋势,但618活动远不如双十一;

5、平台交易中客户平均能买走2件商品,消费者最看中的TOP3产品卖点是1628665:3233938、1628665:29790、1628665:3233939。

建议:

1、有针对性向特定消费者推广产品,同时维护高价值用户群体,将消费者从产品中获得价值最大化。

2、通过有效渠道(如深入分析客户评论、用户问卷调查等)了解消费者需求与爱好,有目标地升级、取代、摒弃部分产品。

3、对于ID28、ID50014815竞品数目偏少情况,结合年度销量分布和产品热销卖点,ID28适合在4月份和第三季度上新、策划促销方案,增加50013187/50011993/250822竞品数目,制定产品价格;ID50018831则适合在第三季度上新,可联合其他产品利用特殊日期、特殊事件进行关联销售,提高客户连带率。对2015年市场进行预测,重点在全年第四季度销量,年中618大促活动也不可错过。

关键词:数据,分析,用品

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭