99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?
大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?
2021-06-15
收藏
大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

CDA數(shù)據(jù)分析師 出品

【導(dǎo)語】:今天我們來聊聊粽子,Python分析部分請看第三部分。

又到一年端午節(jié),作為中華民族的傳統(tǒng)節(jié)日,傳說粽子是為祭奠投江的屈原而傳承下來的,如今吃粽子也成了端午的主要習(xí)俗之一。除了商場出售的琳瑯滿目的粽子,各家各戶的媽媽和奶奶們也紛紛浸糯米、洗粽葉、包粽子。

粽子的包法和形狀也很有講究,除了常見的三角粽、四角粽,還長粽、塔型粽和牛角粽等等。

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

說到粽子的口味就更多了。粽子幾乎每年都會引發(fā)咸甜之爭,有句話說的是——吃貨不分南北,口味必分甜咸。

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

北方人吃粽子偏愛甜口,多以紅棗、豆沙做餡,少數(shù)也采用果脯為餡,蘸白糖或紅糖食用;

而南方青睞咸口,口味有咸肉粽、咸蛋黃粽、板栗肉粽、臘肉香腸粽、火腿粽、蝦仁粽等等。

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

那么哪家的粽子買得最好?大家都普遍喜歡什么口味?今天我們就用數(shù)據(jù)來盤一盤端午的粽子。

本文要點(diǎn):

  • 粽子甜咸之爭,自己包粽子選什么料?
  • 吃貨的力量,全網(wǎng)粽子誰家賣的最好?

一、粽子“甜咸之爭”

自己包粽子選什么料?

自己家包的粽子,永遠(yuǎn)是最好吃的,相比起來外面賣的粽子都不香了。對廚藝有自信的小伙伴們大可以自己試著包包看。

那么自己包粽子,選甜口還是咸口?餡料配紅豆還是五花肉?

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

首先我們獲取了,美食天下網(wǎng)站關(guān)于粽子的菜譜,共460條。看看哪些菜譜最受歡迎吧。

1、吃甜粽還是咸粽?

在甜咸之爭中,這次甜粽勝出了。

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

有33.04%的菜譜都是甜粽,其次22.17%才是咸粽。同時(shí)也有許多小伙伴選擇最簡單的純糯米粽,原味,這部分占比17.83%。

2、粽子里包了什么?

食材方面我們看到:

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

無論如何糯米和粽葉都是必不可少的。

然后在咸粽方面,五花肉很多人的首選,其次咸蛋黃、香菇、排骨、臘腸等都是常見的選擇;在甜粽方面呢,紅豆蜜棗是很多人的首選。其次綠豆、豆沙、花生米、西米等也不錯(cuò)。

3、調(diào)料放什么?

調(diào)料方面可以看到:

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

糖和醬油是少不了的。還花生油、蠔油等選擇。除了這些常規(guī)操作,也還有選擇抹茶粉這種創(chuàng)新的做法。

二、吃貨的力量

全網(wǎng)粽子誰家賣的最好?

出于自己不會包粽子、圖方便、過節(jié)送人等考慮,直接在網(wǎng)上買粽子的人也不少。那么哪些店鋪的粽子最受大眾歡迎呢?我們分析獲取了淘寶售賣粽子商品數(shù)據(jù),共4403條。

1、全網(wǎng)誰家的粽子賣得最好?

首先在店鋪方面:

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

五芳齋是妥妥的霸主,粽子銷量位居第一。其次真真老老位居第二。

2、哪個(gè)省份是粽子大省?

這些店鋪都來自哪里?誰是真正的粽子大省呢?

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?
大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

經(jīng)過分析發(fā)現(xiàn),浙江一騎絕塵,粽子店鋪數(shù)量遠(yuǎn)遠(yuǎn)領(lǐng)先其他省份。浙江的粽子店鋪占到全網(wǎng)的67.71%。毫無爭議的大佬。

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

其次廣東、上海、北京分部位于第二、三、四名。

3、粽子都賣多少錢

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

