为减少篇幅,本文将尽量少的配上源码,在文末提供的源码文件中已经有详细注释。

本案例结合Python和Tableau,由于数据量及维度较少,所以更多的是使用Tableau进行可视化处理。

项目介绍

项目背景

根据PEST框架,从四个角度简要分析:

  • 政策Politics:国家发展改革委2013年5月28日表示,13个部门将出台系列政策措施,从可信交易、移动支付、网络电子发票、商贸流通和物流配送共5个方面支持电子商务发展,有利于促进在线母婴商品市场快速发展。

  • 经济Economy:随着国内经济的稳定增长,2015年我国城镇居民可支配收入增长到31195元, 同期农村居民可支配收入增长到11422元。不断提高的人均可支配收入将提升家庭的消费意愿,2015年中国母婴行业市场规模有望达到2万亿。

  • 社会Society:对于一线城市居民来说,随时随地通过手机、电脑等电子网络设备足不出门即可完成购物的新型消费方式更能适应他们紧凑的生活节奏;而对于二三线城市以及农村居民,物流上门配送带来的便捷也使得网购更具吸引力。

  • 技术Technology:4G网络的普及、手机和ipad等移动设备快速升级迭代更新、网络在线支付系统的发展,为电子商务迅速崛起注入强大的动力。

分析目的

  1. 帮助在线商家针对不同的时间节点和场景做出不同的销售和运营管理策略,帮助商家提高销量和营业额、减少经营成本。

  2. 根据孩子的信息(年龄、性别等)来预测用户会购买什么样的商品。(暂未完成)

问题拆解

问题拆解图

数据概览

Ali_Mum_Baby是一个包含超过900万儿童信息(生日和性别)的数据集,由消费者提供,他们共享这些信息是为了获得更好的推荐或搜索结果。本次数据共有两个csv。婴儿信息表

Column Description
user_id user id
birthday children's birthday
gender 0-female,1-male,2-unknown

交易记录表

Column Description
item_id item id
user_id user id
cat_id category id
cat1 root category id
propery property of the corresponding item
buy_mount purchase quantity
day timestamp

数据准备

导入数据

baby = pd.read_csv("./sam_tianchi_mum_baby.csv")
trade =pd.read_csv("./sam_tianchi_mum_baby_trade_history.csv")

概览数据

  • baby表只有3个维度,共953行数据,无缺失值。

  • trade表有7个维度,共29971行数据,无缺失值。

  • trade.property是商品属性,由于全是数值字符串,所以我们先删除。trade表中的buy_mount是我们关注的重要标签,从描述性统计以及图像上来看,该数据的均值为2.5,标准差64,存在异常值,所以我们保存距离均值3个标准差内的数据,即[0,195]。

数据清洗

  1. 查看有无缺失值异常值,并进行处理。

  2. trade中的auction_id未指定是什么属性,我们就将他默认改为item_id。

  3. 数据集中的property全是数字,需要有对应的字典才能知道对应什么属性,这边先删除。

  4. day改成日期形式。

# 根据info()查看,本数据集无缺失值
# 列重命名
trade.rename({"auction_id":"item_id"},axis=1,inplace=True)
# 先将property暂且取出放在一边,后续再分析
property = trade.property
trade.drop('property',axis=1,inplace=True)
# 日期类型转换
baby['birthday']=pd.to_datetime(baby.birthday.astype('str'))
trade['day'] = pd.to_datetime(trade.day.astype('str'))

经过清洗后的数据保留下29942行。统计时间是2012/7/2-2015/2/5。整个数据集中共6个商品大类,662个商品分类,28394件商品,29915名用户。

这是两年多经过删减的数据,由于缺少部分数据,所以我们只能根据这份数据集进行分析。主要是思路。

数据分析

整体市场情况

2017/7-2015/2期间总销量是49973件,从上图我们可以看出淘宝和天猫平台母婴商品市场销量整体呈现上升趋势,但是波动较大。

  1. 2015年由于数据缺失,所以不能反应2015年第一季度的真实销量情况

  2. 每年第一季度的销售额都会呈现一定幅度的下跌。每年第四季度的销量都会呈现大幅度上升。

在这里插入图片描述

  1. 2013年和2014年的第一季度销量都有所下滑,主要聚集在1、2月。

  2. 每年的5月、11月都会出现不同程度的销量上涨。

第一季度销量下降原因

假设第一季度下降原因是和春节有关。

  • 2013/2/1-2013/2/15处于销量谷底,2013年春节假期:2013/2/9-2013/2/15

  • 2014/1/26-2014/2/4处于销售谷底,2014年春节假期:2014/1/31-2014/2/6

