溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何解讀樂高

發(fā)布時間:2020-06-29 13:51:06 來源:億速云 閱讀:257 作者:清晨 欄目:編程語言

這篇文章主要介紹Python如何解讀樂高,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

【導語】:今天我們來聊聊小朋友和大朋友們都愛不釋手的樂高,Python技術部分請看第四部分。Show me data,用數(shù)據(jù)說話!

六一兒童節(jié)到了,過節(jié)的不僅僅是兒童,還有很多不想長大的成年人。然而,兒童游樂場不好意思去跟小朋友搶,幼兒園里已經(jīng)沒有容身之地。這時,玩具可能是最后一件能讓成年人過把癮的方式了。

根據(jù)去年的天貓雙11數(shù)據(jù)統(tǒng)計:雙11玩具/童車/益智/積木品牌TOP20榜單中,在玩具領域,樂高位居首位,占據(jù)了1/5的市場份額,銷售額超過1138萬元,銷量達14712件,妥妥的玩具領域大佬。今天我們就用數(shù)據(jù)來聊一聊,小朋友和大朋友們都愛不釋手的樂高。

Python如何解讀樂高

01、老少皆宜 大IP聯(lián)名,玩具居然可以這么玩?!

1932年,樂高公司在丹麥成立。商標“LEGO”是來自丹麥語“LEg GOdt”,意為“play well”。

Python如何解讀樂高

在10年前,樂高真是家庭水準的體現(xiàn),小時候能有個樂高玩具,應該是很多人的夢想,但是長大了發(fā)現(xiàn),現(xiàn)在擁有樂高玩具,也是夢想。有多少人在疫情期間想在淘寶買樂高玩具,也來挑戰(zhàn)下千年隼75192,證明自己不再是手殘黨。

外國的樂高狂熱粉絲用樂高拼了一輛能開的跑車,真的可以以每小時15公里的速度前進,這也算是人類創(chuàng)造能力的體現(xiàn),本身樂高提倡的就是自由組裝,play well。創(chuàng)造力才是他們的核心,這也就證明了樂高從小孩玩具到創(chuàng)造力檢測儀的進化。

如今的樂高就像玩具界的Supreme,時不時就弄出套聯(lián)名款,即使你不是樂高粉絲,也忍不住趕緊送上錢包。

之前,樂高就和暴雪合作推出了《樂高守望先鋒系列》。

Python如何解讀樂高

《樂高星球大戰(zhàn)系列》,至今全球已經(jīng)熱銷超過兩千萬套。其中“豪華千年隼”,更是被稱為“樂高史上最大套裝”。

Python如何解讀樂高

從DC的蝙蝠俠到漫威的鋼鐵俠,熱門電影的熱度“能蹭就蹭”。

Python如何解讀樂高

如果你是《哈利波特》迷,等不到送入學通知書的貓頭鷹?沒關系,樂高讓你直接把霍格沃茨買回家。

Python如何解讀樂高

02、都是哪些人在玩樂高?

那么都是哪些人在玩樂高呢?我們用Python獲取“樂高中國”最新的三條微博(5.06日、5.08日、5.15日發(fā)布)后的評論和粉絲信息,分析粉絲畫像,數(shù)據(jù)共4815條。

粉絲性別占比

首先看到樂高中國的微博粉絲性別占比,從數(shù)據(jù)可以看到,女性粉絲遠超男性,占比高達到65.23%,男性占比34.77%

Python如何解讀樂高

粉絲數(shù)量地區(qū)分布

都是哪些地區(qū)的人最愛玩樂高呢?

Python如何解讀樂高

從圖中可以看到,北上廣位居前三,海外的粉絲也不少,位居第四。之后就是江蘇、山東分別為第五和第六。

Python如何解讀樂高

粉絲年齡分布

Python如何解讀樂高

18-25歲的粉絲最多占比高達38.69%,其次就是25-30歲的了,占比為24.01%,30-40歲的占比19.97%??傮w來說,樂高在國內(nèi)的粉絲還是比較年輕化的,既有喜歡玩樂高的年輕玩家,也有熱衷給孩子買樂高玩的年輕父母。

微博評論詞云

Python如何解讀樂高

下面我們看到“樂高中國”微博下面的評論詞云,可以看到提到最多的就是"樂高"。同時"齊天大圣"、"忍者神龜"等都是被提及最多的熱門款。

03、哪款樂高賣的最好?

下面我們用Python進一步分析樂高在天貓和淘寶全網(wǎng)的數(shù)據(jù),我們共搜集整理了樂高在淘寶的商品數(shù)據(jù),一共4404條商品信息。以及天貓樂高旗艦店一共392條的數(shù)據(jù)。

樂高銷量TOP10店鋪