粽子都賣多少錢也是消費(fèi)者們最關(guān)系的了,淘寶店鋪買的粽子一般一份有10個(gè)左右。分析發(fā)現(xiàn),價(jià)格在一份50元以內(nèi)的還是占到絕多數(shù),全網(wǎng)有55.22%的粽子都在50元內(nèi)。其次是50-100元的,占比24.81%。

4、不同價(jià)格粽子的銷量

那么銷售額方面又如何呢,什么價(jià)格的粽子賣的最好?

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

可以看到50-100元的粽子銷售額最高,占比53.61%。其次是50元以內(nèi)的,占比22.06%。畢竟從送禮品的角度,還是要一定價(jià)格考量的,太平價(jià)的不行,需要一定的檔次。

5、粽子商品標(biāo)題里都在說些什么?

最后,我們再看到粽子的商品標(biāo)題:

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

整理發(fā)現(xiàn),除了"粽子"、"端午"等關(guān)鍵詞,"嘉興"被提到的最多??磥砑闻d的粽子是真的很有名呀。

粽子餡料方面,"蛋黃"、"鮮肉"、"豆沙"都是非常熱門的。同時(shí)"禮盒包裝"、"送禮"、"五芳齋"等也被多次提到。

三、用Python教你

爬取淘寶粽子數(shù)據(jù)

我們使用Python獲取了淘寶網(wǎng)粽子商品銷售數(shù)據(jù)和美食天下菜譜數(shù)據(jù),進(jìn)行了一下數(shù)據(jù)分析。此處展示淘寶商品分析部分代碼。按照數(shù)據(jù)讀入-數(shù)據(jù)處理數(shù)據(jù)可視化流程,首先導(dǎo)入我們使用的Python庫,其中pandas用于數(shù)據(jù)處理,jieba用于分詞,pyecharts用于可視化。

# 導(dǎo)入包
import pandas as pd
import time
import jieba
from pyecharts.charts import Bar, Line, Pie, Map, Page
from pyecharts import options as opts
from pyecharts.globals import SymbolType, WarningType
WarningType.ShowWarning = False

1、數(shù)據(jù)導(dǎo)入

# 讀入數(shù)據(jù)
df_tb = pd.read_excel('../data/淘寶商城粽子數(shù)據(jù)6.23.xlsx')
df_tb.head()

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

查看一下數(shù)據(jù)集大小,可以看到一共有4403條數(shù)據(jù)。

df_tb.info()

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

2、數(shù)據(jù)預(yù)處理

我們對數(shù)據(jù)集進(jìn)行以下處理,以便我們后續(xù)的可視化分析工作,經(jīng)過處理之后的數(shù)據(jù)共4192條。

  1. 去除重復(fù)值
  2. goods_name:暫不處理
  3. shop_name:暫不處理
  4. price:暫不處理
  5. purchase_num:提取人數(shù),注意單位萬的處理
  6. 計(jì)算銷售額 = price * purchase_num
  7. location:提取省份

# 去除重復(fù)值
df_tb.drop_duplicates(inplace=True)
# 刪除購買人數(shù)為空的記錄
df_tb = df_tb[df_tb['purchase_num'].str.contains('人付款')]
# 重置索引
df_tb = df_tb.reset_index(drop=True)
# 提取數(shù)值
df_tb['num'] = df_tb['purchase_num'].str.extract('(d+)').astype('int')
# 提取單位
df_tb['unit'] =
df_tb.purchase_num.str.extract(r'(萬)')

df_tb['unit'] = df_tb.unit.replace('萬', 10000).replace(np.nan, 1)
# 重新計(jì)算銷量
df_tb['true_purchase'] = df_tb['num'] * df_tb['unit']
# 刪除列
df_tb = df_tb.drop(['purchase_num', 'num', 'unit'], axis=1)
# 計(jì)算銷售額
df_tb['sales_volume'] = df_tb['price'] * df_tb['true_purchase']
# 提取省份
df_tb['province'] = df_tb['location'].str.split(' ').str[0]
df_tb.head()

大數(shù)據(jù)告訴你:粽子甜咸之爭誰勝出?吃貨最愛買誰家的粽子?

3、數(shù)據(jù)可視化

