<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          利用 Python 分析了一波月餅,我得出的結(jié)論是?

          共 12634字,需瀏覽 26分鐘

           ·

          2021-09-18 08:42

          公眾號(hào)「Python之每日一課」后臺(tái)回復(fù)「月餅」,即可獲取本文完整數(shù)據(jù)。

          作者:Cherich_sun
          來源:

          https://blog.csdn.net/w_yuqing/article/details/119888532

          本文為讀者投稿

          馬上八月十五了,又迎來了一年一度的中秋節(jié)。中秋節(jié)起源于古代對(duì)月的崇拜,至今已歷史悠久。

          中秋節(jié)到了,各地都有自己的習(xí)俗。但中秋節(jié)的習(xí)俗共同之處不外乎:祭月、賞月、觀花燈、吃月餅。月餅在我印象中,記憶最深的還是"五仁"口味,是家里長(zhǎng)輩們的最愛。還記得小時(shí)候最討厭吃到"五仁"里面的"紅絲絲綠絲絲"。

          后來也吃到有一些非常好吃的月餅,今天特意上網(wǎng)搜了一下,見到好多沒吃過的口味,看的眼花繚亂,所以我要忍著口水用 Python 給大家分析看看什么口味最好吃,幫助還沒買月餅的小伙伴做個(gè)選購參考。

          實(shí)現(xiàn)方式:Python + Pandas(數(shù)據(jù)處理) + Matplotlib(可視化) + boken(可視化聯(lián)動(dòng))

          一、分析目的

          • 1)哪個(gè)種類的月餅銷量最高?

          • 2)月餅的價(jià)格區(qū)間怎么樣?

          • 3)TOP 15 口碑較好的品牌?

          • 4)TOP 10 好吃的月餅口味?

          • 5)TOP 10 月餅銷量最高店鋪?

          • 6)熱門品牌月餅價(jià)格對(duì)比

          • 7)不同口味的月餅品牌推薦(自動(dòng))

          二、獲取數(shù)據(jù)

          數(shù)據(jù)來源: 京東搜索關(guān)鍵字【月餅】,使用自動(dòng)采集軟件,采集 2000+的數(shù)據(jù), 包含月餅標(biāo)題、店鋪名、品牌、價(jià)格、銷量、類別、產(chǎn)地

          # 導(dǎo)入相關(guān)庫,讀取數(shù)據(jù)
          import pandas as pd
          import matplotlib.pyplot as plt
          import matplotlib as mpl
          import seaborn as sns
          import numpy as np
          sns.set(font='SimHei',style='darkgrid')

          data = pd.read_excel('C:/Users/Cherich/Desktop/月餅數(shù)據(jù).xlsx')
          data.info()

          店鋪名、品牌、月餅類別、產(chǎn)地都有缺失值。前兩個(gè)缺失值較少,可直接刪除空值;月餅類別很重要,所以要考慮填充;最后產(chǎn)地,可以基于現(xiàn)有的產(chǎn)地直接分析,對(duì)最后的結(jié)果,不會(huì)有太大影響。

          三、數(shù)據(jù)清洗

          1、填充類別

          填充的方式通常有兩種:一種基于機(jī)器學(xué)習(xí)的相關(guān)算法做預(yù)測(cè);第二種找規(guī)律,比如在大多數(shù)標(biāo)題里包含了月餅類別,所以采取字符串判斷,就可以填充了。

          data.head()

          categorys = data.groupby('category')
          category_list = [i[0][:2for i in categorys]
          category_list[-5] = '卡券'
          print(category_list)
          # ['京式''其它''冰淇''冰淇''冰皮''卡券''臺(tái)式''卡券''港式''滇式''潮式''蘇式']
          datas = data[data['category'].isnull()==True]

          def add_category(df):
              name = '其它'
              for j in category_list:
                  if j in str(df):
                      name = str(j)   
              return name
          datas['category'] = datas['title'].apply(add_category)
          datas1 = data[data['category'].isnull()==False]
          datas2 = pd.concat([datas1,datas])
          datas2

          2、填充口味

          口味同樣也出現(xiàn)在標(biāo)題里,和上面同樣的方法,進(jìn)行填充。因?yàn)榭谖稕]有單獨(dú)的字段,所以要填充口味關(guān)鍵詞,不得不說,月餅口味還真是多!

          tastes = ["冰皮","冰淇","蛋黃蓮蓉","豆沙","黑芝麻","火腿","椒鹽","榴蓮","玫瑰","流心","奶酪","牛肉","水果","酥皮","五仁","椰蓉","棗蓉","桃仁"]

          def add_taste(df):
              name =''
              for j in tastes:
                  if j in str(df):
                      name = str(j) 
                      break
                  else:
                      name = '混合口味'

              return name
          datas2['taste'] = datas2['title'].apply(add_taste)
          datas2.head()

          3、刪除店鋪名為空的數(shù)據(jù)

          datas2.dropna(subset=['shop'],inplace=True)
          datas2.info()

          4、標(biāo)記價(jià)格區(qū)間

          def price(df):
              lable = ''
              if 0<df<=50:
                  lable= '0~50元'
              elif 50<df<=100:
                  lable ='50~100元'
              elif 100 < df <=150:
                  lable = '100~150元'
              elif 150 <df <= 200:
                  lable = '150~200元'
              else:
                  lable = '200元以上'
              return lable

          datas2['price_lable'] = datas2['price'].apply(price)
          datas2.head()

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

          1、月餅的價(jià)格區(qū)間情況

          las = datas2.groupby(datas2['price_lable']).size()
          las.sort_values(ascending=True,inplace=True)
          plt.figure(figsize=(8,6),dpi=80)
          plt.title(label='月餅價(jià)格區(qū)間分布',fontsize=20)
          size = 0.3
          patches, l_text, p_text = plt.pie(las.values,labels = las.index, shadow=True,
                                            colors=plt.cm.coolwarm_r(np.linspace(0,1,len(las.index))),wedgeprops=dict(width=size, edgecolor='w'),autopct='%.2f%%',startangle=300)
          plt.show()

          其中31%的月餅在50元以下,看來大多數(shù)的月餅還是比較實(shí)惠的;居然有24%的月餅在200元以上,月餅這么貴了嘛?

          2、月餅種類的銷量對(duì)比

          big_category = datas2[datas2['category']!='其它'].groupby(datas2['category'])
          category = [i for i,j in big_category]
          numbers = [j['sales'].sum() for i,j in big_category]


          plt.figure(figsize = (5,4),dpi=80)
          plt.title(label='不同類別月餅銷量對(duì)比',fontsize=18)
          plt.bar(category,numbers, color=plt.cm.coolwarm_r(np.linspace(0,1,len(numbers))))
          plt.xticks(rotation=45)
          plt.grid()
          plt.show()

          看來擠進(jìn)前三名的月餅類別是廣式、蘇式、港式月餅,好奇心驅(qū)使,特意查了這些月餅,究竟哪里好吃!

          廣式月餅:廣式的皮薄,皮餡比一般在1:4,餡料多以椰絲、蓮蓉、蛋黃、豆沙為主,油多,吃起來口感酥軟。

          港式月餅和廣式比較接近,因?yàn)榈乩砩暇捅容^接近,但是港式在廣式的基礎(chǔ)上進(jìn)行了改良,低脂、低油是港式的特點(diǎn)。趕緊給女神安排上!

          蘇式月餅江浙滬一帶的特色,最大的特色就是酥皮,外酥內(nèi)軟,很有層次感,越咀嚼越香。

          3、TOP 15 口碑較好的品牌

          shop = datas2.groupby(datas2['brand'])
          shop_dic = {i:j['sales'].sum() for i,j in shop}
          shop_dic = sorted(shop_dic.items(), key = lambda kv:(kv[1], kv[0]),reverse=True)
          ins = []
          val = []
          for i, j in shop_dic[:15]:
              ins.append(i.split()[0])
              val.append(j)
          # print(ins)
          vals = [round(datas2[datas2['brand']== z]['price'].mean()) for z in ins]
          # print(vals)
          plt.figure(figsize = (8,4),dpi=80)

          plt.title(label='TOP 15 口碑較好的品牌',fontsize=20)
          s = plt.barh(ins[::-1],val[::-1],height=0.9, color=plt.cm.coolwarm_r(np.linspace(0,1,len(ins))))
          i = 0
          plt.grid()
          plt.show()

          北京的稻香村在所有品牌中的銷量位居第一,其次華美、五芳齋、元朗……

          4、TOP 10 好吃的月餅口味

          shop = datas2[datas2['taste']!='混合口味'].groupby(datas2['taste'])
          shop_dic = {i:j['sales'].sum() for i,j in shop}
          shop_dic = sorted(shop_dic.items(), key = lambda kv:(kv[1], kv[0]),reverse=True)
          ins = []
          val = []
          for i, j in shop_dic[:15]:
              ins.append(i.split()[0])
              val.append(j)

          plt.figure(figsize = (8,4),dpi=80)
          plt.title(label='TOP 15 熱門月餅口味',fontsize=18)
          plt.bar(ins,val, color=plt.cm.coolwarm_r(np.linspace(0,1,len(ins))))
          plt.xticks(rotation=45)
          plt.grid()
          plt.show()

          據(jù)口味的銷量對(duì)比,熱門口味是蓮蓉蛋黃、流心、五仁、豆沙、火腿……

          5、TOP 10 月餅銷量最高店鋪

          shop = datas2.groupby(datas2['shop'])
          shop_dic = {i:j['sales'].sum() for i,j in shop}
          shop_dic = sorted(shop_dic.items(), key = lambda kv:(kv[1], kv[0]),reverse=True)
          ins = []
          val = []
          for i, j in shop_dic[:10]:
              ins.append(i.split()[0])
              val.append(j)

          plt.figure(figsize = (8,4),dpi=80)
          plt.title(label='TOP 10 銷量最高的店鋪',fontsize=18)
          plt.barh(ins[::-1],val[::-1],height=0.9, color=plt.cm.coolwarm_r(np.linspace(0,1,len(ins))))

          plt.grid()

          看來稻香村品牌雖然銷量第一,但是在店鋪銷量上,華美旗艦店位居第一

          6、品牌銷量詞云圖

          from wordcloud import WordCloud
          from PIL import Image
          li = [each for each in datas2['brand'].values]

          def func_pd(words):
              count_result = pd.Series(words).value_counts()
              return count_result.to_dict()

          frequencies = func_pd(li)
          plt.figure(figsize = (10,8),dpi=80)
          wordcloud = WordCloud(font_path="STSONG.TTF",background_color='#E6E6FA', width=700,height=350).fit_words(frequencies)
          plt.imshow(wordcloud)
          plt.axis("off")
          plt.show()

          7、熱門品牌月餅價(jià)格對(duì)比

          brand = ['華美''稻香村''五芳齋''美心''杏花樓''廣州酒家''元朗榮華''金尊''元朗''哈根達(dá)斯''潘祥記''YOTIME''金九''中大惠農(nóng)''功德林']
          datas = datas2[datas2['brand'].isin(brand)]

          groups = datas2['price'].groupby(datas2['brand'])

          plt.figure(figsize = (8,4),dpi=80)
          plt.title('熱門品牌價(jià)格對(duì)比',fontsize=18)

          box_1, box_2, box_3, box_4,box_5, box_6 = groups.get_group('華美'),groups.get_group('稻香村'),groups.get_group('廣州酒家'),groups.get_group('YOTIME'),groups.get_group('金九'),groups.get_group('五芳齋')

          labels = '華美''稻香村''廣州酒家''YOTIME''金九''五芳齋'

          bplot = plt.boxplot([box_1, box_2, box_3, box_4,box_5,box_6],patch_artist = True,showmeans=True,labels=labels)
          colors= plt.cm.coolwarm_r(np.linspace(0,1,len(labels)))

          for patch, color in zip(bplot['boxes'], colors):
              patch.set_facecolor(color)
          plt.grid(False)           
          plt.show()

          選了幾個(gè)熱門品牌,能看出在價(jià)格上:

          每個(gè)品牌都存在一定的較高異常值,屬于對(duì)購買能力較高的用戶,定制禮盒;

          均價(jià)最低的是華美和稻香村、五芳齋,看來銷量高一部分因素是因?yàn)閮r(jià)格。

          8、不同口味的月餅品牌推薦(自動(dòng))

          想實(shí)現(xiàn)通過選擇自己喜歡的口味,自動(dòng)推薦銷量較好的品牌。選用Boken做聯(lián)動(dòng),bokeh 是一個(gè)交互式的可視化庫,為瀏覽器而生。它可以快速的做出可交互的圖、儀表板以及數(shù)據(jù)應(yīng)用。

          import pandas as pd

          from bokeh.models.widgets import Panel
          from bokeh.models.widgets import Tabs
          import warnings
          warnings.filterwarnings('ignore')
          from bokeh.io import curdoc
          from bokeh.plotting import figure
          from bokeh.models import ColumnDataSource, Select
          from bokeh.layouts import row
          import matplotlib as mpl

          mpl.rcParams['font.family'] = 'SimHei'
          data = pd.read_excel('C:/Users/cherich/Desktop/月餅數(shù)據(jù).xlsx')

          brand = ['華美''稻香村''五芳齋''美心''杏花樓''廣州酒家利口福''元朗榮華''金尊''元朗''哈根達(dá)斯''潘祥記''YOTIME''金九''中大惠農(nóng)''功德林']
          data = data[data['brand'].isin(brand)]

          # ------------------------------------------------------------------
          # 創(chuàng)建下拉小部件: select
          types = list(data['taste'].unique())
          select1 = Select(options=types, value='蓮蓉')
          data_qudao = data[data.taste == '蓮蓉']
          data_qudao_a = data_qudao.groupby('brand').size().sort_values(ascending=False).head(15)
          print(data_qudao_a)
          data_qudao_b = pd.DataFrame(data=data_qudao_a, columns=['num'])
          data_qudao_b['ind'] = data_qudao_b.index
          # 創(chuàng)建數(shù)據(jù)源: source
          source1 = ColumnDataSource(data={
              'x': data_qudao_b['ind'],
              'y': data_qudao_b['num']
          })
          TOOLTIPS = [
              ("口味""@x"),
              ("銷量"" @y")
          ]
          p1 = figure(title='月餅口味店鋪推薦', x_range=data_qudao_a.index.to_list(), plot_width=620, plot_height=500,
                      x_axis_label='品牌', y_axis_label='銷量', tooltips=TOOLTIPS)

          p1.vbar('x', width=0.5, bottom=0, top='y'source=source1, color='#BCD2EE')

          def update_plot1(attroldnew):
              yr = select1.value
              data_qudao = data[data.taste == yr]
              data_qudao_a = data_qudao.groupby('brand').size().sort_values(ascending=False).head(15)
              data_qudao_b = pd.DataFrame(data=data_qudao_a, columns=['num'])
              data_qudao_b['ind'] = data_qudao_b.index
              source1.data = {
                  'x': data_qudao_b['ind'],
                  'y': data_qudao_b['num']
              }
              p1.title.text = '%s類型統(tǒng)計(jì)圖' % yr


          select1.on_change('value', update_plot1)
          layout2 = row(select1, p1)

          tab1 = Panel(child=layout2, title='口味')
          layout = Tabs(tabs=[tab1])
          curdoc().add_root(layout)

          啟動(dòng)bokeh服務(wù):

          bokeh serve --show aa.py


          選擇喜歡的口味,圖表自動(dòng)展示銷量最高的品牌。一個(gè)簡(jiǎn)單的分析動(dòng)態(tài)圖!

          五、結(jié)論

          1、大部分月餅的價(jià)格在50元以下,還是非常實(shí)惠的;

          2、廣式月餅最受歡迎,其次是港式月餅,蘇式月餅;

          3、口碑較好的品牌是:華美、稻香村、五芳齋、美心;

          4、熱門口味是:蛋黃蓮蓉、流心、五仁、豆沙、火腿、冰皮;

          推薦閱讀

          “羅永浩抖音首秀”銷售數(shù)據(jù)的可視化大屏是怎么做出來的呢?


          利用 Python 爬取了 13966 條運(yùn)維招聘信息,我得出了哪些結(jié)論?


          利用 Python 爬取了 37483 條上海二手房信息,我得出的結(jié)論是?


          利用 Python 分析了某化妝品企業(yè)的銷售情況,我得出的結(jié)論是?


          分析了汽車銷量數(shù)據(jù)下滑后,我發(fā)現(xiàn)了其中的秘密!


          在下方公眾號(hào)后臺(tái)回復(fù):面試手冊(cè),可獲取杰哥匯總的 3 份面試 PDF 手冊(cè)。

          瀏覽 23
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产成人无码AV一区二区网站 | 久久婷婷激情视频 | 九九在线观看视频 | 亚洲免费三级 | 人人操人人插 |