項目簡述
上文【2020python數(shù)據分析項目:爬取某寶口紅數(shù)據&數(shù)據分析可視化(一)】對數(shù)據進行了收集、清洗以及從整體的角度進行分析,本文主要從【看重點】 的角度,對不同檔次的口紅產品進行分析。
【預處理】區(qū)分口紅檔次
從整體數(shù)據看,商品價格數(shù)據分布從0-8,888都有,如果不區(qū)分各個口紅產品的檔次,必然會導致后續(xù)分析的均值、離異值過大,不利于爆品的分析,因此需要先根據實際情況,將口紅分為5檔。
【方法】通過查閱相關資料以及調查,對口紅價格進行合理的價格區(qū)分,最后區(qū)分結果如下:
【頂級】[>500] 代表:CL/蘿卜丁
【超一線】[400-500]代表:TE CPB
【一線】[300-400] 代表:Dior香奈兒阿尼瑪 紀梵希嬌 YSL
【二線】[200-300] 代表:蘭蔻植村秀雅詩蘭黛 資生堂
【大眾】[<200] 代表:MAC 歐萊雅 美寶蓮3CE
1. 頂級口紅 價格--銷售額分析
【方法】篩選出價格>500的口紅產品進行分析,使用qcut方法,保證每個價格區(qū)間的商品數(shù)量基本相同,計算每個價格區(qū)間的銷售額,并使用柱形圖進行可視化展示,考察貢獻最多銷售額的頂級口紅價格區(qū)間。
from pyecharts import options as opts
from pyecharts.charts import Bar
'''選擇價格>500的商品'''
df_select_price1 = df[df["price"]>500]
'''價格區(qū)間的劃定標準為價格的頻數(shù),保證每個區(qū)間的商品數(shù)量基本相同'''
df_select_price1["group"] = pd.qcut(df_select_price1["price"],10)
'''分組計算銷售額,并保留為2位小數(shù)'''
df_meanSales1 = df_select_price1.groupby(by="group")[["sales"]].mean()
df_meanSales1["sales"] =df_meanSales1["sales"].map(lambda x: x/1)
df_meanSales1["sales"] = round(df_meanSales1["sales"],2)
'''繪制柱形圖'''
list_labels1=["(501.999, 538.2]", "(538.2, 579.0]", "(579.0, 598.0]",
"(598.0, 630.0]", "(630.0, 668.0]", "(668.0, 726.0]",
"(726.0, 880.0]", "(880.0, 1029.9]", "(1029.9, 1388.0]", "(1388.0, 8888.0]"]
c = (
Bar()
.add_xaxis(list_labels1)
.add_yaxis("",df_meanSales1["sales"].values.tolist())
.set_global_opts(
title_opts=opts.TitleOpts(title="各價格區(qū)間銷售額分布圖",subtitle="頂級"),
datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],
)
.render_notebook()
)
c

【結論】結合圖表和數(shù)據進行分析可得,頂級檔次的口紅最掙錢的價位在[880-1029]其次是[726-880],[880-1029]價位的商品主要是各種口紅套裝;即消費者對口紅套裝較為青睞;其次[726-880]對應的是高端的單只口紅主要是CL/蘿卜丁
2. 爆品分析
【方法】爆品即爆款產品,由于目前的數(shù)據不存在時間序列,即可以將此處的爆品理解為短時間內貢獻巨大銷售額的產品。通過箱線圖,我們可以很好的考察各個價格區(qū)間內銷售額明顯高于整體的值,即離異值,離異值越多的價格區(qū)間,即產生爆品的數(shù)量越多。
import matplotlib.pyplot as plt
import seaborn as sns
df_group = df_select_price1.groupby(by="group")
'''取出各分組后的數(shù)'''
createVar = locals()
n = 1
for key,value in df_group:
createVar["df_group"+ str(n)] = df_group.get_group(key)
n += 1
list_labels1=["(501.999, 538.2]", " ", "(579.0, 598.0]",
" ", "(630.0, 668.0]", " ",
"(726.0, 880.0]", " ", "(1029.9, 1388.0]", " "]
'''繪制箱線圖'''
sns.set_style("white")
plt.figure(figsize=(8,5), dpi=120)
x = (
df_group1["sales"].values.tolist(),
df_group2["sales"].values.tolist(),
df_group3["sales"].values.tolist(),
df_group4["sales"].values.tolist(),
df_group5["sales"].values.tolist(),
df_group6["sales"].values.tolist(),
df_group7["sales"].values.tolist(),
df_group8["sales"].values.tolist(),
df_group9["sales"].values.tolist(),
df_group10["sales"].values.tolist(),
)
label = list_labels1
plt.boxplot(x, labels=label, meanline=True, showmeans=True,notch=True)
plt.show()

