ds案例

市场规模

市场容量分析是对行业规模的分析判断

import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings("ignore")

导入数据

path1 = '驱虫剂市场/'
#电蚊香套装市场近三年交易额
dwx=pd.read_excel(path1+'电蚊香套装市场近三年交易额.xlsx')
#防霉防蛀片市场近三年交易额
fmfz=pd.read_excel(path1+'防霉防蛀片市场近三年交易额.xlsx')
#灭鼠杀虫剂市场近三年交易额
msmc=pd.read_excel(path1+'灭鼠杀虫剂市场近三年交易额.xlsx')
#盘香灭蟑香蚊香盘市场近三年交易额
mz=pd.read_excel(path1+'盘香灭蟑香蚊香盘市场近三年交易额.xlsx')
#蚊香加热器市场近三年交易额
wxq=pd.read_excel(path1+'蚊香加热器市场近三年交易额.xlsx')
#蚊香片市场近三年交易额
wxp=pd.read_excel(path1+'蚊香片市场近三年交易额.xlsx')
#蚊香液市场近三年交易额
wxy=pd.read_excel(path1+'蚊香液市场近三年交易额.xlsx')

数据探索

数据合并

#汇总每一个市场的数据
m_sum=pd.DataFrame(data=[dwx.sum().values,fmfz.sum().values,msmc.sum().values,mz.sum().values,wxq.sum().values,wxp.sum().values,wxy.sum().values],columns=['市场规模'],
index=['电蚊香','防霉防蛀','灭鼠灭虫','灭蟑','蚊香加热器','蚊香片','蚊香液'])
m_sum.loc['驱虫市场']=m_sum.sum()
m_sum
市场规模
电蚊香2.178805e+07
防霉防蛀1.804635e+08
灭鼠灭虫2.527161e+09
灭蟑2.515832e+08
蚊香加热器3.313501e+07
蚊香片1.281525e+08
蚊香液8.523022e+08
驱虫市场3.994585e+09

绝对数据 市场的绝对规模-市场的具体规模数据

相对规模-市场占比 相对规模方便我们理解数据的意义

# 计算相对规模
m_sum['相对规模']=round(m_sum/m_sum.iloc[7,0]*100,1)
m_sum
市场规模相对规模
电蚊香2.178805e+070.5
防霉防蛀1.804635e+084.5
灭鼠灭虫2.527161e+0963.3
灭蟑2.515832e+086.3
蚊香加热器3.313501e+070.8
蚊香片1.281525e+083.2
蚊香液8.523022e+0821.3
驱虫市场3.994585e+09100.0

可视化比数字更加直观

可视化展示

import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use('seaborn')
#设置字体样式
plt.rcParams['font.family'] = ['Arial Unicode MS', 'Microsoft Yahei', 'sans-serif']
#设置matplotlib支持汉语
plt.rcParams['font.sans-serif']=['SimHei']
#设置显示中文后,负号显示受影响,显示负号  
plt.rcParams['axes.unicode_minus']=False
x=m_sum.index.values
y=m_sum.市场规模.values
pl = plt.figure(figsize=(12,8))
plt.bar(x,y,width=0.618)
plt.xlabel("一级市场")
plt.ylabel('绝对市场规模')
# 设置数字标签
for a,b in zip(x,y):
     plt.text(a,b+30000000,'%.0f'%b,ha='center',va='bottom',fontsize=8)
plt.show();

一级市场市场规模

#相对市场份额
size = m_sum.iloc[0:-1,1]
labels = m_sum.index.values[0:-1]
pl= plt.figure(figsize=(8,8))
plt.pie(size,labels=labels,autopct='%.1f%%',shadow=False,startangle=180)
# plt.axis('equal')#设置饼图使得饼图为圆形
plt.title('相对市场份额')
plt.show()

一级市场相市场份额

市场增幅趋势

7个子行业数据合并

数据处理

数据整合

#7个子行业数据合并
d=pd.merge(dwx,fmfz,on='时间')
for i in [msmc,mz,wxq,wxp,wxy]:
    d=pd.merge(d,i,on='时间')
d.columns=['时间','电蚊香', '防霉防蛀', '灭鼠灭虫', '灭蟑', '蚊香加热器', '蚊香片', '蚊香液']
d
时间电蚊香防霉防蛀灭鼠灭虫灭蟑蚊香加热器蚊香片蚊香液
02018-10-01106531.298541153.591.136548e+084171283.35315639.481032414.297.814546e+06
12018-09-01105666.638825870.431.440261e+086784500.17457366.411566651.881.065497e+07
22018-08-01201467.036320153.441.540426e+0810709683.41746513.132617149.001.783558e+07
32018-07-01438635.296302595.061.480032e+0816589184.891871757.006209040.063.887792e+07
42018-06-01953749.787047206.981.359438e+0823526385.733641025.9212484919.637.649909e+07
52018-05-011238967.377942340.441.241642e+0828118581.255032466.7815309721.941.050396e+08
62018-04-01841051.937031364.607.509661e+0716420341.873130513.437954875.076.254165e+07
72018-03-01475177.486051561.025.918182e+077900094.911198332.812950648.322.632447e+07
82018-02-0133232.951393948.472.292138e+07545917.6675714.46218915.632.235774e+06
92018-01-0154305.202607776.073.653873e+07592663.2086670.45298146.111.759451e+06
102017-12-0171600.173259747.234.292283e+07796930.4669145.59314120.382.213103e+06
112017-11-0194993.765447184.435.838217e+071581530.20168141.79617094.944.257594e+06
122017-10-01145925.316152868.258.226882e+072824785.80166522.62766588.774.290843e+06
132017-09-01242194.375792065.801.010081e+085581352.42353042.451574779.657.833349e+06
142017-08-01332922.025081714.641.049504e+087229409.84544076.632323304.141.376039e+07
152017-07-01913425.956691694.171.116729e+0813718046.881357778.936627299.714.257757e+07
162017-06-012045163.597155138.871.051463e+0819635925.592639777.6612422420.218.283230e+07
172017-05-013606141.828145781.129.185035e+0720275515.853185961.7515961946.711.014605e+08
182017-04-011285599.496682161.495.363586e+079197868.291554864.426214963.684.880687e+07
192017-03-01390486.573904656.824.078967e+073397837.60317206.481319399.221.488979e+07
202017-02-01209643.872584035.903.467502e+071519446.34148158.07687697.465.929509e+06
212017-01-0139434.761781773.462.047156e+07596744.0448164.63238973.091.213749e+06
222016-12-0184350.573504367.983.546668e+071234900.0552118.96293737.201.558634e+06
232016-11-01106291.234975519.214.780625e+071473418.2082835.82512990.232.758827e+06
242016-10-01179015.234600717.786.339722e+072543813.78130484.07690912.023.641803e+06
252016-09-01210456.694642681.076.864724e+073092898.02168724.83930513.914.632818e+06
262016-08-01316467.144151326.687.610885e+074389862.79272553.951581021.508.956868e+06
272016-07-01932728.105412185.067.832954e+077384968.66761159.354088320.772.260036e+07
282016-06-012184985.335694825.137.693264e+0710859461.671728788.538004562.694.640197e+07
292016-05-012059879.805469360.605.812696e+079912801.931618361.547474421.974.777690e+07
302016-04-011034992.535253619.063.762602e+074687913.18758206.813435257.352.432917e+07
312016-03-01352013.313481194.462.952610e+071204574.20246106.75746709.076.656382e+06
322016-02-0196979.481274810.961.500135e+07449199.4136193.85109108.056.939075e+05
332016-01-01108412.711562393.952.107822e+07619042.0149670.25113284.714.828890e+05
342015-12-01110068.832333602.082.472756e+07818479.5634076.91134890.485.832845e+05
352015-11-01185094.223364112.143.303873e+071197791.2786889.91325744.431.579796e+06

数据的预测与补全

