Pandas数据分析实战1——淘宝粽子行业分析

1.导入模块,读取数据,分析数据,观察数据基本信息,处理缺省值

import pandas as pd
import numpy as np
import cufflinks as cf
import re
import os
from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.globals import SymbolType
df = pd.read_csv('zongzi.csv',header=0,names=['name','price','ppay','shop','province-city'])#产品名称,价格,付款人数,店铺,省份城市
df.head()
namepriceppayshopprovince-city
0北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽44.008人付款天猫超市上海
1五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.90100万+人付款五芳斋官方旗舰店浙江 嘉兴
2稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购138.001936人付款稻香村食品旗舰店北京
3嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味3.809500+人付款城城喂食猫浙江 嘉兴
4嘉兴特产粽子礼盒装甜咸粽8粽4味真空手工农家粽端午节团购58.8017人付款chenyan30151467浙江 嘉兴
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4402 entries, 0 to 4401
Data columns (total 5 columns):
name             4402 non-null object
price            4402 non-null float64
ppay             4331 non-null object
shop             4402 non-null object
province-city    4399 non-null object
dtypes: float64(1), object(4)
memory usage: 172.0+ KB

观察发现,付款人数、省份城市有数据缺失,原因是没有数据,其中省份城市还需要对其进行省份和城市的分离,方便TGI指数维度,并且也可以删除;付款人数缺省原因应该是0人付款或者没有,故可以删除

删除缺省值

df[df.ppay.isnull()].head()#.shape (71, 5) 一共有71行缺省 
namepriceppayshopprovince-city
182五芳斋 140g*8只大粽子 福韵端午豆沙蜜枣蛋黄粽新包装送礼礼盒50.90NaN天猫会员店上海
242五芳斋福雅五芳粽子礼盒端午咸甜粽子绿豆糕咸鸭蛋送礼79.90NaN天猫会员店上海
346【百草味】龙腾粽1090g 早餐大肉粽子湖州特产嘉兴粽39.90NaN天猫会员店上海
385五芳斋华礼竹篮礼盒1360g蛋粽组合端午礼品嘉兴粽子礼盒129.00NaN天猫会员店上海
388百草味 龙腾粽礼盒1460g 10只装早餐大肉粽子湖州特产嘉兴49.90NaN天猫会员店上海
#删除NaN值
df.dropna(inplace=True)#.info()
#进一步删除0人付款
df = df[~df.ppay.isin(['0人付款'])]
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 4322 entries, 0 to 4401
Data columns (total 5 columns):
name             4322 non-null object
price            4322 non-null float64
ppay             4322 non-null object
shop             4322 non-null object
province-city    4322 non-null object
dtypes: float64(1), object(4)
memory usage: 202.6+ KB

2.对初始数据进行进一步整理

df.head()
namepriceppayshopprovince-city
0北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽44.008人付款天猫超市上海
1五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.90100万+人付款五芳斋官方旗舰店浙江 嘉兴
2稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购138.001936人付款稻香村食品旗舰店北京
3嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味3.809500+人付款城城喂食猫浙江 嘉兴
4嘉兴特产粽子礼盒装甜咸粽8粽4味真空手工农家粽端午节团购58.8017人付款chenyan30151467浙江 嘉兴
df.ppay.dtype#字符串类型
dtype('O')
#对ppay进行str处理 突然忘记re表达式了
df.ppay = df.ppay.str.replace('人付款','')
df.ppay = df.ppay.str.replace('+','')
def get_w(x):
    if '万' in str(x):#这里注意,x要写成str(x),因为x里面含有float类型的数据
        return (float(x[:-1])*10000)
    else:
        return float(x)
df['ppay'] = df.ppay.apply(get_w)
df.head()

#2
# get_w = []
# for x in list(df.ppay):
#     if '万' in str(x):
#         x = float(x.replace('万',''))
#         get_w.append(x*10000)
#     else:
#         get_w.append(float(x))
# df.ppay = get_w
# df.head()

#3
# df.ppay = [(float(x.replace('万',''))*10000) if '万' in str(x) else float(x) for x in list(df.ppay)]
# df.head()
namepriceppayshopprovince-city
0北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽44.008.00天猫超市上海
1五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.901000000.00五芳斋官方旗舰店浙江 嘉兴
2稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购138.001936.00稻香村食品旗舰店北京
3嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味3.809500.00城城喂食猫浙江 嘉兴
4嘉兴特产粽子礼盒装甜咸粽8粽4味真空手工农家粽端午节团购58.8017.00chenyan30151467浙江 嘉兴
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 4322 entries, 0 to 4401
Data columns (total 5 columns):
name             4322 non-null object
price            4322 non-null float64
ppay             4322 non-null float64
shop             4322 non-null object
province-city    4322 non-null object
dtypes: float64(2), object(3)
memory usage: 202.6+ KB
df['ppay'] = df['ppay'].astype(int)
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 4322 entries, 0 to 4401
Data columns (total 5 columns):
name             4322 non-null object
price            4322 non-null float64
ppay             4322 non-null int32
shop             4322 non-null object
province-city    4322 non-null object
dtypes: float64(1), int32(1), object(3)
memory usage: 185.7+ KB
df.head()
namepriceppayshopprovince-city
0北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽44.008天猫超市上海
1五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.901000000五芳斋官方旗舰店浙江 嘉兴
2稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购138.001936稻香村食品旗舰店北京
3嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味3.809500城城喂食猫浙江 嘉兴
4嘉兴特产粽子礼盒装甜咸粽8粽4味真空手工农家粽端午节团购58.8017chenyan30151467浙江 嘉兴
#构建字典,分离省份和城市
# re_pc = {
#     '上海':'上海 上海',
#     '北京':'北京 北京',
#     '天津':'天津 天津',
#     '重庆':'重庆 重庆'
# }
# df['province-city'] = df['province-city'].str.strip().map(re_pc)
# df.head()#发现,我们需要的数据却变成了NaN,所以这种方法不行
def get_s(x):
    if x == '上海':
        return '上海 上海'
    elif x == '北京':
        return '北京 北京'
    elif x == '天津':
        return '天津 天津'
    elif x == '重庆':
        return '重庆 重庆'
    else:
        return x

