Python文本挖掘数据分析项目

一、业务背景

1.分析流程概述

某电商产品数据分析流程

  •  每个环节都有具体的要求,例如需求文档要求包含:目的,分析思路,预期效果
  • 业务部门出问题和需求,以及对算法&数据部门输出报告的理解和应用
2.中台 

3.市场类别 

· 评判市场和品牌的发展趋势和增长情况,从宏观到微观,从大市场到细分市场:
1. 互联网产品由关注用户增量到用户存量,判断产品或市场是用户增量还是存量,判断
有新的需求出现即可:
增量市场:从无到有,以前关注哪些需求没有被满足,快速迭代抢占市场,考虑最多的
不是用户体验.流量=新增客户.例如:智能手机潮开始时的市场.小米面对的是增量
市场
存量市场:从有到优,现在关注如何更好的满足需求,考虑更多的是用户体验.产品价
值=新体验-旧体验-替换成本,新体验没有突破性大幅增加,产品价值很难实现.流量
=用户时间(停留时间越久,利益价值越大).例如:现在人手一台智能手机,小米面对
存量市场,如何让需要换手机的用户换成小米,从有到优
·
创新:想要用产品价值撬动一个用户,同纬度竞争别家的先发优势门槛太高,如果别家
体量很大,基本可以放弃;创新可能就是剩下的活路,而面对互联网的高速发展,线下需
求基本都被互联网化,切入点可能就转移到细分市场.例如:微信QQ是社交领域的霸
主,陌陌探探在陌生人社交上也分了一杯羹,这些已存在的需求,没有被充分实现,也算
增量市场

4.产品结构-波士顿矩阵(BCG Matrix)

5.数据说明 

二、业务任务 

1.驱虫市场的潜力分析

2.灭鼠杀虫市场机会点分析

3.竞争分析

三、任务实现

任务一:驱虫市场分析

分析目的:针对各个子类目市场近三年的交易额数据,以及top100品牌数据(2017年
11月到2018年10月),通过描述性分析,在年变化的维度上:
1. 分析整个市场的总体趋势
2. 分析各子类目市场占比及变化趋势
3. 分析市场集中度,即是否存在垄断

1.读取数据
# 切换目录
os.chdir('E:/learn file/data')
os.chdir("./驱虫剂市场")
filenames1 = glob.glob("*市场近三年交易额.xlsx")
filenames1

2.清洗数据、处理缺失值 
#定义函数,读取单个excel文件,转换成DataFrame,改变列名, 时间列变为datetime类型,并将时间列变为index
def read_3threes(filename):
    colname = re.search(r'.*(?=市场)',filename).group() # 提取文件名中“市场”前面的文字
    df = pd.read_excel(filename) 
    if df['时间'].dtypes == 'int64':
        # 将“时间”列的数据类型转变为datetime类型
        df['时间'] = pd.to_datetime(df['时间'],unit='D',origin=pd.Timestamp('1899-12-30'))
    df.rename(columns={df.columns[1]:colname},inplace=True) # 修改第二列的列名
    df.set_index('时间',inplace=True)
    return df
# 分别读取七个文件,并转换成DataFrame,存入列表中
dfs = [read_3threes(filename) for filename in filenames1]
# 将7个DataFrame在axis=1的方向拼接
df = pd.concat(dfs,axis=1).reset_index()
df.head()

3.查看缺失值 
#查看缺失值
df.isna().mean()

##结果展示
时间          0.0
灭鼠杀虫剂       0.0
电蚊香套装       0.0
盘香灭蟑香蚊香盘    0.0
蚊香加热器       0.0
蚊香液         0.0
蚊香片         0.0
防霉防蛀片       0.0
dtype: float64
4.按照时间处理数据 
month = df['时间'].dt.month
month#抽取df的所有月份,以供后面使用

#循环预测2018年11月、12月各子类目的销售额
dm_test = df[month==11]
dm_test#11月产品的数据

for i in [11,12]:
    dm = df[month==i] # 从df中抽取对应月份的记录
    Xtrain = np.array(dm['时间'].dt.year).reshape(-1,1)
    y_hat = [pd.datetime(2018,i,1)]
    for j in range(1,len(dm.columns)):  # 遍历对应月份的每个种类
        ytrain = np.array(dm.iloc[:,j])  # 获取对应种类的交易金额,作为训练样本集标签
        reg = LinearRegression()
        reg.fit(Xtrain,ytrain)
        y_predict = reg.predict(np.array([2018]).reshape(-1,1))
        y_hat.append(y_predict)
    newrow = pd.DataFrame(dict(zip(df.columns,y_hat)))
    df = newrow.append(df)  # 将预测的结果加到df中
df.reset_index(drop=True,inplace=True) # 删除原索引,重置索引

 

df.insert(1,'year',df['时间'].dt.year)#插入一列数据年份
byyear = df.groupby('year').sum().reset_index()#通过groupby分组,按年份进行组合,每一行进行索引求和
byyear.head()

5.按照年份查看驱虫市场的总体变化趋势
- 所有子类目市场每年的交易金额总和;折线图表示变化 
#近三年的市场趋势分析
plt.plot('year','colsum',marker='o',data=byyear)
plt.title('近三年驱虫市场趋势') # 加标题
plt.xticks(byyear.year,rotation=45) # 定义x轴标签
plt.xlabel('年份') # 定义x轴标题
plt.ylabel('总交易额') # 定义y轴标题
plt.show()
#可以看出:近三年呈增长趋势,整个市场倾向于成长期和成熟期

 

6.查看各类目市场三年内销售额总和的变化趋势:
f, ax = plt.subplots(figsize=(10, 6))
sns.lineplot(data=byyear.set_index('year').iloc[:,:-1],dashes=False,marker='^')
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()

直观的看灭鼠杀虫剂和蚊香液都有较大的机会 

7.查看近三年销售额综合占比
#查看各类目市场三年内销售额总和的占比
byyear_per = byyear.iloc[:,1:-1].div(byyear.colsum,axis=0)
byyear_per.index = byyear.year
byyear_per.plot(kind='bar',stacked=True,figsize=(10,8),colormap='tab10')
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()

 进一步分析各类目市场16-17年17-18年增幅 

#各类目市场年增幅
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

f, ax = plt.subplots(figsize=(10, 8))
sns.lineplot(data=byyear_diff,dashes=False)
plt.title('近三年各类目市场销量年增幅')
plt.xlabel('年份')
plt.ylabel('总交易额年增幅')
plt.show()

 

 可见除了灭鼠杀虫剂和蚊香液增幅比较稳定,其它都有下降甚至变负

使用top100品牌数据,通过交易指数反映销售额从而得到市场占有率,描述
各品牌市场份额,计算HHI指标

#市场集中度描述
#读取对应数据,并且描述数据
df1 = pd.read_excel('top100品牌数据.xlsx')
df1.isna().mean()

df1['交易指数占比'] = df1['交易指数']/df1['交易指数'].sum()#生成交易指数占比列,用以描述市场份额

#图形描述交易指数占比
df1.plot(x='品牌',y='交易指数占比',kind='bar',figsize=(15,4))
plt.show()

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值