Power BI 微课堂 | 第11课:用 Power Query 调整初始数据
今天,我们来学习:用 Power Query 调整初始数据。认识 Power Query 编辑器的入口与界面,并学习如何简单处理数据。
》前言
Power BI Desktop 中的 Power Query 编辑器可以帮助你调整或转换导入的数据。借助 Power Query 编辑器,你可以完成如下操作:重命名列或表、将文本更改为数字、删除行,以及将第一行设为标头等。
请务必对数据进行调整,从而确保它满足你的需求且适合在报表中使用。那么,在开始生成报表之前,如何使用 Power Query 编辑器对数据进行清理和调整呢?
场景描述
假设,你已将两个源中的原始销售数据加载到一个 Power BI 模型中。某些数据来自销售团队在 Microsoft Excel 中手动创建的 .csv 文件。其他数据是通过连接到企业资源计划(ERP)系统来加载的。
现在,当在 Power BI Desktop 中查看数据时,你注意到数据是杂乱的;不需要的某些数据和所需的某些数据的格式都不正确。

》Power Query 编辑器入门
若要开始调整数据,请在 Power BI Desktop 的“开始”选项卡上选择“转换数据”选项来打开 Power Query 编辑器。

在 Power Query 编辑器中,所选查询中的数据会显示在屏幕中间(下图 ③),而在屏幕左侧,“查询”窗格(下图 ②)会列出可用的查询(表)。
在 Power Query 编辑器中工作时,你对数据进行调整的所有步骤都会被记录下来。随后,每当查询连接到数据源时,它会自动应用你的步骤,从而使你的数据始终按你指定的方式调整。Power Query 编辑器仅对数据的特定视图进行更改,
因此,你无需担心会对原始数据源造成任何更改。可以在屏幕右侧的“查询设置”窗格(下图 ④)中查看你的步骤列表以及查询的属性。
Power Query 编辑器功能区(下图 ①)包含许多可用于选择、查看和调整数据的按钮。注:在 Power Query 编辑器中,右键单击上下文菜单,然后单击功能区中的“转换”选项卡,这会提供许多相同的选项。

(1)识别列标头和名称
对初始数据进行调整的第一步是:标识数据内的列标头和名称,然后评估它们所在的位置,并确保它们位于正确的位置。
在下图中,SalesTarget(示例数据)的 csv 文件中的源数据有一个按产品分类的目标,以及按月份拆分的一个子类别,这两个字段都被整理成了列。

然而,你会注意到数据没有按预期导入,这让我们难以阅读数据。

在数据处于当前状态时会发生问题,因为列标头位于不同的行中(红框),且若干列有未描述的名称,例如“Column1”和“Column2”等。在识别了列标头和名称所在的位置后,可以进行更改以重新整理数据。
(2)提升标头
当表在 Power BI Desktop 中创建后,Power Query 编辑器会假设所有数据都属于表行。但是,数据源的第一行可能会包含列名称,这是之前 SalesTarget 示例中发生的情况。若要更正此误差,需要将第一个表行提升为列标头。
我们可以通过两种方式提升标头:在“开始”选项卡上选择“将第一行用作标头”选项,或选择“Column1”旁边的下拉菜单按钮,然后选择“将第一行用作标头”。

下图说明了“将第一行用作标头”功能会对数据造成哪些影响:

(3)重命名列
调整数据的下一步是检查列标头。你可能会发现,一列或多列的标头错误、标头拼写错误,或者标头命名约定不一致或对用户而言并不友好。
从上图中,我们了解了“将第一行用作标头”功能的影响。需注意的是,包含子类别“Name”数据的列,现在的标头变成了“Month”。此列标头不正确,因此需要对它进行重命名。
可以通过两种方式对列标头进行重命名。一种方法是右键单击标头,选择“重命名”,编辑名称,然后按 Enter。或者,可以双击列标头,然后使用正确的名称覆盖该名称。
还可以通过这个方法解决此问题:删除(跳过)前两行,然后将列重命名为正确名称。
(4)删除前几行
在调整数据时,可能需要删除前几行。例如,当行为空白或包含报表中不需要的数据时。
我们继续使用 SalesTarget 示例,可以注意到:第一行为空白(没有数据),第二行的数据已不再需要(需去除)。

