Python文本挖掘数据分析项目(续)

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

1、最受欢迎的产品类型
2、重点产品细分价格段分析
3、细分市场其它属性分析


1.加载并清洗数
os.listdir('../灭鼠杀虫剂细分市场')

os.chdir('../灭鼠杀虫剂细分市场')
filenames1 = glob.glob('*.xlsx')
dfs1 = [pd.read_excel(i) for i in filenames1]
df2 = pd.concat(dfs1,sort=False)
df2.info() 

2.缺失值处理
df2.isnull().mean()#查看缺失值
ind1 = df2.isna().mean()>0.98
# 空值占比大于98%,删除
df20 = df2.loc[:,~ind1] 
# 药品登记号之后的文号列作用不大且空值占比依旧较大,删除
ind11 = df20.columns.get_loc('药品登记号')
df20 = df20.iloc[:,:ind11]
# 特征值单一,删除
ind2 = np.array([len(df20[i].unique())==1 for i in df20.columns])
df21 = df20.loc[:,~ind2]
# 删除逻辑上不可能用到的列
useless = ['时间','页码','链接','主图链接','主图视频链接',
           '排名','运费','下架时间','旺旺']   #目标:寻找增长点,新数据中没有排名信息,故删除
df22 = df21.drop(columns=useless)
df22.isnull().mean()

 

3.市场分布情况 
byclass = df23['预估销售额'].groupby(df23['类别']).sum()#查看各产品’类别’总的’预估销售额’的分布
#查看各产品’类别’总的’预估销售额’的分布
byclass.plot.pie(autopct='%.2f')

 

依据’售价’进行价格划分,得到若干的价格区间

#依据’售价’进行价格划分,得到若干的价格区间
df24 = df23[df23['类别']=='灭鼠']#选择类别
df24['售价'].describe()
df24.head()
df24['售价'].plot.hist()#绘制直方图,查看售价集中区域

#分箱操作
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()

 

#计算各价格区间的销售额,销售额占比,宝贝数,宝贝数占比,竞争度
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

#绘图
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细分市场进一步分析

df25 = df24[df24['价格区间']=='0_50']
df25['售价'].plot.hist()

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)
byprice2 = byfun(df25,'价格子区间')
byprice2

 

mcplot(byprice2)

 

4.细分市场的其他属性分析 
df25.isna().mean()
df25.head()

 

店铺类型 :

bystore = byfun(df25,'店铺类型')
mcplot(bystore)

 型号:

bytype = byfun(df25,'型号',sort='预估销售额')
#•销售额排名前5%的型号,这里认为销售额靠前才更倾向于大众产品
bytype1 = bytype[bytype['预估销售额']>=bytype['预估销售额'].quantile(0.95)]
mcplot(bytype1)

 

物理形态:

byshape = byfun(df25,['物理形态'])
mcplot(byshape)

 物理形态,净含量:

byshape_con = byfun(df25,['物理形态','净含量'],['物理形态','预估销售额'])
mcplot(byshape_con,(30,10))

5.

5.总结

灭鼠杀虫剂市场机会点-结论

1. 灭鼠杀虫剂市场中,需要重点关注的产品类别是:灭鼠和蟑螂
2. 灭鼠中:
3. 灭鼠0-50价格段的产品市场中:
最大的市场集中在0-50的价格段,这个价格段竞争也很激烈
200-250这个价格段市场份额占10%左右,竞争度很低,是值得挖掘的高价市场
·
10-20价格段市场容量大,竞争度低,值得进一步开发,20-30也不错
店铺类型方面天猫明显优于淘宝
市场份额高的型号是粘鼠板,然而型号0005市场份额还行,竞争度较低,值得开发
产品的物理形态基本都是固体,也是被大众认可的形态
当物理形态为固体,净含量为1时,市场份额高竞争度低,值得开发 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值