数据分析报告流程展现

news/2024/12/2 10:24:17/

驱虫市场潜力分析

import glob
import os
import pandas as pd
import re
import numpy as np
import datetime as dt
from sklearn.linear_model import LinearRegression
import seaborn as sns
from matplotlib import pyplot as plt
import jieba
import jieba.analyse
import imageio
from wordcloud import WordCloud#windows 中文编码
plt.rcParams['font.sans-serif']='simhei'
plt.rcParams['axes.unicode_minus']=False
os.chdir("C:/data")
os.chdir("./驱虫剂市场")

加载数据

  • 读取各个子类目交易额数据,合并
filenames = glob.glob('*市场近三年交易额.xlsx')
filenames
['灭鼠杀虫剂市场近三年交易额.xlsx','电蚊香套装市场近三年交易额.xlsx','盘香灭蟑香蚊香盘市场近三年交易额.xlsx','蚊香加热器市场近三年交易额.xlsx','蚊香液市场近三年交易额.xlsx','蚊香片市场近三年交易额.xlsx','防霉防蛀片市场近三年交易额.xlsx']
re.search(r'.*(?=市场)','灭鼠杀虫剂市场近三年交易额.xlsx',).group()   #正则表达式 ,?=市场,表示取出市场以前的内容
'灭鼠杀虫剂'
def load_xlsx(filename):# 抽取子类目名colname = re.search(r'.*(?=市场)',filename).group()# 读文件df = pd.read_excel(filename)# 如果时间列是整数,修正为日期时间格式if df['时间'].dtypes == 'int64':df['时间'] = pd.to_datetime(df['时间'],unit='D',origin=pd.Timestamp('1899-12-30'))
#       df['时间'] = pd.TimedeltaIndex(df['时间'],unit='D') + dt.datetime(1899,12,30)# 重命名列名(交易金额)为子类目名df.rename(columns={df.columns[1]:colname},inplace=True)# 设置时间列为行索引df = df.set_index('时间')return df
  • 读取所有文件到列表
dfs = [load_xlsx(i) for i in filenames]
  • 依行索引(时间)合并所有文件到一个数据框
df = pd.concat(dfs,axis=1).reset_index()   #将时间变成一列,将索引变成列,重置索引
df.dtypes
时间          datetime64[ns]
灭鼠杀虫剂              float64
电蚊香套装              float64
盘香灭蟑香蚊香盘           float64
蚊香加热器              float64
蚊香液                float64
蚊香片                float64
防霉防蛀片              float64
dtype: object
df.head()
时间灭鼠杀虫剂电蚊香套装盘香灭蟑香蚊香盘蚊香加热器蚊香液蚊香片防霉防蛀片
02018-10-011.136548e+08106531.294171283.35315639.487814546.151032414.298541153.59
12018-09-011.440261e+08105666.636784500.17457366.4110654973.471566651.888825870.43
22018-08-011.540426e+08201467.0310709683.41746513.1317835577.802617149.006320153.44
32018-07-011.480032e+08438635.2916589184.891871757.0038877917.836209040.066302595.06
42018-06-011.359438e+08953749.7823526385.733641025.9276499091.8612484919.637047206.98

清洗数据

  • 查看各列缺失值占比
df.isna().mean()
时间          0.0
灭鼠杀虫剂       0.0
电蚊香套装       0.0
盘香灭蟑香蚊香盘    0.0
蚊香加热器       0.0
蚊香液         0.0
蚊香片         0.0
防霉防蛀片       0.0
dtype: float64
  • 抽取月份以供后面索引
month = df['时间'].dt.month   #抽取月份
month
0     10
1      9
2      8
3      7
4      6
5      5
6      4
7      3
8      2
9      1
10    12
11    11
12    10
13     9
14     8
15     7
16     6
17     5
18     4
19     3
20     2
21     1
22    12
23    11
24    10
25     9
26     8
27     7
28     6
29     5
30     4
31     3
32     2
33     1
34    12
35    11
Name: 时间, dtype: int64
  • 循环预测2018年11月和12月的销售金额
for i in [11,12]:# 收取对应月份数据dm = df[month == i]  #抽取的是行  # 训练x是年份xtrain = np.array(dm['时间'].dt.year).reshape(-1,1)   #reshape(-1,1)变成一个二维数组# 测试y是新增加的行,第一列是对应的日期ytest = [pd.datetime(2018,i,1)]for j in range(1,len(dm.columns)):# 训练y是指定的j列ytrain = np.array(dm.iloc[:,j]).reshape(-1,1)# 回归建模lm = LinearRegression().fit(xtrain,ytrain)# 预测当测试x是2018时的交易金额yhatyhat = lm.predict(np.array([2018]).reshape(-1,1))# 对应列的预测值附在新增加的行后ytest.append(round(yhat[0][0],2))# 给预测结果赋值对应的列名newrow = pd.DataFrame([dict(zip(df.columns,ytest))])    # 预测结果行加在数据前df = newrow.append(df)   
D:\ProgramData\Anaconda3\lib\site-packages\ipykernel_launcher.py:3: UserWarning: Boolean Series key will be reindexed to match DataFrame index.This is separate from the ipykernel package so we can avoid doing imports until
df
时间灭鼠杀虫剂电蚊香套装盘香灭蟑香蚊香盘蚊香加热器蚊香液蚊香片防霉防蛀片
02018-12-015.256763e+0750204.53928554.2686849.173.081492e+06426812.593958717.58
12018-11-017.175250e+0738692.611801318.82193874.395.543204e+06776627.046678677.55
22018-10-011.136548e+08106531.294171283.35315639.487.814546e+061032414.298541153.59
32018-09-011.440261e+08105666.636784500.17457366.411.065497e+071566651.888825870.43
42018-08-011.540426e+08201467.0310709683.41746513.131.783558e+072617149.006320153.44
52018-07-011.480032e+08438635.2916589184.891871757.003.887792e+076209040.066302595.06
62018-06-011.359438e+08953749.7823526385.733641025.927.649909e+0712484919.637047206.98
72018-05-011.241642e+081238967.3728118581.255032466.781.050396e+0815309721.947942340.44
82018-04-017.509661e+07841051.9316420341.873130513.436.254165e+077954875.077031364.60
92018-03-015.918182e+07475177.487900094.911198332.812.632447e+072950648.326051561.02
102018-02-012.292138e+0733232.95545917.6675714.462.235774e+06218915.631393948.47
112018-01-013.653873e+0754305.20592663.2086670.451.759451e+06298146.112607776.07
122017-12-014.292283e+0771600.17796930.4669145.592.213103e+06314120.383259747.23
132017-11-015.838217e+0794993.761581530.20168141.794.257594e+06617094.945447184.43
142017-10-018.226882e+07145925.312824785.80166522.624.290843e+06766588.776152868.25
152017-09-011.010081e+08242194.375581352.42353042.457.833349e+061574779.655792065.80
162017-08-011.049504e+08332922.027229409.84544076.631.376039e+072323304.145081714.64
172017-07-011.116729e+08913425.9513718046.881357778.934.257757e+076627299.716691694.17
182017-06-011.051463e+082045163.5919635925.592639777.668.283230e+0712422420.217155138.87
192017-05-019.185035e+073606141.8220275515.853185961.751.014605e+0815961946.718145781.12
202017-04-015.363586e+071285599.499197868.291554864.424.880687e+076214963.686682161.49
212017-03-014.078967e+07390486.573397837.60317206.481.488979e+071319399.223904656.82
222017-02-013.467502e+07209643.871519446.34148158.075.929509e+06687697.462584035.90
232017-01-012.047156e+0739434.76596744.0448164.631.213749e+06238973.091781773.46
242016-12-013.546668e+0784350.571234900.0552118.961.558634e+06293737.203504367.98
252016-11-014.780625e+07106291.231473418.2082835.822.758827e+06512990.234975519.21
262016-10-016.339722e+07179015.232543813.78130484.073.641803e+06690912.024600717.78
272016-09-016.864724e+07210456.693092898.02168724.834.632818e+06930513.914642681.07
282016-08-017.610885e+07316467.144389862.79272553.958.956868e+061581021.504151326.68
292016-07-017.832954e+07932728.107384968.66761159.352.260036e+074088320.775412185.06
302016-06-017.693264e+072184985.3310859461.671728788.534.640197e+078004562.695694825.13
312016-05-015.812696e+072059879.809912801.931618361.544.777690e+077474421.975469360.60
322016-04-013.762602e+071034992.534687913.18758206.812.432917e+073435257.355253619.06
332016-03-012.952610e+07352013.311204574.20246106.756.656382e+06746709.073481194.46
342016-02-011.500135e+0796979.48449199.4136193.856.939075e+05109108.051274810.96
352016-01-012.107822e+07108412.71619042.0149670.254.828890e+05113284.711562393.95
362015-12-012.472756e+07110068.83818479.5634076.915.832845e+05134890.482333602.08
372015-11-013.303873e+07185094.221197791.2786889.911.579796e+06325744.433364112.14
  • 去掉原始索引
df.reset_index(drop=True,inplace=True)
  • 去掉15年的数据
df = df[df['时间'].dt.year != 2015]
  • 查看预测结果
df.head()
时间灭鼠杀虫剂电蚊香套装盘香灭蟑香蚊香盘蚊香加热器蚊香液蚊香片防霉防蛀片
02018-12-015.256763e+0750204.53928554.2686849.173081491.99426812.593958717.58
12018-11-017.175250e+0738692.611801318.82193874.395543203.83776627.046678677.55
22018-10-011.136548e+08106531.294171283.35315639.487814546.151032414.298541153.59
32018-09-011.440261e+08105666.636784500.17457366.4110654973.471566651.888825870.43
42018-08-011.540426e+08201467.0310709683.41746513.1317835577.802617149.006320153.44

驱虫市场潜力分析

  1. 分析整个市场的总体趋势
  2. 分析各子类目市场占比及变化趋势
  3. 分析市场集中度,即是否存在垄断

市场变化趋势描述

  • 每行所有市场的交易金额的总和生成新列
  • 抽出年份生成新列
df['colsums'] = df.sum(1)
df.insert(1,'year',df['时间'].dt.year)
df.head()
时间year灭鼠杀虫剂电蚊香套装盘香灭蟑香蚊香盘蚊香加热器蚊香液蚊香片防霉防蛀片colsums
02018-12-0120185.256763e+0750204.53928554.2686849.173081491.99426812.593958717.586.110026e+07
12018-11-0120187.175250e+0738692.611801318.82193874.395543203.83776627.046678677.558.678489e+07
22018-10-0120181.136548e+08106531.294171283.35315639.487814546.151032414.298541153.591.356363e+08
32018-09-0120181.440261e+08105666.636784500.17457366.4110654973.471566651.888825870.431.724211e+08
42018-08-0120181.540426e+08201467.0310709683.41746513.1317835577.802617149.006320153.441.924731e+08
  • 按照年份分组求每个子类目市场的交易额总和
