疫情爆发以来,吃货们都过上了居家隔离的日子,虽说疫情防控形势持续向好,但是经常外出吃饭的人却不是很多,各类方便的速食食品成了年轻人的最爱,其中热干面就是很多吃货的最爱之一。之前文章(Python揭秘为什么你看到的文字评论和图片都是最好的)中就有介绍,平台推荐的排序有一定的水分。
那么谁家的热干面最火,最受欢迎?今天我将从淘宝上爬取全网销售的热干面商家,进行数据收集与分析。
数据预处理
首先对热干面数据导入和预处理
# 导入所需包import pandas as pdfrom pyecharts.faker import Fakerfrom pyecharts import options as optsfrom pyecharts.charts import Pie, Page
#读取数据df = pd.read_excel('热干面数据.xlsx')df.head()
#去除重复项df.drop_duplicates(inplace=True)df.info()
<class 'pandas.core.frame.DataFrame'>Int64Index: 744 entries, 0 to 750Data columns (total 7 columns):goods_name 744 non-null objectshop_name 744 non-null objectprice 744 non-null float64location 744 non-null objectUnnamed: 4 744 non-null float64Unnamed: 5 121 non-null float64销量 744 non-null int64dtypes: float64(3), int64(1), object(3)memory usage: 46.5+ KB
数据分析及可视化
1.店铺销量排行榜
上一部分获取到288家销售热干面的商家,视频中展示来展示Top15的头部商家,前五名分别为蔡林记旗舰店、天猫超市、大汉口旗舰店、有你一面旗舰店、宏派旗舰店,在热干面行业中,寡头效应非常明显,第一名蔡林记销售约12万笔,大约是第六名面小弟的5倍的销量。
**代码实现
**
from snapshot_selenium import snapshot as driverfrom pyecharts import options as optsfrom pyecharts.charts import Barfrom pyecharts.render import make_snapshotdef bar_chart() -> Bar: c = ( Bar() .add_xaxis(list(df_gb_top['shop_name'])) .add_yaxis("淘宝Top15热干面销售商家", list(df_gb_top['sale_num']))# .add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49]) .reversal_axis() .set_series_opts(label_opts=opts.LabelOpts(position="right")) .set_global_opts(title_opts=opts.TitleOpts(title="排行榜")) ) return c# 需要安装 snapshot-selenium 或者 snapshot-phantomjsbar_chart().render('bar_chart.html')
2.全国各省热干面商家占比
从上图中我们可以看出,湖北省热干面企业占比为34%,排名第一,能在《舌尖上的中国》播出也是理所当然。河南省占比约为13%,排名第二,不愧是粮食大省。排名第三为上海市,占比大约为11%。
代码实现
from pyecharts.faker import Fakerfrom pyecharts import options as optsfrom pyecharts.charts import Pie, Page# 绘制柱形图pie1 = Pie(init_opts=opts.InitOpts(width='1350px', height='750px'))pie1.add("", [*zip(list(df_pr['location']), list(df_pr['shop_name']/744))], radius=["40%","75%"]) pie1.set_global_opts(title_opts=opts.TitleOpts(title='全国各省热干面企业占比'), legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"), toolbox_opts=opts.ToolboxOpts())# pie1.set_series_opts(label_opts=opts.LabelOpts(formatter="{c}%")) pie1.render('bar_chart.html')
3.热干面价格区间
在散点图中,我们可以很清晰地看出价格主要集中在20~45元之间,另外价位在8.8,9.9元的热干面也比较多。对数据进一步分析,我们可以得到,价格的高低与份量有一定的关系。
代码实现
from pyecharts import options as optsfrom pyecharts.charts import Scatterfrom pyecharts.commons.utils import JsCodefrom pyecharts.faker import Fakerc = ( Scatter() .add_xaxis(list(set(df_pr_pr['location']))) .add_yaxis( "全国各城市商家价格多维散点图", [list(z) for z in zip(df_pr_pr['price'].astype(float), df_pr_pr['location'])], label_opts=opts.LabelOpts( formatter=JsCode( "function(params){return params.value[1] +' : '+ params.value[2];}" ) ), ) .set_global_opts( title_opts=opts.TitleOpts(title="散点图"), tooltip_opts=opts.TooltipOpts( formatter=JsCode( "function (params) {return params.name + ' : ' + params.value[2];}" ) ), visualmap_opts=opts.VisualMapOpts( type_="color", max_=150, min_=20, dimension=1 ), ) .render("scatter_multi_dimension.html"))
结论
通过对热干面商家的分析,想必大家对热干面的有了清晰的认识,喜欢热干面的可以搞起来了,在文章最后把技术关键点说明一下:
数据爬取问题:淘宝反爬虫做的比较好,如果获取文章数据有一定难度,可以关注下方二维码找到小助手微信获取,备注:“热干面数据”;
数据可视化问题:本文采用了pyecharts库进行可视化展示,在之前文章(必须掌握这些Python动态炫酷图,画面唯美,非常实用)使用的是plotly库,对于孰好孰劣,看个人偏好;
数据分析方面:根据不同的数据展示需求,使用不同的图形,才能恰到好处;
目前正是全国助力复工复产阶段,助力武汉经济快速恢复,小编也借助本篇文章略表微薄之力,进行一次推荐。
获取更多精彩内容,请长按二维码关注!
解惑答疑,进群交流
喜欢文章,点个“ 在看 ”
本文分享自微信公众号 - Python学习与数据挖掘(Python_CaiNiao)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。