df['province-city'] = df['province-city'].str.strip().apply(get_s)
df.head()
namepriceppayshopprovince-city
0北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽44.008天猫超市上海 上海
1五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.901000000五芳斋官方旗舰店浙江 嘉兴
2稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购138.001936稻香村食品旗舰店北京 北京
3嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味3.809500城城喂食猫浙江 嘉兴
4嘉兴特产粽子礼盒装甜咸粽8粽4味真空手工农家粽端午节团购58.8017chenyan30151467浙江 嘉兴
df['province'] = [i[:2] for i in df['province-city']]
df['city'] = [i[3:5] for i in df['province-city']]
del df['province-city']
df.head()
namepriceppayshopprovincecity
0北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽44.008天猫超市上海上海
1五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.901000000五芳斋官方旗舰店浙江嘉兴
2稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购138.001936稻香村食品旗舰店北京北京
3嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味3.809500城城喂食猫浙江嘉兴
4嘉兴特产粽子礼盒装甜咸粽8粽4味真空手工农家粽端午节团购58.8017chenyan30151467浙江嘉兴
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 4322 entries, 0 to 4401
Data columns (total 6 columns):
name        4322 non-null object
price       4322 non-null float64
ppay        4322 non-null int32
shop        4322 non-null object
province    4322 non-null object
city        4322 non-null object
dtypes: float64(1), int32(1), object(4)
memory usage: 219.5+ KB

3.明确需求目的

  1. 需要计算出实付金额 实付金额 actpay = price x ppay

  2. 对店铺shop,产品名称name进行分组

  3. TGI指数:假设 actpay > 某标准值 可分为维度 高客单、低客单;同时需要对客单总数kdtotal进行筛选 假设<mean(kdtotal)的行需要删除

  4. 初步观察,可以发现ppay是数据的核心,即销量

  5. 对ppay销量进行分析:可以与name进行分析,分析哪个品牌的产品更受欢迎;可以与price,分析消费者能够接受的价格,

    对比平均价格;可以与shop,分析哪家店铺最受欢迎;

  6. 统计省份的实付金额actpay,可以分析省份消费top10;统计店铺的actpay,可以分析店铺top,并得出top10这些是那个省

    和城市的,进而进一步分析;统计城市,可以分析城市消费top10;以及将三者有机结合

  7. name词云图关键词,看看产品名称如何定义最能吸引消费者,产品热词

  8. 分析shop和城市的关系,看看每个城市店铺数量排名第一的shop是?同时每个省份店铺数量排名第一的shop是?

  9. 对shop进行打标,分析旗舰店、会员店、专卖店/专营店、其他店铺,公司,超市这五类 进行actpay维度分析以及店铺数量分析

  10. 先写这些吧!

分析关键词:品牌、竞争度、销量、销售额、客单价、店铺数量、店铺类型

3.1 计算出实付金额,并根据actpay进行维度打标

df['actpay'] = df.price * df.ppay
df.head()
namepriceppayshopprovincecityactpay
0北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽44.008天猫超市上海上海352.00
1五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.901000000五芳斋官方旗舰店浙江嘉兴89900000.00
2稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购138.001936稻香村食品旗舰店北京北京267168.00
3嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味3.809500城城喂食猫浙江嘉兴36100.00
4嘉兴特产粽子礼盒装甜咸粽8粽4味真空手工农家粽端午节团购58.8017chenyan30151467浙江嘉兴999.60
df.actpay.describe()
count       4322.00
mean       71217.61
std      1549754.60
min           12.90
25%         1593.33
50%         4307.00
75%        14919.45
max     89900000.00
Name: actpay, dtype: float64
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 4322 entries, 0 to 4401
Data columns (total 7 columns):
name        4322 non-null object
price       4322 non-null float64
ppay        4322 non-null int32
shop        4322 non-null object
province    4322 non-null object
city        4322 non-null object
actpay      4322 non-null float64
dtypes: float64(2), int32(1), object(4)
memory usage: 253.2+ KB
p_d = (df.actpay.max()-df.actpay.min())/df.shape[0]
p_d#假设p_d是我们需要的客单类别的标准值
20800.552313743636
df[df.actpay>7000].shape[0]
1674
df.ppay.max()
1000000
df.ppay.min()
1

现在有个问题,我们不知道我们这是一天的actpay,还是一个月。因为没有时间date,而且最高付款人数达到100万,最低付款人数1,如果是一天,那就太流弊了。那我们假设算作一周的销售额

并且我们假设在这里将标准值设为7000

#对客单类别进行添加
# df['kdkind'] = ['高客单' if i>7000 else '低客单' for i in df.actpay]
# df.head()

3.2 对shop-店铺打标

def get_db(x):
    if '旗舰店' in str(x):
        return '旗舰店'
    elif '会员店' in str(x):
        return '会员店'
    elif '专卖店' or '专营店' in str(x):
        return '专卖店/专营店'
    elif '公司' or '超市' in str(x):
        return '公司/超市'  
    else:
        return '普通店铺'
df['shopkind'] = df.shop.apply(get_db)
df.head()
namepriceppayshopprovincecityactpayshopkind
0北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽44.008天猫超市上海上海352.00专卖店/专营店
1五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.901000000五芳斋官方旗舰店浙江嘉兴89900000.00旗舰店
2稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购138.001936稻香村食品旗舰店北京北京267168.00旗舰店
3嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味3.809500城城喂食猫浙江嘉兴36100.00专卖店/专营店
4嘉兴特产粽子礼盒装甜咸粽8粽4味真空手工农家粽端午节团购58.8017chenyan30151467浙江嘉兴999.60专卖店/专营店

4.开始维度分析

4.1 分析单个店铺销售额最高的top10