预测12月份数据
#预测一个子行业的12月份数据
t17=d.where(d.时间=='2017-12-1').dropna()
t16=d.where(d.时间=='2016-12-1').dropna()
t15=d.where(d.时间=='2015-12-1').dropna()
t=pd.concat([t17,t16,t15])
#x变量我们选择2015,2016,2017
#y每一年12月份的数据
y=t.drop('时间',axis=1)
#使用回归算法预测
from sklearn import linear_model
import numpy as np
x=[2017,2016,2015]
#写循环预测所有子行业的12月数据
y_12=[]
for i in range(7):
    #训练集数据格式处理
    x_train=np.array(x).reshape(-1,1)
    y_train=np.array(y.iloc[:,i])
    linear_reg=linear_model.LinearRegression()#模型的实例化
    linear_reg.fit(x_train,y_train)#模型的训练
    y_pre=linear_reg.predict(np.array([2018]).reshape(-1,1)).round(1)
    y_12.append(y_pre[0])
y_12
[50204.5, 3958717.6, 52567630.7, 928554.3, 86849.2, 426812.6, 3081492.0]
预测11月份数据
#同理预测11月的数据
t17_11=d.where(d.时间=='2017-11-1').dropna()
t16_11=d.where(d.时间=='2016-11-1').dropna()
t15_11=d.where(d.时间=='2015-11-1').dropna()
t1=pd.concat([t17_11,t16_11,t15_11])
y1=t1.drop('时间',axis=1)
#写循环,得到18年11月预测结果
y_11=[]
for i in range(7):
    #训练集数据格式处理
    x_train=np.array(x).reshape(-1,1)
    y_train=np.array(y1.iloc[:,i])
    linear_reg=linear_model.LinearRegression()#模型的实例化
    linear_reg.fit(x_train,y_train)#模型的训练
    y_pre=linear_reg.predict(np.array([2018]).reshape(-1,1)).round(1)
    y_11.append(y_pre[0])
y_11
[38692.6, 6678677.5, 71752496.0, 1801318.8, 193874.4, 776627.0, 5543203.8]

添加格式为日期格式的元素到y_11,y_12

补全数据,删除2015年数据
#2018年11月\12月的数据填充,删除15年11\12
#添加格式为日期格式的元素到y_11,y_12
import datetime
#将字符串变成日期
a11=datetime.datetime.strptime('2018-11-1','%Y-%m-%d')
y_11.insert(0,a11)
a12=datetime.datetime.strptime('2018-12-1','%Y-%m-%d')
y_12.insert(0,a12)

d.iloc[34]=y_12
d.iloc[35]=y_11

#按照日期排序
d.sort_values(by='时间',ascending=False,inplace=True)
d.reset_index(inplace=True)
del d['index']
d
时间电蚊香防霉防蛀灭鼠灭虫灭蟑蚊香加热器蚊香片蚊香液
02018-12-0150204.503958717.605.256763e+07928554.3086849.20426812.603.081492e+06
12018-11-0138692.606678677.507.175250e+071801318.80193874.40776627.005.543204e+06
22018-10-01106531.298541153.591.136548e+084171283.35315639.481032414.297.814546e+06
32018-09-01105666.638825870.431.440261e+086784500.17457366.411566651.881.065497e+07
42018-08-01201467.036320153.441.540426e+0810709683.41746513.132617149.001.783558e+07
52018-07-01438635.296302595.061.480032e+0816589184.891871757.006209040.063.887792e+07
62018-06-01953749.787047206.981.359438e+0823526385.733641025.9212484919.637.649909e+07
72018-05-011238967.377942340.441.241642e+0828118581.255032466.7815309721.941.050396e+08
82018-04-01841051.937031364.607.509661e+0716420341.873130513.437954875.076.254165e+07
92018-03-01475177.486051561.025.918182e+077900094.911198332.812950648.322.632447e+07
102018-02-0133232.951393948.472.292138e+07545917.6675714.46218915.632.235774e+06
112018-01-0154305.202607776.073.653873e+07592663.2086670.45298146.111.759451e+06
122017-12-0171600.173259747.234.292283e+07796930.4669145.59314120.382.213103e+06
132017-11-0194993.765447184.435.838217e+071581530.20168141.79617094.944.257594e+06
142017-10-01145925.316152868.258.226882e+072824785.80166522.62766588.774.290843e+06
152017-09-01242194.375792065.801.010081e+085581352.42353042.451574779.657.833349e+06
162017-08-01332922.025081714.641.049504e+087229409.84544076.632323304.141.376039e+07
172017-07-01913425.956691694.171.116729e+0813718046.881357778.936627299.714.257757e+07
182017-06-012045163.597155138.871.051463e+0819635925.592639777.6612422420.218.283230e+07
192017-05-013606141.828145781.129.185035e+0720275515.853185961.7515961946.711.014605e+08
202017-04-011285599.496682161.495.363586e+079197868.291554864.426214963.684.880687e+07
212017-03-01390486.573904656.824.078967e+073397837.60317206.481319399.221.488979e+07
222017-02-01209643.872584035.903.467502e+071519446.34148158.07687697.465.929509e+06
232017-01-0139434.761781773.462.047156e+07596744.0448164.63238973.091.213749e+06
242016-12-0184350.573504367.983.546668e+071234900.0552118.96293737.201.558634e+06
252016-11-01106291.234975519.214.780625e+071473418.2082835.82512990.232.758827e+06
262016-10-01179015.234600717.786.339722e+072543813.78130484.07690912.023.641803e+06
272016-09-01210456.694642681.076.864724e+073092898.02168724.83930513.914.632818e+06
282016-08-01316467.144151326.687.610885e+074389862.79272553.951581021.508.956868e+06
292016-07-01932728.105412185.067.832954e+077384968.66761159.354088320.772.260036e+07
302016-06-012184985.335694825.137.693264e+0710859461.671728788.538004562.694.640197e+07
312016-05-012059879.805469360.605.812696e+079912801.931618361.547474421.974.777690e+07
322016-04-011034992.535253619.063.762602e+074687913.18758206.813435257.352.432917e+07
332016-03-01352013.313481194.462.952610e+071204574.20246106.75746709.076.656382e+06
342016-02-0196979.481274810.961.500135e+07449199.4136193.85109108.056.939075e+05
352016-01-01108412.711562393.952.107822e+07619042.0149670.25113284.714.828890e+05

驱虫市场汇总数据(年度汇总)

#(3)驱虫市场总的交易数据
d2=d.drop('时间',axis=1)

d['驱虫市场总']=d2.apply(lambda x:x.sum(),axis=1)
#(4)按照年份汇总数据
d['year']=d.时间.apply(lambda x:x.year)

data_sum=d.groupby('year').sum()
data_sum
电蚊香防霉防蛀灭鼠灭虫灭蟑蚊香加热器蚊香片蚊香液驱虫市场总
year
20167666572.1250023001.946.080471e+084.785285e+075905204.7127980839.471.704905e+089.179661e+08
20179377531.6862678822.188.477740e+088.635539e+0710552841.0249068587.963.300656e+081.395873e+09
20184537682.0572701365.201.137893e+091.180885e+0816836723.4751845921.533.582077e+081.760111e+09

数据可视化

#绘制驱虫市场增量趋势图d
year=list(data_sum.index)
x=range(len(year))
y=data_sum['驱虫市场总']
with plt.style.context('ggplot'):
    pl=plt.figure(figsize=(8,6))
    plt.xticks(x,year,fontsize=9,rotation=45)
    plt.xlabel('year')
    plt.ylabel('交易额')
    plt.title('驱虫市场近三年的交易趋势图')
    plt.plot(x,y)
    plt.show();

驱虫市场三年交易趋势

近三年,销售增长趋势明显,处于快速成长阶段,发展潜力巨大

