火遍全网的自热火锅哪款最好吃?我们用Python告诉你!

python爬虫人工智能大数据

共 11714字,需浏览 24分钟

 ·

2020-08-05 01:23

 



 CDA数据分析师 出品  

【导读】

随着自热食品越来越备受消费者的追捧,各种自热小火锅、自热米饭也成了妥妥的网红食品。我们今天就来聊一聊自热食品。


Python技术部分请直接看第三部分

获取数据代码:
扫描下方公众号
回复关键字自热

疫情期间,在宅在家里的日子,主打一人食概念的自热食品备受关注。自热火锅、自热米饭、即食酸辣粉、即食螺蛳粉等方便食品的销量迎来大幅度增长。光是今年春节,自热火锅的销售暴涨就惊起讨论无数。

 

自热火锅,自热米饭们就这么成为了新的网红食品,持续霸占着电商销售量榜首,你吃过自热火锅吗?哪款自热食品卖得最好?今天我们就带你用数据来解读这些自热食品。


01


“万物皆可自热”

自热食品就这么火了

 

随着自热食品越来越备受消费者的追捧,各种自热小火锅、自热米饭也成了妥妥的网红食品。一时间,各种自热食品品牌如雨后春笋涌出。自热食品的市场规模也逐年扩大,预计今年将达到40亿元。


来源:《自热食品网络关注度分析报告》—微热点大数据研究院

 

超市里曾经被泡面牢牢占据的方便食品货架,迅速被自热火锅、自热米饭、自热面抢走半壁江山。

 

目前自热食品的入局企业不仅有传统的火锅巨头,如海底捞、小龙坎;还有像三只松鼠、良品铺子等零食厂商;同时还有像自嗨锅莫小仙等主打速食品类的新兴品牌。


 

根据莫小仙的数据,在疫情期间的整体销量同比增长近400%。而自嗨锅3月份公布的数据显示,其线上订单量在疫情期间增长了200%-300%。

 

其实像外卖、速冻、泡面和眼下潮头上的各种自热锅,本质都是“懒人经济”。同样是方便食品,泡个面还得烧水,速冻食品还得开火加热,而自热锅多方便,比起方便面自热锅在选择上好歹有肉有菜有饭有面,选择上略胜一筹。

 

02


全网哪款自热火锅卖得最好?

 

我们使用Python获取了淘宝网自热食品相关的商品销售数据,共有4403条数据。

 

自热食品品类月销量

首先我们看看自热食品都有哪些类别。我们可以看到,卖得最好的是各种自热火锅,以超过190多万的月销量一骑绝尘。排在第二位的是自热米饭,销售量超过64万。排在后面的还有自热方便面、自热粉丝、自热烧烤等等。

 

哪款自热食品卖的最好?

那么都是哪些自热食品卖得最好呢?下面看到产品月销量排名top10。排在前三位的月销量都超过了12万,分别是椒吱自热小火锅、阿宽自热米饭和辣味客重庆自热小火锅。

 

自热食品店铺销量排行

都是哪些店铺占据着自热食品销量的前列呢?


通过分析我们发现,卖的做多的是天猫超市。那么具体的店铺方面,前三位分别是莫小仙、自嗨锅以及川蜀老味道。辣味客、白家陈记等店紧随其后。

 

自热食品标题词云

整理自热食物的标题后我们发现:“即时”、“速食”、“自热”、“懒人”等词都常常出现,果然是懒人经济,就是讲究个方便和快速,让你撕开包装,不需过多的操作就能吃上。类别上主要集中在“火锅”、“米饭”、“麻辣烫”、“面类”等。

 

自热食品店铺地区分布

这些自热食品的店铺都分布在哪些地区呢?从销量靠前的商品我们也可以猜到,这方面四川绝对是霸主,全网的自热食品店铺数量排名中,四川以1140家店铺称霸。




其次广东和上海分别以1007和1002家店位居二三。

 

自热食品都卖多少钱?

再看到自热食品的价格,可以看到30元以下的超过了半数,占比62.78%。这也是大众普遍能接受的价格,价格再高的话还不如点份外卖了。

 

03


教你用Python分析

全网自热食品数据

 

我们使用Python获取了淘宝网自热食品相关的商品销售数据,进行了以下数据分析。


扫描下方公众号
回复关键字“自热” 
获取详细数据代码


数据读入

1


首先导入所需包:

# 导入包
import numpy as np 
import pandas as pd 
import time  
import jieba 
import os  

from pyecharts.charts import Bar, Line, Pie, Map, Page
from pyecharts import options as opts 
import stylecloud
from IPython.display import Image

使用循环读入数据集,查看一下数据集大小,可以看到一共有4403条数据。


