在 Power Query 编辑器中使用 Python

你可以在 Power BI Desktop Power Query 编辑器中使用 Python,这是统计学家、数据科学家和数据分析师使用最广泛的一种编程语言 。 Power Query 编辑器中集成的 Python 可让你用 Python 来执行数据清理,并在数据集中执行高级数据构形和分析,包括丢失数据补全、预测和聚类分析,此处仅举几例。 Python 是一种功能强大的语言,可用于在 Power Query 编辑器中准备数据模型并创建报表。

先决条件

在开始之前,需要安装 Python 和 Pandas。

  • 安装 Python:若要在 Power BI Desktop 的 Power Query 编辑器中使用 Python,需要在本地计算机上安装 Python。 可以从很多位置免费下载并安装 Python,其中包括 Python 官方下载页面和 Anaconda

  • 安装 Pandas:若要将 Python 与 Power Query 编辑器配合使用,还需要安装 Pandas。 Pandas 用于在 Power BI 和 Python 环境之间移动数据。

在 Power Query 编辑器中使用 Python

若要演示如何在 Power Query 编辑器中使用 Python,请以基于 CSV 文件格式的股票市场数据集为例(可从此处下载)并按照示例进行操作。 此示例中的步骤如下:

  1. 首先,将数据加载到 Power BI Desktop中。 在本例中,请加载 EuStockMarkets_NA.csv 文件,并在 Power BI Desktop 的“主页”功能区中依次选择“获取数据”>“Text/CSV”。

    Screenshot of the Get Data ribbon in Power BI Desktop, showing the CSV selection.

  2. 选择该文件,并选择“打开”,然后该 CSV 将显示在“CSV 文件”对话框中。

    Screenshot of the CSV file dialog, showing the selected CSV.

  3. 加载数据后,你会在 Power BI Desktop 中的“字段”窗格中看到它。

    Screenshot of the Fields pane, showing the loaded data.

  4. 在 Power BI Desktop“主页”选项卡中选择“转换数据”,打开 Power Query 编辑器 。

    Screenshot of the Power Query Editor in Power BI Desktop, showing the Transform data selection.

  5. 在“转换”选项卡中,选择“运行 Python 脚本”,然后“运行 Python 脚本”编辑器随即显示,如下一步中所示。 第 15 和 20 行受数据丢失的影响。下图中无法看见的其他行也是如此。 以下步骤介绍 Python 如何为你补全这些行。

    Screenshot of the Transform tab, showing rows of data.

  6. 此示例中,请输入以下脚本代码:

    import pandas as pd
    completedData = dataset.fillna(method='backfill', inplace=False)
    dataset["completedValues"] =  completedData["SMI missing values"]
    

    注意

    需要在 Python 环境中安装 Pandas 库才能使之前的脚本代码正常运行。 若要安装 Pandas,请在 Python 安装过程中运行以下命令:pip install pandas

    当放入“运行 Python 脚本”对话框时,代码如以下示例所示:

    Screenshot of the Run Python Script dialog, showing the script code.

  7. 选择“确定”后,“Power Query 编辑器”将显示与数据隐私相关的警告。

    Screenshot of the Power Query Editor pane, showing the warning about data privacy.

  8. 为使 Python 脚本在 Power BI 服务中正常工作,所有的数据源都需要设置为“公用”。 有关隐私设置及其含义的详细信息,请参阅隐私级别

    Screenshot of the Privacy levels dialog, showing that Public is set.

    请注意“字段”窗格中的名为 completedValues 的新列。 注意,有一些行缺少数据元素,如第 15 和 18 行。 下一节中将介绍 Python 如何处理该问题。

只需要三行 Python 脚本,Power Query 编辑器就能用预测模型填充缺失的值。

从 Python 脚本数据创建视觉对象

现在,我们可创建视觉对象,以查看 Python 脚本代码如何使用 pandas 库补全缺少的值,如下图所示:

Screenshot of the visual, showing original data and completed missing values of the pandas library.

创建好该视觉对象,以及需要使用 Power BI Desktop 创建的任何其他视觉对象之后,可保存 Power BI Desktop 文件。 Power BI Desktop 文件以 .pbix 文件扩展名保存。 然后在 Power BI 服务中使用数据模型(及其内附的 Python 脚本)。

注意

想要查看完成了这些步骤的完整 .pbix 文件吗? 你很幸运。 可以在此处下载示例中使用的完整 Power BI Desktop 文件。

将 .pbix 文件上传到 Power BI 服务后,还需要几个步骤来启用数据刷新(在服务中),以及启用服务中待更新的视觉对象。 为了更新视觉对象,数据需要访问 Python。 其他步骤如下:

  • 为数据集启用计划的刷新。 若要为包含 Python 脚本数据集的工作簿启用计划刷新,请参阅配置计划刷新,其中也包含有关“个人网关”的信息。
  • 安装个人网关。 需要在文件所在的安装了 Python 的计算机上安装个人网关。 Power BI 服务必须访问该工作簿并重新呈现所有更新后的视觉对象。 有关详细信息,请参阅安装和配置个人网关

注意事项和限制

对于在 Power Query 编辑器中创建的 Python 脚本中包含的查询,存在一些限制:

  • 所有 Python 数据源设置都必须设置为“公用”,并且在 Power Query 编辑器所创建的查询中的所有其他步骤也必须设为“公用”。 若要获取数据源设置,请在 Power BI Desktop 中选择“文件”>“选项和设置”>“数据源设置”。

    Screenshot of the File menu in Power BI Desktop, showing the Data source settings selection.

    从“数据源设置”对话框中,选择数据源,然后选择“编辑权限...”并确保“隐私级别”设置为“公用”。

    Screenshot of the Data source settings dialog, showing the Privacy Level is set to Public.

  • 若要为 Python 视觉对象或数据集启用计划的刷新,你需要启用“计划的刷新”,并将“个人网关”安装在存储工作簿和 Python 安装的计算机上。 有关这两方面的详细信息,请参阅本文中的之前章节,其中提供了链接可了解每个方面的详细信息。

  • 当前不支持嵌套表(表中表)。

通过 Python 和自定义查询能够执行各种各样的操作,因此,你可以按照想要显示的方式来探索和整理数据。