分析目的:本次分析将针对母婴类产品,根据市场销售数据分析需求,确定产品,指导上新。

本文在分析过程中参考了:张蒙:母婴产品上新策略分析(excel+tableau)的分析步骤,使用python进行分析。并提出了自己的一些想法。

数据来源:https://tianchi.aliyun.com/dataset/dataDetail?dataId=45

数据解释:

  • user_id:用户ID

  • birthday:出生日期

  • gender:性别:0男,1女,2未知

  • auction_id:交易id

  • cat_id:产品id

  • property:商品属性

  • buy_mount:购买数量

  • cat1:根商品类目

  • day:成交日期

分析步骤包括:

(1)定类目

  • 各类目母婴产品销量比较

  • 各类目母婴产品ID数量比较

(2)定产品

  • 选定类目产品销售量比较

(3)上新筹备

  • 上新时间:分析母婴产品年度销售趋势

  • 产品卖点:分析母婴产品成交记录中高频关键词

  • 消费者画像:消费者年龄、消费者性别比(儿童基本信息)

首先相关模块和数据导入:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
data_history = pd.read_csv('mum_baby_trade_history.csv')
data_info = pd.read_csv('mum_baby.csv')

前期处理


#两个表格的时间处理
data_info['birthday'] = pd.to_datetime(data_info['birthday'],format='%Y%m%d',errors='ignore')
data_history['day'] = pd.to_datetime(data_history['day'], format='%Y%m%d', errors='ignore')
#两个表格关联(只保留有儿童信息的部分)
data_all = pd.merge(data_history,data_info,on='user_id',how='right')
#时间处理
data_all['year'] = pd.DatetimeIndex(data_all['day']).year
data_all['quarter'] = pd.DatetimeIndex(data_all['day']).quarter
#儿童年龄计算
data_all['age'] = ((data_all['day'] - data_all['birthday']).dt.days)/356

1 定类目

(1)各类目购买总量

异常值分析


plt.scatter(range(len(data_all)),data_all['buy_mount'],alpha=0.5)

有一个产品在某日的购买量特别大,由于购买量几乎都分布在40以下,考虑这个点为异常点。去除

(2)每年的销售量和购买人数分析


data_all = data_all[data_all['buy_mount']<50]
year = [2012,2013,2014,2015]
buymount_sum = pd.DataFrame(columns=[2012,2013,2014,2015])
cat1_customer_sum= pd.DataFrame(columns=[2012,2013,2014,2015])
for i in year:buymount_sum.loc[:,i] = data_all[data_all['year']==i].groupby('cat1')['buy_mount'].sum()
#各类目购买人数cat1_customer_sum.loc[:,i] = data_all[data_all['year']==i].groupby('cat1')['cat_id'].count()
buymount_sum.plot(kind='bar',alpha=0.5,title='每年各类目销量')
cat1_customer_sum.plot(kind='bar',alpha=0.5,title='每年各类目购买人数')

在各类目销量中,50008168一直保持着最佳销量位置,而且近一年来增长速度最快

同时该类目购买人数也是近几年增长最快的

(3)总销售量、总购买人数、竞品数量和平均购买量

各类目竞品数量


list1 = [50008168,50014815,28,50022520,122650008,38]
cat1_pro_sum = pd.DataFrame(index = list1,columns=['竞品数量'])
for i in list1:cat1_pro_sum.loc[i,'竞品数量'] = (len(data_all[data_all['cat1']==i].groupby('cat_id').size()))data2 = pd.concat([buymount_sum,cat1_customer_sum,cat1_pro_sum],axis=1)
data2.rename(columns={'buy_mount':'各类目购买总量','cat_id':'各类目购买人数'},inplace=True)

各类目每个人平均购买量

data2['平均购买量'] = data2['各类目购买总量']/data2['各类目购买人数']
data2.sort_values(by='各类目购买总量',ascending=False,inplace=True)
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
ax2 = ax1.twinx()
data2[['各类目购买总量','各类目购买人数','竞品数量']].plot(kind='bar',alpha=0.5,title='各类目购买总量和平均购买量',ax=ax1,rot=0)
ax2.plot(range(len(data2)),data2['平均购买量'],color='r',alpha=0.5)
ax2.grid(False)

类目选择总结

(1)在各类目销量中,50008168一直保持着最佳销量位置,而且近一年来增长速度最快,同时该类目购买人数也是近几年增长最快的

(2)从整体来看类别50008168销量最高,而且购买人数最多,但是每个人的需求比较少;而类别50014815、28在销量上,人均需求上都差不多,这两类的优点是人均需求高

  • 公司发展从稳的角度来看,选择50008168比较好

  • 首先是50008168的竞品数目少,如果加入新的产品,竞争压力相对较小;

  • 其次50008168人数需求和销量都很高,更像是生活必需品;

  • 最后,从历年销量和客户人数来看,50008168近几年增速最快,发展前景好;

  • 如果从想追求高利润的角度来看,类别50014815、28是不错的选择

  • 因为这两类单客户购买量大,如果能够注意产品运营,增加产品新意和质量,

  • 吸引客户,这两类产品将能够带来最大的效益

  • 同时也可以考虑小规模上新类目38,该类目竞品最少,但是人均销量很高,如果能够对该类商品进行进一步的运营,有很大的发展空间