df_actpay_top10 = df.sort_values('actpay',ascending=False).head(10).reset_index()
df_actpay_top10
indexnamepriceppayshopprovincecityactpayshopkind
01五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.901000000五芳斋官方旗舰店浙江嘉兴89900000.00旗舰店
113真真老老嘉兴粽子礼盒装肉粽糯米鲜肉蛋黄肉大粽子甜粽端午节礼品59.90700000真真老老旗舰店浙江嘉兴41930000.00旗舰店
261五芳斋粽子礼盒蛋黄肉粽豆沙粽大肉棕子浙江特产新鲜嘉兴粽子肉粽89.90200000五芳斋官方旗舰店浙江嘉兴17980000.00旗舰店
3115稻香私房嘉兴大蛋黄鲜肉粽甜味蜜枣散装粽子礼盒装端午节特产送礼59.90100000稻香村食品旗舰店北京北京5990000.00旗舰店
4195真真老老嘉兴粽子蛋黄肉粽端午粽子礼盒装鲜肉粽子甜粽大粽子团购29.90200000真真老老旗舰店浙江嘉兴5980000.00旗舰店
5803五芳斋粽子礼盒蛋黄肉粽端午节送礼团购肉粽豆沙棕子嘉兴特产粽子89.9065000五芳斋官方旗舰店浙江嘉兴5843500.00旗舰店
625知味观端午节粽子甜粽咸蛋黄大肉粽礼盒装嘉兴味鲜肉粽子散装团购64.9085000知味观官方旗舰店浙江杭州5516500.00旗舰店
735五芳斋粽子礼盒装新鲜大肉粽蛋黄猪肉粽豆沙端午食品团购嘉兴特产39.90100000五芳斋浙江专卖店浙江嘉兴3990000.00专卖店/专营店
884荃盛粽子鲜肉粽蛋黄鲜肉粽豆沙粽子甜粽端午节礼品嘉兴粽子礼盒装59.9065000荃盛旗舰店浙江宁波3893500.00旗舰店
910五芳斋粽子竹篮礼盒华礼嘉兴特产蛋黄鲜肉粽豆沙咸蛋端午送礼团购159.0020000五芳斋官方旗舰店浙江嘉兴3180000.00旗舰店
df.price.mean()
74.28209625173452
df.price.max()
1780.0

通过上述数据,我们可以得出

  1. 单个店铺最高销售额TOP1是1000000元,所属店铺是五芳斋官方旗舰店,省份是浙江,城市是嘉兴,是旗舰店,产品是五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品;
  2. 并且top10里面有9家浙江、8家嘉兴、9个旗舰店,5家是属于同一个品牌:五芳斋官方旗舰店。因此我们可以初步得出:
    旗舰店的竞争优势在粽子行业中是很大的,并且五芳斋官方旗舰店销量可观,价格分布在中、低端,价格,品牌优势明显,可以猜测这是一家综合性的主打中端价格市场的、公司在浙江嘉兴的企业
  3. 提出疑问:为何浙江、嘉兴能够这么流弊?

但是细细一看,top10同一家店铺有5个,这在海量的数据中并不能很科学的表明什么,因此我们需要对shop进行分组来进一步分析

4.2 店铺数量Top10的总销售额

#对店铺进行分组,得出店铺数量top10
df_shop = df.groupby('shop')['ppay'].count().reset_index()#
df_shop.columns = ['shop','counts']
df_shop.sort_values('counts',ascending=False).head(10)
shopcounts
599天猫超市270
363五芳斋官方旗舰店105
1066稻香村食品旗舰店51
1031知味观官方旗舰店47
1225诸老大旗舰店41
364五芳斋浙江专卖店38
1025真真老老旗舰店37
1103红船旗舰店30
927润之禧旗舰店28
1198蓝氏钟楼旗舰店25
df_shop_top = df_shop.sort_values('counts',ascending=False).head(10)
df_shop_top['counts'].head(10).mean()
67.2

从上面可以分析出:天猫超市的店铺数量为270,是top2五芳斋官方旗舰店的2倍多,这表明还是平台老板家的店铺更流弊;

其次总体旗舰店>50的只有前top3,并且高于平均值的只有前top2;

同时发现了一个问题:五芳斋既有旗舰店,还有专卖店,但是特殊问题特殊分析,我们只需要对五芳斋进行单独分析即可,或者最多前top5

#现在我们还想要把actpay列给添加上去 得到top10数量店铺的总销售额     有些店铺并不都是在一个省份、城市,所以省份、城市暂时不添加:
shop_pay_sum = df.groupby('shop')['actpay'].sum().reset_index()#
shop_pay_sum.columns = ['shop','shop_pay_sum']
shop_pay_sum = shop_pay_sum.sort_values('shop_pay_sum',ascending=False)#这里并没有对shop进行count,所以无法对shop进行排序
#进行横向合并
df_shop_sp = df_shop_top.merge(shop_pay_sum,on='shop',how='left')
#如何取消float值的科学计数法呢?
pd.set_option('display.float_format', lambda x: '%.2f' % x)
df_shop_sp.sort_values('shop_pay_sum',ascending=False).head(10)
shopcountsshop_pay_sum
1五芳斋官方旗舰店105132389350.80
6真真老老旗舰店3749396443.40
3知味观官方旗舰店479383796.92
0天猫超市2708032811.77
2稻香村食品旗舰店517756471.90
5五芳斋浙江专卖店387139386.50
7红船旗舰店303154040.60
4诸老大旗舰店412757103.90
8润之禧旗舰店281783302.40
9蓝氏钟楼旗舰店25274088.70
df_shop_sp['shop_money_avg'] = df_shop_sp['shop_pay_sum']/df_shop_sp['counts']
df_shop_sp.sort_values('shop_pay_sum',ascending=False).head(10)
shopcountsshop_pay_sumshop_money_avg
1五芳斋官方旗舰店105132389350.801260850.96
6真真老老旗舰店3749396443.401335039.01
3知味观官方旗舰店479383796.92199655.25
0天猫超市2708032811.7729751.15
2稻香村食品旗舰店517756471.90152087.68
5五芳斋浙江专卖店387139386.50187878.59
7红船旗舰店303154040.60105134.69
4诸老大旗舰店412757103.9067246.44
8润之禧旗舰店281783302.4063689.37
9蓝氏钟楼旗舰店25274088.7010963.55

综合数据表明:

五芳斋官方旗舰店还是最流弊的,总销售额是考量一个企业的核心,同时top2的平均单位店铺销售额超过了top1,说明top2的竞争能力不容小觑;

天猫shop_pay_num排在了top4,但平均单位店铺销售额倒数第二,表现出在粽子行业还是专业性企业更具优势,看来天猫的店铺战效果虽可以,但是成本也很高;

同时还应该继续优化shop关键词,可重点突出top5的品牌

4.3 销量Top10 并假设大于平均销量的name来作为热门产品的最低指标

df.ppay.mean()
1298.209393799167
df_xl = df.sort_values('ppay',ascending=False)
df_xl.head(10)
namepriceppayshopprovincecityactpayshopkind
1五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.901000000五芳斋官方旗舰店浙江嘉兴89900000.00旗舰店
13真真老老嘉兴粽子礼盒装肉粽糯米鲜肉蛋黄肉大粽子甜粽端午节礼品59.90700000真真老老旗舰店浙江嘉兴41930000.00旗舰店
195真真老老嘉兴粽子蛋黄肉粽端午粽子礼盒装鲜肉粽子甜粽大粽子团购29.90200000真真老老旗舰店浙江嘉兴5980000.00旗舰店
61五芳斋粽子礼盒蛋黄肉粽豆沙粽大肉棕子浙江特产新鲜嘉兴粽子肉粽89.90200000五芳斋官方旗舰店浙江嘉兴17980000.00旗舰店
35五芳斋粽子礼盒装新鲜大肉粽蛋黄猪肉粽豆沙端午食品团购嘉兴特产39.90100000五芳斋浙江专卖店浙江嘉兴3990000.00专卖店/专营店
115稻香私房嘉兴大蛋黄鲜肉粽甜味蜜枣散装粽子礼盒装端午节特产送礼59.90100000稻香村食品旗舰店北京北京5990000.00旗舰店
25知味观端午节粽子甜粽咸蛋黄大肉粽礼盒装嘉兴味鲜肉粽子散装团购64.9085000知味观官方旗舰店浙江杭州5516500.00旗舰店
281粽叶粽子叶粽粑叶免邮新鲜干大号竹叶包粽子的叶子棕叶竹子芦苇叶3.8070000ws10110山东枣庄266000.00专卖店/专营店
1755真真老老 130g*1真空肉粽 嘉兴粽子 端午特产特色美食食品4.8070000天猫超市上海上海336000.00专卖店/专营店
803五芳斋粽子礼盒蛋黄肉粽端午节送礼团购肉粽豆沙棕子嘉兴特产粽子89.9065000五芳斋官方旗舰店浙江嘉兴5843500.00旗舰店

可以发现,top5的产品在整个粽子行业有着很大的竞争优势,top5的产品最受欢迎,并且品牌效应很明显,top5都在浙江嘉兴,这说明在浙江嘉兴就是粽子行业的风口。

联系地理知识,地方产业的专业化和集中化在浙江嘉兴展露的淋漓尽致;

提出一个猜测:天猫超市销售的产品大都数都是这些专业企业所提供的?并且五芳斋的产品热度、品牌知名度非其他产业所能企及,所以我们可以对天猫超市和五芳斋进行进一步的分析;

4.4 天猫超市分析 根据天猫超市进行关键词提取

4.5 五芳斋系统分析 针对shop里面的关键词提取

4.6 TGI指数分析 name、actpay、province、city

df.shape[0]
4322
df.groupby('name')['actpay'].mean().shape[0]
4126

实际上需要的是买家昵称,但是我们只有产品昵称
上面表明还是有重复的产品昵称,我们将某一产品的平均销售额与客单标准值进行比较,这说明上面我们没有考虑重复的name,所以需要进一步的优化

df['actpay_sum'] = df.groupby('name')['actpay'].transform('mean')#将求平均销售额的分组重复展开,将name作为判断条件
# df.shape[0]3依旧是4322行,实际我们需要的还是4126行
df.head(5)
namepriceppayshopprovincecityactpayshopkindactpay_sum
0北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽44.008天猫超市上海上海352.00专卖店/专营店352.00
1五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.901000000五芳斋官方旗舰店浙江嘉兴89900000.00旗舰店89900000.00
2稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购138.001936稻香村食品旗舰店北京北京267168.00旗舰店267168.00
3嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味3.809500城城喂食猫浙江嘉兴36100.00专卖店/专营店18799.70
4嘉兴特产粽子礼盒装甜咸粽8粽4味真空手工农家粽端午节团购58.8017chenyan30151467浙江嘉兴999.60专卖店/专营店999.60
#删去重复name,但先判断provinde,city是否一致,
df[df.name=='嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味']
namepriceppayshopprovincecityactpayshopkindactpay_sum
3嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味3.809500城城喂食猫浙江嘉兴36100.00专卖店/专营店18799.70
3850嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味23.8063城城喂食猫浙江嘉兴1499.40专卖店/专营店18799.70
df1 = df.drop_duplicates(subset=['name','province','city'])
df1.shape[0]#4146-4126=20,还存在20个重复值,但可以忽略不计,以这三个条件来作为标准,但是会与平均销售额所不匹配
4146

基本可以忽略不计,所以可以直接按照name删除

df_kd = df.drop_duplicates(subset=['name'])
# df_kd.shape[0]
df_kd= df_kd[['name','province','city']]
df_kd.shape
(4126, 3)
df_act = df.groupby('name',as_index=False)['actpay'].mean()
df_act.columns = ['name','act_num']
df_act.shape
(4126, 2)
df_act.head()
nameact_num
0100g*10只棕子嘉兴特产五芳斋端午节新鲜肉粽子 量贩装美味鲜猪肉2227.50
1100g*16个嘉禾斋匠心手造粽子豆沙梅干菜肉紫米肉粽蛋黄粽原味蜜299.50
210个X250g熊家粽子礼盒装 贵州特产 贞丰粽子 熊家鲜肉板栗灰粽粑3754.40
310个伍荣昌粽子海南定安黑猪肉蛋黄粽子新旧包装随机发货8272.00
410个贵州特产兴义贞丰余家粽粑板栗鲜肉粽农家手工大灰粽子礼盒装5846.40
#添加客单类别
# df_act['kdkind'] = ['高客单' if i>7000 else '低客单' for i in df_act.act_num]#过高,修改一波
# df_act['kdkind'] = ['高客单' if i>5000 else '低客单' for i in df_act.act_num]#不够优化
df_act['kdkind'] = ['高客单' if i>4000 else '低客单' for i in df_act.act_num]
df_act = df_act[['name','kdkind']]
df_kd = df_kd.merge(df_act,on='name',how='inner')
df_kd.head()
nameprovincecitykdkind
0北京稻香村端午粽子手工豆沙粽220g*2袋散装豆沙粽香甜软糯豆沙粽上海上海低客单
1五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品浙江嘉兴高客单
2稻香私房鲜肉粽蛋黄肉粽嘉兴粽子咸鸭蛋礼盒装端午节送礼特产团购北京北京高客单
3嘉兴粽子 蛋黄鲜肉粽新鲜大肉粽早餐散装团购浙江特产蜜枣多口味浙江嘉兴高客单
4嘉兴特产粽子礼盒装甜咸粽8粽4味真空手工农家粽端午节团购浙江嘉兴低客单
df_kd.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 4126 entries, 0 to 4125
Data columns (total 4 columns):
name        4126 non-null object
province    4126 non-null object
city        4126 non-null object
kdkind      4126 non-null object
dtypes: object(4)
memory usage: 161.2+ KB
# df_result = pd.pivot_table(df_kd,index=['province','city'],columns=['kdkind'],aggfunc='count')
# df_result
df_result = df_kd.groupby(['province','city'])['kdkind'].value_counts().unstack()
df_result.info()
<class 'pandas.core.frame.DataFrame'>
MultiIndex: 164 entries, (上海, 上海) to (黑龙,  大)
Data columns (total 2 columns):
低客单    147 non-null float64
高客单    132 non-null float64
dtypes: float64(2)
memory usage: 4.7+ KB
#删除NaN值
df_result.dropna(inplace=True)
df_result.sort_values('高客单',ascending=False).head(10)
kdkind低客单高客单
provincecity
浙江嘉兴475.00584.00
上海上海240.00284.00
北京北京133.00188.00
浙江杭州71.00103.00
四川成都69.0091.00
广东广州44.0050.00
肇庆48.0047.00
河南郑州32.0045.00
浙江湖州26.0038.00
广东东莞32.0034.00

这里初步估计:我们给定的标准值7000过高,浙江的高客单都低于低客单。故修改成5000,

tgi = df_result
tgi['kd_total'] = (df_result.高客单+df_result.低客单)
tgi['unit_mix'] = df_result.高客单/tgi['kd_total']#每个城市的单位占比
tgi['total_mix'] = df_result.高客单.sum()/(df_result.高客单.sum()+df_result.低客单.sum())
tgi['final_mix'] = tgi['unit_mix']/tgi['total_mix']*100
tgi.sort_values('final_mix',ascending=False).head(10)
kdkind低客单高客单kd_totalunit_mixtotal_mixfinal_mix
provincecity
江西宜春1.006.007.000.860.53162.33
山东枣庄3.0015.0018.000.830.53157.82
湖北荆州1.004.005.000.800.53151.51
广东梅州1.003.004.000.750.53142.04
山西晋中1.003.004.000.750.53142.04
大同1.003.004.000.750.53142.04
四川乐山1.003.004.000.750.53142.04
河南漯河1.003.004.000.750.53142.04
浙江温州10.0028.0038.000.740.53139.55
河南新乡2.005.007.000.710.53135.27

发现我们一直期待的浙江呢?所以我们还需要将客单总数<平均值的行进行作为无效数据处理

tgi = tgi.loc[tgi['kd_total']>tgi['kd_total'].mean()]
tgi.sort_values('final_mix',ascending=False).head(10)
kdkind低客单高客单kd_totalunit_mixtotal_mixfinal_mix
provincecity
浙江温州10.0028.0038.000.740.53139.55
金华15.0028.0043.000.650.53123.32
福建泉州14.0025.0039.000.640.53121.40
浙江宁波18.0032.0050.000.640.53121.21
福建厦门19.0029.0048.000.600.53114.42
浙江湖州26.0038.0064.000.590.53112.45
杭州71.00103.00174.000.590.53112.11
北京北京133.00188.00321.000.590.53110.92
河南郑州32.0045.0077.000.580.53110.68
四川成都69.0091.00160.000.570.53107.71

以为结束了,但是猛的发现我的浙江嘉兴呢?上海呢?所以感觉还不够优化 这里我们直接定义高客单要大于mean才行,或者继续优化标准值

#先重命名一下:
tgi.rename(columns={'高客单':'hight_kd', '低客单':'lower_kd'}, inplace=True)
tgi = tgi.loc[tgi['hight_kd']>tgi['hight_kd'].mean()]
tgi.sort_values('final_mix',ascending=False)#.head(10)
kdkindlower_kdhight_kdkd_totalunit_mixtotal_mixfinal_mix
provincecity
浙江杭州71.00103.00174.000.590.53112.11
北京北京133.00188.00321.000.590.53110.92
四川成都69.0091.00160.000.570.53107.71
浙江嘉兴475.00584.001059.000.550.53104.44
上海上海240.00284.00524.000.540.53102.64

当我们把标准客单类别值定义为5000时,浙江嘉兴的高客单虽然很多,但是低客单十分接近高客单,所以我们应该还是不够优化!这里我们计算一下平均ppay x 平均price
当我们把标准客单类别值定义为4000时,感觉还比较可以接受,能够客观反映一些事实。因此,高客单的城市主要是杭州、北京、成都、嘉兴、上海;综合比较嘉兴、北京、上海的消费潜力最大,竞争能力也最强劲

(df.actpay.max()-df.ppay.mean()*df.price.mean())/(df.ppay.mean()*df.price.mean()-df.actpay.min())
931.3711582889754
(df.actpay.max()-df.actpay.mean())/(df.actpay.mean()-df.actpay.min())
1261.5567232220394

