口红销售数据可视化以及数据分析探索

导入相关包

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False

数据导入、查看

# 查看当前挂载的数据集目录
Data=pd.read_excel(r"D:\PycharmProjects\Test_learning\lipsticks\lipsticks.xlsx")
#查看数据集基本情况
Data.head()
品牌 页面网址 采集时间 折扣价 原价 商品标题 是否自营 标签1 标签2 标签3 评论数 商品链接 国家 店铺
0 Dior 迪奥 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥198 ¥299 Dior 迪奥粉漾魅惑变色润唇膏 01#粉色3.5克 自营 白条免息 NaN NaN 23440 https://www.kaola.com/product/1588979.html 法国 网易考拉自营
1 Dior 迪奥 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥298 ¥320 Dior 迪奥 烈艳蓝金唇膏烈焰口红 3.5克 自营 包税 白条免息 NaN 4350 https://www.kaola.com/product/2415785.html 法国 网易考拉自营
2 Dior 迪奥 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥169 NaN 【双11预售】Dior 迪奥 粉漾魅惑变色润唇膏 3.5克 自营 白条免息 NaN NaN 555 https://www.kaola.com/product/2053434.html 法国 网易考拉自营
3 Dior 迪奥 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥179 ¥300 Dior 迪奥 魅惑釉唇膏 3.2克 自营 白条免息 特价 NaN 1690 https://www.kaola.com/product/1600086.html 法国 网易考拉自营
4 Dior 迪奥 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥169 ¥300 Dior 迪奥 粉漾魅惑变色润唇膏 3.5克 自营 白条免息 特价 NaN 545 https://www.kaola.com/product/2320261.html 法国 网易考拉自营
Data.dtypes
品牌      object
页面网址    object
采集时间    object
折扣价     object
原价      object
商品标题    object
是否自营    object
标签1     object
标签2     object
标签3     object
评论数      int64
商品链接    object
国家      object
店铺      object
dtype: object
Data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 540 entries, 0 to 539
Data columns (total 14 columns):
品牌      540 non-null object
页面网址    540 non-null object
采集时间    540 non-null object
折扣价     540 non-null object
原价      525 non-null object
商品标题    540 non-null object
是否自营    455 non-null object
标签1     525 non-null object
标签2     326 non-null object
标签3     178 non-null object
评论数     540 non-null int64
商品链接    540 non-null object
国家      540 non-null object
店铺      455 non-null object
dtypes: int64(1), object(13)
memory usage: 59.1+ KB

通过对数据的简单描述发现:
总共有14个特征列,每个特征列有540个数据。
有6列有一定程度的缺失(原价/是否自营/标签1/标签2/标签3/店铺)

数据清洗

缺失值
重复值

# 查看重复
Data.duplicated(['商品标题','折扣价','是否自营']).count()#主要指标无重复
540
# 缺失值处理 :是否自营和店铺均填充为非自营,原价设置为折扣价
Data['是否自营'].fillna(value='非自营',inplace=True)
Data['店铺'].fillna(value='非自营',inplace=True)
Data['原价'].fillna(value=Data['折扣价'],inplace=True)
# 浏览修改后的数据发现原价中含有“新人价”、“XX折” 新人价用折扣价填充,XX折则与折扣计算后填充首先将新人价替换成折扣价
Data['price_0'] =Data['原价'].replace('新人价',Data['折扣价'])
discount_list=Data.loc[Data['price_0'].str.contains('折'),"原价"].values# 筛选原价列中含有”折“的行,并转化为列表
price_list=Data.loc[Data['price_0'].str.contains('折'),"折扣价"].values# 筛选折扣价列中含有”折“的行,并转化为列表
print(discount_list,price_list)