2015年春节假期是2015/2/18-2015/2/24,数据集统计时间只到2015/2/5,所以就暂不分析2015年第一季度情况

临近春节可能存在部分企业提早放假,快递停运,销售低谷时段与春节假期基本吻合,假期结束后购买量和用户量上升,所以可以认为第一季度销量下降是由春节假期造成的。

第四季度销量上涨原因

假设和双十一双十二活动有关。

  1. 可以很明显看出2013年和2014年双十一及双十二当天的销量和销售额都激增。

  2. 每年的双十一活动用户量和销量都比往年多,用户量增长为75%-80%。

所以可以认为每年第四季度的销量上涨和双十一双十二活动有很大的关系。

复购率

各月产品复购率极低。各大类的复购率也极低,均未有超过1%,其中大类38的复购率最高为0.17%。考虑到用户单次购买量大多是一件,且复购率低,说明用户对单一商品的回购欲望极低,商家应该从产品角度进行考虑,例如产品质量及购物体验等。

商品销量情况

大类28和50008168销量最佳,大类38虽然销量低、子类数最少但是人均购买量却很高,说明用户在购买38大类下的产品时选择余地较少,但同时用户对此类产品的需求又很旺盛,可以适量的增加大类38下的子类产品,提高销售量。12265008产品的销量、人均需求量都不高。说明用户对这类产品的需求低,建议减少进货,以免库存积压。

婴儿情况

将两张表inner连接后发现存在1984年的婴儿,明显属于异常值,我们要剔除掉。由于数据统计到2015/2,所以我们假定分析日期为2015/3,购买母婴商品的用户中,婴儿年龄主要集中在0-3岁。购买母婴产品的用户家庭中有47.1%是男婴,52.9%是女婴。我们将婴儿年龄进行分组,分别是未出生、婴儿期(0-12个月)、幼儿期(1-3岁)、学龄前期(3-7岁)、学龄期(7+)。

根据上图我们不难看出婴儿各阶段的热销大类:

  • 未出生:50014815、50022520、5008168、28

  • 婴儿期:50014815、50022520、5008168、28

  • 幼儿期:50014815、50008168、28

  • 学龄前期:50008168、28

  • 学龄期:50008168

随着婴儿年龄增长50008168大类的产品需求量逐渐增长而50014815大类的产品需求量逐渐降低。女婴家庭的商品需求量明显大于男性家庭,我们细分到商品类别看一下。可以看到大类50014815下的50018831商品的销售记录中有71.05%都是由女婴家庭购买的。在购买记录中不乏某些高销量产品的女婴家庭购买占比为100%的情况。

总结

产品销售情况

  1. 母婴产品销量呈逐年增长趋势,但是每月的波动幅度较大。

  2. 每年受春节影响,第一季度的销量会出现全年低点;在双十一及双十二等活动促销下,第四季度销量会达到全年峰值。

  3. 用户复购率极低,需要从产品质量、价格及购买体验等方面进行考虑改善。

  4. 50014815、50008168和28是热销大类TOP3

  5. 大类38虽然销量少但是人均用户购买量却很大,可以考虑在该大类下新增子类,增加用户选择,提高销量。

用户画像

  1. 幼儿期(1-3岁)的用户需求量最大,随着婴儿年龄增长,母婴商品需求量逐渐降低。

  2. 男女婴儿家庭比例接近,但是女婴家庭的购买量明显大于男婴家庭。

  3. 部分商品的女婴家庭购买比例明显大于男婴家庭。可对该类商品进行进一步的女婴化改变,以促使更多的女婴家庭购买。

建议

  1. 在临近春节前一个星期应该减少产品推广投入,减少进货量,保留低量库存;双十一及双十二预热阶段需要加大力度推广,丰富运营活动,吸引更多的客流量。同时,要增加产品库存,保证稳定货物供应。要增加客服人员,及时与物流联系,保证能够及时解答用户疑问并提高出货效率,提高用户购买体验。

  2. 产品复购率偏低。需要加强对已购用户的回访,分析不回购的原因,并对这些因素进行改善。

  3. 女婴家庭购买量高于男婴家庭,建议多推广专为男婴设计的产品,提高男婴家庭的购买量。

  4. 要扩充各大类下的子类产品,特别是大类38,增加用户选择,提高子类商品销量,进而提高大类销量。

  5. 减少12265008大类下的产品进货,以免库存积压。