byyear = df.groupby('year').sum().reset_index()
byyear
year灭鼠杀虫剂电蚊香套装盘香灭蟑香蚊香盘蚊香加热器蚊香液蚊香片防霉防蛀片colsums
020166.080471e+087666572.124.785285e+075905204.711.704905e+0827980839.4750023001.949.179661e+08
120178.477740e+089377531.688.635539e+0710552841.023.300656e+0849068587.9662678822.181.395873e+09
220181.137893e+094537682.091.180885e+0816836723.433.582077e+0851845921.5672701365.231.760111e+09
  • 绘图前处理中文字体
plt.rcParams['font.sans-serif']='simhei'
plt.rcParams['axes.unicode_minus']=False
  • 线图分析整体市场的趋势
# replot表示描述相关性的图标,height表图形的高度
sns.relplot('year','colsums',kind='line',marker='o',data=byyear,height=4)
plt.title('近三年驱虫市场趋势') # 加标题
plt.xticks(byyear.year,rotation=45) # 定义x轴标签
plt.xlabel('年份') # 定义x轴标题
plt.ylabel('总交易额') # 定义y轴标题
plt.show()

在这里插入图片描述

  • 分析各类目市场销量趋势分析
# 图形大小
f, ax = plt.subplots(figsize=(10, 6))
# 线图中,由于有大于6个的分类,而线型最多6中,所以这里不区分线型,即dashes=False
sns.lineplot(data=byyear.set_index('year').iloc[:,:-1],dashes=False,marker='^')   #dashes=False  不区分线型
plt.title('近三年各类目市场销量趋势分析')
plt.xticks(byyear.year,rotation=45)
# 在指定位置加文本
for a,b in zip(byyear.year,byyear['灭鼠杀虫剂']):plt.text(a,b,'%.3e'% b , ha='center',va='bottom',size=12)
plt.xlabel('年份')
plt.ylabel('总交易额')
plt.show()

在这里插入图片描述

  • 直观的查看灭鼠杀虫剂近三年的增量趋势
g = sns.FacetGrid(byyear,height=5)
g.map(sns.barplot,'year','灭鼠杀虫剂',color='wheat')
g.map(sns.pointplot,'year','灭鼠杀虫剂')
for a,b in zip(range(len(byyear)),byyear['灭鼠杀虫剂']):plt.text(a,b,'%.3e'% b , ha='center',va='bottom',size=12)
plt.xlabel('年份')
plt.title('近三年灭鼠灭虫市场增量趋势分析')
plt.xticks(rotation=45)
plt.show()
D:\ProgramData\Anaconda3\lib\site-packages\seaborn\axisgrid.py:715: UserWarning: Using the barplot function without specifying `order` is likely to produce an incorrect plot.warnings.warn(warning)
D:\ProgramData\Anaconda3\lib\site-packages\seaborn\axisgrid.py:715: UserWarning: Using the pointplot function without specifying `order` is likely to produce an incorrect plot.warnings.warn(warning)

在这里插入图片描述

  • 查看各类目市场每年总交易额占比
# 计算每年每个子市场占比
byyear_per = byyear.iloc[:,1:-1].div(byyear.colsums,axis=0)
byyear_per.index = byyear.year
byyear_per
灭鼠杀虫剂电蚊香套装盘香灭蟑香蚊香盘蚊香加热器蚊香液蚊香片防霉防蛀片
year
20160.6623850.0083520.0521290.0064330.1857260.0304810.054493
20170.6073430.0067180.0618650.0075600.2364580.0351530.044903
20180.6464890.0025780.0670920.0095660.2035140.0294560.041305
byyear_per.plot(kind='bar',stacked=True,figsize=(10,8),colormap='tab10')   #stacked=True  堆栈条形图
for a,b in zip(range(len(byyear_per)),byyear_per['灭鼠杀虫剂']):plt.text(a,b/2,f'{b*100:.2f}%', ha='center',va='bottom',size=16,color='white')
plt.xlabel('年份')
plt.ylabel('总交易额占比')
plt.title('近三年各类目市场销量占比')
plt.show()

在这里插入图片描述

  • 查看各类目市场年增幅
# 计算年增幅
byyear0 = byyear.iloc[:,1:-1]
byyear_diff = byyear0.diff().iloc[1:,:].reset_index(drop=True)/byyear0.iloc[:2,:]
byyear_diff.index = ['16-17','17-18']
byyear_diff
灭鼠杀虫剂电蚊香套装盘香灭蟑香蚊香盘蚊香加热器蚊香液蚊香片防霉防蛀片
16-170.3942570.2231710.8046030.7870410.9359760.7536500.253000
17-180.342213-0.5161110.3674710.5954680.0852620.0566010.159903
# 作图查看
f, ax = plt.subplots(figsize=(10, 8))
sns.lineplot(data=byyear_diff,dashes=False)
plt.title('近三年各类目市场销量年增幅')
plt.xlabel('年份')
plt.ylabel('总交易额年增幅')
plt.show()

在这里插入图片描述

市场集中度描述

  • 读取对应数据,并且描述数据
df1 = pd.read_excel('top100品牌数据.xlsx')
df1.isna().mean()
品牌        0.0
行业排名      0.0
交易指数      0.0
交易增长幅度    0.0
支付转化指数    0.0
操作        0.0
dtype: float64
df1.head()
品牌行业排名交易指数交易增长幅度支付转化指数操作
0PREMISE/拜灭士1530344-0.32351521趋势分析
1科凌虫控2474937-0.19101581趋势分析
2ARS/安速3402372-0.26821448趋势分析
3思乐智43607800.2056841趋势分析
4希诺5346656-0.10851865趋势分析
df1.describe(include='all')
品牌行业排名交易指数交易增长幅度支付转化指数操作
count100100.000000100.000000100.000000100.000000100
unique100NaNNaNNaNNaN1
top罗贝特NaNNaNNaNNaN趋势分析
freq1NaNNaNNaNNaN100
meanNaN50.500000147327.5600000.3957901247.870000NaN
stdNaN29.01149288177.1823912.038278350.304014NaN
minNaN1.00000065194.000000-0.781900577.000000NaN
25%NaN25.75000086129.000000-0.266325967.750000NaN
50%NaN50.500000118682.500000-0.0618001245.000000NaN
75%NaN75.250000163373.2500000.3343501491.500000NaN
maxNaN100.000000530344.00000017.6751002000.000000NaN
  • 生成交易指数占比列,用以描述市场份额
df1['交易指数占比'] = df1['交易指数']/df1['交易指数'].sum()
  • 图形描述交易指数占比
df1.plot(x='品牌',y='交易指数占比',kind='bar',figsize=(15,4))
plt.show()

在这里插入图片描述

  • 计算HHI指标并打印

  • Gini:不纯度,基尼系数越大越不纯

  • HHI:市场纯度度量,越大越纯,越纯表明垄断了

HHI = sum(df1['交易指数占比']**2)
print(f'驱虫市场HHI指数:{HHI:.6f}(或{HHI*10000:.2f}),等效公司数:{1/HHI:.2f}')
驱虫市场HHI指数:0.013546(或135.46),等效公司数:73.82

灭鼠杀虫剂市场机会点分析

os.chdir('..')
os.chdir('./灭鼠杀虫剂细分市场')

加载数据,清洗数据

  • 读文件,合并文件
filenames1 = glob.glob('*.xlsx')
dfs1 = [pd.read_excel(i) for i in filenames1]
df2 = pd.concat(dfs1,sort=False)
  • 五个表的特征不同,故合并后的特征更多,并且会有大量缺失值
df2.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 6556 entries, 0 to 1742
Columns: 229 entries, 类别 to 产品名
dtypes: float64(129), int64(5), object(95)
memory usage: 11.5+ MB
  • 这里认为如果一个特征的缺失值占比超过98%,则从全数据的角度看没有意义,直接删
ind1 = df2.isna().mean()>0.98
sum(ind1)
191
df20 = df2.loc[:,~ind1]
  • 特征值完全一致的话也没有意义,可以直接删
ind2 = np.array([len(df20[i].unique())==1 for i in df20.columns])   #unique  查看是否有重复值
df21 = df20.loc[:,~ind2]
  • 依据逻辑删除不可能会用到的列,例如链接

  • 药品登记号后的列缺失值占比高,市场分析意义不大,故都不需要

ind3 = df21.columns.get_loc('药品登记号')
df22 = df21.iloc[:,:ind3]
  • 其他逻辑上不用的列
useless = ['时间','链接','主图链接','主图视频链接','页码','排名','宝贝标题','运费','下架时间','旺旺']
df23 = df22.drop(columns=useless)
  • 查看清洗后的数据属性
df23.isna().mean()
类别        0.000000
宝贝ID      0.000000
销量(人数)    0.000000
售价        0.000000
预估销售额     0.005491
评价人数      0.022880
收藏人数      0.000000
地域        0.406955
店铺类型      0.000000
品牌        0.095333
型号        0.423276
净含量       0.421599
适用对象      0.279896
物理形态      0.286303
dtype: float64
df23.dtypes
类别         object
宝贝ID        int64
销量(人数)      int64
售价        float64
预估销售额     float64
评价人数      float64
收藏人数        int64
地域         object
店铺类型       object
品牌         object
型号         object
净含量        object
适用对象       object
物理形态       object
dtype: object
  • 其中宝贝ID列是整数不合理,这里将类型改为object
df23 = df23.astype({'宝贝ID':'object'})
df23.reset_index(drop=True,inplace=True)
df23.describe()
销量(人数)售价预估销售额评价人数收藏人数
count6556.0000006556.0000006.520000e+036406.0000006556.000000
mean324.51860939.5595271.032676e+041942.7468001345.778981
std3207.47018649.6781137.851193e+0413493.9253086947.250438
min0.0000000.0100001.000000e-020.0000000.000000
25%14.00000013.9000002.307375e+0236.00000033.000000
50%26.00000025.8000006.741000e+02160.000000133.000000
75%70.00000048.0000002.288000e+03602.750000496.500000
max143037.000000618.0000002.672898e+06502295.000000234645.000000
df23.head()
类别宝贝ID销量(人数)售价预估销售额评价人数收藏人数地域店铺类型品牌型号净含量适用对象物理形态
0杀虫5784598662899929.92960.126.0202NaN天猫拜耳特姆得NaN蟑螂液体
1杀虫548196868239990.659.41330.0242浙江 金华淘宝佰凌180325NaNNaNNaN
2杀虫5808392955629998.09702.044.027广东 深圳淘宝NaNNaNNaNNaNNaN
3杀虫580264662322996.9683.124.026河南 商丘淘宝SHURONGCROP/树荣作物NaN30gNaNNaN
4杀虫444845179739918.81861.2121.0133河北 秦皇岛天猫Raid/雷达雷达杀虫气雾剂清香600ml蟑螂喷雾