['6.7折' '9.6折' '8.9折' '9.8折' '7.8折' '7折' '7折' '7.5折' '6.4折' '7.8折' '7.1折'
 '6.4折' '5.9折' '9.1折' '4.2折' '3.3折' '6.5折' '6.2折' '7折' '8.5折' '7.6折'
 '8.7折' '8折' '5.9折' '8.4折' '5.9折' '7折' '8.3折' '8.8折' '4.4折' '6.9折' '8.3折'
 '6.6折' '8.1折' '8.6折' '8.4折' '6.6折' '8折' '8折' '3.4折' '3.5折' '8.1折' '8.3折'
 '8.3折' '7.4折' '3.8折' '6.6折' '6.5折' '6折' '6.6折' '6.6折' '7.1折' '6.6折' '6折'
 '6.6折' '6.6折' '6.6折' '6.6折' '6.6折' '6.6折' '6.6折' '7.1折' '6折' '5.1折' '6折'] ['¥302' '¥308' '¥285' '¥315' '¥109' '¥119' '¥119' '¥119' '¥119' '¥109'
 '¥125' '¥119' '¥109' '¥99' '¥79' '¥99' '¥104' '¥49' '¥118' '¥118' '¥75'
 '¥69' '¥79' '¥35' '¥75' '¥175' '¥118' '¥99' '¥105' '¥75' '¥89' '¥99'
 '¥99' '¥105' '¥268' '¥268' '¥19' '¥39' '¥39' '¥119' '¥99' '¥143' '¥166'
 '¥170' '¥238' '¥246' '¥39' '¥129' '¥119' '¥39' '¥39' '¥42' '¥39' '¥59'
 '¥39' '¥39' '¥39' '¥39' '¥39' '¥39' '¥39' '¥42' '¥59' '¥29.9' '¥59']
value_list=[]#将该部分行提取折扣并转换为列表
for i,j in zip(discount_list,price_list):
    i=float(i.replace('折',''))
    j=float(j.replace('¥', ''))
    z=round(j * 10 / i,2)
    z='¥'+str(z)
    value_list.append(z)
print(value_list)
['¥450.75', '¥320.83', '¥320.22', '¥321.43', '¥139.74', '¥170.0', '¥170.0', '¥158.67', '¥185.94', '¥139.74', '¥176.06', '¥185.94', '¥184.75', '¥108.79', '¥188.1', '¥300.0', '¥160.0', '¥79.03', '¥168.57', '¥138.82', '¥98.68', '¥79.31', '¥98.75', '¥59.32', '¥89.29', '¥296.61', '¥168.57', '¥119.28', '¥119.32', '¥170.45', '¥128.99', '¥119.28', '¥150.0', '¥129.63', '¥311.63', '¥319.05', '¥28.79', '¥48.75', '¥48.75', '¥350.0', '¥282.86', '¥176.54', '¥200.0', '¥204.82', '¥321.62', '¥647.37', '¥59.09', '¥198.46', '¥198.33', '¥59.09', '¥59.09', '¥59.15', '¥59.09', '¥98.33', '¥59.09', '¥59.09', '¥59.09', '¥59.09', '¥59.09', '¥59.09', '¥59.09', '¥59.15', '¥98.33', '¥58.63', '¥98.33']
pd.DataFrame(value_list).shape
(65, 1)
Data.loc[Data['price_0'].str.contains('折'),"price_0"]=value_list
Data["price_0"].value_counts().head()
¥320    170
¥300     24
¥195     22
¥170     19
¥355     17
Name: price_0, dtype: int64
Data['折扣价_0']=Data['折扣价'].str.replace('¥', '').astype(float)

Data['原价_0']=Data['price_0'].str.replace('¥', '').astype(float)