因此估计理论客单类别标准值为13002000最为合适,但是实际上一周2000得到一天300,感觉过低;一天500差不多了,35004000比较合适

4.7 根据销量分析消费者最能接受的价格,为商家定义最合适的价格

#先统计价格
df_p = df.groupby('price',as_index=False)['ppay'].count()
df_p.columns = ['price','counts']
df_p.sort_values('counts',ascending=False).head()
pricecounts
24839.90150
32859.90126
29349.90111
18229.90104
36269.9089
df_p1 = df.groupby('price',as_index=False)['ppay'].mean()
#得到统计top5的价格对应的平均销量,以此来作为最优价格的依据
df_p = df_p.merge(df_p1,on='price',how='left')
df_p['ppay'] = df_p['ppay'].astype(int)
df_p.sort_values('counts',ascending=False).head()
pricecountsppay
24839.901502511
32859.901267399
29349.90111879
18229.901042860
36269.9089776
df.price.mean()
74.28209625173452
df.price.max()
1780.0
df_p_max = df[['price','ppay','actpay']].sort_values('actpay',ascending=False).reset_index()
df_p_max[df_p_max.price==1780]
indexpriceppayactpay
86627971780.001221360.00
df_p_max[df_p_max.actpay>100000].tail(1)
indexpriceppayactpay
253203811.808500100300.00

price.max()为1780,ppay为12,actpay排行在866,算是比较靠前,但该actpay与10万的排名相差600多,销售额并不是很华丽。初步估计这家店铺以品牌策略为核心,吸引高端消费者,但是间接反映粽子行业的高端化还不足以让大部分消费者为之接受买单;

商家的价格分布主要是在中低端,对top5价格进行mean(),初步估计商家预估市场最优价格为50/49.9;进一步分析得知:price为59.9的时候,平均销量远多于top2的2860(当然这里我们还需要对ppay进行int处理,因为付款人数不能是浮点数,这不符合常理);

综合比较,最优price为59.9元,也是消费者最能接受并反馈效果nice的价格,对于商家而言也有利可图

4.8 根据销量分析最受欢迎的店铺

df.ppay.max()
1000000
df[['name','ppay','shop','price']].sort_values('ppay',ascending=False).head()
nameppayshopprice
1五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品1000000五芳斋官方旗舰店89.90
13真真老老嘉兴粽子礼盒装肉粽糯米鲜肉蛋黄肉大粽子甜粽端午节礼品700000真真老老旗舰店59.90
195真真老老嘉兴粽子蛋黄肉粽端午粽子礼盒装鲜肉粽子甜粽大粽子团购200000真真老老旗舰店29.90
61五芳斋粽子礼盒蛋黄肉粽豆沙粽大肉棕子浙江特产新鲜嘉兴粽子肉粽200000五芳斋官方旗舰店89.90
35五芳斋粽子礼盒装新鲜大肉粽蛋黄猪肉粽豆沙端午食品团购嘉兴特产100000五芳斋浙江专卖店39.90

这个前面写过了,ppay.max()是100万,据此最受欢迎、热度最高的单个店铺是销售五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品的五芳斋官方旗舰店,隶属于品牌五芳斋;

试想一下:为什么top1店铺五芳斋的的销量可以远超top2店铺真真老老,这个可以自行百度了解其两家企业的背景的销售策略;

并且在众多同品牌的旗舰店里,为何这两家可以脱颖而出,也值得思考;

再添加价格发现,两家店铺的策略核心并非是价格战,据此推测,品牌知名度和口碑、质量才是关键

4.9 Top5销售额的品牌-店铺(进行分组)

#df.shop.size == df.shop.count()
#前面我们已经分析了单个店铺销售额的TOP10,但是存在同一家品牌有多家店铺的情况,所以我们需要对其进行关键词打标,但是品牌基本有1000多家,所以我们只取销售额前5的品牌,并且就等价于df_shop_sp
df_b = df.groupby('shop')['actpay'].sum().reset_index()
df_b.columns = ['shop','actpay_sum']
df_b = df_b.sort_values('actpay_sum',ascending=False)
df_b.head(6)
# df_shop_sp.sort_values('shop_pay_sum',ascending=False).head(6)
shopactpay_sum
363五芳斋官方旗舰店132389350.80
1025真真老老旗舰店49396443.40
1031知味观官方旗舰店9383796.92
599天猫超市8032811.77
1066稻香村食品旗舰店7756471.90
364五芳斋浙江专卖店7139386.50
#对shop关键词打标
def get_brand(x):
    if '五芳斋' in str(x):
        return '五芳斋'
    elif '真真老老' in str(x):
        return '真真老老'
    elif '知味观' in str(x):
        return '知味观'
    elif '天猫' in str(x):
        return '天猫'
    elif '稻香村' in str(x):
        return '稻香村'
    else:
        return '其他品牌'
df_b['brand'] = df_b.shop.apply(get_brand)
df_b.shape[0]
1396
df_b.groupby('brand')['actpay_sum'].sum().reset_index().sort_values('actpay_sum',ascending=False)
brandactpay_sum
0五芳斋142594195.10
1其他品牌89070190.17
3真真老老49520183.20
4知味观9527274.62
5稻香村9057861.60
2天猫8032811.77

这里我们可以知晓五芳斋这个品牌的总销售额,以及top5品牌的总销售额

4.10 根据actpay分析省份销售top10 可以绘制销售额省份地图分布

df_province = df.groupby('province')['actpay'].sum().reset_index()
df_province.columns = ['province','actpay_sum']
df_province.sort_values('actpay_sum',ascending=False).head(10)
provinceactpay_sum
18浙江247933130.02
3北京13535824.88
0上海13265888.79
11广东5600816.91
14江苏3328178.93
17河南2898866.22
5四川2661052.99
9山东2593401.82
16河北2360518.78
12广西2345014.19

浙江消费总和约是北京的18倍,这足以证明浙江省是粽子行业的龙头,而北京、上海依据自身城市优势,粽子行业有了一定的集群化规模。这里有个疑问:北京、上海的粽子行业中,对应的销售额top5品牌占有多少的比重?

