📣 前言
- 👓 可视化主要使用 plotly
- 🔎 数据处理主要使用 pandas
- 🕷️ 数据爬取主要使用 requests
- 👉 本文是我自己在和鲸社区的原创
今天这篇文章将给大家介绍【关于Shein 男装商品数据集的探索】案例。
Step 1. 导入模块
import pandas as pd
import plotly.graph_objects as go
Step 2. 数据概览
数据下载:关注公众号【 布鲁的Python之旅】,回复关键字【Shein 男装商品数据集】免费获取。
file_path = '/home/mw/input/shein9661/shein_mens_fashion.csv'
df = pd.read_csv(file_path)
df.head()
这个数据集包含了多个字段,数据集包含以下列:
-
product_id:产品ID
-
sku:SKU编号
-
url:链接
-
title:标题
-
color:颜色
-
sale_price/amount:实际售价(数值)
-
sale_price/amount_with_symbol:实际售价(带符号)
-
retail_price/amount:标价(数值)
-
retail_price/amount_with_symbol:标价(带符号)
-
discount_percentage:折扣
-
category_name:品类
-
category_id:品类ID
-
description:描述
-
reviews_count:评价数
-
average_rating:平均打分
Step 3. 分析折扣效应
-
折扣与销售价格的关系:我们可以分析不同折扣下的平均销售价格,看看折扣越大是否意味着销售价格越低。
-
折扣与评价数的关系:分析不同折扣下的平均评价数,看看折扣是否能促进销量,从而增加评价数量。
-
折扣与平均评分的关系:分析不同折扣下的平均评分,看看折扣是否对顾客的满意度有影响。
# 分析折扣与销售价格的关系
discount_price_relation = df.groupby('discount_percentage')['sale_price/amount'].mean().reset_index()
# 分析折扣与评价数的关系
discount_reviews_relation = df.groupby('discount_percentage')['reviews_count'].mean().reset_index()
# 分析折扣与平均评分的关系
discount_rating_relation = df.groupby('discount_percentage')['average_rating'].mean().reset_index()
discount_price_relation[:10]
discount_price_relation[:10]
discount_price_relation[:10]
折扣与销售价格的关系图
# 折扣与销售价格的关系图
fig1 = go.Figure()
fig1.add_trace(go.Scatter(x=discount_price_relation['discount_percentage'],
y=discount_price_relation['sale_price/amount'],
mode='markers'))
fig1.update_layout(title='折扣与销售价格的关系',
xaxis_title='折扣 (%)',
yaxis_title='销售价格 ($)')
折扣与评价数的关系
折扣与平均评分的关系图
结论
以上是三个图表,分别展示了折扣与销售价格、折扣与评价数、以及折扣与平均评分的关系。从这些图表中更直观地看出不同折扣下的销售价格、评价数和平均评分的趋势。
根据分析结果,我们可以得出以下结论:
- 折扣与销售价格的关系:
• 图表显示随着折扣的增加,销售价格整体呈现下降趋势,尤其是在折扣较大时。
• 折扣在50%及以下时,销售价格普遍较高。
• 折扣在50%以上时,销售价格开始明显下降,特别是在折扣达到65%和70%时,销售价格降至最低。
- 折扣与评价数的关系:
• 图表显示了折扣与平均评价数之间的复杂关系。在某些折扣下,平均评价数较高,但在其他折扣下则较低。
• 折扣在10%以下时,平均评价数相对较高。
• 折扣在10%至30%之间时,平均评价数有所下降。
• 折扣在30%以上时,平均评价数普遍较低,但折扣达到50%时评价数有所上升。
- 折扣与平均评分的关系:
• 图表显示了平均评分在不同折扣下的变化。在某些折扣下,平均评分较高,表明顾客对这些折扣产品较为满意。
• 折扣在10%以下和50%以上时,平均评分较高。
• 折扣在10%至50%之间时,平均评分相对较低。
这些结果表明,折扣对销售价格有显著影响,较大的折扣会导致较低的销售价格。折扣与评价数和平均评分的关系则更为复杂,似乎并不是折扣越大就一定能带来更多的评价和高评分。这可能与其他因素如产品质量、市场需求等也有关系。
这些分析结果可以为商家提供一些关于定价策略和促销活动的参考。例如,商家可能需要权衡折扣大小与销售量、顾客满意度之间的关系。
Step 4. 颜色偏好与销售的相关性
为了分析颜色偏好与销售的相关性,我们可以从以下几个方面入手:
• 不同颜色的销售数量:我们可以统计每个颜色的销售数量,看看哪些颜色更受欢迎。
• 不同颜色的平均销售价格:分析不同颜色的平均销售价格,看看某些颜色是否倾向于更高的定价。
• 不同颜色的平均评分:分析不同颜色的平均评分,看看颜色是否影响顾客的满意度。
# 分析不同颜色的销售数量
color_sales_count = df.groupby('color')['product_id'].nunique().reset_index()
# 分析不同颜色的平均销售价格
color_avg_price = df.groupby('color')['sale_price/amount'].mean().reset_index()
# 分析不同颜色的平均评分
color_avg_rating = df.groupby('color')['average_rating'].mean().reset_index()
# 查看分析结果
color_sales_count[:10]
color_avg_price[:10]
color_avg_rating[:10]
根据分析结果,我们可以得出以下结论:
- 不同颜色的销售数量:
- • 某些颜色(如黑色、白色、灰色)的销售数量较多,这表明这些颜色可能是更受欢迎的选择。
- 不同颜色的平均销售价格:
- • 某些颜色的平均销售价格较高,这可能意味着这些颜色被定为了更高的价格。
- 不同颜色的平均评分:
- • 大多数颜色的平均评分在4.5以上,这表明大多数顾客对这些颜色产品都给出了较高的评价。
接下来,创建一个图表来可视化不同颜色的销售数量,以进一步展示哪种颜色更受欢迎。
不同颜色的销售数量
不同颜色的平均销售价格
不同颜色的平均评分
以上是三个图表,分别展示了不同颜色产品的销售数量、平均销售价格和平均评分。这些图表可以帮助我们更直观地理解颜色偏好与销售之间的相关性。
-
不同颜色的销售数量:图表显示了黑色、白色和灰色是销售数量最多的颜色,这表明这些颜色可能是更受欢迎的选择。
-
不同颜色的平均销售价格:图表显示了不同颜色产品的平均销售价格分布。某些颜色(如黑色、白色、灰色)的平均销售价格较高,这可能意味着这些颜色被定为了更高的价格。
-
不同颜色的平均评分:图表显示了大多数颜色的平均评分在4.5以上,这表明大多数顾客对这些颜色产品都给出了较高的评价。
这些分析结果可以为商家提供一些关于如何根据颜色来制定产品定价和促销策略的见解。例如,商家可能需要考虑将黑色、白色和灰色作为主要颜色来吸引更多顾客。
Step 5. 商品描述分析
商品描述分析可以帮助我们理解商家如何通过描述来吸引顾客,以及描述与销售之间的潜在关系。我们可以从以下几个方面入手:
-
描述长度:分析不同描述长度的平均销售价格,看看较长的描述是否通常与较高的价格相关。
-
描述关键词:分析描述中出现频率最高的关键词,看看哪些词汇最常被用于吸引顾客。
-
描述与评分的关系:分析描述与平均评分之间的关系,看看描述是否影响顾客的满意度。
# 计算描述长度
df['description_length'] = df['description'].str.len()
# 分析描述长度与平均销售价格的关系
avg_price_by_description_length = df.groupby('description_length')['sale_price/amount'].mean().reset_index()
# 分析描述中出现频率最高的关键词
from collections import Counter
words = ' '.join(df['description']).split()
word_counts = Counter(words)
top_words = word_counts.most_common(10)
# 分析描述与评分的关系
avg_rating_by_description_length = df.groupby('description_length')['average_rating'].mean().reset_index()
avg_price_by_description_length[:10]
top_words
avg_rating_by_description_length[:10]
根据分析结果,我们可以得出以下结论:
- • 描述长度与平均销售价格之间没有明显的直接关系。有些较短的描述对应较高的销售价格,而有些较长的描述则对应较低的销售价格。
- 描述中出现频率最高的关键词:
- • 描述中最常出现的关键词包括“Type:”、“Sleeve”、“Regular”、“Fit”、“Details:”、“Length:”、“Composition:”、“Pattern”、“Color:”和“Care”。这些关键词可能反映了商品的特性或风格,商家可能使用这些关键词来吸引顾客。
- 描述与评分的关系:
- • 描述与评分之间没有明显的直接关系。有些描述对应较高的评分,而有些描述则对应较低的评分。
接下来,创建一个图表来可视化描述长度与平均销售价格的关系,以进一步展示描述长度与销售价格之间的关系。
描述长度与平均销售价格的关系
以上图表展示了描述长度与平均销售价格之间的关系。
从图表中可以看出,描述长度与平均销售价格之间没有明显的直接关系。有些较短的描述对应较高的销售价格,而有些较长的描述则对应较低的销售价格。
这些分析结果可以为商家提供一些关于如何通过描述来吸引顾客的见解。例如,商家可能需要考虑如何使用描述中的关键词来吸引顾客,以及描述的长度是否会影响顾客的购买决策。
Step 6. 用户评价分析
用户评价分析可以帮助我们理解顾客对产品的看法,以及评价与销售之间的潜在关系。我们可以从以下几个方面入手:
-
评价与销售价格的关系:分析不同销售价格下评价的平均数量,看看销售价格是否影响评价的数量。
-
评价与评分的分布:分析不同评分下评价的分布情况,看看哪些评分最常见。
-
评价与描述的关系:分析描述中出现频率最高的关键词,看看哪些词汇最常被用于吸引顾客。
# 分析评价与销售价格的关系
avg_reviews_by_price = df.groupby('sale_price/amount')['reviews_count'].mean().reset_index()
# 分析评价与评分的分布
avg_rating_by_reviews = df.groupby('average_rating')['reviews_count'].mean().reset_index()
# 分析评价与描述的关系
avg_reviews_by_description = df.groupby('description')['reviews_count'].mean().reset_index()
avg_reviews_by_price[:10]
avg_rating_by_reviews[:10]
avg_reviews_by_description[:10]
根据分析结果,我们可以得出以下结论:
- 评价与销售价格的关系:
- • 销售价格越低,平均评价数量越高。这可能是因为销售价格较低的产品吸引了更多顾客购买,从而产生了更多的评价。
- 评价与评分的分布:
- • 评分越高,平均评价数量越低。这可能是因为评分较低的产品吸引了更多顾客购买,从而产生了更多的评价。
- 评价与描述的关系:
- • 描述中出现频率最高的关键词与评价数量之间没有明显的直接关系。
评价与销售价格的关系
以上图表展示了评价数量与销售价格之间的关系。从图表中可以看出,随着销售价格的增加,平均评价数量逐渐减少。这可能是因为销售价格较高的产品吸引的顾客较少,因此产生的评价也较少。
完整代码 👇
https://www.heywhale.com/mw/project/66164ecc0e07322ee76d2b9b
ps:此代码可以直接在线运行,不需要担心环境配置问题
数据集下载
关注公众号,回复关键字【Shein 男装商品数据集】获取
- END -
以上就是本期为大家整理的全部内容了,喜欢的朋友可以点赞、点在看也可以分享让更多人知道。
👆 关注「布鲁的 Python 之旅」第一时间收到更新