#绘制各个子市场的趋势图
year=list(data_sum.index)
x=range(len(year))
with plt.style.context('ggplot'):
    pl=plt.figure(figsize=(16,12))
    plt.xticks(x,year,fontsize=9,rotation=45)
    plt.xlabel('year')
    plt.ylabel('交易额')
    plt.title('细分市场近三年的交易趋势图')
    plt.plot(x,data_sum.iloc[:,0])
    plt.plot(x,data_sum.iloc[:,1])
    plt.plot(x,data_sum.iloc[:,2])
    #数字标签
    for a,b in zip(x,data_sum.iloc[:,2]):
        plt.text(a,b-60000000,'%.0f'%b,ha='center',va='bottom')
    plt.plot(x,data_sum.iloc[:,3])
    plt.plot(x,data_sum.iloc[:,4])
    plt.plot(x,data_sum.iloc[:,5])
    plt.plot(x,data_sum.iloc[:,6])
    for a,b in zip(x,data_sum.iloc[:,6]):
        plt.text(a,b+10000000,'%.0f'%b,ha='center',va='bottom')
    plt.legend(['电蚊香', '防霉防蛀', '灭鼠灭虫', '灭蟑', '蚊香加热器', '蚊香片', '蚊香液'])
    plt.show()

细分市场图

市场的增量分析-环比增幅

#以灭鼠灭虫为例
d_y=list(data_sum.灭鼠灭虫.round(2))
data_sum
电蚊香防霉防蛀灭鼠灭虫灭蟑蚊香加热器蚊香片蚊香液驱虫市场总
year
20167666572.1250023001.946.080471e+084.785285e+075905204.7127980839.471.704905e+089.179661e+08
20179377531.6862678822.188.477740e+088.635539e+0710552841.0249068587.963.300656e+081.395873e+09
20184537682.0572701365.201.137893e+091.180885e+0816836723.4751845921.533.582077e+081.760111e+09
#18年环比增幅
(d_y[2]-d_y[1])/d_y[1]
0.3422131310110411
#17年环比增幅
(d_y[1]-d_y[0])/d_y[0]
0.3942571630219804
#绘制灭鼠杀虫市场的增量趋势图
year=list(data_sum.index)
x=range(len(year))
with plt.style.context('ggplot'):
    pl=plt.figure(figsize=(8,6))
    plt.xticks(x,year,fontsize=9,rotation=45)
    plt.xlabel('year')
    plt.ylabel('交易额')
    plt.title('细分市场近三年的交易趋势图')
    plt.bar(x,data_sum.iloc[:,2])
    plt.plot(x,data_sum.iloc[:,2],color='b',marker='o')
    plt.show()

三年交易趋势

竞争(可从市场集中度分析)

市场(行业)集中度为0.0135,整个市场并未出现品牌垄断现象

top_100 = pd.read_excel(path1+'top100品牌数据.xlsx')
top_100.head()
品牌行业排名交易指数交易增长幅度支付转化指数操作份额
0PREMISE/拜灭士1530344-0.32351521趋势分析0.035998
1科凌虫控2474937-0.19101581趋势分析0.032237
2ARS/安速3402372-0.26821448趋势分析0.027311
3思乐智43607800.2056841趋势分析0.024488
4希诺5346656-0.10851865趋势分析0.023530
top_100['份额']=top_100.交易指数/top_100.交易指数.sum()
#行业集中度=市场份额的平方和 数值越大品牌垄断越严重,最大值为1
#行业集中率是指该行业的相关市场内前N家最大的企业所占市场份额的总和。
top_100_center_ratio = np.sum(pow(top_100.份额,2))
top_100_center_ratio 
0.013546334007208918

市场集中度数值为 0.0135,整个市场并未出现品牌垄断的现象,竞争较为激烈

细分市场的分析(灭鼠杀虫市场)

市场规模分析

数据处理

d1=pd.read_excel("灭鼠杀虫剂细分市场/螨.xlsx")
d2=pd.read_excel("灭鼠杀虫剂细分市场/灭鼠.xlsx")
d3=pd.read_excel("灭鼠杀虫剂细分市场/杀虫.xlsx")
d4=pd.read_excel("灭鼠杀虫剂细分市场/虱子.xlsx")
d5=pd.read_excel("灭鼠杀虫剂细分市场/蟑螂.xlsx")
a1=d1.loc[:,['类别','预估销售额']]
a2=d2.loc[:,['类别','预估销售额']]
a3=d3.loc[:,['类别','预估销售额']]
a4=d4.loc[:,['类别','预估销售额']]
a5=d5.loc[:,['类别','预估销售额']]
data=pd.concat([a1,a2,a3,a4,a5])
data2=data.groupby('类别').sum()
data2['相对份额']=data2/data2.sum()
data2
预估销售额相对份额
类别
杀虫8207628.100.121901
灭鼠25686011.990.381491
4512886.010.067026
10886752.880.161691
蟑螂18037223.680.267891

市场规模绝对份额分析

x=list(data2.index)
y=data2.iloc[:,0]
pl=plt.figure(figsize=(16,12))#宽为8inch,高为6inch
plt.bar(x,y,width=0.618)
plt.xlabel('一级市场')
plt.ylabel('绝对市场规模')
#设置数字标签
for a,b in zip(x,y):
    plt.text(a,b+70000,'%.0f'%b,ha='center',va='bottom',fontsize=8)
plt.title('灭鼠杀虫市场规模')
plt.show()

杀虫市场规模

市场相对份额分析

labels=list(data2.index)
size=data2['相对份额'].values
pl=plt.figure(figsize=(8,6))
plt.pie(size,labels=labels,autopct='%.1f%%',shadow=False,startangle=100)
plt.axis('equal')#设置饼图使得饼图为圆形
plt.title('杀虫市场相对份额')
plt.show()

杀虫相对份额

价格细分分析

以灭鼠为例进行价格细分分析

d2.columns
Index(['类别', '时间', '页码', '排名', '链接', '主图链接', '主图视频链接', '宝贝标题', '宝贝ID',
       '销量(人数)', '售价', '预估销售额', '运费', '评价人数', '收藏人数', '下架时间', '类目', '地域', '旺旺',
       '店铺类型', '信誉', 'DSR_物流分', 'DSR_物流行业对比', 'DSR_描述分', 'DSR_描述行业对比',
       'DSR_服务分', 'DSR_服务行业对比', '适用对象', '品牌', '型号', '净含量', '包装体积', '物理形态',
       '毛重', '产地', '省份', '地市', '产品名称', '药品登记号', '材质', 'Unnamed: 40', '电猫',
       '电子捕鼠器', '产品材质', '使用对象', '用途', '规格', '智捕型号', '电池容量', '供电电压', '产品尺寸',
       '包装尺寸', '功能', '颜色分类', '产品', '牙刷规格', '是否量贩装', '材料', '重量', '洞口', '是否定制',
       '长宽高', '三个装', '工艺', '白色双门', '白色单门', '数量', '捕鼠', '灭鼠', '适用范围', '香味',
       '包装种类', '体积(ml)', '货号', '重量(g)', '适用空间', '产品PH值', '输出电流', '输出电压',
       '输出功率', '机器智能功能', '双猫三用', '大号', '小号', '黑色特大号', '黄色特大号', '洞口尺寸', '样式',
       '洞口内径尺寸'],
      dtype='object')
数据处理(删除无用字段)
#删除对数据无关的字段
d2.drop(['时间','页码', '排名', '链接', '主图链接', '主图视频链接','宝贝标题','下架时间','旺旺'],axis=1,inplace=True)
#删除缺失值大于99%以上的字段
d2.shape[0]*0.99
1507.77

删除缺失值大于99%以上的字段

#删除缺失值大于99%以上的字段
for i in d2.columns:
    if d2[i].isnull().sum()>d2.shape[0]*0.99:
        del d2[i]
d2.类别.value_counts()
灭鼠    1523
Name: 类别, dtype: int64

删除仅包含一种信息的字段

#删除仅包含一种信息的字段
for i in d2.columns:
    if len(d2[i].value_counts())<=1:
        del d2[i]