细化分析

  • 进一步分析灭鼠杀虫剂市场中最受欢迎的产品类别,然后细分价格段,再对对应属性进一步分析

产品类别分布

byclass = df23['预估销售额'].groupby(df23['类别']).sum()
byclass
类别
杀虫     8207628.10
灭鼠    25686011.99
虱      4512886.01
螨     10886752.88
蟑螂    18037223.68
Name: 预估销售额, dtype: float64
byclass.plot.barh()
<matplotlib.axes._subplots.AxesSubplot at 0x1536ed24518>

在这里插入图片描述

byclass.plot.pie(autopct='%.2f')
<matplotlib.axes._subplots.AxesSubplot at 0x1536f592e48>

在这里插入图片描述

  • 可以看出重点需要研究的市场是灭鼠和蟑螂,我们选择灭鼠

灭鼠类别分析

  • 选择灭鼠数据
df24 = df23[df23['类别']=='灭鼠']
  • 依价格划分
df24['售价'].describe()
count    1523.000000
mean       49.018910
std        69.762057
min         0.010000
25%        15.800000
50%        27.700000
75%        52.600000
max       498.000000
Name: 售价, dtype: float64
df24['售价'].plot.hist()
<matplotlib.axes._subplots.AxesSubplot at 0x15374a7d668>

在这里插入图片描述

bins = [0,50,100,150,200,250,300,500]
labels = ['0_50','50_100','100_150','150_200','200_250','250_300','300以上']
df24['价格区间'] = pd.cut(df24['售价'],bins,labels=labels,include_lowest=True)
df24['价格区间'].value_counts()
C:\Programs\Anaconda3\lib\site-packages\ipykernel_launcher.py:4: SettingWithCopyWarning:A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value insteadSee the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy0_50       1138
50_100      242
100_150      62
150_200      35
300以上        28
250_300       9
200_250       9
Name: 价格区间, dtype: int64
  • 计算各价格区间的销售额,销售额占比,宝贝数,宝贝数占比,竞争度(单宝贝平均销售额的反面)
def byfun(df,by,sort='单宝贝平均销售额'):byc = pd.DataFrame(df.groupby(by).sum()).loc[:,['预估销售额']]byc['销售额占比'] = byc['预估销售额']/byc['预估销售额'].sum()byc['宝贝数'] = df.groupby(by).nunique()['宝贝ID']byc['宝贝数占比'] = byc['宝贝数']/byc['宝贝数'].sum()byc['单宝贝平均销售额'] = byc['预估销售额']/byc['宝贝数']byc['相对竞争度'] = 1 - (byc['单宝贝平均销售额']-byc['单宝贝平均销售额'].min())/(byc['单宝贝平均销售额'].max()-byc['单宝贝平均销售额'].min())if sort:    byc.sort_values(sort,ascending=False,inplace=True)return byc
byprice1 = byfun(df24,'价格区间')
byprice1
预估销售额销售额占比宝贝数宝贝数占比单宝贝平均销售额相对竞争度
价格区间
200_2502743758.000.10681970.006173391965.4285710.000000
100_1502758086.290.107377460.04056459958.3976090.887218
300以上819468.000.031903180.01587345526.0000000.925786
250_300237740.000.00925690.00793726415.5555560.976854
150_200629813.000.024520280.02469122493.3214290.987336
50_1003335060.190.1298401720.15167519389.8848260.995629
0_5015162086.510.5902868540.75308617754.1996601.000000
  • 定义制图函数
def mcplot(bydf,figsize=(10,4)):ax = bydf.plot(y='相对竞争度',linestyle='-',marker='o',figsize=figsize)bydf.plot(y='销售额占比',kind='bar',alpha=0.8,color='wheat',ax=ax)plt.show()
mcplot(byprice1)

在这里插入图片描述

  • 结果依单宝贝销售额降序,即依竞争度升序
  • 可见0-50容量大,竞争大,大容量市场(对比的是50-100,容量小,竞争稍小)
  • 200-250,竞争小,做高价市场的优先选择,属于机会点

0-50细分价格市场分析

  • 选择0-50细分价格市场
df25 = df24[df24['价格区间']=='0_50']
  • 进一步细分价格区间
df25['售价'].plot.hist()
<matplotlib.axes._subplots.AxesSubplot at 0x15374802e10>

在这里插入图片描述

bins1 = [0,10,20,30,40,50]
labels1 = ['0_10','10_20','20_30','30_40','40_50']
df25['价格子区间'] = pd.cut(df25['售价'],bins1,labels=labels1,include_lowest=True)
C:\Programs\Anaconda3\lib\site-packages\ipykernel_launcher.py:3: SettingWithCopyWarning:A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value insteadSee the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
byprice2 = byfun(df25,'价格子区间')
byprice2
预估销售额销售额占比宝贝数宝贝数占比单宝贝平均销售额相对竞争度
价格子区间
10_208102634.140.5344012720.31850129789.0961030.000000
20_304969620.920.3277662780.32552717876.3342450.411674
40_50707568.490.046667400.04683817689.2122500.418141
30_401240874.190.081841980.11475412661.9815310.591869
0_10141388.770.0093251660.194379851.7395781.000000
mcplot(byprice2)

在这里插入图片描述

  • 可见10-20竞争度低,容量大,优选,20-30也不错
  • 200-250细分市场也是同样的分析思路

细分市场的其他属性分析

  • 查看其他属性的市场占有率和竞争
df25.isna().mean()
类别        0.000000
宝贝ID      0.000000
销量(人数)    0.000000
售价        0.000000
预估销售额     0.007030
评价人数      0.061511
收藏人数      0.000000
地域        0.501757
店铺类型      0.000000
品牌        0.152021
型号        0.350615
净含量       0.696837
适用对象      0.120387
物理形态      0.202109
价格区间      0.000000
价格子区间     0.000000
dtype: float64
df25.head()
类别宝贝ID销量(人数)售价预估销售额评价人数收藏人数地域店铺类型品牌型号净含量适用对象物理形态价格区间价格子区间
2000灭鼠566054780243997626.8267356.811901.011596广东 韶关天猫优璇福MT007NaN老鼠胶水0_5020_30
2001灭鼠566054780243997626.8267356.8NaN11596广东 深圳天猫优璇福MT007NaN老鼠胶水0_5020_30
2002灭鼠57211544899699459.998455.526442.03569NaN淘宝创驰21/32NaN老鼠固体0_500_10
2003灭鼠398684083229929.92960.120.0352河南 南阳天猫云杀粘鼠板NaN老鼠固体0_5020_30
2004灭鼠5202828972209939.93950.1559.01250NaN淘宝得硕NaNg老鼠固体0_5030_40
  • 店铺类型
bystore = byfun(df25,'店铺类型')
bystore
预估销售额销售额占比宝贝数宝贝数占比单宝贝平均销售额相对竞争度
店铺类型
天猫14019740.580.9246582200.25761163726.0935450.0
淘宝1142345.930.0753426340.7423891801.8074611.0
mcplot(bystore)

在这里插入图片描述

  • 可见天猫各个方面都优于淘宝

  • 型号

bytype = byfun(df25,'型号',sort='预估销售额')
  • 销售额排名前5%的型号,这里认为销售额靠前才更倾向于大众产品
bytype1 = bytype[bytype['预估销售额']>=bytype['预估销售额'].quantile(0.95)]
bytype1
预估销售额销售额占比宝贝数宝贝数占比单宝贝平均销售额相对竞争度
型号
超强力粘鼠板2120129.320.142219120.021661176677.4433330.669585
粘鼠板老鼠贴2051699.020.13762970.012635293099.8600000.451856
0005927590.700.06222320.003610463795.3500000.132628
驰天粘鼠板876606.330.05880340.007220219151.5825000.590151
QL-866759629.300.05095630.005415253209.7666670.526457
MT007534713.600.03586910.001805534713.6000000.000000
强力粘鼠魔毯496974.600.03333710.001805496974.6000000.070578
拜灭士5g420982.400.02824010.001805420982.4000000.212696
CQL-1391271.400.02624710.001805391271.4000000.268260
qb-031368146.740.02469560.01083061357.7900000.885251
希诺粘鼠板362077.200.02428810.001805362077.2000000.322858
祛螨包320779.800.02151810.001805320779.8000000.400090
粘鼠板285096.860.019124210.03790613576.0409520.974611
A1009265719.200.01782510.001805265719.2000000.503063
A1001225685.200.01513910.001805225685.2000000.577933
新款老鼠板222272.400.01491010.001805222272.4000000.584315
BK300(博克二代)213570.000.01432610.001805213570.0000000.600590
虫虫祛螨包209308.200.01404010.001805209308.2000000.608560
老鼠贴209189.400.01403340.00722052297.3500000.902196
mcplot(bytype1)

在这里插入图片描述

  • 可见虽然粘鼠板市场份额普遍较高,但是0005在竞争度上有明显的优势

  • 物理形态

byshape = byfun(df25,['物理形态'])
byshape
预估销售额销售额占比宝贝数宝贝数占比单宝贝平均销售额相对竞争度
物理形态
胶水534713.600.04070610.001490534713.6000000.000000
喷雾275280.330.02095660.00894245880.0550000.914433
粉状322931.280.02458490.01341335881.2533330.933137
固体11381498.830.8664435830.86885219522.2964490.963738
液体354235.500.026967220.03278716101.6136360.970137
啫喱256687.100.019541380.0566326754.9236840.987622
5个1元硬币厚硬板5226.000.00039810.0014905226.0000000.990482
气体1357.180.00010310.0014901357.1800000.997719
油状2341.600.00017820.0029811170.8000000.998068
胶水纸板358.200.00002710.001490358.2000000.999588
声波328.900.00002510.001490328.9000000.999642
粘胶235.200.00001810.001490235.2000000.999818
粘鼠板413.900.00003230.004471137.9666671.000000
胶状275.500.00002120.002981137.7500001.000000
mcplot(byshape)

在这里插入图片描述

  • 可见市场份额最高的是固体,竞争度也偏高,而胶水虽然竞争度低,但是市场份额较低

  • 基本可以认为常见的物理形态就是固体

  • 物理形态,净含量

byshape_con = byfun(df25,['物理形态','净含量'],['物理形态','预估销售额'])
byshape_con
预估销售额销售额占比宝贝数宝贝数占比单宝贝平均销售额相对竞争度
物理形态净含量
胶水纸板5片\套358.208.961336e-0510.004098358.2000000.998289
粘鼠板200g207.005.178661e-0510.004098207.0000000.999011
30G193.704.845926e-0510.004098193.7000000.999075
粉状50g1105.002.764454e-0420.008197552.5000000.997360
90g179.404.488173e-0510.004098179.4000000.999143
液体500g165396.004.137825e-0210.004098165396.0000000.209797
450ML51494.781.288280e-0220.00819725747.3900000.876988
450ml37570.209.399195e-0340.0163939392.5500000.955126
500ml17920.404.483270e-0320.0081978960.2000000.957191
450180.004.503184e-0510.004098180.0000000.999140
100ml111.862.798479e-0510.004098111.8600000.999466
气体30gm1357.183.395351e-0410.0040981357.1800000.993516
固体12122422.345.309810e-01170.069672124848.3729410.403519
20g243594.066.094160e-0230.01229581198.0200000.612065
118.5g209308.205.236407e-0210.004098209308.2000000.000000
2.2KG140739.323.520972e-0220.00819770369.6600000.663799
6个装139575.503.491856e-0210.004098139575.5000000.333158
0.17KG133950.003.351119e-0210.004098133950.0000000.360035
12粒36313.209.084723e-0310.00409836313.2000000.826508
170g27011.406.757628e-0330.0122959003.8000000.956983
02023078.085.773602e-0340.0163935769.5200000.972435
610克13132.803.285523e-0310.00409813132.8000000.937256
4片12960.003.242292e-0310.00409812960.0000000.938082
200克9943.202.487559e-0320.0081974971.6000000.976247
720g9412.202.354715e-0310.0040989412.2000000.955032
1709177.602.296023e-0310.0040989177.6000000.956153
40G胶8977.502.245963e-0310.0040988977.5000000.957109
2303g7810.001.953881e-0310.0040987810.0000000.962687
10张7637.421.910706e-0340.0163931909.3550000.990878
60克胶水7040.001.761245e-0310.0040987040.0000000.966365
.....................
1n16.204.052865e-0610.00409816.2000000.999923
0.08216.004.002830e-0610.00409816.0000000.999924
25克12.903.227282e-0610.00409812.9000000.999938
120g11.002.751946e-0610.00409811.0000000.999947
10.002.501769e-0610.00409810.0000000.999952
陶土8.802.201557e-0610.0040988.8000000.999958
10克胶水7.201.801274e-0610.0040987.2000000.999966
0.08kg7.041.761245e-0610.0040987.0400000.999966
110g3.328.305872e-0710.0040983.3200000.999984
0.021.503.752653e-0710.0040981.5000000.999993
1kg0.000.000000e+0010.0040980.0000001.000000
喷雾600ml274808.806.875081e-0220.008197137404.4000000.343531
500ML179.494.490425e-0520.00819789.7450000.999571
450ml160.004.002830e-0510.004098160.0000000.999236
500ml132.043.303335e-0510.004098132.0400000.999369
啫喱12g135912.003.400204e-0210.004098135912.0000000.350661
10克/支40650.001.016969e-0210.00409840650.0000000.805789
10g4452.801.113988e-0320.0081972226.4000000.989363
4g2851.207.133043e-0410.0040982851.2000000.986378
20g2600.006.504599e-0410.0040982600.0000000.987578
150582.501.457280e-0410.004098582.5000000.997217
50克336.008.405943e-0510.004098336.0000000.998395
45g112.002.801981e-0510.004098112.0000000.999465
0.18105.002.626857e-0510.004098105.0000000.999498
40g39.509.881987e-0610.00409839.5000000.999811
240g33.008.255837e-0610.00409833.0000000.999842
400g29.907.480289e-0610.00409829.9000000.999857
30g428.147.039977e-0610.00409828.1400000.999866
40克19.504.878449e-0610.00409819.5000000.999907
约50克5.401.350955e-0610.0040985.4000000.999974

160 rows × 6 columns

mcplot(byshape_con,(30,10))

在这里插入图片描述

  • 可见当物理形态为固体,净含量为1时,潜力较大

竞争分析

os.chdir('..')
os.chdir('./竞争数据')

品类分布(占比)

os.chdir('./商品销售数据')
  • 加载数据
filenames2 = glob.glob('*.xlsx')
filenames2
['安速家居近30天销售数据.xlsx', '拜耳近30天销售数据.xlsx', '科凌虫控旗舰店近30天销售数据.xlsx']
  • 查看数据
def load_xlsx1(filename):df = pd.read_excel(filename)useless = ['序号','店铺名称','主图链接','商品链接','商品名称']df.drop(columns=useless,inplace=True)return df
df3bai = load_xlsx1(filenames2[1])
df3bai.head()
商品ID商品原价商品售价30天销售量总销量类目物理形态型号净含量使用对象销售额
0527604730327109.039.9435423023212灭鼠/杀虫剂啫喱5g5g蟑螂1737325.8
1535731556857199.059.94860285440灭鼠/杀虫剂啫喱拜灭易12g蚂蚁291114.0
2530229854741199.089.983870516灭鼠/杀虫剂液体特密得100ml100ml白蚁75336.2
3569753894890198.079.9148719602灭鼠/杀虫剂啫喱拜灭士5g-除敌5g+5ml*4蟑螂118811.3
4549862604116109.039.91641155203灭鼠/杀虫剂液体除敌20ml杀虫剂65475.9
df3an = load_xlsx1(filenames2[0])
df3an.head()
商品ID商品原价商品售价30天销售量总销量类目适用对象30天销售额
052703256639260.054.42540236321灭鼠/杀虫剂蟑螂138176.0
153423048711332.029.988310498灭鼠/杀虫剂蟑螂26401.7
252779767953033.429.91073117070灭鼠/杀虫剂蟑螂32082.7
352711310807948.045.547155672灭鼠/杀虫剂蟑螂21430.5
453135077781358.048.056619705灭鼠/杀虫剂蟑螂27168.0
df3kl = load_xlsx1(filenames2[2])
df3kl.head()
商品ID商品原价商品售价30天销售量总销量类目适用对象30天销售额
054141825586749.916.8766083175991灭鼠/杀虫剂蟑螂1287014.4
152872214492739.019.85852174989灭鼠/杀虫剂蟑螂115869.6
254552616166249.939.0249774352灭鼠/杀虫剂蟑螂97383.0
353626147031249.029.854076572灭鼠/杀虫剂16092.0
455335069934148.913.86408324171灭鼠/杀虫剂88430.4

类目

bai31 = df3bai.groupby('类目').sum()
bai31
商品ID商品原价商品售价30天销售量总销量销售额
类目
灭鼠/杀虫剂82861087920662623.01195.05918537204112673315.2
an31 = df3an.groupby('类目').sum()
an31
商品ID商品原价商品售价30天销售量总销量30天销售额
类目
漱口水1130081741597208.0149.812727109137.3
灭鼠/杀虫剂158535518830061650.31196.711082564638494539.3
空气芳香剂1620098374783196.8141.911870654668.6
空调清洁剂1056404562798122.9113.01513293910420.9
蚊香液3878968356851565.0344.65734200024343.6
蚊香片1129949034942157.081.0123045.0
kl31 = df3kl.groupby('类目').sum()
kl31
商品ID商品原价商品售价30天销售量总销量30天销售额
类目
其它园艺用品55269531577639.926.08804166722880.0
灭鼠/杀虫剂131094393262491728.4817.216383344162283734597.0
灭鼠笼/捕鼠器111246542599788.942.723154676062293.0
  • 作图查看占比的不同
fig, axes = plt.subplots(1, 3, figsize=(10, 6))
ax = axes[0]
bai31['销售额'].plot.pie(autopct='%.f',title='拜耳',startangle=30,ax=ax)
ax.set_ylabel('')
ax = axes[1]
an31['30天销售额'].plot.pie(autopct='%.f',title='安速',startangle=60,ax=ax)
ax.set_ylabel('')
ax = axes[2]
kl31['30天销售额'].plot.pie(autopct='%.f',title='科凌虫控',startangle=90,ax=ax)
ax.set_ylabel('')
plt.show()

在这里插入图片描述

  • 可见拜耳只有一个市场,其他的有不同市场,但主要市场都是灭鼠杀虫剂

适用对象

bai32 = df3bai.groupby('使用对象').sum()
bai32
商品ID商品原价商品售价30天销售量总销量销售额
使用对象
上门服务578090143145199.099.0743087326.0
杀虫剂1074833731154208.079.82593187382103460.7
白蚁530229854741199.089.98387051675336.2
蚂蚁1106313745903448.0173.94989286942305820.0
蟑螂49966413171231569.0752.45069131752632181372.3
an32 = df3an.groupby('适用对象').sum()
an32
商品ID商品原价商品售价30天销售量总销量30天销售额
适用对象
杀虫剂4366320607112435.7349.67551941634687.5
漱口水1130081741597208.0149.812727109137.3
空气芳香剂1620098374783196.8141.911870654668.6
空调清洁剂1056404562798122.9113.01513293910420.9
蚂蚁56362813371529.022.2538331176.6
5008917391793722.0425.65744223024388.6
56499356525248.024.85151655112772.0
2820972369214399.0242.6330219587164381.3
蟑螂6446879299188654.0481.36178500064268585.3
109075790852584.676.2279818712936.6
kl32 = df3kl.groupby('适用对象').sum()
kl32
商品ID商品原价商品售价30天销售量总销量30天销售额
适用对象
其它园艺用品55269531577639.926.08804166722880.0
1606589035658247.6118.63765962035.0
55933582767865.025.1739580838185614.5
107489743767077.044.35757835416599.5
1143807512213198.078.8360371450551114222.4
蟑螂2193692130180237.8105.58578534270311525024.2
7643582808847991.9487.636319725114953394.4
  • 作图
fig, axes = plt.subplots(1, 3, figsize=(10, 6))
ax = axes[0]
bai32['销售额'].plot.pie(autopct='%.f',title='拜耳',startangle=30,ax=ax)
ax.set_ylabel('')
ax = axes[1]
an32['30天销售额'].plot.pie(autopct='%.f',title='安速',startangle=60,ax=ax)
ax.set_ylabel('')
ax = axes[2]
kl32['30天销售额'].plot.pie(autopct='%.f',title='科凌虫控',startangle=90,ax=ax)
ax.set_ylabel('')
plt.show()

在这里插入图片描述

  • 拜耳的主要对象是蟑螂,而另外两家除此之外还有螨,鼠
  • 而从之前的分析看灭鼠和蟑螂的整体市场份额都大
  • 应该开拓新市场,尤其是灭鼠,也考察其他两家都开拓的螨市场

产品结构分析

os.chdir('..')
os.chdir('./商品交易数据')
  • 拜耳,安速,科凌虫控的数据分开读取分析
  • 主要分析产品结构
  • 由于分析过程相似,故都封装成函数方便分析
filenames3 = glob.glob('*.xlsx')
filenames3
['安速全店商品交易数据.xlsx', '拜耳全店商品交易数据.xlsx', '科凌虫控全店商品交易数据.xlsx']

拜耳

  • 读数据
df4bai = pd.read_excel(filenames3[1])
df4bai.head()
品牌时间商品行业排名交易指数交易增长幅度支付转化指数操作交易金额
0拜耳2018-07-01德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端15834830.03501500趋势分析9354158.37
1拜耳2018-07-01进口蟑螂药一窝端德国拜耳拜灭士强力杀蟑胶饵蟑螂屋克星家用全窝62785420.12581194趋势分析2470202.91
2拜耳2018-07-01德国拜耳进口蚂蚁药拜灭易灭蚁饵剂除杀蚂蚁杀虫剂家用室内全窝端112123290.50701328趋势分析1518114.06
3拜耳2018-07-01进口蟑螂药德国拜耳拜灭士灭杀蟑胶饵剂粉屋克星全窝端12g家用44107697-0.20441117趋势分析451897.06
4拜耳2018-07-01德国拜耳 除敌跳蚤杀虫剂家用灭蟑螂药虱子杀潮虫臭虫除虫剂喷雾45105901-0.2134936趋势分析438583.74
df4bai.info()
df4bai['商品'].value_counts().count()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 142 entries, 0 to 141
Data columns (total 9 columns):
品牌        142 non-null object
时间        142 non-null datetime64[ns]
商品        142 non-null object
行业排名      142 non-null int64
交易指数      142 non-null int64
交易增长幅度    142 non-null float64
支付转化指数    142 non-null int64
操作        142 non-null object
交易金额      142 non-null float64
dtypes: datetime64[ns](1), float64(2), int64(3), object(3)
memory usage: 10.1+ KB44
  • 五个月的数据,每个商品至多五个月都有,至少有一个月,故需要对商品分类汇总

  • 自定义分类汇总函数

def byproduct(df):dfb = df.groupby('商品').mean().loc[:,['交易增长幅度']]dfb['交易金额'] = df.groupby('商品').sum()['交易金额']dfb['交易金额占比'] = dfb['交易金额']/dfb['交易金额'].sum()dfb['商品个数'] = df.groupby('商品').count()['交易金额']dfb.reset_index(inplace=True)return dfb
bai4 = byproduct(df4bai)
bai4.head(5)
商品交易增长幅度交易金额交易金额占比商品个数
017年德国拜耳进口蚂蚁药拜灭易灭蚁饵剂粉除杀蚂蚁杀虫剂全窝端-0.24760042340.550.0005231
1德国原装进口拜耳蟑螂药全窝端拜灭士5g+12g杀蟑胶饵剂粉屋捕捉器-0.120333197377.170.0024393
2德国拜耳 除敌跳蚤杀虫剂家用灭蟑螂药虱子杀潮虫臭虫除虫剂喷雾-0.2210801394780.590.0172325
3德国拜耳丁香医生限量款拜灭士加量家用蟑螂全窝端蟑螂药3支装1.27930026742.750.0003301
4德国拜耳上门除灭鼠灭白蚁蟑螂蚊子跳蚤苍蝇上海地区灭虫按件拍下2.43930028969.280.0003581
bai4.describe()
交易增长幅度交易金额交易金额占比商品个数
count44.0000004.400000e+0144.00000044.000000
mean25.5399331.839560e+060.0227273.227273
std155.0838256.321050e+060.0780951.668639
min-0.2921002.255362e+040.0002791.000000
25%-0.0610406.828508e+040.0008441.750000
50%0.1090002.061879e+050.0025473.000000
75%1.2874107.673291e+050.0094805.000000
max1030.0000004.010385e+070.4954735.000000
  • 其中交易增长幅度可表示市场发展率,交易金额占比可表示市场份额

  • 这两个指标的最大值都远大于3/4分位数,认为是异常值,考虑引入盖帽法,方便后续作图

  • 定义盖帽法函数(只考虑右边的尾巴盖帽)

def block(x):qu = x.quantile(.9)out = x.mask(x>qu,qu)return(out)
  • 定义分别对两个指标盖帽的函数
def block2(df):df1 = df.copy()df1['交易增长幅度'] = block(df1['交易增长幅度'])df1['交易金额占比'] = block(df1['交易金额占比'])return df1
bai41 = block2(bai4)
bai41.describe()
交易增长幅度交易金额交易金额占比商品个数
count44.0000004.400000e+0144.00000044.000000
mean1.1716681.839560e+060.0076993.227273
std2.2125376.321050e+060.0103331.668639
min-0.2921002.255362e+040.0002791.000000
25%-0.0610406.828508e+040.0008441.750000
50%0.1090002.061879e+050.0025473.000000
75%1.2874107.673291e+050.0094805.000000
max6.7170304.010385e+070.0318635.000000
  • 可见盖帽后指标不那么异常,方便作图观察

  • 定义作图函数

def plotBOG(df,mean=False,q1=0.5,q2=0.5):f, ax = plt.subplots(figsize=(10, 8))ax = sns.scatterplot('交易金额占比','交易增长幅度',hue='商品个数',size='商品个数',sizes=(20,200),palette = 'cool',legend='full',data=df)for i in range(0,len(df)):ax.text(df['交易金额占比'][i]+0.001,df['交易增长幅度'][i],i)if mean:plt.axvline(df['交易金额占比'].mean())plt.axhline(df['交易增长幅度'].mean())else:plt.axvline(df['交易金额占比'].quantile(q1))plt.axhline(df['交易增长幅度'].quantile(q2))plt.show()
  • 以平均值作为波士顿矩阵的分隔线
plotBOG(bai41,mean=True)

在这里插入图片描述

  • 以中位数作为波士顿矩阵的分隔线
plotBOG(bai41)

在这里插入图片描述

  • 可以根据实际的业务选择区间的分隔线,由行业经验确定(如果认为增幅0.1在行业里算高,就可以作为分隔线)

  • 明星产品和奶牛产品的商品个数普遍比较多

  • 没有突出的明星产品,但是有快进入明星产品的问题产品

  • 查看各个产品结构的产品(除了瘦狗)

  • 各种产品排序,关心点不同,排序依据不同

    • 明星产品:都关心,依什么排序都可以,产品一般不多
    • 奶牛产品:老爆款,关心市场份额,依交易金额占比排序
    • 问题产品,潜力款,关心市场增长率,依交易增长幅度排序
  • 这里要查看实际数据,故使用盖帽前数据

def extractBOG(df,q1=0.5,q2=0.5,by='交易金额占比'):# 明星产品star = df.loc[(df['交易金额占比']>=df['交易金额占比'].quantile(q1)) & (df['交易增长幅度']>=df['交易增长幅度'].quantile(q2)),:]star = star.sort_values(by,ascending=False)# 奶牛产品cow = df.loc[(df['交易金额占比']>=df['交易金额占比'].quantile(q1)) & (df['交易增长幅度']<df['交易增长幅度'].quantile(q2)),:]cow = cow.sort_values(by,ascending=False)# 问题产品que = df.loc[(df['交易金额占比']<df['交易金额占比'].quantile(q1)) & (df['交易增长幅度']>=df['交易增长幅度'].quantile(q2)),:]que = que.sort_values(by,ascending=False)return star,cow,que
baistar,baicow,baique = extractBOG(bai4)
baistar1,baicow1,baique1 = extractBOG(bai4,by='交易增长幅度')
  • 拜耳明星产品
baistar
商品交易增长幅度交易金额交易金额占比商品个数
6德国拜耳拜灭士5g+除敌5ml*4支进口蟑螂药家用全窝端杀蟑螂套装1.3117401484952.410.0183465
20德国拜耳除敌杀虫剂灭蟑螂药跳蚤苍蝇臭虫除螨虱子喷雾5ml*80.325580983199.690.0121475
25拜耳拜灭士 蟑螂药家用全窝端 强力灭除厨房蟑螂屋克星杀德国进口1.454067413902.420.0051143
8德国拜耳拜灭士蟑螂药一窝端进口全窝端家用灭除杀蟑胶饵5g包邮29.260600236386.320.0029201
  • 主要是除蟑和杀虫,但是占比不大,增幅一般

  • 拜耳奶牛产品/老爆款

baicow
商品交易增长幅度交易金额交易金额占比商品个数
7德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端-0.12136040103850.970.4954735
39进口蟑螂药一窝端德国拜耳拜灭士强力杀蟑胶饵蟑螂屋克星家用全窝-0.03468013617307.870.1682385
18德国拜耳进口蚂蚁药拜灭易灭蚁饵剂除杀蚂蚁杀虫剂家用室内全窝端-0.0562406130488.420.0757415
42进口蟑螂药德国拜耳拜灭士灭杀蟑胶饵剂粉屋克星全窝端12g家用0.0709603589799.540.0443515
30蟑螂药一窝端德国拜耳拜灭士除蟑灭杀蟑螂克星全窝端家用杀蟑胶0.0389002976922.630.0367795
41进口蟑螂药德国拜耳拜灭士杀蟑胶饵蟑螂克星全窝端家用灭蟑屋12g-0.1271401650681.340.0203945
10德国拜耳拜灭易灭蚁饵剂粉除杀防蚂蚁药杀虫剂全窝端家用室内花园-0.0273001520126.150.0187815
2德国拜耳 除敌跳蚤杀虫剂家用灭蟑螂药虱子杀潮虫臭虫除虫剂喷雾-0.2210801394780.590.0172325
31蟑螂药德国拜耳拜灭士强力除杀蟑螂克星胶饵屋家用捕捉器贴全窝端0.0116801198694.670.0148105
27拜耳蟑螂药一窝端家用拜灭士杀蟑胶饵德国小强药粉灭蟑螂厨房克星0.035400695372.270.0085913
36进口蟑螂药 德国拜耳拜灭士家用杀蟑螂胶饵捕捉器蟑螂屋粉全窝端-0.148240582636.660.0071985
15德国拜耳进口白蚁药除灭防杀白蚁杀虫剂全窝端家用特傚触杀型粉药-0.134425564169.770.0069704
23必抢 德国进口拜耳蟑螂克星家用小强全窝端蟑螂药杀蟑胶饵灭蟑17g-0.292100561689.930.0069404
19德国拜耳除敌杀虫剂灭蚊蟑螂蚂蚁药跳蚤苍蝇臭虫除螨虱子家用-0.075440393582.710.0048635
14德国拜耳跳蚤杀虫剂家用潮虫灭蛾蚋虱子臭虫药除蟑螂5ml*40.007220318059.430.0039305
5德国拜耳拜灭士5g+拜灭易12g进口杀蟑螂蚂蚁药蟑螂克星家用全窝端0.048340251225.580.0031045
29蟑螂药30克拜灭士德国拜耳进口安全灭蟑螂杀蟑胶饵颗粒剂传染传毒-0.107200221081.460.0027314
16德国拜耳进口蚂蚁药家用拜灭易灭蚁饵剂杀蚂蚁杀虫剂室内全窝端蚁-0.047140214998.610.0026565
  • 可见占比最高的是除蟑,灭虫也占一部分,占比一般

  • 拜耳问题产品/潜力款

baique1
商品交易增长幅度交易金额交易金额占比商品个数
28电子猫超声波驱鼠器家用大功率灭鼠防鼠赶老鼠夹药捕鼠干扰粘鼠板1030.00000041046.030.0005071
40进口蟑螂药一窝端德国拜耳拜灭士杀蟑胶饵诱防蟑螂屋全窝端5+12g31.21850067043.140.0008281
11德国拜耳拜灭易进口蚂蚁药一窝端灭蚁饵剂清除蚂蚁粉家用全窝端7.86700032246.390.0003981
26拜耳灭蚂蚁药家用一窝端室内室外用杀小黄红蚂蚁药神器胶饵拜灭易7.44270022553.620.0002791
12德国拜耳白蚁药杀虫剂全窝端家用除杀防治灭飞蚂蚁特密得预防装修5.02380055113.410.0006811
4德国拜耳上门除灭鼠灭白蚁蟑螂蚊子跳蚤苍蝇上海地区灭虫按件拍下2.43930028969.280.0003581
24拜灭士蟑螂药蟑螂克星家用无毒强力灭蟑清德国拜耳杀蟑饵剂全窝端1.797267140032.470.0017303
33蟑螂药进口德国拜耳拜灭士家用除杀蟑螂屋胶饵捕捉器强力清全窝端1.465350101079.330.0012492
3德国拜耳丁香医生限量款拜灭士加量家用蟑螂全窝端蟑螂药3支装1.27930026742.750.0003301
13德国拜耳蟑螂药拜灭士杀蟑胶饵蟑螂克星全窝端家用灭蟑加量装12g1.06905068699.060.0008492
35进口蚂蚁药德国拜耳拜灭易杀蚁胶饵灭蚁饵剂红黑黄蚂蚁全窝端家用0.74220033514.830.0004141
21德国进口拜耳蟑螂药拜灭士杀灭除蟑胶饵剂粉屋家用全窝端12g*2盒0.58600028605.010.0003531
32蟑螂药拜耳拜灭士杀蟑胶饵强力灭蟑清贴捕捉器蟑螂克星家用全窝端0.53810055395.160.0006842
9德国拜耳拜灭易12g+除敌5ml*4支 进口蚂蚁药全窝端家用杀虫剂组合0.45055089566.010.0011072
17德国拜耳进口蚂蚁药拜灭易灭蚁饵剂除杀蚂蚁无毒家用室内全窝端0.36495093400.980.0011542
38进口蟑螂药 德国拜耳拜灭士杀蟑螂胶饵剂33克灭蟑螂药全窝端家用0.331367143883.320.0017783
43预售德国拜耳进口蟑螂药进口蚂蚁药组合装5g+12g0.21815085546.090.0010572
22德国进口拜耳蟑螂药拜灭士杀蟑胶饵5g两盒套装全窝端杀灭蟑螂剂屋0.147040189376.200.0023405
  • 可见大部分仍然是灭蟑和杀虫

  • 交易增长幅度最大的是灭鼠,而之前描述过灭鼠有最高的市场份额,可以作为下一步着力点

  • 总结:拜耳大部分产品集中在除蟑上,杀虫也有一定的规模,但是明星产品略乏力,可以进一步发展问题产品灭鼠为明星产品

安速

  • 读数据,描述
df4an = pd.read_excel(filenames3[0])
df4an.head(2)
日期商品行业排名交易指数交易增长幅度支付转化指数操作交易金额
02018-07-01日本安速小强恢恢蟑螂屋纸盒子捕捉器药灭杀强力家用贴克星全窝端33105170.60371445趋势分析3002740.75
12018-07-01日本进口安速小强恢恢灭蟑螂屋药无毒捕捉器克星家用强力清全窝端25151749-0.23591200趋势分析832540.52
df4an.info()
df4an['商品'].value_counts().count()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 141 entries, 0 to 140
Data columns (total 8 columns):
日期        141 non-null datetime64[ns]
商品        141 non-null object
行业排名      141 non-null int64
交易指数      141 non-null int64
交易增长幅度    141 non-null float64
支付转化指数    141 non-null int64
操作        141 non-null object
交易金额      141 non-null float64
dtypes: datetime64[ns](1), float64(2), int64(3), object(2)
memory usage: 8.9+ KB49
  • 汇总指标
an4 = byproduct(df4an)
an4.describe()
交易增长幅度交易金额交易金额占比商品个数
count49.0000004.900000e+0149.00000049.000000
mean1.8319896.150227e+050.0204082.877551
std6.7069751.954368e+060.0648511.666241
min-0.6413001.916612e+040.0006361.000000
25%-0.0595004.044140e+040.0013421.000000
50%0.1767501.162554e+050.0038583.000000
75%0.6049004.153983e+050.0137845.000000
max42.0143001.329498e+070.4411645.000000
  • 盖帽法处理
an41 = block2(an4)
an41.describe()
交易增长幅度交易金额交易金额占比商品个数
count49.0000004.900000e+0149.00000049.000000
mean0.5932636.150227e+050.0089692.877551
std1.1609031.954368e+060.0099831.666241
min-0.6413001.916612e+040.0006361.000000
25%-0.0595004.044140e+040.0013421.000000
50%0.1767501.162554e+050.0038583.000000
75%0.6049004.153983e+050.0137845.000000
max3.5305071.329498e+070.0295065.000000
  • BCG图
plotBOG(an41)

在这里插入图片描述

  • 可见奶牛产品足,明星产品部分有前途,问题产品部分有潜力,瘦狗产品不多

  • 查看具体产品

anstar,ancow,anque = extractBOG(an4)
anstar1,ancow1,anque1 = extractBOG(an4,by='交易增长幅度')
  • 安速明星
anstar
商品交易增长幅度交易金额交易金额占比商品个数
35日本安速蟑螂小屋灭除杀蟑螂药一窝端神器捕捉器家用克星小强恢恢0.440000881587.790.0292545
34日本安速蚂蚁药灭蚂蚁清驱除杀红蚂蚁小黄蚂蚁全窝端家用室内花园21.464140444230.430.0147415
21日本安速小黑帽小强黑克杀蟑饵剂9枚 蟑螂药屋蟑螂克星家用全窝端0.419900320927.900.0106494
39日本进口安速天然除螨喷雾剂350ml床上免洗家用正品螨虫非除杀菌3.859333304915.110.0101183
010枚装日本进口安速小强恢恢蟑螂屋诱捕捉器杀药贴环保无毒包邮0.176750217061.510.0072034
43日本进口安速小强恢恢蟑螂屋5片药捕捉器灭杀蟑螂克星家用全窝端0.189600215689.300.0071574
29日本安速红阿斯杀虫烟雾剂20g弹烟熏灭跳蚤蟑螂药克星家用全窝端0.399800193282.280.0064144
18日本安速小强恢恢蟑螂屋灭蟑螂强力捕捉器诱捕器除杀蟑螂清药贴0.227425142604.890.0047324
  • 杀虫和除蟑表现都不错

  • 安速奶牛

ancow
商品交易增长幅度交易金额交易金额占比商品个数
19日本安速小强恢恢蟑螂屋纸盒子捕捉器药灭杀强力家用贴克星全窝端0.01218013294975.970.4411645
41日本进口安速小强恢恢灭蟑螂屋药无毒捕捉器克星家用强力清全窝端-0.1110003685204.190.1222855
40日本进口安速小强恢恢杀蟑灭蟑螂屋10枚捕捉器不含蟑螂药-0.0007402354769.410.0781385
24日本安速小黑帽蟑螂屋家用强力灭蟑螂药环保无毒无味除小强包邮0.0724001083611.820.0359575
16日本安速小强恢恢蟑螂屋家用杀蟑胶饵小蟑螂药无毒蟑螂克星全窝端-0.254840919683.220.0305185
1✅【10枚装】日本进口安速小强恢恢蟑螂屋捕捉器杀药贴家用全窝端-0.159780812113.820.0269485
32日本安速红阿斯烟雾杀虫剂灭跳蚤药烟弹家用神器螨虫克星送蟑螂屋0.095920762628.320.0253065
46日本进口安速红阿斯杀虫烟雾剂弹烟熏灭跳蚤蟑螂克星家用全窝端-0.120460622279.570.0206495
6原装进口日本安速红阿斯杀虫烟雾剂熏杀灭跳蚤臭虫螨虫蟑螂20克-0.283000480525.860.0159454
17日本安速小强恢恢蟑螂屋捕捉器神器厨房清灭强力贴克星家用全窝端-0.059500423102.790.0140405
20日本安速小强恢恢蟑螂屋药6片 无毒捕捉器强力灭清克星家用全窝端-0.203980415398.340.0137845
38日本安速除螨虫喷雾剂床上免洗祛去螨虫喷剂家用杀菌送除螨包神器-0.102467358839.150.0119073
45日本进口安速杀蝇饵剂苍蝇药1盒 粘蝇纸灭苍蝇贴强力神家用捕蝇器0.012960293644.170.0097445
26日本安速小黑帽蟑螂屋蟑螂药克星家用安全无毒强力灭蟑清全窝端!-0.209850279383.030.0092714
36日本安速蟑螂药12枚家用灭杀蟑螂屋胶饵剂清强力捕捉器克星全窝端-0.137750184701.400.0061294
15日本安速小强恢恢蟑螂屋6片家用无毒蟑螂贴捕捉器克星家用全窝端-0.301267168503.430.0055913
31日本安速红阿斯杀虫烟雾剂弹烟熏强力灭跳蚤蟑螂药克星家用全窝端-0.010433116255.350.0038583
  • 主要是除蟑,和拜耳产生竞争

  • 安速问题