Data['discount']=Data['折扣价_0']/Data['原价_0']
Data.tail(10)
品牌 页面网址 采集时间 折扣价 原价 商品标题 是否自营 标签1 标签2 标签3 评论数 商品链接 国家 店铺 price_0 折扣价_0 原价_0 discount
530 Manuka Bee 小蜜坊 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥39 6.6折 【江疏影同款 袁姗姗剧款 水瓶座专属 包邮】Manuka bee 小蜜坊 亲蜜润唇棒 5.5... 非自营 79选3 NaN NaN 15 https://www.kaola.com/product/2476322.html 新西兰 非自营 ¥59.09 39.0 59.09 0.660010
531 Manuka Bee 小蜜坊 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥39 6.6折 【江疏影同款 袁姗姗剧款 金牛座专属 包邮】Manuka bee 小蜜坊 亲蜜润唇棒 5.5... 非自营 79选3 NaN NaN 14 https://www.kaola.com/product/2475930.html 新西兰 非自营 ¥59.09 39.0 59.09 0.660010
532 Manuka Bee 小蜜坊 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥39 6.6折 【江疏影同款 袁姗姗剧款 白羊座专属 包邮】Manuka bee 小蜜坊 亲蜜润唇棒 5.5... 非自营 79选3 NaN NaN 14 https://www.kaola.com/product/2475741.html 新西兰 非自营 ¥59.09 39.0 59.09 0.660010
533 Manuka Bee 小蜜坊 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥39 6.6折 【江疏影同款 袁姗姗剧款 双子座专属 包邮】Manuka bee 小蜜坊 亲蜜润唇棒 5.5... 非自营 79选3 NaN NaN 10 https://www.kaola.com/product/2475781.html 新西兰 非自营 ¥59.09 39.0 59.09 0.660010
534 Manuka Bee 小蜜坊 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥39 6.6折 【江疏影同款 袁姗姗剧款 射手座专属 包邮】Manuka bee 小蜜坊 亲蜜润唇棒 5.5... 非自营 79选3 NaN NaN 7 https://www.kaola.com/product/2476281.html 新西兰 非自营 ¥59.09 39.0 59.09 0.660010
535 Manuka Bee 小蜜坊 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥39 6.6折 【江疏影同款 袁姗姗剧款 处女座专属 包邮】Manuka bee 小蜜坊 亲蜜润唇棒 5.5... 非自营 79选3 NaN NaN 5 https://www.kaola.com/product/2476062.html 新西兰 非自营 ¥59.09 39.0 59.09 0.660010
536 Manuka Bee 小蜜坊 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥42 7.1折 【江疏影同款】【双鱼座专属 包邮】Manuka bee 小蜜坊 亲蜜润唇棒 5.5g 薄荷绿 非自营 79选3 NaN NaN 6 https://www.kaola.com/product/2476378.html 新西兰 非自营 ¥59.15 42.0 59.15 0.710059
537 Manuka Bee 小蜜坊 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥59 6折 【双色玩转 护唇新体验 包邮】Manuka Bee 小蜜坊 变色润唇棒 珊瑚红 非自营 特价 特价 NaN 3 https://www.kaola.com/product/2544041.html 新西兰 非自营 ¥98.33 59.0 98.33 0.600020
538 Manuka Bee 小蜜坊 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥29.9 5.1折 【江疏影同款 袁姗姗剧款 十二星座专属 】Manuka bee 小蜜坊 亲蜜润唇棒 5.5g 非自营 特价 特价 NaN 0 https://www.kaola.com/product/2680449.html 新西兰 非自营 ¥58.63 29.9 58.63 0.509978
539 Manuka Bee 小蜜坊 https://www.kaola.com/search.html?key=%25E5%25... 2018-11-08 ¥59 6折 【唇部SPA 包邮】Manuka bee 小蜜坊 三重密集滋养修护唇膜 非自营 特价 特价 NaN 20 https://www.kaola.com/product/2499878.html 新西兰 非自营 ¥98.33 59.0 98.33 0.600020

品牌

热度

from pyecharts import configure
configure(global_theme='vintage')
from pyecharts import Line, Bar, Pie,Grid,WordCloud,Overlap
from IPython.display import display, Image
x=Data.groupby('品牌').sum()['评论数'].sort_values(ascending=False).index
y=Data.groupby('品牌').sum()['评论数'].sort_values(ascending=False)
bar=Bar(title='品牌VS评论数总和', subtitle="2019-09-22",title_pos='left',title_text_size=22,width=1000,height=800,background_color='white')
bar.add(name='品牌VS评论数总和',x_axis =x, y_axis = y,bar_category_gap=5, is_label_show=True, yaxis_name= "评论数总和",xaxis_line_width= 10,
    xaxis_rotate = 30,xaxis_label_textsize='9',yaxis_label_textsize='9')
display(bar)
1.png

原产地

from pyecharts import Pie
configure(output_image=True)
attr = Data['国家'].value_counts().sort_values(ascending=False).index
v=Data['国家'].value_counts().sort_values(ascending=False)
pie =Pie('各产地国家占比',background_color = 'white',title_pos = 'center')
pie.add('',attr,v,is_label_show = True,radius=[25,75],is_legend_show =False,label_formatter='{d}')
display(pie)
2.png

可以看到在网易考拉网上,迪奥的市场份额属于第一梯队,资生堂、MAC、圣罗兰、纪梵希属于第二梯队;
热门品牌中原产地多数为法国,原产地的饼图也可见法国为口红大国,占了52.22%。

SKU

x1=Data['品牌'].value_counts().sort_values(ascending=False).index
y1=Data['品牌'].value_counts().sort_values(ascending=False)
bar=Pie(title='各品牌SKU数占比', subtitle="2019-09-22",title_pos='left',title_text_size=22,width=1000,height=800,background_color='white')
bar.add('品牌 VS SKU',x1,y1,is_label_show = True,is_legend_show =False, center=[50, 50], radius=[30, 75], rosetype='radius',label_formatter='{d}')
display(bar)
3.png

考拉海淘网上迪奥、圣罗兰等品牌是消费者的主要选择;
而位于最后的KIKO,梦妆,曼秀雷敦则比较小众。

热门品牌Top10

x2=Data.groupby('品牌').mean()['评论数'].sort_values(ascending=False).head(10).index
y2=Data.groupby('品牌').mean().round(2)['评论数'].sort_values(ascending=False).head(10)
bar=Bar(title='热门品牌Top10', subtitle="2019-09-22",title_pos='left',title_text_size=22, title_color='black', width=1000,height=800,background_color='white')
bar.add(name='品牌',x_axis =x2, y_axis = y2,bar_category_gap=5, is_label_show=True, yaxis_name= "评论数均值",xaxis_line_width= 10,xaxis_label_textsize='6',yaxis_label_textsize='9',
xaxis_rotate = 30,yaxis_name_gap=30, is_random= True)
display(bar)
4.png

KIKO热度最高,则是因为某一单品评论数高而总的品类数少。

热门单品Top10

x3=Data.groupby('商品标题').max()['评论数'].sort_values(ascending=False).head(10).index
y3=Data.groupby('商品标题').max()['评论数'].sort_values(ascending=False).head(10)
bar=Bar(title='热门单品Top10', subtitle="2019-09-22",title_pos='right',title_text_size=22, title_color='black', width=1200,height=800,background_color='white')
bar.add(name='品牌',x_axis =x3, y_axis = y3,bar_category_gap=5, is_label_show=True, yaxis_name= "最大评论数",xaxis_label_textsize='6',yaxis_label_textsize='9',
xaxis_rotate = 30, is_random= True)
display(bar)
5.png

从热门单品TOP10与热门品牌TOP10的结果相似,主要是迪奥、资生堂、MAC。

定价

x4=Data.groupby('品牌').mean().round(2)['discount'].sort_values(ascending=False).index
y4=Data.groupby('品牌').mean().round(2)['discount'].sort_values(ascending=False)
y5=Data.groupby('品牌').mean().round(2)['折扣价_0'].sort_values(ascending=False)
line=Line(title='定价比较', subtitle="2019-09-22",title_pos='left',title_text_size=8, title_color='black', width=1500,height=100,background_color='white')
line.add(name='折扣比例',x_axis =x4, y_axis = y4,mark_line=["average"],is_label_show=True, yaxis_name= "平均折扣比例",yaxis_name_gap=35,
xaxis_rotate = 30)

bar=Bar(title='定价比较', subtitle="2019-09-22",title_pos='left',title_text_size=8, title_color='black', width=1500,height=100,background_color='white')
bar.add(name='折扣价格',x_axis =x4, y_axis = y5,bar_category_gap=5,mark_line=["average"], yaxis_name= "平均折扣价格",yaxis_name_gap=35,is_random= True,
xaxis_rotate = 30)
overlap =Overlap()
overlap.add(bar)

overlap.add(line,yaxis_index=1, is_add_yaxis=True)
display(overlap)
6.png

梦妆折扣力度大且价格低,乔治·阿玛尼折扣力度最小且价格高;汤姆·福特定价最高,曼秀雷敦定价最低。

价格高的口红打折力度较小。

标签

df=Data.loc[:,['标签1','标签2','标签3']]
name=df.apply(pd.value_counts).sum(1).index
name.value_counts()
2件减40        1
报销税费         1
99选5         1
券满119减20     1
限时购          1
券满999减100    1
1件8折         1
199选3        1
99选4         1
券5元          1
包税           1
99选3         1
税费补贴         1
2件减30        1
特价           1
79选3         1
2件减10        1
白条免息         1
dtype: int64
value=df.apply(pd.value_counts).sum(1)
value.apply(int).sort_values(ascending=False)
白条免息         325
特价           293
包税           284
2件减40         63
限时购           14
79选3          12
2件减10         11
税费补贴           8
券满119减20       3
2件减30          3
报销税费           2
1件8折           2
券5元            2
99选4           2
99选3           2
99选5           1
券满999减100      1
199选3          1
dtype: int64
wordcloud = WordCloud(width=500, height=500)
wordcloud.add("", name, value, word_size_range=[20, 100])
display(wordcloud)
7.png

白条免息,特价,包税为口红促销常用标签。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352

推荐阅读更多精彩内容