目录
- [0 前言](#0 前言)
- [1 获取项目数据源和了解数据](#1 获取项目数据源和了解数据)
-
- [1.1 获取数据源](#1.1 获取数据源)
- [1.2 了解数据](#1.2 了解数据)
- [2 可视化目标](#2 可视化目标)
- [3 实操](#3 实操)
-
- [3.1 数据清洗](#3.1 数据清洗)
- [3.2 可视化](#3.2 可视化)
-
- [3.2.1 销售额、利润、订单量 KPI 卡片](#3.2.1 销售额、利润、订单量 KPI 卡片)
- [3.2.2 季度销售趋势折线图](#3.2.2 季度销售趋势折线图)
- [3.2.3 地区销售地图](#3.2.3 地区销售地图)
- [3.2.4 类目销售占比(饼图)](#3.2.4 类目销售占比(饼图))
- [3.2.5 Top10 产品条形图](#3.2.5 Top10 产品条形图)
- [3.2.6 可视化总结](#3.2.6 可视化总结)
- [4 后记](#4 后记)
0 前言
欢迎各位朋友来到第三弹,恭喜你又又又升级啦,同时第一次来的那么刷到就是我们的缘分,在Power BI(以后简称PB)的学习过程中,你将获得利用PB清洗数据、可视化数据的全过程,并且后续也会有分析决策的内容,最重要的是,所有学习到的点,都是我们会用到的,同时,我们也会培养一个思维,那就是在实践中学习理论,这个方法论以后可以运用到其他生活中的方方面面。
看过新手小白学习PowerBI第一弹、第二弹的小伙伴知道我们接下来要干什么吗?没有,正式开始实操之旅啦~~~~
1 获取项目数据源和了解数据
1.1 获取数据源
数据来源于Kaggle,Kaggle是一个全球知名的数据科学和机器学习平台,核心包括提供数据科学竞赛、丰富的数据集、机器学习工具以及活跃的社区支持。
可以在Kaggle官网搜索Superstore Sales数据集,这里我给出下载网址https://www.kaggle.com/datasets?search=Superstore+Sales
进入这个网址,点击 Superstore Sales

点击Download进行下载,它是一个压缩文件,下载完成需要解压缩


解压之后就是一个csv格式 的文件和一个xlsx格式的文件

到这里,恭喜你完成了项目的第一关,下载数据完成啦,所有的成本我们都具备啦,让我们开始真正的实操叭!!!期待~~~~
1.2 了解数据
有了数据,首先我们要了解我们的数据,再接着处理数据,只有了解数据,才能对数据进行适当的处理。
Row ID:行号
Order ID:订单编号
Order Date:下单日期
Ship Date:发货日期
Ship Mode:发货模式
Customer ID:用户编号
Customer Name:用户名称
Segment:客户群组,比如用户、企业客户等
Country:国家
City:城市
State:州/省
Postal Code:邮编代码
Region:地区/大区,比如北美、欧洲、亚太等
Product ID:产品编号
Category:产品类别,比如办公用品、技术产品、家具等
Sub-Category:产品子类,比如椅子、桌子、电话等
Product Name:产品名称
Sales:销售额,产品的销售总收入
Quantity:数量
Discount:折扣
Profit:利润,销售这笔订单获得的利润
在电商销售数据中,Profit通常指的是毛利润(Gross Profit)利润 = 销售额 - 成本
多提一点,Profit Margin(利润率) = Profit / Sales
2 可视化目标
进行实操之前,明确我们的目的,也就是说我们要干什么,要实现怎样的目标。
这里是可视化的页面一,我们总共有四个部分,也就是学完这篇博客,我们就完成了四分之一。本篇博客的目标就是,要做到能够展示下面的界面。
【页面 1:整体销售仪表盘】
展示:
销售额、利润、订单量 KPI 卡片
季度销售趋势折线图
地区销售地图
类目销售占比(饼图)
Top10 产品条形图
3 实操
从我们的目标来看,总共有两个步骤,①数据清洗,也就是对数据进行简单的处理,确保数据真实准确高质量;②可视化,将数据以图表线等进行展示,便于更直观明了的观察数据。
3.1 数据清洗
在数据清洗这部分,我们首先会学习一些基础概念,比如处理数据的原则;接着描述针对我们这个项目,清洗数据的思路;最后,就是最期待的,在PB上进行实际操作了。
3.1.1 基础知识
数据清洗的目的:
数据清洗是为了提高数据的质量,确保数据的准确性和一致性。仔细想一想,把一些没用的数据删除,不合常规的数据进行处理,是不是就是让数据本身更加的"正确",从这个维度不就是提高数据的质量。
数据清洗的基本原则:
1 完整性数据中可能会有缺失值,缺失了是不是就没那么完整了,所以注意数据的完整性。因此我们需要处理数据中的缺失值。有两种思路:
a.填充缺失值:根据数据的性质使用不同的方式填充缺失值,例如填充均值、中位数、众数等;
b.删除缺失值,如果缺失值太多且无法填补,可以考虑删除这些行。
2 一致性a.格式一致:在数据中,有些字段可能存在不同的格式(比如日期字段,某些行可能是yyyy/mm/dd,其他行是dd/mm/yyyy),那么我们就应该统一格式。
b.类别值一致:类别数据(比如产品名称、客户名称等)应该保证一致性,避免拼写错误或大小写不一致的情况。
3 准确性原则a.去除重复数据
b.异常值检测与修正:检查是否存在不合理的异常值,比如销售额为负数、库存为零等,需要根据业务场景做出合理判断。
4 有效性原则a. 合理的数据范围:数据应在合理范围内。比如,销售额应该为正数,日期为有效日期。
b. 逻辑一致性:例如,订单的发货日期应该晚于下单日期,退货日期应该晚于发货日期等。
这里看着准备性和有效性似乎有点类似,简单区别一下,准确性是说数据是否正确,考虑的是对错,而有效性是数据是否合理,关注约束和逻辑。
3.1.2 思路
具体来说有以下几个步骤:
从原则的角度考虑:
完整性:(1)对于一个表的主键来说,是不可能存在空值且重复的情况,即null值和重复的值,直接删除直接Order ID = null 所在的行。(这里主键的意思,就是唯一可以标识这一行数据的值,比如身份证,可以唯一的标识每个人)
(2)对于Sales、Profit字段如果确实过多,可以选择删除这些行,缺失少可以进行填充。
(3)Product Name、Customer Name,如果确实较少且能推测出,可以选择填充或删除。
一致性:(4)将数据类型改为日期:Order Date、Ship Date
(5)将数据类型改为文本:Order ID、Customer Name、Region、Country、City、Category、Sub-Category、Product Name
(6)将数据类型改为小数:Sales、Profit
(7)将数据类型改为整数:Quantity
准确性、有效性:(8)Sales小于0修改为0
(9)Profit小于0修改为0
3.1.3 实操
这里对数据清洗是三个步骤:①加载数据源,也就是把我们的xlsx文件加载到PB当中;②根据上文中的思路进行数据清洗;③新建日期表,是为了年度、季度报表打基础。
(1) 加载数据源
打开PB软件,点击空白报告

接着,点击Excel工作簿,这个是加载xlsx文件的,其实很多栏目大家有兴趣可以多看看,自己探索探索。

浏览你的文件夹找到之前下载的文件.xlsx结尾的文件,就可以看到下图的界面,继续对数据表进行勾选-》转换数据,一定点击转换数据才能进入Power Query模式,不然就是Desktop模式(先了解一下,之后我们会用到,你就明白啦)。

进入下图的界面,即进入Power Query模式(有时,我会简称为PQ),这里简单介绍一下,PQ他就是进行数据处理的一种状态,也就是我们要使用这个模式进行数据清洗。

(2)数据清洗
根据我们的3.1.2的思路进行数据清洗
① 对于一个表的主键来说,是不可能存在空值且重复的情况,即null值和重复的值,直接删除直接Order ID = null 所在的行。(其实我们这个数据没有什么大的问题,对新手还挺友好的)。

将我们的操作重命名,有利于后续的操作。

② 对于Sales、Profit字段没有缺失,这里Sales没有负数,我把Profit为负数看为没有盈利,亏损,因此没有删除也没有改成0,将数据类型改为小数

Profit列也是同样的操作,这里就不重复了,下图主要是想说明把操作栏进行重命名,方便自己后面回过头来看,处理过什么

其他数据类型处理也是类似的操作,此处就不再赘述了,看3.1.2的思路部分进行简单操作就可以。你一定可以哒,那么到这里我们数据清洗就完成啦。
接下来,退出这个模式,进入Desktop桌面模式,建立表、关系,接着要进行可视化啦,点击关闭并应用就可以啦!这样我们的数据就是请过PQ清洗过的,高质量的数据啦!

Desktop模式,就是我们进行可视化的模式,在这个模式下有报表试图、模型视图等等,感兴趣可以到处点一点,看看都是干啥的。我们的可视化就是在这个Desktop模式下进行的。

(3)新建日期表
从可视化的需求,可以看到有年度、季度销售趋势折线图,原始Orders表格中只有Order Date和Ship Date数据,并没有季度,且在数据分析过程中,我们经常需要用到年、月、日、季度时间数据,因此,这里我们新建一个日期表格:DateTable(Date, Year, Month, Day, Quarter)。
bash
DateTable = CALENDAR(MIN(Orders[Order Date]), MAX(Orders[Order Date]))
这个式子是一个DAX(Data Analysis Expressions) 表达式 DAX是PB(Power BI)中用于数据分析和建模的公式语言,本质上就是函数式语言,类似与Excel的公式,但是功能会更强大。没有DAX,PB只能做基础报表;掌握DAX后,可以建构复杂的业务分析模型。
DAX主要用法:
- 创建计算列和度量值(这个我们之后会用到,先埋下伏笔)
- 建立数据模型关系
- 进行复杂的数据计算和分析
首先点击表工具->新建表->输入DAX语句(下面给出了)->回车,一定要回车,否则事务就没有提交哟~

新建 Year 列:在DataTable中新建Year这个列,最后输入完DAX语句后,点击回车即可
bash
Year = DateTable[Date].[年]

新建 Month 列:在DataTable中新建Month列
bash
Month = DateTable[Date].[月份]

新建 日 和 季度 列的创建都是同理,这里就直接贴出DAX公式了
bash
Day = DateTable[Date].[日]
Quarter = DateTable[Date].[季度]
DateTable 创建完毕就是下图的结构

接下来,一个关键的步骤,就是要将 DateTable和我们原始的Orders表格联系 起来,不然单独的两张表,没有关系就没有作用,这就要用到数据库的基础只是联系,小白也不要害怕,十分好理解,听我细细道来。

结论:DateTable表中的一个Date对应Orders表中多个订单编号的日期,Orders表中的多个订单编号对应DateTable中的一个Date,所以DataTable表与Orders表是一对多的关系。
实例解释:在同一天,该电商公司有多个用户下单,下单就会产生订单,即一天会有多个订单,所以 DateTable 中的一个 Date 对应 Orders 中多个订单,反过来,Orders 中的多个订单,对应 DateTable 中的一个 Date,所以就是一对多的关系。
是不是很好理解!!!
在PB里,用下图的方式建立关系,这里要注意从。。。到。。。的顺序,从 DateTable 到 Orders 是一对多的关系,那反过来,从 Orders 到 DateTable,就是多对一的关系,这里一定不能弄反了哟,很重要!

最后点击保存昂

这就成功的建立好关系了,我们就可以处理两个表格了。
3.2 可视化
可视化能够让人们更直观地看到数据的趋势、占比等信息,增强了数据的可读性、理解性。
3.2.1 销售额、利润、订单量 KPI 卡片
首先点击左侧栏,选中报表视图,接着看到右边的生成视觉对象栏目,这个栏目下面有许多视觉对象,比如KPI、地图、柱状图等等,大家可以多点击点击看看,有个大致的了解。
先了解一下什么是KPI(Key Performance Indicator),关键绩效指标,通过对组织内部流程关键参数进行设置。因此除了我们的数据,还需要设定一个目标。

在这里,我们通过新增度量值 ,来增加KPI的目标值。
首先,右键我们的 Orders 表;接着,在出现的菜单栏,选择新增度量值;最后通过DAX语句实现(这里就是前文提到DAX的功能)。



这里要么回车 ,要么鼠标点击绿色的勾勾,不然就相当于没有干活,明白?

这里就用到了DAX新增度量值的功能。
bash
TargetSales = 1000000
前期准备就绪,那么就需要将数据放入KPI试图中。



完成上述的操作,就会获得下面的图片,红色就表示没有达到KPI,如果达到了,会显示绿色和√,大家可以通过降低 TargetSales 尝试一下,你一定可以成功哒~
可以通过下图的一二三步骤修改标题、字体等,让KPI可视化更美观,大家自行按需求设计就好。

利润、订单量KPI也是差不多的逻辑,大家自行操作。当做小作业小练习啦~
3.2.2 季度销售趋势折线图
点击返回列表就能回到小小的界面

这里就是在视觉对象部分,选择折线图了

将数据填入折线视图


3.2.3 地区销售地图
要显示地图,需要先进行设置,否则没办法显示


注意,下面的图片,点击了确定后再重新打开PB,不然就属于是无效设置了。



3.2.4 类目销售占比(饼图)

3.2.5 Top10 产品条形图



展示一下,最终的结果~

3.2.6 可视化总结
总结一下整体可视化思路:
- 选择视觉对象,比如KPI、折线图等
- 填入数据,拖拽的方式,可能还需要进行数据筛选,比如top10等
- 外观优化,比如标题、字号大小等
下图是所有可视化完成后的样子,大家可以做得更好看一些些,可以返图在评论区哟。

最后,别忘记保存昂,不然都白干了,换个思路可以重新再学一遍,哈哈哈哈,学到这里,宝儿,你也太棒了!!!

4 后记
在这个项目中,不会学习到任何没用的知识点,因为没用的话就不会学,哈哈哈哈哈,怎么感觉这句话这么搞笑~
人若犯我,我犯死你。女生要泼一点,要敢于有保护自己的能力和勇气。我们不能等待别人来替我们息事宁人。
每个人是自己的第一责任人。
阳光透过玻璃温暖了我的心,发完这篇文章我要出去走走,吸一吸大自然的能量,迎接我的美好时光!!!愿你也获得一丝暖阳。
如果对你有帮助的话,给我点赞点赞~~~~