用Power BI对超市数据进行分析

486 阅读5分钟

用Power BI对超市数据进行分析

注:这里使用的是某家在线商店的数据集。这个数据集包含销售家具、办公用品和科技产品在内的订单编号、订单/发货日期、客户信息、产品信息、总销售额、利润……

现在假设营销部门带着这个数据集来找我们,他们想知道我们对现有数据的看,并提出了以下问题:

  • 我们能否就数量、销售额或利润确定出最佳产品/子类别/类别?

  • 什么物品一般是一起卖的?

  • 你还能为我们提供哪些有用的建议?

  • 你能帮我们监控这些 KPI 吗?

营销部门的需求收到了,下面我将用 Power BI 来回答他们的问题!

1、导入数据

\

首先,我们需要导入并理解数据集:

\

在 Power BI 中,一旦连接到源数据(传统 CSV 文件、SQL Server、API、电子表格……),我们就会得到这个视图,它会为我们提供有关数据质量的信息。

在这里,我们可以看到缺少一些行,该列包含数值与分类值,按列列出的不同值的数量,每列的最小值/最大值......

2、数据清洗

  • 首先,在需要时更改列的数据类型:数据类型对于创建计算、比较数据非常关键。
  • 日期当前是文本(字符串)格式,我们需要将它格式标准化,把类型更改为日期类型。
  • 用“,”替换数字列中的每个“。”
  • 删除错误行,可以用列的平均值或最常见的值替换缺失值,或者干脆删除不完整的行。

当前数据集没有显示单位值(价格、利润率、%利润率),所以我们需要添加这些列:

  • 产品价格
  • 产品利润率
  • % 利润

最后,一旦将原始日期定义为日期类型,我们将添加日期列:日订单、月订单、年订单……(这将有助于我们分析最佳销售时间)。

3、探索性数据分析

数据清理完毕后,我们可以进入下一层分析环节,首先使用简单的数据可视化:

从下面的图片中可以看到:

  • 一些城市在销售和利润方面表现更好
  • 3个品类在销量上比较接近,但在销量和利润率上不相近
  • 销售额和利润每年都在增长
  • 我们针对3个客户群,采用不同的销售模式
  • 销售情况在每月的 9 日至 13 日期间表现最佳。每个月的第一天比较低。最好的销售月份是 11/9/12 …

一些城市正在亏损,我们需要更深入地了解原因。

当深蓝色在左侧时,商店实际上是在亏损。

一些子公司也在赔钱,我们放大看看到底是哪些产品正在亏损。

左侧的深蓝色表示该产品子类别正在亏损

4、问题1:从销量、利润、销售额来看,什么产品最好卖?

销量:

首先创建一个简单的条形图,按类别/子类别/产品来可视化数量。这里使用 Power BI 的“drill down”功能,以避免创建过多的图表:

\

该公司销售 3 种产品,把颜色添上以轻松识别不同类别:

添加自定义颜色:

添加一列“category_number”,应用于有关类别标签的数字。家具 = 1,办公室 = 2 ...

在 power bi 查询中,它应该是这样的:

= Table.AddColumn( #”Renamed Columns”, “Category_number”, each if [Category] = “Furniture” then 1 else if [Category] = “Technology” then 2 else if [Category] = “Office Supplies” then 3 else空值)

在图表上,可以像这样创建一个条件格式:

利润:

有些产品的利润率为负

我们可以深入研究并检查产品利润率。该公司正在销售数百种产品,要在条形图上可视化所有这些产品并不容易。

销售额 :

产品销量和子类别销量

由于我们有不同的产品/价格/数量和利润,所以不能把这些值放在一起比较。

所以这里就要运用到产品组合效应来帮助我们了解哪些产品对公司利润的贡献最大。

我们在数据集中添加 3 列:对总销售额的贡献、利润、利润 × 对总销售额的贡献:

5、问题2:哪些产品一起卖得最多

了解哪些产品有助于我们销售其他产品

发展交叉销售

决定我们是否保留低利润产品

以下一种聚合和排序产品集的方法:

复制数据框以获取需要的列:订单 ID 和产品名称。

  1. 按产品名称排序

仅保留“订单 ID”列中的重复值

按订单 ID 分组:

  1. 使用自定义查询将新合并的表拆分为 1 列:

= Table.AggregateTableColumn(#"Grouped Rows", "Count", {{"Product Name", each Text.Combine(List.Transform(_, (x) => Text.From(x)), " — , — “), “期望的结果”}})

  1. 最后将数据绘制在条形图上,以可视化重新分区:

\

在实际工作中,我们会得到类似的结果:

6、问题3:如何创建一个可视化仪表板?

前 :

后 :

我们可以删除仪表板中不必要的表格,如果需要还能用 UI 进行更深入的研究:

\

这里的小条形图可以展开,也可以显示对应的表格。

在这个分析中,我们执行了标准且简单的数据操作来理解和分析数据集。但在现实世界中,数据分析通常需要在客户和数据分析师之间进行多次迭代。我们需要回答在探索性分析过程中发现的每一个额外问题,一旦所有上述问题都得到回答,可能还有更多需要分析的主题。