您好,登錄后才能下訂單哦!
這篇文章主要介紹Python如何解讀樂高,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
【導語】:今天我們來聊聊小朋友和大朋友們都愛不釋手的樂高,Python技術部分請看第四部分。Show me data,用數據說話!
六一兒童節到了,過節的不僅僅是兒童,還有很多不想長大的成年人。然而,兒童游樂場不好意思去跟小朋友搶,幼兒園里已經沒有容身之地。這時,玩具可能是最后一件能讓成年人過把癮的方式了。
根據去年的天貓雙11數據統計:雙11玩具/童車/益智/積木品牌TOP20榜單中,在玩具領域,樂高位居首位,占據了1/5的市場份額,銷售額超過1138萬元,銷量達14712件,妥妥的玩具領域大佬。今天我們就用數據來聊一聊,小朋友和大朋友們都愛不釋手的樂高。
01、老少皆宜 大IP聯名,玩具居然可以這么玩?!
1932年,樂高公司在丹麥成立。商標“LEGO”是來自丹麥語“LEg GOdt”,意為“play well”。
在10年前,樂高真是家庭水準的體現,小時候能有個樂高玩具,應該是很多人的夢想,但是長大了發現,現在擁有樂高玩具,也是夢想。有多少人在疫情期間想在淘寶買樂高玩具,也來挑戰下千年隼75192,證明自己不再是手殘黨。
外國的樂高狂熱粉絲用樂高拼了一輛能開的跑車,真的可以以每小時15公里的速度前進,這也算是人類創造能力的體現,本身樂高提倡的就是自由組裝,play well。創造力才是他們的核心,這也就證明了樂高從小孩玩具到創造力檢測儀的進化。
如今的樂高就像玩具界的Supreme,時不時就弄出套聯名款,即使你不是樂高粉絲,也忍不住趕緊送上錢包。
之前,樂高就和暴雪合作推出了《樂高守望先鋒系列》。
《樂高星球大戰系列》,至今全球已經熱銷超過兩千萬套。其中“豪華千年隼”,更是被稱為“樂高史上最大套裝”。
從DC的蝙蝠俠到漫威的鋼鐵俠,熱門電影的熱度“能蹭就蹭”。
如果你是《哈利波特》迷,等不到送入學通知書的貓頭鷹?沒關系,樂高讓你直接把霍格沃茨買回家。
02、都是哪些人在玩樂高?
那么都是哪些人在玩樂高呢?我們用Python獲取“樂高中國”最新的三條微博(5.06日、5.08日、5.15日發布)后的評論和粉絲信息,分析粉絲畫像,數據共4815條。
粉絲性別占比
首先看到樂高中國的微博粉絲性別占比,從數據可以看到,女性粉絲遠超男性,占比高達到65.23%,男性占比34.77%
粉絲數量地區分布
都是哪些地區的人最愛玩樂高呢?
從圖中可以看到,北上廣位居前三,海外的粉絲也不少,位居第四。之后就是江蘇、山東分別為第五和第六。
粉絲年齡分布
18-25歲的粉絲最多占比高達38.69%,其次就是25-30歲的了,占比為24.01%,30-40歲的占比19.97%。總體來說,樂高在國內的粉絲還是比較年輕化的,既有喜歡玩樂高的年輕玩家,也有熱衷給孩子買樂高玩的年輕父母。
微博評論詞云
下面我們看到“樂高中國”微博下面的評論詞云,可以看到提到最多的就是"樂高"。同時"齊天大圣"、"忍者神龜"等都是被提及最多的熱門款。
03、哪款樂高賣的最好?
下面我們用Python進一步分析樂高在天貓和淘寶全網的數據,我們共搜集整理了樂高在淘寶的商品數據,一共4404條商品信息。以及天貓樂高旗艦店一共392條的數據。
樂高銷量TOP10店鋪
首先看到淘寶全網樂高銷量店鋪的排名。不用說,樂高官方旗艦店是妥妥的第一位,其次天貓超市的位居第二。
樂高產地排名TOP10
樂高產地方面,我們可以看到,廣東和上海是大頭,位居第一和第二。北京位居第三。
不同價格區間商品數量
樂高的定價如何呢?我們可以看到0-50元的樂高商品是最多的,達到895件。其次100-200元的也不少,以701件位居第二。1000元以上的資深玩家款最少,為260件。
不同價格區間的銷售額
這里就比較有意思了,1000元以上的銷售額占比達到32.24%,果然是人民幣玩家的專選。其次500-1000元的商品銷售額占比15.91%。緊接著較為平價的100-200元款,銷售額占比15.76%。
淘寶樂高商品標題詞云
下面看到淘寶樂高相關標題的詞云,"樂高"、"玩具"、"積木"都是提及最多的關鍵詞。同時"益智"、"系列"、"正品"等詞也是標題中常有的詞。
我們再具體看看哪款樂高產品賣得最好。
樂高旗艦店商品銷量TOP10
讓我們再看到樂高旗艦店的數據:
我們可以看到,孫悟空齊天大圣黃金機甲這款,以月銷量4765件位居榜首。
其次第二位是R賽車成人送禮收藏車模,月銷量2750件。然后云霄戰機孫悟空齊天大圣位居第三,月銷量達到2453件。
不同價格區間商品數量
在商品價格區間方面,可以看到數量最多的還是0-50元的平價款,共2082件商品,遠遠高于其他價格區間。其次50-100元的商品有495件。
不同價格區間銷售額
最后,我們再看到不同價格區間的銷售額:
這里與淘寶全網數據不同,銷售額占比最高的是0-50元的商品,占比49.21%。其次是50-100元,占比16.13%。而1000元以上的銷售額占比最少,僅為2.94%。這也說明,在購買1000元以上的收藏款時,大家更傾向于在其他渠道購買,而不是官方旗艦店。
樂高旗艦店商品標題詞云
我們再看看在樂高旗艦店,商品標題都有什么特點。可以看到標題中,"積木"、"玩具"、"XX系列"都被常常提到。同時"送禮"、"創意"、"益智"、"收藏"等也常出現。
04、帶你用Python分析 樂高淘寶數據
我們使用Python分別獲取了淘寶上的樂高商品數據、樂高旗艦店的店鋪商品銷售數據和微博樂高中國的評論和粉絲數據,進行了數據分析分析。此處展示淘寶商品分析部分代碼。按照常規數據分析流程進行:
01 數據讀入
首先導入所需的庫,并讀入采集的數據集。其中pandas用于數據整理、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
獲取到的數據集如下所示:
# 讀入數據df_tb = pd.read_excel('../data/樂高淘寶數據.xlsx')df_tb.head()
查看一下數據框的大小,可以看到一共有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 數據處理
此處我們對各個字段進行以下處理以方便后續的數據分析工作,經過去重之后一共有3411個樣本:
去除重復值
goods_name:暫不處理
shop_name:暫不處理
price:暫不處理
purchase_num:提取人數
計算銷售額 = price * purchase_num
location:提取省份
# 去除重復值df_tb.drop_duplicates(inplace=True)# 刪除購買人數為空的記錄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 數據可視化
數據可視化部分主要對以下的信息進行匯總和可視化分析,分析維度和使用圖形如下:
樂高銷量排名top10店鋪 - 條形圖
樂高產地數量排名top10 - 條形圖
樂高產地國內銷量分布 - 地圖
價格分布 - 餅圖
不同價格區間的銷量表現 - 餅圖
商品標題詞云圖 - 詞云圖
樂高銷量排名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()
樂高店鋪產地數量排名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='樂高店鋪產地數量排名top10'), visualmap_opts=opts.VisualMapOpts(max_=1000) ) bar2.render()
國內各省份樂高銷量分布圖
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='國內各產地樂高銷量分布圖'), 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='不同價格區間的商品數量'), visualmap_opts=opts.VisualMapOpts(max_=900)) bar3.render()
不同價格區間的銷售額整體表現
# 添加列df_tb['price_cut'] = price_cutcut_purchase = df_tb.groupby('price_cut') ['sales_volume'].sum()# 數據對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='不同價格區間的銷售額整體表現'), legend_opts=opts.LegendOpts(orient='vertical', pos_top='15%', pos_left='2%')) pie1.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:aegqsqibtmh%")) 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如何解讀樂高的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。