首先看到淘寶全網(wǎng)樂高銷量店鋪的排名。不用說,樂高官方旗艦店是妥妥的第一位,其次天貓超市的位居第二。

Python如何解讀樂高

樂高產(chǎn)地排名TOP10

Python如何解讀樂高

樂高產(chǎn)地方面,我們可以看到,廣東和上海是大頭,位居第一和第二。北京位居第三。

不同價格區(qū)間商品數(shù)量

Python如何解讀樂高

樂高的定價如何呢?我們可以看到0-50元的樂高商品是最多的,達到895件。其次100-200元的也不少,以701件位居第二。1000元以上的資深玩家款最少,為260件。

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

Python如何解讀樂高

這里就比較有意思了,1000元以上的銷售額占比達到32.24%,果然是人民幣玩家的專選。其次500-1000元的商品銷售額占比15.91%。緊接著較為平價的100-200元款,銷售額占比15.76%。

淘寶樂高商品標題詞云

Python如何解讀樂高

下面看到淘寶樂高相關標題的詞云,"樂高"、"玩具"、"積木"都是提及最多的關鍵詞。同時"益智"、"系列"、"正品"等詞也是標題中常有的詞。

我們再具體看看哪款樂高產(chǎn)品賣得最好。

樂高旗艦店商品銷量TOP10

讓我們再看到樂高旗艦店的數(shù)據(jù):

Python如何解讀樂高

我們可以看到,孫悟空齊天大圣黃金機甲這款,以月銷量4765件位居榜首。

Python如何解讀樂高

其次第二位是R賽車成人送禮收藏車模,月銷量2750件。然后云霄戰(zhàn)機孫悟空齊天大圣位居第三,月銷量達到2453件。

不同價格區(qū)間商品數(shù)量

Python如何解讀樂高

在商品價格區(qū)間方面,可以看到數(shù)量最多的還是0-50元的平價款,共2082件商品,遠遠高于其他價格區(qū)間。其次50-100元的商品有495件。

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

最后,我們再看到不同價格區(qū)間的銷售額:

Python如何解讀樂高

這里與淘寶全網(wǎng)數(shù)據(jù)不同,銷售額占比最高的是0-50元的商品,占比49.21%。其次是50-100元,占比16.13%。而1000元以上的銷售額占比最少,僅為2.94%。這也說明,在購買1000元以上的收藏款時,大家更傾向于在其他渠道購買,而不是官方旗艦店。

樂高旗艦店商品標題詞云

Python如何解讀樂高

我們再看看在樂高旗艦店,商品標題都有什么特點??梢钥吹綐祟}中,"積木"、"玩具"、"XX系列"都被常常提到。同時"送禮"、"創(chuàng)意"、"益智"、"收藏"等也常出現(xiàn)。

04、帶你用Python分析 樂高淘寶數(shù)據(jù)

我們使用Python分別獲取了淘寶上的樂高商品數(shù)據(jù)、樂高旗艦店的店鋪商品銷售數(shù)據(jù)和微博樂高中國的評論和粉絲數(shù)據(jù),進行了數(shù)據(jù)分析分析。此處展示淘寶商品分析部分代碼。按照常規(guī)數(shù)據(jù)分析流程進行:

01 數(shù)據(jù)讀入

首先導入所需的庫,并讀入采集的數(shù)據(jù)集。其中pandas用于數(shù)據(jù)整理、jieba用于分詞、pyecharts和stylecloud用于繪制可視化圖形。

# 導入包import pandas as pd import time 
import jieba from pyecharts.charts 
import Bar, Line, Pie, Map, Pagefrom pyecharts 
import options as opts from pyecharts.globals 
import SymbolTypeimport stylecloud

獲取到的數(shù)據(jù)集如下所示:

# 讀入數(shù)據(jù)df_tb = pd.read_excel('../data/樂高淘寶數(shù)據(jù).xlsx')df_tb.head()

Python如何解讀樂高

查看一下數(shù)據(jù)框的大小,可以看到一共有4403個樣本。

df_tb.info()

<class 'pandas.core.frame.DataFrame'>RangeIndex: 4404 entries, 0 to 4403Data columns (total 5 columns):goods_name 4404 non-null objectshop_name 4404 non-null objectprice 4404 non-null float64purchase_num 4404 non-null objectlocation 4404 non-null objectdtypes: float64(1), object(4)memory usage: 172.1+ KB

02 數(shù)據(jù)處理

此處我們對各個字段進行以下處理以方便后續(xù)的數(shù)據(jù)分析工作,經(jīng)過去重之后一共有3411個樣本:

去除重復值

goods_name:暫不處理

shop_name:暫不處理

price:暫不處理

purchase_num:提取人數(shù)

計算銷售額 = price * purchase_num