file_list = os.listdir('../data/'

df_all = pd.DataFrame() 
# 循环读入
for file in file_list:
    df_one = pd.read_excel(f'../data/{file}'
    df_all = df_all.append(df_one, ignore_index=True
print(df_all.shape) 


(13984, 6)


预览一下数据。

df_all.head() 



数据预处理

2


我们对数据集进行以下处理,以便我们后续的可视化分析工作,经过处理之后的数据共8418条。


  1. 去除重复值

  2. goods_name:暂不处理

  3. shop_name:暂不处理

  4. price:暂不处理

  5. purchase_num:提取人数,注意单位万的处理

  6. 计算销售额 = price * purchase_num

  7. location:提取省份


# 去除重复值
df_all.drop_duplicates(inplace=True)

# 删除购买人数为空的记录
df_all = df_all[df_all['purchase_num'].str.contains('人付款')]

# 重置索引
df_all = df_all.reset_index(drop=True)
df_all.info()


<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8418 entries, 0 to 8417
Data columns (total 6 columns):
 #   Column        Non-Null Count  Dtype  
---  ------        --------------  -----  
 0   category      8418 non-null   object 
 1   goods_name    8418 non-null   object 
 2   shop_name     8418 non-null   object 
 3   price         8418 non-null   float64
 4   purchase_num  8418 non-null   object 
 5   location      8418 non-null   object 
dtypes: float64(1), object(5)
memory usage: 394.7+ KB


# 提取数值
df_all['num'] = df_all['purchase_num'].str.extract('(\d+)').astype('int')
# 提取单位
df_all['unit'] = df_all.purchase_num.str.extract(r'(万)'
df_all['unit'] = df_all.unit.replace('万'10000).replace(np.nan, 1)
# 重新计算销量
df_all['true_purchase'] = df_all['num'] * df_all['unit'
# 删除列
df_all = df_all.drop(['purchase_num''num''unit'], axis=1)

# 计算销售额
df_all['sales_volume'] = df_all['price'] * df_all['true_purchase']

# location
df_all['province'] = df_all['location'].str.split(' ').str[0]
df_all.head() 



数据可视化

3



此部分部分主要对以下的维度数据进行汇总和可视化分析,以下展示关键部分:


  1. 自热食品细分品类月销量表现

  2. 自热食品各店铺月销量排行Top10

  3. 各省份自热食品店铺数量排行Top10

  4. 全国自热食品店铺月销量分布

  5. 自热食品都卖多少钱?

  6. 商品标题词云图

 

3.1 自热食品细分品类月销量表现

cat_num = df_all.groupby('category')['true_purchase'].sum() 
cat_num = cat_num.sort_values(ascending=False) 

# 条形图
bar1 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px')) 
bar1.add_xaxis(cat_num.index.tolist())
bar1.add_yaxis('', cat_num.values.tolist()) 
bar1.set_global_opts(title_opts=opts.TitleOpts(title='自热食品细分品类月销量表现'),
                     xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=0)),
                     visualmap_opts=opts.VisualMapOpts(max_=1960179.0
                    ) 
bar1.render() 


3.2 自热食品各店铺月销量排行Top10

shop_top10 = df_all.groupby('shop_name')['true_purchase'].sum().sort_values(ascending=False).head(10)
shop_top10.sort_values(inplace=True)

# 条形图
bar2 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px')) 
bar2.add_xaxis(shop_top10.index.tolist())
bar2.add_yaxis('', shop_top10.values.tolist()) 
bar2.set_global_opts(title_opts=opts.TitleOpts(title='自热食品各店铺月销量排行Top10'),
                    ) 
bar2.set_series_opts(label_opts=opts.LabelOpts(position='right'))
bar2.set_colors(['#50A3BA'])
bar2.reversal_axis() 
bar2.render() 


3.3 各省份自热食品店铺数量排行Top10

province_top10 = df_all.province.value_counts()[:10]

# 条形图
bar3 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px')) 
bar3.add_xaxis(province_top10.index.tolist())
bar3.add_yaxis('', province_top10.values.tolist()) 
bar3.set_global_opts(title_opts=opts.TitleOpts(title='各省份自热食品店铺数量排行Top10'),
                     visualmap_opts=opts.VisualMapOpts(max_=1140)
                    ) 
bar3.render() 


3.4 全国自热食品店铺月销量分布

province_num = df_all.groupby('province')['true_purchase'].sum().sort_values(ascending=False)  

# 地图
map1 = Map(init_opts=opts.InitOpts(width='1350px', height='750px'))
map1.add("", [list(z) for z in zip(province_num.index.tolist(), province_num.values.tolist())],
         maptype
='china'
        ) 
map1.set_global_opts(title_opts=opts.TitleOpts(title='全国自热食品店铺月销量分布'),
                     visualmap_opts=opts.VisualMapOpts(max_=500000),
                    )
map1.render() 


3.5 自热食品都卖多少钱

# 分箱
bins = [0,30,50,100,150,200,500,1000,9999]  
labels = ['0-30元''30~50元''50-100元''100-150元''150-200元''200-500元''500-1000元''1000-8800']

df_all['price_cut'] = pd.cut(df_all.price, bins=bins, labels=labels, include_lowest=True)  
price_num = df_all['price_cut'].value_counts() 

# 数据对
data_pair2 =  [list(z) for z in zip(price_num.index.tolist(), price_num.values.tolist())]

# 绘制饼图
pie2 
= Pie(init_opts=opts.InitOpts(width='1350px', height='750px'))
pie2.add('', data_pair2, radius=['35%''60%'])
pie2.set_global_opts(title_opts=opts.TitleOpts(title='自热食品都卖多少钱?'), 
                     legend_opts=opts.LegendOpts(orient='vertical', pos_top='15%', pos_left='2%'))
pie2.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:\n{d}%"))
pie2.set_colors(['#EF9050''#3B7BA9''#6FB27C''#FFAF34''#D8BFD8''#00BFFF'])
pie2.render() 


结语:


最后在说道自热食品,虽然说宅家时,打开包装稍等一会儿就能吃上热腾腾的小火锅或米饭,真的是太方便了。但是同时,关于自热食品安全隐患的消息也频出,在食物的种类和口感上更是比不上自己做的或外面吃的新鲜食材了。对自热食品你是怎么看的呢?欢迎留言告诉我们哦。



获取完整代码+数据:

扫描下方公众号,回复关键字自热,获取数据和代码吧。


浏览 26
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报