请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


python零售公司商品销售情况数据分析(源码)



一、功能描述

采用python用于对零售公司商品销售情况进行数据分析:

  1. 绘制商品名称和商品金额的雷达图,展示销售额排名前20的商品情况。
  2. 分析下单时间趋势并绘制折线图,展示每日销售数量的变化趋势。
  3. 分析商品金额和数量之间的关系并绘制散点图,以不同商品分类进行区分。
  4. 组合图:将饼状图和柱状图放置在同一图中,展示各品类销售比例和订单状态分布。

此脚本使用了Pandas进行数据处理,Matplotlib和Seaborn进行数据可视化。

👇👇👇 关注公众号,回复 “零售数据分析” 获取源码👇👇👇

部分数据如下:
在这里插入图片描述

二、设计思路

  1. 数据读取和准备

    • 使用Pandas库的read_excel()函数读取原始数据文件,确保文件路径正确。
    • 数据文件包含订单记录,需要获取的信息包括商品分类、订单状态、商品名称、商品金额、下单时间和数量等。
    • 将读取的数据存储在DataFrame对象中,方便后续的数据分析和可视化。
  2. 各品类销售情况分析及饼状图绘制

    • 使用groupby()函数按照商品分类对数据进行分组,并计算每个品类的销售数量总和。
    • 将计算结果用于绘制饼状图,显示各品类销售比例。
    • 使用Matplotlib库的pie()函数绘制饼状图,并设置相应的参数如标签、百分比显示等。
  3. 订单状态分析及柱状图绘制

    • 使用value_counts()函数统计订单状态的数量分布。
    • 利用Seaborn库的barplot()函数绘制柱状图,展示不同订单状态的数量分布情况。
    • 在柱状图上添加合适的标签,确保图表清晰易读。

👇👇👇 关注公众号,回复 “零售数据分析” 获取源码👇👇👇

  1. 商品名称和商品金额的雷达图绘制

    • 首先,按商品名称对数据进行分组,并计算每个商品的销售金额总和。
    • 选取销售额排名前20的商品进行雷达图绘制。
    • 利用Matplotlib库的subplot()函数创建子图,绘制雷达图。
    • 设置雷达图的角度、标签、标题等参数,确保图表完整显示并清晰表达销售情况。
  2. 下单时间趋势分析及折线图绘制

    • 将下单时间转换为日期时间类型,并设置为数据框索引,便于按时间进行数据重采样。
    • 使用resample()函数按照日期进行重采样,并计算每日销售数量的总和。
    • 利用Matplotlib库绘制折线图,展示销售数量随时间的变化趋势。
    • 设置合适的标签、标题、轴标签等参数,使图表清晰易懂。
  3. 商品金额和数量关系分析及散点图绘制

    • 利用Seaborn库的scatterplot()函数绘制散点图,以商品金额为横坐标、数量为纵坐标,并按商品分类进行着色。
    • 设置散点图的标题、轴标签、图例等参数,以便理解商品金额与数量之间的关系。
  4. 组合图绘制

    • 使用Matplotlib库的subplot()函数创建包含多个子图的图表,以便同时展示不同的图表。
    • 将饼状图和柱状图放置在同一个图中,并设置合适的布局、标签等参数。
    • 最后使用tight_layout()函数调整子图的布局,使图表整体美观且易于理解。

👇👇👇 关注公众号,回复 “零售数据分析” 获取源码👇👇👇

三、可视化分析

商品名称和商品金额的雷达图绘制
在这里插入图片描述

👇👇👇 关注公众号,回复 “零售数据分析” 获取源码👇👇👇

下单时间趋势分析及折线图绘制
在这里插入图片描述

商品金额和数量关系分析及散点图绘制
在这里插入图片描述

👇👇👇 关注公众号,回复 “零售数据分析” 获取源码👇👇👇

组合图绘制在这里插入图片描述

👇👇👇 关注公众号,回复 “零售数据分析” 获取源码👇👇👇

四、部分代码

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']


# 读取数据
df = pd.read_excel('原始记录条.xlsx', engine='openpyxl')
category_sales = df.groupby('商品分类')['数量'].sum()
order_status_counts = df['订单状态'].value_counts()


# 名称和商品金额的雷达图
# 按商品金额降序排序
top20_products = df.groupby('商品名称')['商品金额'].sum().sort_values(ascending=False).head(20)

# 绘制雷达图
categories = top20_products.index
values = top20_products.values

# 角度
angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False)

# 使雷达图封闭
values = np.concatenate((values, [values[0]]))
angles = np.concatenate((angles, [angles[0]]))

# 创建雷达图
fig, ax = plt.subplots(figsize=(10, 10), subplot_kw=dict(polar=True))
ax.fill(angles, values, color='orange', alpha=0.5)

ax.set_yticklabels([])
ax.set_xticks(angles[:-1])
ax.set_xticklabels(categories, color='grey', size=8)
ax.set_title('Top 20 商品销售额雷达图', size=15, color='blue', y=1.1)

plt.show()

# 剩余代码略...

👇👇👇 关注公众号,回复 “零售数据分析” 获取源码👇👇👇

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