數(shù)據(jù)可視化部分主要對以下的數(shù)據(jù)進(jìn)行匯總分析,分析維度如下:

  1. 粽子店鋪商品銷量排行
  2. 各省份粽子店鋪數(shù)量排行
  3. 各省份粽子銷量分布
  4. 粽子都賣多少錢?
  5. 不同價(jià)格區(qū)間的銷售額分布?
  6. 粽子的食材
  7. 商品標(biāo)題詞云圖

粽子店鋪商品銷量排行Top10

shop_top10 = df_tb.groupby('shop_name')['true_purchase'].sum().sort_values(ascending=False).head(10)
# 條形圖
bar1 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px'))
bar1.add_xaxis(shop_top10.index.tolist())
bar1.add_yaxis('', shop_top10.values.tolist())
bar1.set_global_opts(title_opts=opts.TitleOpts(title='粽子店鋪商品銷量排行Top10'),
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),
visualmap_opts=opts.VisualMapOpts(max_=1350657.0)
)
bar1.render()

各省份粽子店鋪數(shù)量排行Top10

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

# 條形圖
bar2 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px'))
bar2.add_xaxis(
province_top10.index.tolist())

bar2.add_yaxis('',
province_top10.values.tolist())

bar2.set_global_opts(title_opts=opts.TitleOpts(title='各省份粽子店鋪數(shù)量排行Top10'),
visualmap_opts=opts.VisualMapOpts(max_=1000)
)
bar2.render()

浙江vs其他省份店鋪粽子銷量對比

names = ['浙江', '其他省份']
numbers = [3378601.0, 1611409.0]
data_pair = [list(z) for z in zip(names, numbers)]
# 繪制餅圖
pie1 = Pie(init_opts=opts.InitOpts(width='1350px', height='750px'))
pie1.add('', data_pair, radius=['35%', '60%'])
pie1.set_global_opts(title_opts=opts.TitleOpts(title='浙江vs其他省份店鋪粽子銷量對比'),
legend_opts=opts.LegendOpts(orient='vertical', pos_top='15%', pos_left='2%'))
pie1.set_series_opts(label_opts=opts.LabelOpts(formatter=":geybsqlxm7mc%"))
pie1.set_colors(['#EF9050', '#3B7BA9'])
pie1.render()

全國店鋪粽子銷量分布

province_num = df_tb.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_=300000),
)
map1.render()

粽子都賣多少錢?

# 分箱
bins = [0,50,100,150,200,500,1000,9999]
labels = ['0-50元', '50-100元', '100-150元', '150-200元', '200-500元', '500-1000元', '1000-9999元']
df_tb['price_cut'] = pd.cut(df_tb.price, bins=bins, labels=labels, include_lowest=True)
price_num = df_tb['price_cut'].value_counts()
# 數(shù)據(jù)對
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%'], rosetype='radius')
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=":geybsqlxm7mc%"))
pie2.set_colors(['#EF9050', '#3B7BA9', '#6FB27C', '#FFAF34', '#D8BFD8', '#00BFFF'])
pie2.render()

不同價(jià)格區(qū)間的銷售額

# 添加列
cut_purchase = round(df_tb.groupby('price_cut')['sales_volume'].sum())
# 數(shù)據(jù)對
data_pair = [list(z) for z in zip(cut_purchase.index.tolist(),
cut_purchase.values.tolist())]

# 繪制餅圖
pie3 = Pie(init_opts=opts.InitOpts(width='1350px', height='750px'))
pie3.add('', data_pair, radius=['35%', '60%'])
pie3.set_global_opts(title_opts=opts.TitleOpts(title='不同價(jià)格區(qū)間的銷售額表現(xiàn)'),
legend_opts=opts.LegendOpts(orient='vertical', pos_top='15%', pos_left='2%'))
pie3.set_series_opts(label_opts=opts.LabelOpts(formatter=":geybsqlxm7mc%"))
pie3.set_colors(['#EF9050', '#3B7BA9', '#6FB27C', '#FFAF34', '#D8BFD8', '#00BFFF', '#7FFFAA'])
pie3.render()

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }