知名白癜风专家 http://m.39.net/disease/a_5446748.html
CDA数据分析师出品
作者:Mika、泽龙
数据:真达
后期:泽龙
:今天我们来聊聊小朋友和大朋友们都爱不释手的乐高,Python技术部分请看第四部分。Showmedata,用数据说话!
六一儿童节到了,过节的不仅仅是儿童,还有很多不想长大的成年人。然而,儿童游乐场不好意思去跟小朋友抢,幼儿园里已经没有容身之地。这时,玩具可能是最后一件能让成年人过把瘾的方式了。
根据去年的天猫双11数据统计:双11玩具/童车/益智/积木品牌TOP20榜单中,在玩具领域,乐高位居首位,占据了1/5的市场份额,销售额超过万元,销量达件,妥妥的玩具领域大佬。今天我们就用数据来聊一聊,小朋友和大朋友们都爱不释手的乐高。
01、老少皆宜大IP联名,玩具居然可以这么玩?!
年,乐高公司在丹麦成立。商标“LEGO”是来自丹麦语“LEgGOdt”,意为“playwell”。
在10年前,乐高真是家庭水准的体现,小时候能有个乐高玩具,应该是很多人的梦想,但是长大了发现,现在拥有乐高玩具,也是梦想。有多少人在疫情期间想在淘宝买乐高玩具,也来挑战下千年隼,证明自己不再是手残党。
外国的乐高狂热粉丝用乐高拼了一辆能开的跑车,真的可以以每小时15公里的速度前进,这也算是人类创造能力的体现,本身乐高提倡的就是自由组装,playwell。创造力才是他们的核心,这也就证明了乐高从小孩玩具到创造力检测仪的进化。
如今的乐高就像玩具界的Supreme,时不时就弄出套联名款,即使你不是乐高粉丝,也忍不住赶紧送上钱包。
之前,乐高就和暴雪合作推出了《乐高守望先锋系列》。
《乐高星球大战系列》,至今全球已经热销超过两千万套。其中“豪华千年隼”,更是被称为“乐高史上最大套装”。
从DC的蝙蝠侠到漫威的钢铁侠,热门电影的热度“能蹭就蹭”。
如果你是《哈利波特》迷,等不到送入学通知书的猫头鹰?没关系,乐高让你直接把霍格沃茨买回家。
02、都是哪些人在玩乐高?
那么都是哪些人在玩乐高呢?我们用Python获取“乐高中国”最新的三条微博(5.06日、5.08日、5.15日发布)后的评论和粉丝信息,分析粉丝画像,数据共条。
粉丝性别占比
首先看到乐高中国的微博粉丝性别占比,从数据可以看到,女性粉丝远超男性,占比高达到65.23%,男性占比34.77%
粉丝数量地区分布
都是哪些地区的人最爱玩乐高呢?
从图中可以看到,北上广位居前三,海外的粉丝也不少,位居第四。之后就是江苏、山东分别为第五和第六。
粉丝年龄分布
18-25岁的粉丝最多占比高达38.69%,其次就是25-30岁的了,占比为24.01%,30-40岁的占比19.97%。总体来说,乐高在国内的粉丝还是比较年轻化的,既有喜欢玩乐高的年轻玩家,也有热衷给孩子买乐高玩的年轻父母。
微博评论词云
下面我们看到“乐高中国”微博下面的评论词云,可以看到提到最多的就是乐高。同时齐天大圣、忍者神龟等都是被提及最多的热门款。
03、哪款乐高卖的最好?
下面我们用Python进一步分析乐高在天猫和淘宝全网的数据,我们共搜集整理了乐高在淘宝的商品数据,一共条商品信息。以及天猫乐高旗舰店一共条的数据。
乐高销量TOP10店铺
首先看到淘宝全网乐高销量店铺的排名。不用说,乐高官方旗舰店是妥妥的第一位,其次天猫超市的位居第二。
乐高产地排名TOP10
乐高产地方面,我们可以看到,广东和上海是大头,位居第一和第二。北京位居第三。
不同价格区间商品数量
乐高的定价如何呢?我们可以看到0-50元的乐高商品是最多的,达到件。其次-元的也不少,以件位居第二。0元以上的资深玩家款最少,为件。
不同价格区间的销售额
这里就比较有意思了,0元以上的销售额占比达到32.24%,果然是人民币玩家的专选。其次-0元的商品销售额占比15.91%。紧接着较为平价的-元款,销售额占比15.76%。
淘宝乐高商品标题词云
下面看到淘宝乐高相关标题的词云,乐高、玩具、积木都是提及最多的关键词。同时益智、系列、正品等词也是标题中常有的词。
我们再具体看看哪款乐高产品卖得最好。
乐高旗舰店商品销量TOP10
让我们再看到乐高旗舰店的数据:
我们可以看到,孙悟空齐天大圣黄金机甲这款,以月销量件位居榜首。
其次第二位是R赛车成人送礼收藏车模,月销量件。然后云霄战机孙悟空齐天大圣位居第三,月销量达到件。
不同价格区间商品数量
在商品价格区间方面,可以看到数量最多的还是0-50元的平价款,共件商品,远远高于其他价格区间。其次50-元的商品有件。
不同价格区间销售额
最后,我们再看到不同价格区间的销售额:
这里与淘宝全网数据不同,销售额占比最高的是0-50元的商品,占比49.21%。其次是50-元,占比16.13%。而0元以上的销售额占比最少,仅为2.94%。这也说明,在购买0元以上的收藏款时,大家更倾向于在其他渠道购买,而不是官方旗舰店。
乐高旗舰店商品标题词云
我们再看看在乐高旗舰店,商品标题都有什么特点。可以看到标题中,积木、玩具、XX系列都被常常提到。同时送礼、创意、益智、收藏等也常出现。
04、带你用Python分析乐高淘宝数据
我们使用Python分别获取了淘宝上的乐高商品数据、乐高旗舰店的店铺商品销售数据和微博乐高中国的评论和粉丝数据,进行了数据分析分析。此处展示淘宝商品分析部分代码。按照常规数据分析流程进行:
01数据读入
首先导入所需的库,并读入采集的数据集。其中pandas用于数据整理、jieba用于分词、pyecharts和stylecloud用于绘制可视化图形。
#导入包importpandasaspdimporttimeimportjiebafrompyecharts.chartsimportBar,Line,Pie,Map,Pagefrompyechartsimportoptionsasoptsfrompyecharts.globalsimportSymbolTypeimportstylecloud
获取到的数据集如下所示:
#读入数据df_tb=pd.read_excel(../data/乐高淘宝数据.xlsx)df_tb.head()
查看一下数据框的大小,可以看到一共有个样本。
df_tb.info()
classpandas.core.frame.DataFrameRangeIndex:entries,0toDatacolumns(total5columns):goods_namenon-nullobjectshop_namenon-nullobjectpricenon-nullfloat64purchase_numnon-nullobjectlocationnon-nullobjectdtypes:float64(1),object(4)memoryusage:.1+KB
02数据处理
此处我们对各个字段进行以下处理以方便后续的数据分析工作,经过去重之后一共有个样本:
去除重复值goods_name:暂不处理shop_name:暂不处理price:暂不处理purchase_num:提取人数计算销售额=price*purchase_numlocation:提取省份
#去除重复值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()
classpandas.core.frame.DataFrameRangeIndex:entries,0toDatacolumns(total5columns):goods_namenon-nullobjectshop_namenon-nullobjectpricenon-nullfloat64purchase_numnon-nullobjectlocationnon-nullobjectdtypes:float64(1),object(4)memoryusage:.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=px,height=px))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_=))bar1.render()
乐高店铺产地数量排名top10
province_top10=df_tb.province.value_counts()[:10]bar2=Bar(init_opts=opts.InitOpts(width=px,height=px))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_=0))bar2.render()
国内各省份乐高销量分布图
province_num=df_tb.groupby(province)[purchase_num].sum().sort_values(ascending=False)#地图map1=Map(init_opts=opts.InitOpts(width=px,height=px))map1.add(,[list(z)forzinzip(province_num.index.tolist(),province_num.values.tolist())],maptype=china)map1.set_global_opts(title_opts=opts.TitleOpts(title=国内各产地乐高销量分布图),visualmap_opts=opts.VisualMapOpts(max_=277),)map1.render()
天猫乐高价格分布
#分箱cut_bins=[0,50,,,,,0,]cut_labels=[0~50元,50~元,~元,~元,~元,~0元,0元以上]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=px,height=px))bar3.add_xaxis([0~50元,50~元,~元,~元,~元,~0元,0元以上])bar3.add_yaxis(,[,,,,,,])bar3.set_global_opts(title_opts=opts.TitleOpts(title=不同价格区间的商品数量),visualmap_opts=opts.VisualMapOpts(max_=))bar3.render()
不同价格区间的销售额整体表现
#添加列df_tb[price_cut]=price_cutcut_purchase=df_tb.groupby(price_cut)[sales_volume].sum()#数据对data_pair=[list(z)forzinzip(cut_purchase.index.tolist(),cut_purchase.values.tolist())]#绘制饼图pie1=Pie(init_opts=opts.InitOpts(width=px,height=px))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}:{d}%))pie1.set_colors([#EF,#3B7BA9,#6FB27C,#FFAF34,#D8BFD8,#00BFFF,#7FFFAA])pie1.render()
商品标题词云图
defget_cut_words(content_series):功能:传入Seires,获取分词后的结果,返回字符串。#读入停用词表stop_words=[]#读入stop_words文件withopen(rstop_words.txt,r,encoding=utf-8)asf:lines=f.readlines()forlineinlines:stop_words.append(line.strip())#添加关键词my_words=[乐高,悟空小侠,大颗粒,小颗粒]foriinmy_words:jieba.add_word(i)#分词word_num=jieba.lcut(content_series.str.cat(sep=。),cut_all=False)#条件筛选word_num_selected=[iforiinword_numifinotinstop_wordsandlen(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=rC:\Windows\Fonts\msyh.ttc,#电脑字体路径icon_name=fasfa-heart,#绘图形状size=,#绘图尺寸output_name=淘宝乐高标题词云图.png#输出png文件)