df[(df.province=='北京') & (df['shop'].str.contains('五芳斋'))]
namepriceppayshopprovincecityactpayshopkindactpay_sum

???,没有?有点不可思议,继续试试

s_top3 = ['浙江','北京','上海']
[df[(df.province== i)].shape[0] for i in s_top3]#df[(df.province== '浙江') & (df['shop'].str.contains('五芳斋'))]
[1567, 327, 541]
#五芳斋   真真老老  知味观    稻香村  天猫
ps_top5 = ['五芳斋','真真老老','知味观','天猫超市','稻香村']#这里将销售额top5品牌进行关键词处理
df_pstop_count = [df[(df.province=='北京') & (df['shop'].str.contains(i))].shape[0] for i in ps_top5]#在北京的销售额top5品牌店铺数量分布
df_pstop_count
[0, 0, 0, 0, 79]
[df[(df.province=='上海') & (df['shop'].str.contains(i))].shape[0] for i in ps_top5]
[0, 0, 0, 269, 0]
[df[(df.province=='浙江') & (df['shop'].str.contains(i))].shape[0] for i in ps_top5]
[187, 49, 60, 0, 0]
shop_mix = df_b.iloc[:3,1].sum()/(df_province['actpay_sum'].max())
shop_mix
0.7710530299221361

Top5店铺 五芳斋 真真老老 知味观 稻香村 天猫
这里可以得知:

top3省份或直辖市中,北京以稻香村这一品牌店铺为主导,占北京所有店铺327家的24%;

天猫超市几乎全部坐落在上海,占比接近50%;

浙江突出top3品牌店铺,累计接近300家,占浙江总店铺数1567的19%,但三家品牌的全国总销售额占整个浙江的77%,再结合前面的店铺数量以及省份分布,可以得出这三家都是浙江本土品牌,并占据主导地位

4.11 分析城市销售top10 推导城市粽子销售指数

#我们先进行城市店铺分布数量统计
df_city_c = df.groupby('city')['actpay'].count().reset_index().sort_values('actpay',ascending=False)
df_city_c.columns = ['city','counts']
df_city_c.head(10)
citycounts
37嘉兴1144
6上海541
23北京327
77杭州180
64成都175
55广州99
126肇庆96
144郑州77
71无锡76
8东莞68

结合上面的浙江1567,浙江嘉兴就占了1144家,这更加证实了嘉兴不愧是粽子之乡,以及嘉兴粽子行业的专业化、集群化

df_c_act = df.groupby('city')['actpay'].sum().reset_index().sort_values('actpay',ascending=False)
df_c_act.columns = ['city','actpay_sum']
#合并
df_city_top = df_city_c.merge(df_c_act,on='city',how='left')
df_city_top.head(10)
citycountsactpay_sum
0嘉兴1144225036692.48
1上海54113265888.79
2北京32713535824.88
3杭州18012041022.94
4成都1752418058.71
5广州992441452.28
6肇庆961146536.80
7郑州772462143.10
8无锡76714951.07
9东莞68756769.05
df_city_top.actpay_sum.max()/df_province.actpay_sum.max()
0.9076507543055946

嘉兴的总销售额占浙江总销售额的90%,这就很离谱哦!,北京、上海也没有让我们失望,其他城市大都是省份的省府,但综合比较还是杭州最强。

个人推测:粽子行业的销售额呈现从浙江嘉兴为中心的向四周辐射、从高到低的局面

4.12 每个城市店铺数量排名第一的shop

#利用groupby来实现第一步
# df_c_max = df.groupby(['city','shop'],as_index=False)['actpay'].count()
# df_c_max= df_c_max.sort_values('actpay',ascending=False)
# df_c_max = df_c_max.drop_duplicates(subset='city')#利用去重保存first
# # df_c_max.shape[0]
# df_c_max.rename(columns={'actpay':'c_s_counts'}, inplace=True)
# df_c_max.head()
df_c_max = pd.pivot_table(df,index=['city','shop'],aggfunc='count')
df_c_max = df_c_max[['actpay']]
df_c_max = df_c_max.sort_values('actpay',ascending=False).reset_index()
df_c_max = df_c_max.drop_duplicates(subset='city')#利用去重保存first
# df_c_max.shape[0]
df_c_max.rename(columns={'actpay':'c_s_counts'}, inplace=True)
df_c_max.head()
cityshopc_s_counts
0上海天猫超市269
1嘉兴五芳斋官方旗舰店105
2北京稻香村食品旗舰店51
3杭州知味观官方旗舰店47
9泉州蓝氏钟楼旗舰店25
# df_c_max[df_c_max['city']=='黔西']

从中可以分析出,在每个城市中的主导店铺、品牌

4.13 每个省份店铺数量排名第一的shop

df_p_max = pd.pivot_table(df,index=['province','shop'],aggfunc='count')
df_p_max = df_p_max[['actpay']]
df_p_max = df_p_max.sort_values('actpay',ascending=False).reset_index()
df_p_max = df_p_max.drop_duplicates(subset='province')#利用去重保存first
# df_p_max.shape[0]
df_p_max.rename(columns={'actpay':'c_s_counts'}, inplace=True)
df_p_max.head()
provinceshopc_s_counts
0上海天猫超市269
1浙江五芳斋官方旗舰店105
2北京稻香村食品旗舰店51
9福建蓝氏钟楼旗舰店25
10河北三全京之良品专卖店23

从中可以分析出,在每个省份中的主导店铺、品牌

同理我们还可以得出每个省份/城市中销售额top1的店铺/品牌

4.14 得到每个城市相同店铺的总销售额并排序

df_c_pay_max = df.groupby(['city','shop'],as_index=False)['actpay'].sum().sort_values('actpay',ascending=False)
df_c_pay_max.head()

4.15 得到每个城市店铺数量排名第一的shop中的对应销售额

df_c_pay_max = df.groupby(['city','shop'],as_index=False)['actpay'].sum().sort_values('actpay',ascending=False)#得到每个城市相同店铺的总销售额并排序
#这里不需要删除去重,因为我们只需要得到每个城市的相同店铺销售额即可
df_c_pay_max = df_c_pay_max.merge(df_c_max,on=['city','shop'],how='right')#以df_c_max表为主进行连接,得到其对应的销售额
df_c_pay_max.head()