用 Python 挪车、管理农场,这届 PyCon 有点香!相关推荐

  1. python内存管理和释放_《python解释器源码剖析》第17章--python的内存管理与垃圾回收...

    17.0 序 内存管理,对于python这样的动态语言是至关重要的一部分,它在很大程度上决定了python的执行效率,因为在python的运行中会创建和销毁大量的对象,这些都设计内存的管理.同理pyt ...

  2. python中内存管理机制一共分为多少层_python 内存管理机制

    内存管理机制 ​python中万物皆对象,python的存储问题是对象的存储问题,并且对于每个对象,python会分配一块内存空间去存储它 ​Python的内存管理机制:引入计数.垃圾回收.内存池机制 ...

  3. Python内存池管理与缓冲池设计

    出处:http://blog.csdn.net/zhzhl202/article/details/7547445#t4 Python是一门开发效率很高的语言,而且其既下里巴人,又阳春白雪.也就是说这门 ...

  4. 变量 常量 Python变量内存管理 赋值方式 注释

    目录 变量 1.什么是变量 2.为什么有变量? 3.定义变量 4.变量的组成 5.变量名的命名规范 6变量名的两种风格 常量 Python变量内存管理 1.变量存哪儿? 2.Python垃圾回收机制 ...

  5. Python 懂车帝全车系销量排行榜

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! Python 懂车帝全车系销量排行榜 需 ...

  6. Py之pipenv:Python包的管理利器pipenv简介、安装、使用方法详细攻略

    Py之pipenv:Python包的管理利器pipenv简介.安装.使用方法详细攻略 目录 pipenv简介 pipenv安装 pipenv使用方法 pipenv简介 Python开发者应该听过pip ...

  7. Python的内存管理、命名规则、3个特性讲解

    理解变量: 变:现实世界中的状态是会发生改变的 量:衡量/记录现实世界中的状态,让计算机能够像人一样去识别世间万物(例如:一个人的身高.体重等这些信息) 为什么要变量: 程序执行的本质就是一系列状态的 ...

  8. python做的项目管理软件_幽雅的使用Python之软件管理

    优雅的使用Python之软件管理 上篇<>,如何管理python环境,有了一个干净的python环境之后,就不可避免的安装python软件包(python软件包丰富也是它的优点之一,不用重 ...

  9. 【Python基础】什么是Python的 “内存管理机制”

    什么是内存管理器(what) Python作为一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言,与大多数编程语言不同,Python中的变量无需事先申明,变量无需指定类型,程序员无需关心内存 ...

最新文章

  1. [BZOJ 2425] 计数
  2. 【扫盲】什么是FTP、FTPS 和 SFTP?
  3. 名为 cursor_jinserted 的游标不存在_性能优化技巧 - 程序游标
  4. 给初学者的 RxJava2.0 教程 (八)
  5. mat 和asmatrix的区别_R语言的稀疏矩阵太大可能就不能用as.matrix了
  6. mysql系列之6--------使用第三方工具-percona来备份mysql和恢复
  7. java数组复制_Java自学-数组 复制数组
  8. 格力手机没有放弃!将跟上5G和柔性屏的大势
  9. 普歌-码上鸿鹄团队:在Nuxt(vue)渲染模板中使用mock.js随机生成数据
  10. ghost linux 黑屏,Ghost 与 Linux 的兼容性
  11. 终于懂得孤独是躲不开的单行道
  12. JavaScript 编写Date 格式化方法『Python风格』
  13. matlab 变限积分计算,Matlab变限积分计算【方法教程】
  14. 微信小程序开发手记1.0
  15. android创建平板模拟器,模拟器创建
  16. Install Mercury MW150US WIFI dongle on RPi
  17. 【C语言】字符个数统计 笔试常见题型
  18. linux报ora12560,测试ORA-12560和ORA-12500
  19. 数字图像处理知识点梳理——第八章 图像压缩
  20. 一篇很透彻的关于跳槽的文章

热门文章

  1. sfence.vma
  2. javascript mysql读写_Javascript读取ACCESS数据库 | 学步园
  3. python中可变参数*args传入函数时的存储方式为_python 中文读法详解Python函数可变参数定义及其参数传递方式...
  4. new 关键字有什么作用?
  5. VC6 下 libpng 库的编译与初步使用以及压缩与解压缩
  6. 【图论训练】深海探险【DFS】
  7. docker启动服务命令
  8. CorelDRAW变换面板
  9. ffmpeg读取H264的sps、pps
  10. Vue生命周期函数(8个钩子函数)