当前位置: 首页 > news >正文

【数据可视化-25】时尚零售销售数据集的机器学习可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

【数据可视化-25】时尚零售销售数据集的机器学习可视化分析

    • 一、引言
    • 二、数据集概述
      • 2.1 数据加载与预览
      • 2.2 数据清洗与预处理
      • 2.3 异常值处理
    • 三、数据可视化分析
      • 3.1 销售总额分析
      • 3.2 按日期分组的销售情况
      • 3.3 年度销售分布
      • 3.4 支付方式分析
      • 3.5 平均单笔消费最高的用户分析
      • 3.6 热门商品分析
      • 3.7 评论评分分布
      • 3.8 不同交付方式的销售总额分析
    • 四、结论

一、引言

  在时尚零售行业中,对销售数据进行深入分析可以帮助企业了解客户购买行为、产品受欢迎程度和支付偏好等关键信息。本文将通过一个包含3400条时尚零售记录的数据集,进行详细的可视化分析,并提供完整的Python代码,以帮助读者更好地理解数据并从中提取有价值的信息。

二、数据集概述

  数据集包含以下列:

  • Customer Reference ID:整数类型,每个客户的唯一标识符。
  • Item Purchased:字符串类型,购买的时尚商品的名称。
  • Purchase Amount (USD):浮点数类型,商品的购买价格(以美元为单位),存在650个缺失值。
  • Date Purchase:字符串类型,购买日期(格式:DD-MM-YYYY)。
  • Review Rating:浮点数类型,买家评论评分(1到5分)。
  • Payment Method:字符串类型,使用的付款方式(如信用卡、现金等)。

2.1 数据加载与预览

  首先,加载数据集并进行初步的预览和探索。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns# 加载数据集
df = pd.read_csv("/kaggle/input/fashion-retail-dataset/fashion_retail.csv")# 显示前几行数据
print(df.head())

2.2 数据清洗与预处理

  在进行深入分析之前,我们需要对数据进行清洗和预处理。

# 将Date Purchase转换为日期类型
df['Date Purchase'] = pd.to_datetime(df['Date Purchase'], format='%d-%m-%Y')
# 缺失值处理
df['Purchase Amount (USD)'] = df['Purchase Amount (USD)'].fillna(df['Purchase Amount (USD)'].mean())
df['Review Rating'] = df['Review Rating'].fillna(df['Review Rating'].mode()[0])

2.3 异常值处理

  通过箱线图查看数据异常情况。

sns.boxplot(data=df)


  从图中我们可以发现,'Purchase Amount (USD)'列中存在比较多的异常值,将异常值进行替换。

# 计算均值和标准差
mean = df['Purchase Amount (USD)'].mean()
std = df['Purchase Amount (USD)'].std()# 计算上下限
lower_bound = mean - 3 * std
upper_bound = mean + 3 * std# 将异常值替换为均值
df['Purchase Amount (USD)'] = np.where((df['Purchase Amount (USD)'] < lower_bound) | (df['Purchase Amount (USD)'] > upper_bound), mean, df['Purchase Amount (USD)'])sns.boxplot(data=df)

三、数据可视化分析

3.1 销售总额分析

sns.kdeplot(data=df,x='Purchase Amount (USD)')

3.2 按日期分组的销售情况

# 按日期分组并计算每日销售总额
daily_purchase_df = ready_df.groupby('Date Purchase')['Purchase Amount (USD)'].sum().reset_index()plt.figure(figsize=(25, 8))
plt.plot(daily_purchase_df['Date Purchase'], daily_purchase_df['Purchase Amount (USD)'], color='purple')
plt.xlabel('Date')
plt.ylabel('Sales Amount (USD)')
plt.title('Amount Of Sales By Date')
plt.show()

3.3 年度销售分布

df['Year'] = df['Date Purchase'].dt.year
yearly_sales = df.groupby('Year')['Purchase Amount (USD)'].sum()
plt.pie(yearly_sales, labels=yearly_sales.index)
plt.title('Sales Percentage In Each Year')
plt.show()

3.4 支付方式分析

plt.pie(df['Payment Method'].value_counts().values, labels=df['Payment Method'].unique(),startangle=90)
plt.title('Sales Percentage By Each Payment Method')
plt.show()

3.5 平均单笔消费最高的用户分析