圖中的紅色框框選的點即為離異值,可以通過其價格和銷售額找到其對應的產品。
'''選擇sales>4000000得商品【抽取出異常值】'''
df_sort1 = df_select_price1[df_select_price1["sales"]>4000000].sort_values(by="group").reset_index(drop=True)
df_sort1

【結論】通過箱線圖和所篩選的離異值數(shù)據分析可得:
- 在[726-880],[880-1029]價格區(qū)間內具有較多且較高的離異值,說明在此區(qū)間更有可能打造爆款商品
- 查看對應區(qū)間的離異值,在[726-880]最具爆品特性的是“Christian Louboutin女王權杖唇膏 全色cl蘿卜丁口紅001M 005M”,其次,由于此款針繡文是套裝,并不屬于高端品牌。
- nymy的套裝在[880-1029]賣的最好,但是由于也是打包賣,單只價格在500左右。反觀[500-538]區(qū)間的產品,并沒有爆品。因此,對于此區(qū)間的商品,使用套裝的方式出售可以帶來更多的
- 頂級檔次的口紅并沒有銷售額超過5,000,000的產品
3. 超一線、一線、二線、大眾檔次口紅產品分析
【方法】其他檔次的口紅的分析方法與頂級檔次的口紅分析方法相同,只需要替換對應的數(shù)據即可,這里不再重復。
4. 各價格爆品綜合分析
【方法】對頂級、超一線、一線、二線、大眾檔次的產品進行爆品分析后,就可以得到給定條件下的所有爆款產品,去除套裝數(shù)據,并將各爆款繪制成散點圖,觀察爆款產品特點。
'''整理數(shù)據、去除套裝產品'''
df_sort = pd.concat([df_sort1,df_sort2,df_sort3,df_sort4,df_sort5])
df_sort = df_sort.reset_index(drop=True)
df_sort = df_sort.drop(index=[1,2]).reset_index(drop=True)
from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.commons.utils import JsCode
'''繪制散點圖'''
c = (
Scatter()
.add_xaxis(df_sort["price"])
.add_yaxis(
"",
[list(z) for z in zip(df_sort["sales"],df_sort["pro_name"] )],
label_opts=opts.LabelOpts(
formatter=JsCode(
"function(params){return params.value[1]}"
)
),
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Price-sales"),
tooltip_opts=opts.TooltipOpts(
formatter=JsCode(
"function (params) {return params.name + ' ' + params.value[2];}"
)
),
visualmap_opts=opts.VisualMapOpts(
type_="color", max_=150, min_=70, dimension=1
),
xaxis_opts=opts.AxisOpts(
type_="value", splitline_opts=opts.SplitLineOpts(is_show=True)
),
yaxis_opts=opts.AxisOpts(
type_="value",
axistick_opts=opts.AxisTickOpts(is_show=True),
splitline_opts=opts.SplitLineOpts(is_show=True),
),
)
.render_notebook()
)
c

【結論】根據散點圖分析可得:
- 爆品主要集中于大眾價位的產品,二線以上的口紅產品沒有銷售額超過5,000,000的爆品
-
結合熱點部分的分析【結合看重點部分得出的結論】:
a. 銷售額超過15,000,000的爆品,都為唇釉產品,且都有“啞光”關鍵字,說明消費者比較青睞于自然巨有啞光功能的唇釉產品 【啞光 -- 自然不反光】
b. 超過5,000,000的爆品出現(xiàn)最多的顏色主要是“奶茶色”,“紅棕色”,“(爛)番茄色”
5.后續(xù)分析和改進
a.【爆品詳情分析】篩選出爆品后,可以對爆品的詳情進行分析,包括爬取商品評論進行情感分析等,進一步挖掘近期爆品的特性。
b.【時間序列】可以每天/月爬取對應產品數(shù)據,分析其銷量、價格等數(shù)據根據時間的變化趨勢。
c.【占比】對爆款產品的國內外品牌占比、各個品牌爆款占比進行可視化展示
作者:愛學習,也愛女票的于餅喵