anque1
商品交易增长幅度交易金额交易金额占比商品个数
4冲销量日本安速小黑帽蟑螂屋蟑螂药家用强力灭蟑清安全无毒小强42.0143032034.340.0010631
37日本安速除螨虫喷雾剂床上免洗去螨虫神器喷剂家用非杀菌送除螨包6.6480041991.710.0013931
13日本安速ARS地球制药earth小飞虫恢恢果蝇诱捕器单只装 03154.3643040441.400.0013421
27日本安速杀蟑气雾剂精纯无味型2瓶 灭蟑螂药杀虫剂家用潮虫百虫灵3.4483052292.370.0017352
42日本进口安速小强恢恢蟑螂屋5片家用无毒贴捕捉器克星家用全窝端1.1675019943.680.0006621
30日本安速红阿斯杀虫烟雾剂弹10g烟熏灭跳蚤蟑螂克星家用全窝端0.9705060200.620.0019981
2【20枚装】日本进口安速小强恢恢蟑螂屋蟑螂捕捉器诱捕器灭蟑小屋0.9321558785.410.0019512
9日本 安速EARTH小果蝇恢恢杀蝇饵剂灭苍蝇小飞虫神器诱捕捕捉器0.8856033633.570.0011161
47日本进口安速红阿斯杀虫烟雾剂跳蚤螨虫蚂蚁药蟑螂克星家用全窝端0.7317019166.120.0006361
33日本安速老鼠吱吱板4片 老鼠贴强力粘鼠板驱鼠灭鼠器老鼠胶药家用0.6603030567.080.0010141
5原装正品日本安速小强恢恢蟑螂屋蟑螂捕捉器诱捕器小屋20枚包邮0.6049032627.730.0010831
12日本ARS安速小黑帽蟑螂屋盒子无毒无味灭小强安全室内12枚蟑螂药0.5123581303.150.0026982
48现货 日本正品安速小黑帽蟑螂屋杀小强灭蟑螂药环保无毒无刺激0.48520105556.480.0035033
10日本ARS安速小黑帽环保无毒灭蟑螂药无味除小强小黑屋12枚0.3812034503.540.0011451
8德国拜耳进口蚂蚁药拜灭易灭蚁饵剂除杀蚂蚁无毒家用室内全窝端0.3649593400.980.0030992
14日本安速小强恢恢蟑螂屋20片蟑螂药灭蟑螂克星家用全窝端0.2840025693.460.0008531
25日本安速小黑帽蟑螂屋灭蟑螂药家用厨房灭蟑清蟑螂克星全窝端无毒0.2031035358.870.0011731
  • 前几款是灭蟑,除螨,杀虫,都有发展空间

  • 总结:安速没有明显的灭鼠市场

  • 拜耳和安速比较:拜耳杀虫是老爆款,灭蟑存在一定竞争

科凌虫控

  • 读数据,描述
df4kl = pd.read_excel(filenames3[2])
df4kl.head(2)
日期商品行业排名交易指数交易增长幅度支付转化指数操作交易金额
02018-07-01蟑螂药一窝端蟑螂屋胶饵灭蟑螂无毒厨房家用强力杀蟑螂克星全窝端24668810.45251850趋势分析6256693.23
12018-07-01蟑螂屋捕捉器除灭蟑螂药一窝端神器纸盒子胶饵杀小蟑螂贴厨房家用142045450.19331577趋势分析1419883.88
df4kl.info()
df4kl['商品'].value_counts().count()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 118 entries, 0 to 117
Data columns (total 8 columns):
日期        118 non-null datetime64[ns]
商品        118 non-null object
行业排名      118 non-null int64
交易指数      118 non-null int64
交易增长幅度    118 non-null float64
支付转化指数    118 non-null int64
操作        118 non-null object
交易金额      118 non-null float64
dtypes: datetime64[ns](1), float64(2), int64(3), object(2)
memory usage: 7.5+ KB31
  • 汇总指标
kl4 = byproduct(df4kl)
kl4.describe()
交易增长幅度交易金额交易金额占比商品个数
count31.0000003.100000e+0131.00000031.000000
mean13.4794481.500410e+060.0322583.806452
std73.2214484.039568e+060.0868491.558190
min-0.3178402.566598e+040.0005521.000000
25%-0.0653601.099735e+050.0023642.500000
50%0.0548003.286985e+050.0070675.000000
75%0.5528001.138542e+060.0244785.000000
max407.9826502.196606e+070.4722595.000000
  • 盖帽
kl41 = block2(kl4)
kl41.describe()
交易增长幅度交易金额交易金额占比商品个数
count31.0000003.100000e+0131.00000031.000000
mean0.2630581.500410e+060.0145893.806452
std0.4929994.039568e+060.0149941.558190
min-0.3178402.566598e+040.0005521.000000
25%-0.0653601.099735e+050.0023642.500000
50%0.0548003.286985e+050.0070675.000000
75%0.5528001.138542e+060.0244785.000000
max1.2683502.196606e+070.0446095.000000
  • 作图
plotBOG(kl41)

在这里插入图片描述

  • 可见奶牛产品足,明星产品少,大部分有前途,问题产品部分有潜力,瘦狗产品少

  • 查看具体产品

klstar,klcow,klque = extractBOG(kl4)
klstar1,klcow1,klque1 = extractBOG(kl4,by='交易增长幅度')
  • 科凌虫控明星
klstar
商品交易增长幅度交易金额交易金额占比商品个数
28除螨虫家用喷剂床上祛防螨去螨虫神器喷雾剂包贴杀虫剂免洗非杀菌0.807422270518.540.0488155
20老鼠贴超强力粘鼠板灭鼠神器捕鼠魔毯yao颗粒老鼠胶家用药捕鼠器0.085762074886.770.0446095
13科凌虫控蟑螂药屋蟑螂克星杀蟑胶饵灭蟑螂粉全窝端家用强力灭蟑清0.151841253677.000.0269535
1去儿童头虱除阴虱净喷剂百部酊虱卵用虱子药成人一扫光净虱灵喷雾0.670581112790.540.0239245
  • 主要是灭鼠,除螨和杀虫

  • 科凌虫控奶牛

klcow
商品交易增长幅度交易金额交易金额占比商品个数
23蟑螂药一窝端蟑螂屋胶饵灭蟑螂无毒厨房家用强力杀蟑螂克星全窝端-0.0962821966057.020.4722595
22蟑螂屋捕捉器除灭蟑螂药一窝端神器纸盒子胶饵杀小蟑螂贴厨房家用-0.005487464346.740.1604805
5杀蟑螂药一窝端蟑螂药粉家用捕捉器屋厨贴无毒灭蟑螂粉除小强克星-0.193701408637.810.0302855
26跳蚤杀虫剂家用厕所卫生间下水道除虫灭小飞虫蛾蚋蟑螂臭虫药室内-0.188241316871.080.0283125
21蟑螂屋强力灭蟑清蟑螂贴家用无毒粉杀蟑螂药胶饵捕捉器克星全窝端0.053201157585.180.0248885
15粘鼠板超强力驱老鼠贴灭鼠抓老鼠夹药捕鼠器黏老鼠胶沾鼠神器家用-0.089561119499.650.0240695
10科凌虫控杀蟑螂药一窝端灭蟑螂胶饵药粉克星南方大蟑螂全窝端家用-0.093381009419.110.0217025
14米面蛾诱捕器蛾子粘捕器家用小飞虫杀虫剂灭飞蛾除米蛾衣蛾蚋蛾蠓-0.31784578549.200.0124395
17老鼠笼捕鼠器全自动超强家用抓老鼠夹药捉耗子连续灭鼠神器驱鼠器-0.01008465621.510.0100115
29除跳蚤喷剂床上杀虫剂气雾家用潮虫驱虫灭去蚂蚁药神器室内杀蜘蛛-0.19702437756.890.0094125
8灭蟑螂药烟剂杀蜘蛛驱烟雾弹神器克星家用全窝端除蚂蚁蜈蚣烟熏片-0.04116424747.110.0091325
16绿叶老鼠贴强力粘鼠板沾灭鼠神器胶药yao颗粒捕鼠器克星正品家用0.05318328698.540.0070675
  • 主要是除蟑,有很小部分灭虫和灭鼠

  • 科凌虫控问题

klque1
商品交易增长幅度交易金额交易金额占比商品个数
2天然除螨虫包喷雾剂中草药祛防杀去螨虫垫贴床上用品家用驱虫神器407.98265290170.090.0062392
4抓老鼠贴强力粘鼠板胶药沾灭鼠器捕鼠神器克星家用正品20张一窝端4.21950119948.740.0025793
18老鼠笼捕鼠器家用一窝端连续全自动强力扑捉抓灭老鼠夹子捕鼠神器1.3110062508.930.0013441
25蟑螂药蟑螂克星家用非无毒全窝端室内厨房南方大蟑螂一窝端脏螂药1.2683586020.530.0018492
19老鼠贴强力粘鼠板正品一窝端灭鼠器老鼠克星胶yao颗粒家用10片装0.8833581123.800.0017442
27跳蚤杀虫剂家用气雾剂除螨虫喷雾潮虫百虫灵蜈蚣蟑螂药灭蚂蚁虱子0.5642031783.470.0006831
12科凌虫控蟑螂药南方大蟑螂强力杀蟑饵剂蟑螂胶饵家用全窝端灭蟑清0.5414032057.620.0006891
24蟑螂药粉德国小蠊小强专杀灭蟑螂屋纸盒子家用蟑螂克星全窝端厨房0.30630125300.730.0026943
11科凌虫控老鼠贴超强力粘鼠板日本版捉抓老鼠夹胶家用灭鼠药捕鼠器0.2187099998.350.0021503
6汽车家用驱鼠剂防老鼠克星喷雾剂耗子发动机舱包防鼠灭鼠药驱鼠器0.1373025665.980.0005521
3抓老鼠夹子捕鼠器笼家用连续全自动逮捉老鼠笼超强扑鼠笼灭鼠神器0.0733551645.490.0011102
04 只装驱老鼠夹捕鼠器家用灭鼠神器抓杀扑老鼠夹子捉老鼠笼全自动0.05480289907.350.0062335
  • 有较大潜力的是除螨

  • 总结:科凌虫控积极发展多个产品,然而每个产品结构相对独立(奶牛除蟑,明星灭鼠,潜力除螨),没有后续的支持.竞争力不是那么强

流量结构分析

os.chdir('..')
os.chdir('./流量渠道数据')
filenames4 = glob.glob('*.xlsx')
filenames4
['安速家居旗舰店流量渠道.xlsx', '拜耳官方旗舰店流量渠道.xlsx', '科凌虫控旗舰店流量渠道.xlsx']
  • 拜耳
df5bai = pd.read_excel(filenames4[1])
df5bai.head()
流量来源交易指数交易指数.1
0淘内免费399466320128
1手淘搜索336457274916
2淘内免费其他195308153255
3手淘问大家123512108108
4手淘旺信8802459198
  • 交易指数是销售额的反映

  • 自定义流量结构和说明的函数

  • 只取交易指数排名前10的流量渠道分析