2 定产品

选定类目产品销售量比较(考虑类目50008168)

先看整体

pro_data = data_all[data_all['cat1']==50008168][['year','cat_id','buy_mount']]
pro_sum = pd.DataFrame(pro_data.groupby(['cat_id'])['buy_mount'].sum())
pro_sum.rename(columns={'buy_mount':'类50008168产品销量'},inplace=True)

分析整体产品销量大于20的产品


fig = plt.figure(figsize=(6,10))
ax1 = fig.add_subplot(2,1,1)
pro_sum[pro_sum['类50008168产品销量']>=30].sort_values(by='类50008168产品销量',ascending=False).plot(kind='bar',alpha=0.5,title='类50008168产品销量',ax=ax1,rot=1)

再看局部产品每年销量:50010558,50013636,50006602,50013207


pro_data2 = pro_data[(pro_data['cat_id'] == 50010558 ) |(pro_data['cat_id'] == 50013636)|(pro_data['cat_id'] == 50006602)|(pro_data['cat_id']==50013207)]
pro_year = pro_data2.groupby(['cat_id','year'])['buy_mount'].sum()
ax2 = fig.add_subplot(2,1,2)
pro_year = pro_year.loc[:,[2012,2013,2014]]
pro_year[50010558].plot(kind='line',marker='o',color='r',alpha=0.8,label='50010558销量',ax=ax2)
pro_year[50013636].plot(kind='line',marker='o',color='b',alpha=0.8,label='50013636销量',ax=ax2)
pro_year[50006602].plot(kind='line',marker='o',color='g',alpha=0.8,label='50006602销量',ax=ax2)
pro_year[50013207].plot(kind='line',marker='o',color='y',alpha=0.8,label='50013207销量',ax=ax2)
plt.legend()

产品选择总结

  • 从产品销售总量来看,产品50013636销售总额最多,其次是50006602

  • 从每年产品销售量变化来看,各产品销售量都成逐年增长趋势,但是产品50013636增长有放缓趋势,而50006602销量增长趋势明显

  • 由此可见是产品50013636有可能已经处于饱和状态

  • 因此在产品选择时,建议选择产品50006602

3 上新筹备

  • 上新时间:分析母婴产品每一年每季度销售趋势,确定合适的上新季度

  • 产品卖点:分析母婴产品成交记录中高频关键词

  • 消费者画像:消费者年龄、消费者性别比(儿童基本信息)

分析50006602产品

(1)分析母婴产品每季度销售趋势,确定合适的上新季度

fig = plt.figure(figsize=(6,15))
ax1 = fig.add_subplot(3,1,1)
pro_data3 = data_all[(data_all['cat_id'] == 50006602)&(data_all['year'] != 2015)]
pro_quarter = pd.DataFrame(pro_data3.groupby('quarter')['buy_mount'].sum())
pro_quarter.plot(kind='line', marker='o',alpha=0.5,title='每季度母婴产品销量',ax=ax1)

下图中可知在第三季度后开始上新比较好

(2)产品卖点分析:分析母婴产品成交记录中高频关键词


import re
property = pd.DataFrame()
pattern = re.compile(r'(\d+:\d+);?')
for i in range(len(pro_data3)):property = property.append(pd.DataFrame(pattern.findall(pro_data3.iloc[i,4])))
property.rename(columns={0:'关键词'},inplace=True)
best_property = property['关键词'].value_counts()

选择最佳关键词大类是1628665,细分关键词可以设置为3233942、3233941等

(3)消费者画像分析

消费者年龄分段


ax2 = fig.add_subplot(3,1,2)
sns.distplot(pro_data3['age'],bins=10,kde=True,ax=ax2)

性别分布分析


male = len(pro_data3[pro_data3['gender']==0])/len(pro_data3)
female = len(pro_data3[pro_data3['gender']==1])/len(pro_data3)
unknow = len(pro_data3[pro_data3['gender']==2])/len(pro_data3)
labels = ['男','女','未知']
size = [male, female, unknow]
ax3 = fig.add_subplot(3,1,3)
ax3.pie(size,labels = labels, autopct='%.2f%%')

消费者人群中,年龄段主要分布在-1到2岁之间,性别中男孩占了多数

总结和建议:

(1)经分析类别50008168总销量最高,总购买人数最多,竞品压力小,近几年增速最快,发展前景好。

(2)产品50006602近几年销量增长趋势明显,销售前景良好;

(3)产品最佳上新时间为3月份。最佳关键词大类为1628665。受众年龄为-1-2岁,性别中男孩占多数。

