目录
前言
母婴用品是淘宝的热门购物类目,随着国家鼓励二胎、三胎政策的推进,会进一步促进了母婴类目商品的销量。与此年轻一代父母的育儿观念也发生了较大的变化,因此中国母婴电商市场发展形态也越来越多样化。随之引起各大母婴品牌更加激烈的争夺,越来越多的母婴品牌管窥到行业潜在的商机,纷纷加入母婴电商,行业竞争越来越激烈。本项目会基于“淘宝母婴购物”数据集进行可视化分析,帮助开发者更好地做出数据洞察。
数据名称:tianchi_mum_baby.csv,tianchi_mum_baby_trade_history.csv
分析工具:Mysql,Nactive,Excel
一、项目概述
本项目数据来自阿里云天池《淘宝母婴购物数据集》进行分析。
数据连接:淘宝母婴购物数据集_数据集-阿里云天池 (aliyun.com)淘宝母婴购物数据可视化分析_数据集-阿里云天池 (aliyun.com)
包含超过 900 万个儿童信息(生日和性别),这些信息由消费者提供,他们分享这些信息以获得更好的推荐或搜索结果。
用户基本信息表具体描述如下:
淘宝母婴购物数据集_数据集-阿里云天池 (aliyun.com)
商品交易信息表具体描述如下:
二、数据处理
1.导入数据
将数据用nactive将数据导入Mysql,对数据进行基本的观察
2.数据预处理
对数据进行去重,查找缺失值
代码如下(示例
#数据去重
select distinct *from tianchi_mum_baby group by user_id,birthday,gender;
select distinct *from tianchi_mum_baby_trade_history
group by user_id,auction_id,category_1,category_2,buy_mount,day;
#查看缺失值
select count( user_id),count(birthday),count(gender)from tianchi_mum_baby;
select count( user_id),count(auction_id),count(category_1),
count(category_2),count(buy_mount),count(day)from
tianchi_mum_baby_trade_history ;
将birthday和day数据类型转换为日期型
set SQL_SAFE_UPDATES=0;
alter table tianchi_mum_baby modify birthday date;
alter table tianchi_mum_baby_trade_history modify day date;
异常值处理
delete from tianchi_mum_baby where gender not between'0'and'1';
select birthday from tianchi_mum_baby order by birthday limit 2 ;
select birthday from tianchi_mum_baby order by birthday desc limit 2 ;
select day from tianchi_mum_baby_trade_history order by day limit 2 ;
select day from tianchi_mum_baby_trade_history order by day desc limit 2 ;
#剔除birthday不属于'2012-12-05'至'2015-08-15的信息,birthday不属于'2012-07-02'至'2015-02-05'的信息
delete from tianchi_mum_baby where birthday not between'2002-12-05'and'2015-08-15';
delete from tianchi_mum_baby_trade_history where day not between'2012-07-02'and'2015-02-05';
select count( user_id),count(birthday),count(gender)from tianchi_mum_baby;
select count( user_id),count(auction_id),count(category_1),
count(category_2),count(buy_mount),count(day)from tianchi_mum_baby_trade_history ;
3.数据分析
3.1人模式,消费者的年龄,性别对产品销量的影响
3.1.1分析性别对产品销售情况的影响
创建了一个视图Gender_Behavior来存储用户的id,性别,年龄,购买产品的一级类别与二级类别和购买数量
create view Gender_Behavior as (
select tmb.user_id,tmb.gender,(datediff(tmbh.day,tmb.birthday)/365 )'age',tmbh.category_1,tmbh.category_2,tmbh.buy_mount
from
tianchi_mum_baby tmb left join tianchi_mum_baby_trade_history tmbh using(user_id)) ;
计算不同性别的一级类目的销售量
select w.category_1,女婴一级类目的销售量,男婴一级类目的销售量 from
((select category_1 , sum(buy_mount) '女婴一级类目的销售量' from gender_behavior where gender=0
group by category_1 order by sum(buy_mount) desc ) w
left join
(select category_1, sum(buy_mount) '男婴一级类目的销售量' from gender_behavior where gender=1
group by category_1 order by sum(buy_mount) desc ) m
on w.category_1=m.category_1);
通过可视化后的图形可知,女婴的一级类目的销售量相对男婴来说更好,其中类目28的男女销售量差距最大,并且类目38男婴的销售量接近是女婴销售量的1.5倍,类目50022520性别对销售量的影响最小。
计算不同性别的二级类目的销售量
select w.category_2,女婴二级类目的销售量,男婴二级类目的销售量 from
((select category_2 , sum(buy_mount) '女婴二级类目的销售量' from gender_behavior where gender=0
group by category_2 order by sum(buy_mount) desc ) w
left join
(select category_2, sum(buy_mount) '男婴二级类目的销售量' from gender_behavior where gender=1
group by category_2 order by sum(buy_mount) desc ) m
on w.category_2=m.category_2);
截取部分数据
从可视化后的不同性别二级类目销售情况的图可以发现,二级类目中女婴的购买量普遍比男婴购买量多,并且类目50018831女婴的购买量与男婴的购买量差距最大。包括类目250822以后的75各类目没有男婴购买。
3.1.2分析年龄对产品购买情况的影响
创建了一个视图Age_Group来对用户年龄进行分组
create view Age_Group as
select user_id,category_1,category_2,buy_mount,gender,
case when age<0 then '未出生'
when age<=3 then '婴儿期'
when age<=7 then '学前期'
else '学龄期' end ' 年龄划分'
from gender_behavior;
#年龄分布情况
select 年龄划分,count(distinct user_id)'数目' from age_group group by 年龄划分;
从饼状图中可以发现大部分用户都是婴幼儿,学龄期的销售量占比最少。后续可以将产品投放可以主要针对婴儿期用户进行宣传,并制定一些营销策略吸引学龄期的用户如:对学龄期的用品的优势进行宣传。
计算出不同年龄段的一级类目消费情况
select a.category_1,a.未出生消费情况,b.婴幼儿期消费情况,c.学前期消费情况,d.学龄期消费情况 from
((select category_1,sum(buy_mount)'未出生消费情况' from age_group where 年龄划分='未出生' group by category_1)a
left join
(select category_1,sum(buy_mount)'婴幼儿期消费情况' from age_group where 年龄划分='婴幼儿' group by category_1)b
on a.category_1=b.category_1
left join
(select category_1,sum(buy_mount)'学前期消费情况' from age_group where 年龄划分='学前期' group by category_1)c
on a.category_1=c.category_1
left join
(select category_1,sum(buy_mount)'学龄期消费情况' from age_group where 年龄划分='学龄期' group by category_1)d
on a.category_1=d.category_1);
由柱形图可以知道,除了50022520类目主要消费者为未出生,其他类目的主要消费者为婴幼儿期,50014815,28类目未出生儿的占比很大,后期可以对该年龄段的用户进行推荐,做促销活动,28,50008168,122650008,18的类目中学前期的用户消费占很大比重,可针对这年龄段进行广告投放。50008168,28,122650008类目中学龄期用户消费比较少,可以查看产品针对性的宣传来吸引用户。
计算出不同年龄段的二级类目消费情况
#计算出不同年龄段的二级类目消费情况
select a.category_2,a.未出生消费情况,b.婴幼儿期消费情况,c.学前期消费情况,d.学龄期消费情况 from
((select category_2,sum(buy_mount)'未出生消费情况' from age_group where 年龄划分='未出生' group by category_2)a
left join
(select category_2,sum(buy_mount)'婴幼儿期消费情况' from age_group where 年龄划分='婴幼儿' group by category_2)b
on a.category_2=b.category_2
left join
(select category_2,sum(buy_mount)'学前期消费情况' from age_group where 年龄划分='学前期' group by category_2)c
on a.category_2=c.category_2
left join
(select category_2,sum(buy_mount)'学龄期消费情况' from age_group where 年龄划分='学龄期' group by category_2)d
on a.category_2=d.category_2);
部分数据节选
用Excel的if()、large()函数可以发现50016706、50023591、50006032、50012245、50011993、50014744以上类目的主要消费为未出生用户,50024842类目主要消费者为学前期的用户,其他类目主要是婴幼儿期作为主要消费者。
3.1.3分析年龄与性别对产品购买情况的影响
计算一级类目不同性别不同年龄段的产品购买情况
create view Age_Gender as
select m.category_1,m.男性未出生销售量,w.女性未出生销售量,m.男性婴幼儿销售量,w.女性婴幼儿销售量,m.男性学前期销售量,w.女性学前期销售量,
m.男性学龄期销售量,w.女性学龄期销售量
from
(
(select a1.category_1,a1.男性婴幼儿销售量,a2.男性学前期销售量,a3.男性学龄期销售量,a4.男性未出生销售量 from
((select category_1 ,sum(buy_mount) '男性婴幼儿销售量'
from age_group where gender=1 and 年龄划分='婴幼儿' group by category_1) a1
left join
(select category_1 ,sum(buy_mount) '男性学前期销售量'
from age_group where gender=1 and 年龄划分='学前期' group by category_1) a2
on a1.category_1=a2.category_1
left join
(select category_1 ,sum(buy_mount) '男性学龄期销售量'
from age_group where gender=1 and 年龄划分='学龄期' group by category_1) a3
on a1.category_1=a3.category_1
left join
(select category_1 ,sum(buy_mount) '男性未出生销售量'
from age_group where gender=1 and 年龄划分='未出生' group by category_1) a4
on a1.category_1=a4.category_1)) m
left join
#女性不同年龄段的一级类别的销售情况
( select a1.category_1,a1.女性婴幼儿销售量,a2.女性学前期销售量,a3.女性学龄期销售量,a4.女性未出生销售量
from
((select category_1 ,sum(buy_mount) '女性婴幼儿销售量'
from age_group where gender=0 and 年龄划分='婴幼儿' group by category_1) a1
left join
(select category_1 ,sum(buy_mount) '女性学前期销售量'
from age_group where gender=0 and 年龄划分='学前期' group by category_1 ) a2
on a1.category_1=a2.category_1
left join
(select category_1 ,sum(buy_mount) '女性学龄期销售量'
from age_group where gender=0 and 年龄划分='学龄期' group by category_1) a3
on a1.category_1=a3.category_1
left join
(select category_1 ,sum(buy_mount) '女性未出生销售量'
from age_group where gender=0 and 年龄划分='未出生' group by category_1) a4
on a1.category_1=a4.category_1))w
on m.category_1=w.category_1);
可以发现50014815、28、38类目中在女性婴幼儿的销量最多,50022520类目中男性未出生的的销量最多,50008168中主要消费者为婴幼儿与女性学前期。
3.2货模式,商品的类型对产品销量的影响
计算商品销售量按类目分布:
计算一级类目的销售情况:
select category_1,sum(buy_mount)'数量'from tianchi_mum_baby_trade_history group by category_1 order by sum(buy_mount) desc;
有饼状图可知,主要消费的一级类目是28545占比为37%,其次是19763与18792的占比分别为26%,25%,最少的是3666,3245,2239三个类目。后续可以对这三个类别销量不佳情况进行分析,探究是宣传不到位,还是产品性能等原因来针对性提出解决办法。
计算出最受欢迎的二级类目top10
select category_2,sum(buy_mount)from tianchi_mum_baby_trade_history group by category_2 order by sum(buy_mount) desc limit 10;
对二级类目销售前十的商品进行促销时可以同年龄段销售情况不佳的商品进行捆绑销售,促进消费者对销售不佳商品的体验,以便于吸引消费者。
3.3场模式,计算时间对产品销售的影响
计算各商品的年/季/月/日销售情况
代码如下(示例):
#商品每年销售情况
select year(day)'年份',sum(buy_mount) '销售情况' from tianchi_mum_baby_trade_history
group by year(day) order by year(day) ;
#商品各季度销售情况
select year(day)'年份',quarter(day)'季度',sum(buy_mount) '销售情况' from tianchi_mum_baby_trade_history
group by year(day),quarter(day) order by year(day), quarter(day);
#商品各月份销售情况
select year(day)'年份',month(day)'月份',sum(buy_mount) '销售情况' from tianchi_mum_baby_trade_history
group by year(day),month(day) order by year(day), month(day);
#商品每日销售情况
select day'日期',sum(buy_mount) '销售情况' from tianchi_mum_baby_trade_history
group by day order by day ;
运用Excel将MYSQL查询的结果导入,并运用数据透视表对不同年份的同一季度或同一月份的销售情况绘制柱形图,将同一年不同日期的销售情况绘制折线图。
由图各季度的销售情况可知,第四季度的销售情况是4个季度最好的,1,2季度的销售量为淡季,可以适当的做一些促销活动,引起顾客的消费欲望,并对淡季产生的原因进行分析。各月份的销售情况图可知,一年当中主要是9月与11月的销售情况是最好的可以在这两个月的对商品的调配数量增加,1、2、6这三个月的销售情况较不好,可以减少货品的数目。由各年每日的销售图可以发现,每年11月或12月中旬的时候都会达到销售额的峰值,可以提前做安排
总结
以上就是今内容,本文仅仅简单分析了淘宝母婴销售情况,我们可以针对不同性别的用户与不同年龄段的用户进行精准促销,从而刺激用户消费。根据类目的受欢迎程度制定一些活动促进不是很受欢迎的产品的售卖,根据用户购买时间,安排恰当的商品进货时间,帮助电商平台获取更多的利益。