samples = []
for customer in df['Customer Reference ID'].unique():temp_df = df[df['Customer Reference ID'] == customer]samples.append((customer, temp_df['Purchase Amount (USD)'].sum(), len(temp_df)))samples = pd.DataFrame(samples, columns=['Customer ID', 'Overall amount of purchases (USD)', 'Number of purchases'])
samples = samples.sort_values(by='Overall amount of purchases (USD)', ascending=False).reset_index(drop=True)
samples['rate'] = samples['Overall amount of purchases (USD)'] / samples['Number of purchases']
samples = samples.sort_values(by='rate',ascending=False).reset_index(drop=True)
samples['Customer ID'] = samples['Customer ID'].map(str)plt.figure(figsize=(25, 8))
sns.barplot(data=samples[:20],x='Customer ID',y='rate')

3.6 热门商品分析

Pur_df = []
for item in df['Item Purchased'].unique():temp_df = df[df['Item Purchased'] == item]Pur_df.append((item, temp_df['Purchase Amount (USD)'].sum(), len(temp_df)))Pur_df = pd.DataFrame(Pur_df, columns=['Item', 'Overall amount of purchases (USD)', 'Number of purchases'])
Pur_df = Pur_df.sort_values(by='Overall amount of purchases (USD)', ascending=False).reset_index(drop=True)

3.7 评论评分分布

rating_counts = df.groupby('Review Rating').count().reset_index()
rating_counts = rating_counts[['Review Rating','Year']]
plt.figure(figsize=(25, 8))
sns.barplot(data=rating_counts,x='Review Rating',y='Year')
plt.xlabel('Ratings')
plt.ylabel('Count')
plt.title('Review Ratings Distribution')
plt.show()

3.8 不同交付方式的销售总额分析

sns.kdeplot(data=df,x='Purchase Amount (USD)',hue='Payment Method')

四、结论

  通过以上的可视化分析,我们可以得出以下结论:

  1. 销售总额与平均销售额:了解整体销售额和平均销售额有助于评估业务表现。
  2. 时间序列销售趋势:每日销售趋势可以帮助识别销售高峰和低谷。
  3. 年度销售分布:不同年度的销售占比揭示了业务的季节性和年度变化。
  4. 支付方式偏好:客户对不同支付方式的偏好影响支付策略。
  5. 顶级客户与热门商品:识别高价值客户和热门商品有助于制定营销策略。
  6. 评论评分分布:了解客户满意度和产品评价有助于改进产品质量和服务。

  通过这些分析,时尚零售企业可以更好地理解市场趋势、客户行为和产品表现,从而制定更有效的商业策略,提升销售业绩和客户满意度。


相关文章:

  • vue3,element ui框架中为el-table表格实现自动滚动,并实现表头汇总数据
  • 从内核到应用层:深度剖析信号捕捉技术栈(含sigaction系统调用/SIGCHLD回收/volatile内存屏障)
  • ROS 快速入门教程03
  • 运维打铁:Centos 7使用yum安装 Redis 5
  • 【FAQ】PCoIP 会话后物理工作站本地显示器黑屏
  • centos挂载新的硬盘
  • Docker配置DNS方法详解及快速下载image方法
  • SpringBoot自定义拦截器以及多个拦截器执行顺序
  • 安卓adb shell串口基础指令
  • 【金仓数据库征文】加速数字化转型:金仓数据库在金融与能源领域强势崛起
  • 修改el-select背景颜色
  • 第9章 多模态大语言模型
  • vue element使用el-table时,切换tab,table表格列项发生错位问题
  • mysql快速在不同库中执行相同的sql
  • 金融机构典型欺诈场景
  • 【element plus】解决报错error:ResizeObserver loop limit exceeded的问题
  • JBoltAI 赋能金融文档:基于 RAG 的基金招募说明书视觉增强方案
  • 致远oa部署
  • 在Vue3中,如何在父组件中使用v-model与子组件进行双向绑定?
  • 【计算机视觉】CV实战项目 - 基于YOLOv5与DeepSORT的智能交通监控系统:原理、实战与优化
  • 限时离境、关闭领空、暂停贸易,巴基斯坦宣布一系列对印反制措施
  • 我国民营经济首季运行向新向好,对国民经济发展形成有力支撑
  • 小鹏机器人IRON亮相上海车展,何小鹏:相信更多人形机器人会现身车展
  • 上影新片《密档》杀青,全新角度演绎石库门秘战
  • 匈牙利总理投票反对乌克兰加入欧盟
  • 打造“朋友圈”,“淘书乐”为旧书找“新朋友”