若要删除这些多余的行,请在“开始”选项卡上选择“删除行”>“删除前几行”。

(5)删除列
数据调整过程中的一个关键步骤是:删除不必要的列,且越早删除这些列越好。
删除列的一种方式是:在从数据源获取数据时限制列。例如,如果使用 SQL 从关系数据库中提取数据,则需要在 SELECT 语句中使用列表对提取的列进行限制。
在此过程的早期阶段删除列(而不是之后再进行删除)是最好的,特别是在表之间建立了关系的情况下。删除不必要的列将有助于你专注于所需的数据,并有助于改进 Power BI Desktop 数据集和报表的整体性能。
检查每一列,并询问自己是否真的需要里面所含的数据。如果不打算在报表中使用这些数据,那么这些列对你的数据模型而言没有任何价值。因此,应该删除这些列。如果你的需求随着时间改变了,你之后可以随时添加这些列。
我们可以通过两种方式删除列。第一种方法是选择要删除的列,然后在“开始”选项卡上选择“删除列”。

或者,可以选择要保留的列,然后在“开始”选项卡上选择“删除列”>“删除其他列”。

(6)逆透视列
逆透视是 Power BI 一项有用的功能。此功能可用于任意数据源中的数据,但你通常会在从 Excel 导入数据时使用此功能。下图显示了包含销售数据的示例 Excel 文档。

尽管数据最初可能是有意义的,但难以通过这些数据创建从 2018 年到 2019 年合并的所有销售总额。你的目标是通过三列在 Power BI 中使用这些数据:Month、Year 和 SalesAmount。
将数据导入到 Power Query 中时,它将如下图所示:

接着,将第一列重命名为 Month。此列未被正确标记,因为在 Excel 中,该标头标记的是 2018 和 2019 列。突出显示 2018 和 2019 列,在 Power Query 中选择“转换”,然后选择“逆透视”。

可以将 Attribute 列重命名为 Year,将 Value 列重命名为 SalesAmount。
逆透视简化了稍后针对数据创建 DAX 度量值的过程。完成此过程后,即表示你现在创建了一种通过 Year 和 Month 列来切分数据的更简单的方式。
(7)列透视
如果要调整的数据是平面数据(换句话说,即它包含许多详细信息,但未按任何方式整理或分组),结构的缺少可以会使你难以识别数据中的模式。
此时,我们可以使用“透视列”功能将平面数据转换成一个表,其中包含列中每个唯一值的聚合值。你可能需要借此来使用数学函数对数据进行汇总(如 Count、Minimum、Maximum、Median、Average 或 Sum 等)。
在 SalesTarget 示例中,可以对列进行透视以获取每一产品类别中产品子类别的数量。
在“转换”选项卡上,选择“转换”>“透视列”。

在显示的“透视列”窗口中,从“值列”列表中选择一列,例如“Subcategory name”。展开高级选项,从“聚合值函数”列表中选择一个选项,例如“Count (All)”,然后选择“确定”。

下图说明了“透视列”功能如何改变数据结构的方式。

Power Query 编辑器会记录对数据进行调整所采取的全部步骤,步骤的列表会显示在“查询设置”窗格中。
如果进行了所需的全部更改,请选择“关闭并应用”按钮来关闭 Power Query 编辑器,将更改应用到你的数据模型。但是,在选择“关闭并应用”之前,可以在 Power Query 编辑器中采取进一步的步骤来清理和转换数据。
以上就是关于「用 Power Query 调整初始数据」的全部内容。感谢您的耐心阅读,更多 Power BI 学习资源,请持续关注优阅达大数据生态。
400 998 0226
Tableau
Tableau
Minitab

Alteryx











Neo4j











Talend


















IM
华为云
腾讯云
IT/安全