d2.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1523 entries, 0 to 1522
Data columns (total 15 columns):
宝贝ID      1523 non-null int64
销量(人数)    1523 non-null int64
售价        1523 non-null float64
预估销售额     1504 non-null float64
运费        1523 non-null float64
评价人数      1421 non-null float64
收藏人数      1523 non-null int64
地域        812 non-null object
店铺类型      1523 non-null object
适用对象      1334 non-null object
品牌        1311 non-null object
型号        987 non-null object
净含量       468 non-null object
物理形态      1216 non-null object
产品名称      97 non-null object
dtypes: float64(4), int64(3), object(8)
memory usage: 178.6+ KB
价格细分价格分段
#进行市场的价格细分
d2.describe()
宝贝ID销量(人数)售价预估销售额运费评价人数收藏人数
count1.523000e+031523.0000001523.0000001.504000e+031523.0000001421.0000001523.000000
mean4.657358e+11558.90085449.0189101.707847e+040.920886891.8655881202.402495
std2.034076e+115657.13849369.7620571.172321e+052.8019025722.9091705864.130330
min1.868822e+090.0000000.0100001.000000e-020.0000000.0000000.000000
25%5.286903e+113.00000015.8000007.939500e+010.0000005.0000006.000000
50%5.605955e+1110.00000027.7000002.985000e+020.00000026.00000035.000000
75%5.734868e+1143.50000052.6000001.924125e+030.000000132.000000245.000000
max5.823559e+11143037.000000498.0000002.672898e+0660.000000120828.00000097033.000000
#价格0-498 均值49
databins=[0,50,100,150,200,250,300,1000]
datalabels=['0-50','51-100','101-150','151-200','201-250','251-300','300以上']
d2['价格区间']=pd.cut(d2['售价'],bins=databins,labels=datalabels,include_lowest=True)
d2
宝贝ID销量(人数)售价预估销售额运费评价人数收藏人数地域店铺类型适用对象品牌型号净含量物理形态产品名称价格区间
0566054780243997626.80267356.80.011901.011596广东 韶关天猫老鼠优璇福MT007NaN胶水NaN0-50
1566054780243997626.80267356.80.0NaN11596广东 深圳天猫老鼠优璇福MT007NaN胶水NaN0-50
257211544899699459.9098455.50.026442.03569NaN淘宝老鼠创驰21/32NaN固体NaN0-50
3398684083229929.902960.10.020.0352河南 南阳天猫老鼠云杀粘鼠板NaN固体云杀 粘鼠板0-50
45202828972209939.903950.10.0559.01250NaN淘宝老鼠得硕NaNg固体NaN0-50
...................................................
1518573118678210022.00NaN0.03.00NaN淘宝老鼠达豪A1中外型NaNNaNNaN0-50
1519550586926422038.00NaN8.00.01NaN淘宝老鼠易捕NaN1kg固体NaN0-50
1520520862079013064.00NaN0.00.02广东 广州淘宝NaN九行NaNNaN粉状NaN51-100
1521550586926422038.00NaN8.00.01NaN淘宝老鼠易捕NaN1kg固体NaN0-50
1522579381539073095.04NaN0.00.00NaN淘宝NaN自主品牌NaNNaNNaN51-100

1523 rows × 16 columns

#不同价格区间的销售额\销售额占比\销量\销量占比\商品数\商品数占比\一个商品分配的销售额
d2.columns
Index(['宝贝ID', '销量(人数)', '售价', '预估销售额', '运费', '评价人数', '收藏人数', '地域', '店铺类型',
       '适用对象', '品牌', '型号', '净含量', '物理形态', '产品名称', '价格区间'],
      dtype='object')

去除重复记录(根据数据,根据业务,一个宝贝ID只有一条记录)

#方法一:依据价格段-宝贝ID进行分组计数
test=d2.groupby(by=['价格区间','宝贝ID']).count().dropna()
test=test.reset_index()
test=test.groupby(by='价格区间').count()
#方法二:按照索引合并,去除空值
#方法三:
d3=d2.iloc[list(d2.宝贝ID.drop_duplicates().index),:]
d3.宝贝ID.duplicated().sum()
0
d3.reset_index(inplace=True)
del d3['index']
d3.groupby('价格区间').宝贝ID.count()
价格区间
0-50       854
51-100     172
101-150     46
151-200     28
201-250      7
251-300      9
300以上       18
Name: 宝贝ID, dtype: int64
#方法四
d2.groupby('价格区间').宝贝ID.nunique()
价格区间
0-50       854
51-100     172
101-150     46
151-200     28
201-250      7
251-300      9
300以上       18
Name: 宝贝ID, dtype: int64
bins1=d3.groupby('价格区间').sum()
bins1.columns
Index(['宝贝ID', '销量(人数)', '售价', '预估销售额', '运费', '评价人数', '收藏人数'], dtype='object')
#提取销量和销售额字段
bins1=bins1.loc[:,[ '销量(人数)', '预估销售额']]
round(bins1.预估销售额/bins1.预估销售额.sum(),2)
#bins1.apply(lambda x:x.sum())
价格区间
0-50       0.60
51-100     0.11
101-150    0.10
151-200    0.03
201-250    0.13
251-300    0.01
300以上      0.02
Name: 预估销售额, dtype: float64
bins1['销售额占比']=round(bins1.预估销售额/bins1.预估销售额.sum(),2)

bins1['销量占比']=round(bins1['销量(人数)']/bins1['销量(人数)'].sum(),2)

bins1['商品数']=d3.groupby('价格区间').宝贝ID.count()

bins1['商品数占比']=round(bins1.商品数/bins1.商品数.sum(),2)

bins1['一个商品平分配的销售额']=round(bins1.预估销售额/bins1.商品数,2)
#给列字段排序
bins1=bins1.loc[:,[ '预估销售额', '销售额占比', '销量(人数)','销量占比', '商品数', '商品数占比', '一个商品平分配的销售额']]
bins1
预估销售额销售额占比销量(人数)销量占比商品数商品数占比一个商品平分配的销售额
价格区间
0-5012460167.800.606609330.918540.7514590.36
51-1002369762.530.11327630.051720.1513777.69
101-1502096910.290.10158630.02460.0445585.01
151-200551853.000.0331020.00280.0219709.04
201-2502740190.000.13125400.0270.01391455.71
251-300237740.000.018080.0090.0126415.56
300以上325470.000.026770.00180.0218081.67
#按照商品平均分配的销售额进行排序,降序
bins1.sort_values(by='一个商品平分配的销售额',ascending=False)
预估销售额销售额占比销量(人数)销量占比商品数商品数占比一个商品平分配的销售额
价格区间
201-2502740190.000.13125400.0270.01391455.71
101-1502096910.290.10158630.02460.0445585.01
251-300237740.000.018080.0090.0126415.56
151-200551853.000.0331020.00280.0219709.04
300以上325470.000.026770.00180.0218081.67
0-5012460167.800.606609330.918540.7514590.36
51-1002369762.530.11327630.051720.1513777.69

根据以上分析,选取价格区间0-50:销售额占比最大,商品数占比最大,销量占比最大

价格区间201-250:商品均分的销售额最大,商品数占比最小,市场竞争压力小,可作为利润商品

价格区间101-150:商品均分的销售额较大,商品数占比较小,市场竞争压力小,可作为发展商品