location:提取省份

# 去除重復值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)df_tb.info()

<class 'pandas.core.frame.DataFrame'>RangeIndex: 3411 entries, 0 to 3410Data columns (total 5 columns):goods_name 3411 non-null objectshop_name 3411 non-null objectprice 3411 non-null float64purchase_num 3411 non-null objectlocation 3411 non-null objectdtypes: float64(1), object(4)memory usage: 133.3+ KB

# purchase_num處理df_tb['purchase_num'] = df_tb['purchase_num'].str.extract('(\d+)').astype('int')
# 計算銷售額df_tb['sales_volume'] = df_tb['price'] * df_tb['purchase_num']# locationdf_tb['province'] = 
df_tb['location'].str.split(' ').str[0]df_tb.head()

03 數(shù)據(jù)可視化

數(shù)據(jù)可視化部分主要對以下的信息進行匯總和可視化分析,分析維度和使用圖形如下:

樂高銷量排名top10店鋪 - 條形圖

樂高產(chǎn)地數(shù)量排名top10 - 條形圖

樂高產(chǎn)地國內(nèi)銷量分布 - 地圖

價格分布 - 餅圖

不同價格區(qū)間的銷量表現(xiàn) - 餅圖

商品標題詞云圖 - 詞云圖

樂高銷量排名Top10淘寶店鋪 - 條形圖

shop_top10 = df_tb.groupby('shop_name')['purchase_num'].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_=28669) ) bar1.render()

樂高店鋪產(chǎn)地數(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='樂高店鋪產(chǎn)地數(shù)量排名top10'), 
visualmap_opts=opts.VisualMapOpts(max_=1000) ) bar2.render()

國內(nèi)各省份樂高銷量分布圖

province_num = df_tb.groupby('province')['purchase_num'].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='國內(nèi)各產(chǎn)地樂高銷量分布圖'), 
visualmap_opts=opts.VisualMapOpts(max_=172277), )map1.render()

天貓樂高價格分布

# 分箱cut_bins = [0,50,100,200,300,500,1000,8888] 
cut_labels = ['0~50元', '50~100元', '100~200元', '200~300元', '300~500元', '500~1000元', '1000元以上']
price_cut = pd.cut(df_tb['price'], bins=cut_bins, labels=cut_labels)
price_num = price_cut.value_counts()
# 餅圖bar3 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px')) 
bar3.add_xaxis(['0~50元', '50~100元', '100~200元', '200~300元', '300~500元', '500~1000元', '1000元以上'])
bar3.add_yaxis('', [895, 486, 701, 288, 370, 411, 260]) 
bar3.set_global_opts(title_opts=opts.TitleOpts(title='不同價格區(qū)間的商品數(shù)量'), 
visualmap_opts=opts.VisualMapOpts(max_=900)) bar3.render()

不同價格區(qū)間的銷售額整體表現(xiàn)

# 添加列df_tb['price_cut'] = price_cutcut_purchase = 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())]
# 繪制餅圖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='不同價格區(qū)間的銷售額整體表現(xiàn)'), 
legend_opts=opts.LegendOpts(orient='vertical', pos_top='15%', pos_left='2%'))
pie1.set_series_opts(label_opts=opts.LabelOpts(formatter=":sheid3s%"))
pie1.set_colors(['#EF9050', '#3B7BA9', '#6FB27C', '#FFAF34', '#D8BFD8', '#00BFFF', '#7FFFAA'])
pie1.render()

商品標題詞云圖

def get_cut_words(content_series): """ 功能:傳入Seires,獲取分詞后的結果,返回字符串。 """
 # 讀入停用詞表 stop_words = []
  # 讀入stop_words文件 with open(r"stop_words.txt", 'r', encoding='utf-8') 
  as f: lines = f.readlines() for line in lines: stop_words.append(line.strip())
   # 添加關鍵詞 my_words = ['樂高', '悟空小俠', '大顆粒', '小顆粒'] for i in my_words: jieba.add_word(i) 
   # 分詞 word_num = jieba.lcut(content_series.str.cat(sep='。'), cut_all=False) 
   # 條件篩選 word_num_selected = [i for i in word_num if i not in stop_words and len(i)>=2] return ' '.
   join(word_num_selected) # 生成分詞strtext = get_cut_words(content_series=df_tb['goods_name'])
   # 繪制詞云圖stylecloud.gen_stylecloud(text,
    # 繪圖文本 collocations=False, font_path=r'C:\Windows\Fonts\msyh.ttc',
     # 電腦字體路徑 icon_name='fas fa-heart', # 繪圖形狀 size=768, 
     # 繪圖尺寸 output_name='淘寶樂高標題詞云圖.png' # 輸出png文件 )

以上是Python如何解讀樂高的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI