数据分析实战——母婴产品上新策略分析

觉得可以的话,点个赞呀!
分析目的:本次分析将针对母婴类产品,根据市场销售数据分析需求,确定产品,指导上新。

本文使用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)

数据分析实战——母婴产品上新策略分析_第1张图片
image

有一个产品在某日的购买量特别大,由于购买量几乎都分布在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='每年各类目购买人数')

数据分析实战——母婴产品上新策略分析_第2张图片
image
数据分析实战——母婴产品上新策略分析_第3张图片
image

在各类目销量中,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)

数据分析实战——母婴产品上新策略分析_第4张图片
image

类目选择总结

(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()
数据分析实战——母婴产品上新策略分析_第5张图片
image

产品选择总结

  • 从产品销售总量来看,产品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岁之间,性别中男孩占了多数

数据分析实战——母婴产品上新策略分析_第6张图片
image

总结和建议:

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

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

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

你可能感兴趣的:(数据分析实战——母婴产品上新策略分析)