数据分析实战——母婴产品上新策略分析相关推荐

  1. Python数据分析实战:降雨量统计分析报告分析

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于菜J学Python ,作者小小明 最近遇到一个有点烧脑的需求,其实也不算烧pytho ...

  2. Python数据分析实战:上海二手房价分析

    1 数据搜集 使用 urllib 库中的request 模块爬取赶集网发布的上海二手房信息,包括包括户型.面积.单价等,再使用BeautifulSoup 库解析爬取的HTML数据,最终将数据保存到CS ...

  3. 数据分析实战项目-蛋壳公寓投诉分析

    摘要:由于今年疫情,加速了长租公寓的暴雷,本人所租的蛋壳公寓也频繁传出各种负面新闻,直到10月初合同到期,不敢再续租了,按约退房!押金退还流程先退到APP内,再提现,APP内显示14个工作日到账,截至 ...

  4. el表达式动态取值中括号内两点_中考热点:旧瓶新酒,解题新策略分析之玩转动态型热点题型...

    动态型试题一般是指以几何知识和图形为背景,渗透运动变化观点的一类试题,常见的运动对象有点动.线动.图动:其运动形式有平动.旋转.翻折.滚动等.动态型试题其特点是集几何.代数知识于一体,数形结合,有较强 ...

  5. 安装wordcloud_COVID19数据分析实战:WordCloud 词云分析

    ↑↑点击上方蓝字,回复资料,N个G的惊喜 前言 上一篇文章(链接)我们对COVID19_line_list数据集进行了清洗以及初步分析.本文中我们将分析如何用词云来展示文本信息的概要. 比如我们从词云 ...

  6. python数据分析实战之阿里巴巴股票行情分析

    文章目录 1.明确需求和目的 2.数据收集 3.数据预处理 3.1 加载相关库和数据集 3.2 数据概览 3.3 数据格式处理 3.4 缺失值处理 4.数据分析 4.1 股票K线图 4.2 涨跌情况分 ...

  7. python标题行_添加标题行_Python数据分析实战应用_数据挖掘与分析视频-51CTO学院...

    为什么学Python: 重要:数据分析是职业技能必备,Python是大数据分析** 趋势:Python是目前非常火的编程语言,使用人多 好学:学习简单,容易上手,使用灵活,可扩展强 **:会Pytho ...

  8. python描述性统计命令_描述性统计_Python数据分析实战应用_数据挖掘与分析视频-51CTO学院...

    为什么学Python: 重要:数据分析是职业技能必备,Python是大数据分析** 趋势:Python是目前非常火的编程语言,使用人多 好学:学习简单,容易上手,使用灵活,可扩展强 **:会Pytho ...

  9. python与cad交互_与命令行进行交互_Python数据分析实战应用_数据挖掘与分析视频-51CTO学院...

    为什么学Python: 重要:数据分析是职业技能必备,Python是大数据分析** 趋势:Python是目前非常火的编程语言,使用人多 好学:学习简单,容易上手,使用灵活,可扩展强 **:会Pytho ...

最新文章

  1. SVM算法实现光学字符识别
  2. float向u8和s8的转换
  3. 【Flutter】Dart 数据类型 ( var 数据类型 | Object 数据类型 )
  4. onbeforeedit和onbeginedit数据不一致_Rrbind.fill|列数不一致的多个数据集“智能”合并,Get!...
  5. 需求评审五个维度框架分析及其带来的启示-4-需求条目化管理
  6. 【pytorch】pytorch自定义训练vgg16和测试数据集 微调resnet18全连接层
  7. INamingContainer接口解决多个自定义控件ID冲突
  8. .NET Core 使用 K8S ConfigMap的正确姿势
  9. 修改sql服务器排序规则,SQL SERVER数据库服务器排序规则修改
  10. 日调度5万亿次 腾讯云微服务架构体系TSF深度解读
  11. WebView的详细讲解
  12. 驭电之道-用示波器测量二极管伏安特性曲线 模电实验 示波器 波形
  13. 计算机毕业论文初稿,毕业论文初稿一般写多久
  14. 技术大佬:我去,你写的 switch 语句也太老土了吧
  15. 优雅草YYC松鼠短视频2022年12月28日更新v5.1.6版本更新·修复因为消息提醒二开导致菜单栏无法显示·进一步完善推送
  16. BF2地图下载 战地系列非官方单机地图集
  17. 【Altium Designer 19使用教程】Part2 原理图的绘制
  18. dhcp failover linux,Centos7 安装 DHCP 4.1 服务器配置及热备
  19. html+js 调用摄像头识别二维码
  20. MP3歌词的同步与拖拽设计

热门文章

  1. 2023 上半年软件设计师知识点复习总纲
  2. 2345看图王2345Pic10.4.0.9254_x64官方净化版
  3. android pmem内存,android内存管理-ION/PMEM【转】
  4. html中使用css实现版心定位
  5. linux表示文件连接数,linux中连接数过多(TIME_WAIT/CLOSE_WAIT)读这一篇就够了
  6. 关于代码复制到IDEA上空格变成`NBSP`的解决办法
  7. Python的reduce
  8. 野三坡游记 探访岭南台村
  9. UTF-8 with BOM是什么意思
  10. 二维卷积网络函数con2d