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 学习资源,请持续关注优阅达大数据生态。