4.16 每个城市销售额top1的店铺

df_c_pay = df.groupby(['city','shop'],as_index=False)['actpay'].sum().sort_values('actpay',ascending=False)
df_c_pay = df_c_pay.drop_duplicates(subset='city')#删除相同城市中店铺销售额不是第一的行
df_c_pay.rename(columns={'actpay':'actpay_sum'}, inplace=True)
df_c_pay.head()
查看df,并添加brand列
#为df添加brand列
df['brand'] = df.shop.apply(get_brand)
df.sort_values('actpay',ascending=False).head(20)
namepriceppayshopprovincecityactpayshopkindactpay_sumbrand
1五芳斋粽子礼盒装鲜肉咸蛋黄大肉粽嘉兴豆沙甜粽端午团购散装礼品89.901000000五芳斋官方旗舰店浙江嘉兴89900000.00旗舰店89900000.00五芳斋
13真真老老嘉兴粽子礼盒装肉粽糯米鲜肉蛋黄肉大粽子甜粽端午节礼品59.90700000真真老老旗舰店浙江嘉兴41930000.00旗舰店20967174.55真真老老
61五芳斋粽子礼盒蛋黄肉粽豆沙粽大肉棕子浙江特产新鲜嘉兴粽子肉粽89.90200000五芳斋官方旗舰店浙江嘉兴17980000.00旗舰店17980000.00五芳斋
115稻香私房嘉兴大蛋黄鲜肉粽甜味蜜枣散装粽子礼盒装端午节特产送礼59.90100000稻香村食品旗舰店北京北京5990000.00旗舰店5990000.00稻香村
195真真老老嘉兴粽子蛋黄肉粽端午粽子礼盒装鲜肉粽子甜粽大粽子团购29.90200000真真老老旗舰店浙江嘉兴5980000.00旗舰店5980000.00真真老老
803五芳斋粽子礼盒蛋黄肉粽端午节送礼团购肉粽豆沙棕子嘉兴特产粽子89.9065000五芳斋官方旗舰店浙江嘉兴5843500.00旗舰店5843500.00五芳斋
25知味观端午节粽子甜粽咸蛋黄大肉粽礼盒装嘉兴味鲜肉粽子散装团购64.9085000知味观官方旗舰店浙江杭州5516500.00旗舰店5516500.00知味观
35五芳斋粽子礼盒装新鲜大肉粽蛋黄猪肉粽豆沙端午食品团购嘉兴特产39.90100000五芳斋浙江专卖店浙江嘉兴3990000.00专卖店/专营店3990000.00五芳斋
84荃盛粽子鲜肉粽蛋黄鲜肉粽豆沙粽子甜粽端午节礼品嘉兴粽子礼盒装59.9065000荃盛旗舰店浙江宁波3893500.00旗舰店3893500.00其他品牌
10五芳斋粽子竹篮礼盒华礼嘉兴特产蛋黄鲜肉粽豆沙咸蛋端午送礼团购159.0020000五芳斋官方旗舰店浙江嘉兴3180000.00旗舰店3180000.00五芳斋
40鲜肉粽嘉兴粽子蛋黄肉粽咸散装端午节大甜粽送礼品团购批发礼盒装39.9055000集采食品专营店浙江嘉兴2194500.00专卖店/专营店2194500.00其他品牌
793嘉兴粽子新鲜大肉粽蛋黄肉粽甜粽竹篮粽子礼盒装组合端午送礼团购857.902491千味食代i浙江嘉兴2137028.90专卖店/专营店2137028.90其他品牌
130【百亿补贴】五芳斋新鲜粽子礼盒装大肉粽豆沙嘉兴端午送礼咸鸭蛋99.9020000五芳斋浙江专卖店浙江嘉兴1998000.00专卖店/专营店1998000.00五芳斋
113五芳斋蛋黄肉粽量贩装 嘉兴特产大粽子肉粽子团购礼品早餐鲜肉粽95.0020000五芳斋官方旗舰店浙江嘉兴1900000.00旗舰店333003.33五芳斋
1174五芳斋粽子蛋黄肉粽豆沙棕子多口味组合 端午节浙江特产嘉兴粽子34.9050000五芳斋官方旗舰店浙江嘉兴1745000.00旗舰店1745000.00五芳斋
175怀裕泰 粽子礼盒装 嘉兴棕子蛋黄鲜肉粽端午节送礼礼品大团购定制39.9040000怀裕泰旗舰店浙江嘉兴1596000.00旗舰店1596000.00其他品牌
75三全粽子礼盒装肉粽嘉兴粽子豆沙蜜枣粽端午甜粽散装特产鲜肉粽叶49.9030000三全京之良品专卖店河北廊坊1497000.00专卖店/专营店1497000.00其他品牌
1332五芳斋x太极禅苑粽子礼盒 嘉兴特产粽子蛋黄肉粽蜜枣粽端午节礼品149.0010000五芳斋官方旗舰店浙江嘉兴1490000.00旗舰店1490000.00五芳斋
114五芳斋福享五芳粽子礼盒端午节大蛋黄肉粽豆沙甜棕子特产嘉兴粽子89.9015000五芳斋官方旗舰店浙江嘉兴1348500.00旗舰店675674.00五芳斋
76德荣恒竹篮粽子礼盒装蛋黄鲜肉粽散装大甜粽端午节嘉兴特产送礼品27.8045000德荣恒旗舰店浙江嘉兴1251000.00旗舰店1251000.00其他品牌

5.可视化分析实现

未完待续

5.1 绘制name产品名称词云图

6.数据源

点击此处
链接:https://pan.baidu.com/s/1N_DVRlfJQElZT_0oP_7gtQ
提取码:love
复制这段内容后打开百度网盘手机App,操作更方便哦

个人学习成果检验,学习笔记而已,望大佬给出宝贵意见。觉得有帮助,就请给我一个鼓励的赞在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高中不复,大学纷飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值