细分价格段0-50
#分箱
bins_50=d3[d3.售价<=50]
databins=[0,10,20,30,40,50]
datalabels=['0-10','11-20','21-30','31-40','41-50']
bins_50['价格区间']=pd.cut(bins_50['售价'],bins=databins,labels=datalabels,include_lowest=True)
D:\Anaconda3\lib\site-packages\ipykernel_launcher.py:5: 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 instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  """
#定义一个函数,对分箱后的数据生成字段:销售额,销售额占比,销量,销量占比
def price_mark(data):
    #1\通过对价格区间的分组求和,得到销售额,销售额占比,销量,销量占比
    bins1=data.groupby('价格区间').sum()
    bins1['销售额占比']=round(bins1.预估销售额/bins1.预估销售额.sum(),2)
    bins1['销量占比']=round(bins1['销量(人数)']/bins1['销量(人数)'].sum(),2)
    bins1=bins1.loc[:,[ '预估销售额', '销售额占比', '销量(人数)','销量占比']]
    #得到商品数,商品数占比,宝贝分配量
    bins1['商品数']=data.groupby('价格区间').宝贝ID.count()
    bins1['商品数占比']=round(bins1.商品数/bins1.商品数.sum(),2)
    bins1['一个商品平分配的销售额']=round(bins1.预估销售额/bins1.商品数,2)
    res=bins1.sort_values(by='一个商品平分配的销售额',ascending=False)
    return res
price_mark(bins_50)
预估销售额销售额占比销量(人数)销量占比商品数商品数占比一个商品平分配的销售额
价格区间
11-207587750.690.614924060.752720.3227896.14
41-50675164.290.05151430.02400.0516879.11
21-303319904.200.271186820.182780.3311942.10
31-40747760.710.06196290.03980.117630.21
0-10129587.910.01150730.021660.19780.65
细分价格段101-150
#分箱101-150
bins_150=d3[(d3.售价>100)&(d3.售价<=150)]

databins=[100,110,120,130,140,150]
datalabels=['100-110','111-120','121-130','131-140','141-150']
bins_150['价格区间']=pd.cut(bins_150['售价'],bins=databins,labels=datalabels,include_lowest=True)
D:\Anaconda3\lib\site-packages\ipykernel_launcher.py:6: 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 instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
price_mark(bins_150)
预估销售额销售额占比销量(人数)销量占比商品数商品数占比一个商品平分配的销售额
价格区间
131-1401406924.040.67101660.64130.28108224.93
121-130333625.000.1626050.16100.2233362.50
100-11080405.430.047430.0540.0920101.36
111-120267403.820.1322900.14160.3516712.74
141-1508552.000.00590.0030.072850.67
细分价格段 201-250

市场的属性分析

价格区间 130-140

#属性特征分析
market_select=d3[(d3.售价>130)&(d3.售价<=140)]
market_select.groupby('店铺类型').sum()
宝贝ID销量(人数)售价预估销售额运费评价人数收藏人数
店铺类型
天猫4554792724863100851106.001395771.000.07675.024881
淘宝278748367541681684.7611153.040.0127.0515
market_select.columns
Index(['宝贝ID', '销量(人数)', '售价', '预估销售额', '运费', '评价人数', '收藏人数', '地域', '店铺类型',
       '适用对象', '品牌', '型号', '净含量', '物理形态', '产品名称', '价格区间'],
      dtype='object')
market_select.groupby('适用对象').sum()
宝贝ID销量(人数)售价预估销售额运费评价人数收藏人数
适用对象
老鼠6761304039980101641650.761406644.040.07802.025395
market_select.groupby('型号').sum()
宝贝ID销量(人数)售价预估销售额运费评价人数收藏人数
型号
55205707561392714130.76523.040.01.04
6波段驱鼠器5393265504837139.00973.000.0880.01452
JF-8075754358457114034139.00560726.000.02556.04061
LT-qs01581237209186227138.0031326.000.084.0269
SK300 20185573210242225119138.00706422.000.00.015073
che15766947797754138.00552.000.01.09
xueji-90105684226376147138.00966.000.03592.03054
菱01580312445254617138.0085146.000.0316.0611
虎猫A155709775040336138.004968.000.051.0202
车载驱鼠57604223261870138.009660.000.0246.0352
market_select.groupby('物理形态').sum()
宝贝ID销量(人数)售价预估销售额运费评价人数收藏人数
物理形态
固体508923277525760861235.76839846.040.05166.021022

商品分析

销售分析

类目、适用对象对比

拜耳

baier = pd.read_excel('竞争数据/商品销售数据/拜耳近30天销售数据.xlsx')
baier.columns
Index(['序号', '店铺名称', '商品名称', '商品ID', '主图链接', '商品链接', '商品原价', '商品售价', '30天销售量',
       '总销量', '类目', '物理形态', '型号', '净含量', '使用对象', '销售额'],
      dtype='object')
baier.drop(['店铺名称','主图链接','商品链接'],axis=1,inplace=True)
baier.sort_values(by='销售额',ascending=False,inplace=True)
baier['销售额占比']=baier.销售额/baier.销售额.sum()
baier.head()
序号商品名称商品ID商品原价商品售价30天销售量总销量类目物理形态型号净含量使用对象销售额销售额占比
01德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端527604730327109.039.9435423023212灭鼠/杀虫剂啫喱5g5g蟑螂1737325.80.649877
12德国拜耳进口蚂蚁药拜灭易灭蚁饵剂除杀蚂蚁杀虫剂家用室内全窝端535731556857199.059.94860285440灭鼠/杀虫剂啫喱拜灭易12g蚂蚁291114.00.108896
56德国拜耳拜灭士蟑螂药一窝端进口全窝端家用灭除杀蟑胶饵5g包邮532112495808109.039.9334215078灭鼠/杀虫剂啫喱杀蟑胶饵5g*15g蟑螂133345.80.049880
34德国拜耳拜灭士5g+除敌5ml*4支进口蟑螂药家用全窝端杀蟑螂套装569753894890198.079.9148719602灭鼠/杀虫剂啫喱拜灭士5g-除敌5g+5ml*4蟑螂118811.30.044443
67进口蟑螂药德国拜耳拜灭士杀蟑胶饵蟑螂克星全窝端家用灭蟑屋12g526068880042199.079.91320109234灭鼠/杀虫剂啫喱杀蟑胶饵12g12g蟑螂105468.00.039452
baier.groupby('类目').sum()
序号商品ID商品原价商品售价30天销售量总销量销售额销售额占比
类目
灭鼠/杀虫剂12082861087920662623.01195.05918537204112673315.21.0

建议点 :拜耳旗舰店只有一个灭鼠/杀虫剂类目,这里可以考虑可以尝试布局其他类目

baier.groupby('使用对象').sum()
序号商品ID商品原价商品售价30天销售量总销量销售额销售额占比
使用对象
上门服务14578090143145199.099.0743087326.00.002740
杀虫剂131074833731154208.079.82593187382103460.70.038701
白蚁3530229854741199.089.98387051675336.20.028181
蚂蚁171106313745903448.0173.94989286942305820.00.114397
蟑螂7349966413171231569.0752.45069131752632181372.30.815980

分析结论:使用对象占比最大的是蟑螂,这也是拜耳的主要战场,其次是蚂蚁,占比81%,拜耳在其他方面也有布局,但是占比不足10%

科凌虫控

klck = pd.read_excel('竞争数据/商品销售数据/科凌虫控旗舰店近30天销售数据.xlsx')
klck.drop(['店铺名称','主图链接','商品链接'],axis=1,inplace=True)
klck.sort_values(by='30天销售额',ascending=False,inplace=True)
klck['销售额占比']=klck['30天销售额']/klck['30天销售额'].sum()
klck.head()
序号商品名称商品ID商品原价商品售价30天销售量总销量类目适用对象30天销售额销售额占比
01蟑螂药一窝端蟑螂屋胶饵灭蟑螂无毒厨房家用强力杀蟑螂克星全窝端54141825586749.916.8766083175991灭鼠/杀虫剂蟑螂1287014.40.336935
89除螨虫家用喷剂床上去防螨祛螨虫神器喷雾剂包贴杀虫剂免洗非杀菌56509582043299.030.835788144672灭鼠/杀虫剂1102270.40.288570
56老鼠贴超强力粘鼠板灭鼠神器捕鼠魔毯yao颗粒老鼠胶家用药捕鼠器55384816417449.929.817610172851灭鼠/杀虫剂524778.00.137385
910去儿童头虱除阴虱净喷剂百部酊虱卵用虱子药成人一扫光净虱灵喷雾55933582767865.025.1739580838灭鼠/杀虫剂185614.50.048593
12蟑螂屋强力灭蟑清蟑螂贴家用无毒粉杀蟑螂药胶饵捕捉器克星全窝端52872214492739.019.85852174989灭鼠/杀虫剂蟑螂115869.60.030334
klck.groupby('类目').sum()
序号商品ID商品原价商品售价30天销售量总销量30天销售额销售额占比
类目
其它园艺用品1555269531577639.926.08804166722880.00.005990
灭鼠/杀虫剂332131094393262491728.4817.216383344162283734597.00.977702
灭鼠笼/捕鼠器31111246542599788.942.723154676062293.00.016308

科凌虫控的类目包括三类,但是其他两类占比都非常小,产品主要集中再灭鼠杀虫剂类目,销售占比为97.8%,这里跟拜耳形成竞争

安速

ansu = pd.read_excel('竞争数据/商品销售数据/安速家居近30天销售数据.xlsx')
ansu.describe()
序号商品ID商品原价商品售价30天销售量总销量30天销售额
count45.0000004.500000e+0145.00000045.00000045.00000045.00000045.000000
mean23.0000005.482012e+1164.44444445.044444267.82222214435.15555612070.104444
std13.1339261.841185e+1031.84586916.336790608.50637939026.01169330574.205377
min1.0000005.269939e+1120.70000020.7000000.00000015.0000000.000000
25%12.0000005.270904e+1142.00000032.90000021.000000833.000000799.000000
50%23.0000005.635548e+1158.00000045.00000045.0000002711.0000002013.000000
75%34.0000005.648817e+1179.80000049.900000221.00000010498.0000009945.000000
max45.0000005.675028e+11168.00000089.9000003132.000000236321.000000156286.800000
#删除对分析无用的字段
ansu.drop(['店铺名称','主图链接','商品链接'],axis=1,inplace=True)
#按照销售额进行排序
ansu.sort_values(by='30天销售额',ascending=False,inplace=True)
#计算销售额占比字段
ansu['销售额占比']=ansu['30天销售额']/ansu['30天销售额'].sum()
ansu.groupby('类目').sum()
序号商品ID商品原价商品售价30天销售量总销量30天销售额销售额占比
类目
漱口水501130081741597208.0149.812727109137.30.016823
灭鼠/杀虫剂572158535518830061650.31196.711082564638494539.30.910494
空气芳香剂661620098374783196.8141.911870654668.60.008595
空调清洁剂541056404562798122.9113.01513293910420.90.019186
蚊香液2063878968356851565.0344.65734200024343.60.044819
蚊香片871129949034942157.081.0123045.00.000083

安速的产品类目较为丰富但是主要还是集中在灭鼠杀虫剂这一类目,其他的占比都较小

ansu.groupby('适用对象').sum()
序号商品ID商品原价商品售价30天销售量总销量30天销售额销售额占比
适用对象
杀虫剂2234366320607112435.7349.67551941634687.50.063863
漱口水501130081741597208.0149.812727109137.30.016823
空气芳香剂661620098374783196.8141.911870654668.60.008595
空调清洁剂541056404562798122.9113.01513293910420.90.019186
蚂蚁2456362813371529.022.2538331176.60.002166
2935008917391793722.0425.65744223024388.60.044902
956499356525248.024.85151655112772.00.023514
982820972369214399.0242.6330219587164381.30.302642
蟑螂1746446879299188654.0481.36178500064268585.30.494491
44109075790852584.676.2279818712936.60.023818

从使用对象来看,安速的产品主要针对于蟑螂、螨、杀虫剂、蚊,占比达到90%,但是主要还是集中在蟑螂和螨这两类产品

交易数据分析(商品结构分析)

时间跨度-7\8\9\10\11 6个月的数据

拜耳

baier2=pd.read_excel("竞争数据/商品交易数据/拜耳全店商品交易数据.xlsx")
#按照商品进行聚合,分析各个商品的增长幅度、交易额
gro_baier=baier2.groupby('商品').mean()
gro_baier
行业排名交易指数交易增长幅度支付转化指数交易金额
商品
17年德国拜耳进口蚂蚁药拜灭易灭蚁饵剂粉除杀蚂蚁杀虫剂全窝端377.00000028090.000000-0.2476001063.0000004.234055e+04
德国原装进口拜耳蟑螂药全窝端拜灭士5g+12g杀蟑胶饵剂粉屋捕捉器261.00000036095.666667-0.120333796.3333336.579239e+04
德国拜耳 除敌跳蚤杀虫剂家用灭蟑螂药虱子杀潮虫臭虫除虫剂喷雾79.80000080064.000000-0.221080955.6000002.789561e+05
德国拜耳丁香医生限量款拜灭士加量家用蟑螂全窝端蟑螂药3支装385.00000021568.0000001.279300751.0000002.674275e+04
德国拜耳上门除灭鼠灭白蚁蟑螂蚊子跳蚤苍蝇上海地区灭虫按件拍下357.00000022585.0000002.439300266.0000002.896928e+04
德国拜耳拜灭士5g+拜灭易12g进口杀蟑螂蚂蚁药蟑螂克星家用全窝端327.60000030385.8000000.048340773.8000005.024512e+04
德国拜耳拜灭士5g+除敌5ml*4支进口蟑螂药家用全窝端杀蟑螂套装130.80000078797.8000001.311740905.4000002.969905e+05
德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端1.000000527486.600000-0.1213601469.0000008.020770e+06
德国拜耳拜灭士蟑螂药一窝端进口全窝端家用灭除杀蟑胶饵5g包邮64.00000074747.00000029.2606001514.0000002.363863e+05
德国拜耳拜灭易12g+除敌5ml*4支 进口蚂蚁药全窝端家用杀虫剂组合352.50000028992.0000000.450550715.5000004.478301e+04
德国拜耳拜灭易灭蚁饵剂粉除杀防蚂蚁药杀虫剂全窝端家用室内花园65.40000085062.800000-0.0273001104.8000003.040252e+05
德国拜耳拜灭易进口蚂蚁药一窝端灭蚁饵剂清除蚂蚁粉家用全窝端342.00000024022.0000007.8670001335.0000003.224639e+04
德国拜耳白蚁药杀虫剂全窝端家用除杀防治灭飞蚂蚁特密得预防装修223.00000032670.0000005.0238001199.0000005.511341e+04
德国拜耳蟑螂药拜灭士杀蟑胶饵蟑螂克星全窝端家用灭蟑加量装12g378.00000024903.5000001.069050738.0000003.434953e+04
德国拜耳跳蚤杀虫剂家用潮虫灭蛾蚋虱子臭虫药除蟑螂5ml*4250.00000035353.2000000.007220830.8000006.361189e+04
德国拜耳进口白蚁药除灭防杀白蚁杀虫剂全窝端家用特傚触杀型粉药132.00000055552.500000-0.1344251107.5000001.410424e+05
德国拜耳进口蚂蚁药家用拜灭易灭蚁饵剂杀蚂蚁杀虫剂室内全窝端蚁347.40000028069.200000-0.0471401366.2000004.299972e+04
德国拜耳进口蚂蚁药拜灭易灭蚁饵剂除杀蚂蚁无毒家用室内全窝端376.00000029254.0000000.3649501151.0000004.670049e+04
德国拜耳进口蚂蚁药拜灭易灭蚁饵剂除杀蚂蚁杀虫剂家用室内全窝端16.000000182361.400000-0.0562401234.4000001.226098e+06
德国拜耳除敌杀虫剂灭蚊蟑螂蚂蚁药跳蚤苍蝇臭虫除螨虱子家用215.60000039651.600000-0.075440899.4000007.871654e+04
德国拜耳除敌杀虫剂灭蟑螂药跳蚤苍蝇臭虫除螨虱子喷雾5ml*8106.60000066301.0000000.325580805.4000001.966399e+05
德国进口拜耳蟑螂药拜灭士杀灭除蟑胶饵剂粉屋家用全窝端12g*2盒498.00000022421.0000000.586000645.0000002.860501e+04
德国进口拜耳蟑螂药拜灭士杀蟑胶饵5g两盒套装全窝端杀灭蟑螂剂屋381.80000026109.0000000.147040695.4000003.787524e+04
必抢 德国进口拜耳蟑螂克星家用小强全窝端蟑螂药杀蟑胶饵灭蟑17g211.50000051546.750000-0.2921001131.0000001.404225e+05
拜灭士蟑螂药蟑螂克星家用无毒强力灭蟑清德国拜耳杀蟑饵剂全窝端334.33333329437.3333331.7972671148.6666674.667749e+04
拜耳拜灭士 蟑螂药家用全窝端 强力灭除厨房蟑螂屋克星杀德国进口196.00000051934.3333331.4540671735.6666671.379675e+05
拜耳灭蚂蚁药家用一窝端室内室外用杀小黄红蚂蚁药神器胶饵拜灭易437.00000019549.0000007.4427001612.0000002.255362e+04
拜耳蟑螂药一窝端家用拜灭士杀蟑胶饵德国小强药粉灭蟑螂厨房克星80.66666773133.6666670.0354001749.3333332.317908e+05
电子猫超声波驱鼠器家用大功率灭鼠防鼠赶老鼠夹药捕鼠干扰粘鼠板369.00000027594.0000001030.000000345.0000004.104603e+04
蟑螂药30克拜灭士德国拜耳进口安全灭蟑螂杀蟑胶饵颗粒剂传染传毒297.75000032404.000000-0.1072001299.2500005.527037e+04
蟑螂药一窝端德国拜耳拜灭士除蟑灭杀蟑螂克星全窝端家用杀蟑胶33.400000123549.8000000.0389001344.4000005.953845e+05
蟑螂药德国拜耳拜灭士强力除杀蟑螂克星胶饵屋家用捕捉器贴全窝端91.40000073649.8000000.0116801312.0000002.397389e+05
蟑螂药拜耳拜灭士杀蟑胶饵强力灭蟑清贴捕捉器蟑螂克星家用全窝端452.50000021869.5000000.5381001337.0000002.769758e+04
蟑螂药进口德国拜耳拜灭士家用除杀蟑螂屋胶饵捕捉器强力清全窝端336.50000030918.5000001.4653501505.0000005.053967e+04
进口拜耳蚂蚁药家用花园灭蚁饵剂拜灭易除杀蚂蚁杀虫剂室内全窝端433.66666725558.000000-0.0770331133.3333333.616248e+04
进口蚂蚁药德国拜耳拜灭易杀蚁胶饵灭蚁饵剂红黑黄蚂蚁全窝端家用457.00000024561.0000000.7422001086.0000003.351483e+04
进口蟑螂药 德国拜耳拜灭士家用杀蟑螂胶饵捕捉器蟑螂屋粉全窝端169.60000049018.200000-0.1482401362.6000001.165273e+05
进口蟑螂药 德国拜耳拜灭士杀蟑胶饵灭蟑螂屋贴捕捉器全窝端家用360.25000029099.5000000.0492501250.7500004.642282e+04
进口蟑螂药 德国拜耳拜灭士杀蟑螂胶饵剂33克灭蟑螂药全窝端家用363.00000029707.0000000.331367904.6666674.796111e+04
进口蟑螂药一窝端德国拜耳拜灭士强力杀蟑胶饵蟑螂屋克星家用全窝5.600000289941.200000-0.0346801177.8000002.723462e+06
进口蟑螂药一窝端德国拜耳拜灭士杀蟑胶饵诱防蟑螂屋全窝端5+12g191.00000036542.00000031.2185001223.0000006.704314e+04
进口蟑螂药德国拜耳拜灭士杀蟑胶饵蟑螂克星全窝端家用灭蟑屋12g69.40000087755.400000-0.127140945.2000003.301363e+05
进口蟑螂药德国拜耳拜灭士灭杀蟑胶饵剂粉屋克星全窝端12g家用25.600000137754.2000000.0709601160.2000007.179599e+05
预售德国拜耳进口蟑螂药进口蚂蚁药组合装5g+12g364.50000028245.0000000.218150768.0000004.277304e+04
#交易金额占比
gro_baier['交易金额占比']=gro_baier.交易金额/gro_baier.交易金额.sum()
#结果
res=gro_baier.loc[:,['交易增长幅度','交易金额占比','交易金额']]
res.describe()
交易增长幅度交易金额占比交易金额
count44.00000044.0000004.400000e+01
mean25.5399330.0227273.893421e+05
std155.0838250.0734911.258984e+06
min-0.2921000.0013172.255362e+04
25%-0.0610400.0024534.201692e+04
50%0.1090000.0032225.519189e+04
75%1.2874100.0135982.329396e+05
max1030.0000000.4682018.020770e+06

增长幅度里有个1030的异常值,需要探索下原因

res[res.交易增长幅度>10]
交易增长幅度交易金额占比交易金额
商品
德国拜耳拜灭士蟑螂药一窝端进口全窝端家用灭除杀蟑胶饵5g包邮29.26060.013799236386.32
电子猫超声波驱鼠器家用大功率灭鼠防鼠赶老鼠夹药捕鼠干扰粘鼠板1030.00000.00239641046.03
进口蟑螂药一窝端德国拜耳拜灭士杀蟑胶饵诱防蟑螂屋全窝端5+12g31.21850.00391467043.14
res[res.交易增长幅度==1030]
交易增长幅度交易金额占比交易金额
商品
电子猫超声波驱鼠器家用大功率灭鼠防鼠赶老鼠夹药捕鼠干扰粘鼠板1030.00.00239641046.03
baier2[baier2.商品=='电子猫超声波驱鼠器家用大功率灭鼠防鼠赶老鼠夹药捕鼠干扰粘鼠板']
品牌时间商品行业排名交易指数交易增长幅度支付转化指数操作交易金额
81拜耳2018-09-01电子猫超声波驱鼠器家用大功率灭鼠防鼠赶老鼠夹药捕鼠干扰粘鼠板369275941030.0345趋势分析41046.03

该商品只有9月份的数据,应该是9月份新上架的商品,所以增长幅度较大,可以将该条数据去除在进行下面的分析

res=res[res.交易增长幅度<1000]
探索明星产品
res.describe()
交易增长幅度交易金额占比交易金额
count43.00000043.0000004.300000e+01
mean2.1803960.0232003.974420e+05
std6.5263990.0742931.272723e+06
min-0.2921000.0013172.255362e+04
25%-0.0658400.0024844.255680e+04
50%0.0709600.0032265.527037e+04
75%1.1741750.0136652.340885e+05
max31.2185000.4682018.020770e+06
#销售额占比高,交易增幅高的明星产品
res.where((res.交易增长幅度>res.交易增长幅度.mean())&(res.交易金额占比>res.交易金额占比.mean())).dropna()
交易增长幅度交易金额占比交易金额
商品
销售额占比低,交易增幅高的潜力产品
res.where((res.交易增长幅度>res.交易增长幅度.mean())&(res.交易金额占比<res.交易金额占比.mean())).dropna()
交易增长幅度交易金额占比交易金额
商品
德国拜耳上门除灭鼠灭白蚁蟑螂蚊子跳蚤苍蝇上海地区灭虫按件拍下2.43930.00169128969.28
德国拜耳拜灭士蟑螂药一窝端进口全窝端家用灭除杀蟑胶饵5g包邮29.26060.013799236386.32
德国拜耳拜灭易进口蚂蚁药一窝端灭蚁饵剂清除蚂蚁粉家用全窝端7.86700.00188232246.39
德国拜耳白蚁药杀虫剂全窝端家用除杀防治灭飞蚂蚁特密得预防装修5.02380.00321755113.41
拜耳灭蚂蚁药家用一窝端室内室外用杀小黄红蚂蚁药神器胶饵拜灭易7.44270.00131722553.62
进口蟑螂药一窝端德国拜耳拜灭士杀蟑胶饵诱防蟑螂屋全窝端5+12g31.21850.00391467043.14
销售额占比高,交易增幅低的老爆款产品
#销售额占比高,交易增幅低的老爆款产品
res.where((res.交易增长幅度<res.交易增长幅度.mean())&(res.交易金额占比>res.交易金额占比.mean())).dropna()
交易增长幅度交易金额占比交易金额
商品
德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端-0.121360.4682018020770.194
德国拜耳进口蚂蚁药拜灭易灭蚁饵剂除杀蚂蚁杀虫剂家用室内全窝端-0.056240.0715721226097.684
蟑螂药一窝端德国拜耳拜灭士除蟑灭杀蟑螂克星全窝端家用杀蟑胶0.038900.034755595384.526
进口蟑螂药一窝端德国拜耳拜灭士强力杀蟑胶饵蟑螂屋克星家用全窝-0.034680.1589782723461.574
进口蟑螂药德国拜耳拜灭士灭杀蟑胶饵剂粉屋克星全窝端12g家用0.070960.041910717959.908

拜耳没有销售额高,且增幅大的明星产品,产品结构有断层,需要从潜力产品中挑选并打造一些这样基因的产品

科林虫控

安速

决策

流量结构

舆论分析(店铺产品评论文本分析)

拜耳评论舆情数据文本分析

goods_baier=pd.read_excel("竞争数据/评论舆情数据/德国拜耳.xlsx")
pd.set_option('display.max_colwidth',500)
goods_baier.shape #(1400, 5)
(1400, 5)
goods_baier
产品名称链接评论页码评论评论日期
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盆友推荐的,说特别好用,效果杠杠的,看双十一做活动,就买啦,效果应该不错吧,不过尸体都是家里不怕蟑螂的人处理的,所以我也不是很清楚&hellip;可以认真考虑家里常备啦,但是不太敢一次买很多,怕放不好变质了。还送了沉甸甸的一大包湿巾,很棒,可以用来给蟑螂尸体的地方消毒。2018-11-25 03:07:25
4德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端https://detail.tmall.com/item.htm?id=5276047303270我是买到假货吗?那么贵的蟑螂药居然还有,还是蟑螂已经百毒不侵了?2018-11-26 07:49:43
..................
1395德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端https://detail.tmall.com/item.htm?id=52760473032769此用户没有填写评论!2018-10-26 15:18:29
1396德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端https://detail.tmall.com/item.htm?id=52760473032769有点贵,已经用了,期待效果2018-11-21 20:27:43
1397德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端https://detail.tmall.com/item.htm?id=52760473032769物流挺快的客服也很贴心好评2018-11-26 11:56:28
1398德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端https://detail.tmall.com/item.htm?id=52760473032769看起来不错,暂时没发现蟑螂2018-11-18 13:03:36
1399德国拜耳拜灭士蟑螂药一窝端杀蟑胶饵灭蟑螂屋无毒克星家用全窝端https://detail.tmall.com/item.htm?id=52760473032769买二送一,期待效果呀,这个是同事推荐并且指定的产品,希望好用以后就再来吧&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hel...2018-11-19 09:43:55

1400 rows × 5 columns

这里主要有以下几种情况需要做处理

文本的预处理

  • 此用户没有填写评论! (删除)
  • 我觉得很好我觉得很好我觉得很好(机械词)----
  • hellip----(停留词)
  • 直接复制评论—(去重)
#1\此用户没有填写评论!---删除
res1=goods_baier[goods_baier.评论!='此用户没有填写评论!']
res1.shape#(1300,5)共删除100条无效评论数据
(1300, 5)
#机械词的处理
def qc_string(s):
    filelist = s
    filelist2 = []
    for a_string in filelist:
        #temp=a_string[::-1]#将文本翻转
        char_list = list(a_string) #把字符串转化列表自动按单个字符分词了
#通过对比原始文本与当前文本,记录要删除的索引,将重复文本删除
        list1 = []#原始文本
        list1.append(char_list[0])
        list2 = ['']#比较文本
        del1 = []#记录要删除的索引
        i = 0
        while (i<len(char_list)):
            i = i+1
#若i为最后一个位置时,list1 与list2文本相同,需要删除的文本索引为range(i-m,i),其中m为list2的总字符数
            if i == len(char_list):
               if list1 == list2:
                    m = len(list2)
                    for x in range(i-m,i):
                        del1.append(x)
            else:
#(1.1)若词汇与list1第一个词汇相同,list2为空,将词加入list2中
               if char_list[i] == list1[0] and list2==['']:
                   list2[0]=char_list[i]
#(1.2)若词汇与list1第一个词汇相同,list2不为空,分两种情况:
               elif char_list[i] == list1[0] and list2 != ['']:
#(1.2.1)若list1=list2,记录要删除的索引位置,并重置list2,将新的词汇复制给list2
                   if list1 == list2:
                        m = len(list2)
                        for x in range(i-m,i):
                            del1.append(x)
                        list2 = ['']
                        list2[0]=char_list[i]
#(1.2.2)若list1不等于list2,令list1=list2,并重置list2,将新的词汇复制给list2
                   else:
                       list1 = list2
                       list2 = ['']
                       list2[0]=char_list[i]
#(2.1)若词汇和list1第一个词汇不同,list2为空,将词加入list1&apos;
               elif char_list[i] != list1[0] and list2==['']:
                   list1.append(char_list[i])
#(2.2)若词汇和list1第一个词汇不同,list2不为空,分两种情况:
               elif char_list[i] != list1[0] and list2 !=['']:
#(2.2.1)如果list1等于list2且list2的字符长度大于2,则记录要删除的索引位置,并重置list1,list2
                   if list1 == list2 and len(list2)>=2:
                        m = len(list2)
                        for x in range(i-m,i):
                           del1.append(x)
                        list1= ['']
                        list1[0]=char_list[i]
                        list2 = ['']
#(2.2.2)如果list1不等于list2,将新的词汇加入到list2中
                   else:
                       list2.append(char_list[i])
        a = sorted(del1) #将位置索引进行排序
        t = len(a)-1
        while(t>=0):
            del char_list[a[t]]
            t = t-1
        str1 = ''.join(char_list)
        str2 = str1.strip()
        #str2=str2[::-1]
        filelist2.append(str2)
    return filelist2
list_baier=res1.评论.values.tolist()
res1=qc_string(list_baier)
len(res1) #1300
1300
#3直接复制评论---去重
res2=[]
for i in res1:
    if i not in res2:
        res2.append(i)
len(res2) #1265 共去除重复评论35条
1265
#jieba分词
import jieba
from wordcloud import WordCloud,STOPWORDS
text=""
for i in res2:
    #对每一个评论用jieba分词,并用空格分开
    text=text+' '.join(jieba.cut(i))
Building prefix dict from the default dictionary ...
Dumping model to file cache C:\Users\TomSun\AppData\Local\Temp\jieba.cache
Loading model cost 0.890 seconds.
Prefix dict has been built successfully.
#绘制词云
my_cloud=WordCloud(
background_color='white',
stopwords=STOPWORDS,
font_path='C:/Windows/Fonts/simsun.ttc',
width=1000,
height=500)
#用分好的词进行词云生成
my_cloud.generate(text)
<wordcloud.wordcloud.WordCloud at 0x1e3727efdc8>
plt.rcParams['figure.figsize']=(10,6)
plt.imshow(my_cloud)
plt.axis('off')
plt.show()

词云图

#方法二:自主化
#导入停留词
stopwords=pd.read_table("stopwords.txt",quoting=3,names=['stopword'])
stopwords_list=stopwords.stopword.values.tolist()
jieba.load_userdict("mydict.txt")
#分词并去除停留词以及其他
contents=[]
for i in res2:
    seg=jieba.lcut(i)
    for word in seg:
        word=word.strip()
        if word in stopwords_list:
            continue
        elif word=='\n' or len(word)<=1:
            continue
        else:
            contents.append(word)
#计算词频
a=pd.DataFrame({'words':contents}).words.value_counts()
b=pd.DataFrame(columns=['词频'],index=a.index,data=a.values)
b.reset_index(inplace=True)
word_freq={x[0]:x[1] for x in b.values}
#任意形状的词云
from PIL import Image
pic=np.array(Image.open('mouse.jpg'))
#配置词云的基本参数
my_cloud=WordCloud(
background_color='black',
stopwords=STOPWORDS,
font_path='C:/Windows/Fonts/simsun.ttc',
mask=pic,
width=1000,
height=500)
pic_clod=my_cloud.fit_words(word_freq)
# my_cloud.generate(text)
#显示词云
plt.imshow(my_cloud,interpolation='bicubic')
plt.axis('off')
plt.show()

词云图

科凌虫控

安速

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值