def flow(df):df0 = df.copy()top10 = df0.sort_values('交易指数',ascending=False).reset_index(drop=True).iloc[:10,:]top10['交易指数占比'] = top10['交易指数']/top10['交易指数'].sum()top10.set_index('流量来源',inplace=True)paid =  ['付费流量','直通车','淘宝客','淘宝联盟']ind = np.any([top10.index == i for i in paid],axis=0)explode = ind*0.1ax = top10['交易指数占比'].plot.pie(autopct='%.1f%%',figsize=(8,8),colormap='cool',explode=explode)ax.set_ylabel('')plt.show()paidsum = top10['交易指数占比'][ind].sum()salesum = top10['交易指数'].sum()paidsale = salesum * paidsumprint(f'前10流量中:总交易指数:{salesum:.0f};付费流量占比:{paidsum*100:.2f}%;付费流量带来交易指数:{paidsale:.0f}')return top10
bai5top10 = flow(df5bai)

在这里插入图片描述

前10流量中:总交易指数:2334051;付费流量占比:21.85%;付费流量带来交易指数:509959
  • 排名前10的详细数据
bai5top10
交易指数交易指数.1交易指数占比
流量来源
淘内免费3994663201280.171147
手淘搜索3364572749160.144152
自主访问3125872342930.133925
购物车2516001863230.107795
付费流量2233152064800.095677
我的淘宝2051621518250.087900
淘内免费其他1953081532550.083678
直通车1879521474630.080526
手淘问大家1235121081080.052917
淘宝客986921353200.042284
  • 安速
df5an = pd.read_excel(filenames4[0])
df5an.head()
流量来源交易指数
0淘内免费119751
1手淘搜索86389
2淘内免费其他62653
3手淘问大家31348
4手淘旺信25514
an5top10 = flow(df5an)

在这里插入图片描述

前10流量中:总交易指数:748539;付费流量占比:18.58%;付费流量带来交易指数:139048
  • 可见拜耳和安速的流量配比是差不多的,安速的整体流量小很多,即流量效果拜耳明显优于安速

  • 科凌虫控

df5kl = pd.read_excel(filenames4[2])
df5kl.head()
流量来源交易指数
0淘内免费320128
1手淘搜索274916
2淘内免费其他153255
3手淘问大家108108
4手淘旺信59198
kl5top10 = flow(df5kl)

在这里插入图片描述

前10流量中:总交易指数:1918111;付费流量占比:25.51%;付费流量带来交易指数:489263
  • 和拜耳在流量上差不多,科凌虫控付费占比较高

舆情分析

os.chdir('..')
os.chdir('./评论舆情数据')
  • 读数据
filenames5 = glob.glob('*.xlsx')
filenames5
['安速.xlsx', '德国拜耳.xlsx', '科林虫控.xlsx']
df6bai = pd.read_excel(filenames5[1])
df6bai.head()
产品名称链接评论页码评论评论日期
0德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端https://detail.tmall.com/item.htm?id=5276047303270刚收到,家里厨房突然出现小强了,看了这个评价挺多挺好,销量也大,赶紧定了三盒,一定要管用啊一...2018-11-21 19:01:20
1德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端https://detail.tmall.com/item.htm?id=5276047303270朋友推荐的说之前用的挺管用的。在放药的前几天就没怎么见蟑螂了,然后出去玩之前把家里角角落落全...2018-11-23 11:07:03
2德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端https://detail.tmall.com/item.htm?id=5276047303270真心坑人啊!😂还没到24小时就凝固了!小强依然活跃🤑🤑🤑🤑2018-11-24 00:28:17
3德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端https://detail.tmall.com/item.htm?id=5276047303270盆友推荐的,说特别好用,效果杠杠的,看双十一做活动,就买啦,效果应该不错吧,不过尸体都是家里...2018-11-25 03:07:25
4德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端https://detail.tmall.com/item.htm?id=5276047303270我是买到假货吗?那么贵的蟑螂药居然还有,还是蟑螂已经百毒不侵了?2018-11-26 07:49:43
  • 抽评论列
bai6 = list(df6bai['评论'])
  • 去掉非中英文字符
bai61 = [re.sub(r'[^a-z\u4E00-\u9Fa5]+',' ',i,flags=re.I) for i in bai6]
  • 好用的文本处理的库:shorttext

  • 读取构建停用词列表

stopwords = list(pd.read_csv('D:/data/python/百度停用词表.txt',names=['stopwords'])['stopwords'])
stopwords.extend([' '])
  • 如下得到一个大列表包含多个小列表,每个小列表来自一条评论的分词
bai62 = []
for i in bai61:seg0 = pd.Series(jieba.lcut(i))# 可以尝试全模式看效果# 筛掉长度等于1的词ind1 = pd.Series([len(j) for j in seg0])>1seg1 = seg0[ind1]# 去掉停用词,去重ind2 = ~seg1.isin(pd.Series(stopwords))seg2 = list(seg1[ind2].unique())# 去掉筛选后的空列表if len(seg2)>0:bai62.append(seg2)
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\jiang\AppData\Local\Temp\jieba.cache
Loading model cost 0.755 seconds.
Prefix dict has been built succesfully.
bai62[:2]
[['收到','家里','厨房','小强','评价','销量','赶紧','三盒','管用','后续','效果','追加','多久','才能','消灭','干净','没法','做饭','进去','担心','挥发','很多','试试'],['朋友','推荐','管用','放药','几天','蟑螂','出去玩','家里','角角落落','全都','点涂','四天','回来','开门','内心','忐忑','居然','一只','没见','真的','错峰','出行','但愿','第二次','购买','超级','好用','翻烂','两支','一支','点上']]
  • 组合多个列表到一个列表
bai63 = [y for x in bai62 for y in x]
# 或如下方式:
# from itertools import chain
# bai63 = list(chain(*bai62))
bai63[:10]
['收到', '家里', '厨房', '小强', '评价', '销量', '赶紧', '三盒', '管用', '后续']
  • 计算词频
baifreq = pd.Series(bai63).value_counts()
baifreq[:10]
效果    541
蟑螂    409
双十    145
不错    144
评论    138
小强    114
收到    106
用户    100
填写    100
东西     95
dtype: int64
  • 组合多个字符为一个长字符,空格分隔
bai64 = ' '.join(bai63)
  • 绘制词云
mask = imageio.imread('D:/data/python/leaf.jpg')
# 如果是中文必须制定字体
font = r'C:\Windows\Fonts\simkai.ttf'wc = WordCloud(background_color='wheat',mask=mask,font_path=font).generate(bai64)
plt.figure(figsize=(8,8))
plt.imshow(wc)
plt.axis('off')
plt.show()

在这里插入图片描述

  • 写出词云文件
wc.to_file('D:/data/python/拜耳舆情词云.png')
<wordcloud.wordcloud.WordCloud at 0x153001f4588>
  • 基于 TF-IDF 算法的关键词抽取
jieba.analyse.extract_tags(bai64,20,True)
[('蟑螂', 0.35868827490141125),('效果', 0.2849843733535205),('双十', 0.12792281324949317),('小强', 0.09200132125972145),('评论', 0.08243514073285675),('湿巾', 0.0800848241710357),('填写', 0.07859912763569854),('不错', 0.07854611456578228),('好评', 0.07205703576029969),('追评', 0.06743985193350374),('没用', 0.06355521640160776),('收到', 0.06240940420464874),('用户', 0.06013517913107095),('好用', 0.05909939270004407),('尸体', 0.05479502199496166),('划算', 0.05456206954124107),('湿纸巾', 0.05268657021031292),('家里', 0.04667477953221154),('发货', 0.04579483339359189),('期待', 0.04317101167929661)]
  • 不管从词云还是关键词来看,评价偏好评,没有明显问题
  • 可以在停用词中添加好评,蟑螂可以再看效果


http://www.ppmy.cn/news/220185.html

相关文章

会Python的淘宝商家可以横扫一切竞争对手,这就是会技术的魅力!(下)

这篇上上篇的续集。上篇主要从宏观市场及微观市场两个方面深入分析拜耳产品销售数据。本篇中将继续从微观市场方面&#xff0c;从产品结构、产品舆情及产品流量三个方面深入探讨拜耳产品的竞品分析。 电商分析基础知识 电子商务和传统零售数据分析的区别 传统零售是利用二八法则…

淘宝/天猫API:item_search_jupage-天天特价

万邦淘宝/天猫天天特价 API 返回值说明 item_search_jupage-天天特价 onebound.taobao.item_search_jupage 公共参数 请求地址: https://console.open.onebound.cn/console/?ipony 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;se…

超详细案例讲解如何寻求产品的市场增长点?【线性回归数据可视化】

大家早上好&#xff0c;本人姓吴&#xff0c;如果觉得文章写得还行的话也可以叫我吴老师。欢迎大家跟我一起走进数据分析的世界&#xff0c;一起学习&#xff01; 感兴趣的朋友可以关注我或者我的数据分析专栏&#xff0c;里面有许多优质的文章跟大家分享哦。 如果你是一名数据…

会Python的淘宝商家可以横扫一切竞争对手,这就是会技术的魅力!(上)

前言 我虽然没做过电商&#xff0c;但是我买过他们的东西啊&#xff0c;所以就如淘宝上买的卖家&#xff0c;不管什么商品&#xff0c;卖家都是非常多&#xff0c;今天就教大家电商数据分析&#xff0c;如何找准自己商品的增长点才是最重要的&#xff01; 先看下整体的一个步骤…

电商寻求市场增长点

项目背景&产品架构 客户需求&#xff1a;拜耳官方旗舰店寻求市场增长点产品架构&#xff1a; 数据说明 “驱虫剂市场”文件 子文件&#xff1a;top100品牌数据、灭鼠杀虫剂、电蚊香套装、盘香灭蟑香蚊香盘、蚊香加热器、蚊香液、蚊香片、防霉防蛀片 灭鼠杀虫剂细分市场…

Python电商数据分析实战案例

导读&#xff1a; 今天给大家带来一个电商数据分析案例。我整理了下&#xff0c;以笔记的形式分享给到大家。案例背景大致是某电商连续几年的总体销售额都在上涨&#xff0c;但近年增速放缓&#xff0c;需要寻求有效的增涨点&#xff0c;以提升市场竞争力。因为篇幅较长&#x…

k8s之docker-扩展知识(八)

一.Docker的应用场景 Web 应用的自动化打包和发布。 自动化测试和持续集成、发布。 在服务型环境中部署和调整数据库或其他的后台应用。 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。 二.Docker 的优点 Docker 是一个用于开发&#…

计算机cpu和显卡的搭配要求,CPU和显卡怎么搭配好 显卡和CPU搭配有什么要求吗...

CPU和显卡怎么搭配最好&#xff0c;并不是一层不变的&#xff0c;不同需求的用户&#xff0c;答案也不相同。对于家里有矿&#xff0c;预算动辄上万装机的用户来说&#xff0c;CPU和显卡可以都搭配好的&#xff0c;但大部分普通装机用户&#xff0c;预算都是有限的&#xff0c;…