【问题标题】:Power BI: Multiple tables as output of Python in Power QueryPower BI:多个表作为 Power Query 中 Python 的输出
【发布时间】:2019-07-25 07:18:01
【问题描述】:

我正在 Power BI 的 Power Query 编辑器中运行 Python 脚本来转换和处理我的数据。在这些计算之后,我想将数据集和另一个表返回到 Power Query 编辑器。我是否正确,第二个表需要是 Pandas 数据框?

仅当将第二个表从 numpy.ndarray 转换为 pandas.DataFrame 时,Power BI 才会将其识别为表格输出(result after script)。这是预期的行为吗?除了 Pandas Dataframe 之外的其他 Python 对象是否可以传递给 Power BI?

【问题讨论】:

    标签: python powerbi powerquery powerbi-desktop


    【解决方案1】:

    第二个表需要是 Pandas 数据框,我是否正确?

    是的

    这是预期的行为吗?

    是的,但为什么呢?

    您可以使用 Python 构造很多变量类型,而要求 Power BI 识别所有这些变量类型会很多。而不是让 Power BI 识别 一些 变量类型,似乎为了简单起见,开发人员决定在DataFrames 划清界限。就个人而言,我认为这是一个明智的决定。这样,如果出现任何问题,您就会知道这不是数据类型问题。


    一些细节:

    转到 Power Query 编辑器并使用 Enter Data > OK 插入一个空表。然后使用Transform > Run Python Script插入下面的脚本:

    # 'dataset' holds the input data for this script
    import numpy as np
    import pandas as pd
    var1 = np.random.randint(5, size=(2, 4))
    var2 = pd.DataFrame(np.random.randint(5, size=(2, 4)))
    var3 = 3
    var4 = pd.DataFrame([type(var3)])
    var5 = pd.Series([type(var3)])
    

    这个sn-p构造了以下类型的5个变量:

    print(type(var1))
    <class 'numpy.ndarray'>
    
    print(type(var2))
    <class 'pandas.core.frame.DataFrame'>
    
    print(type(var3))
    <class 'int'>
    
    print(type(var4))
    <class 'pandas.core.frame.DataFrame'>
    
    print(type(var5))
    <class 'pandas.core.series.Series'>
    

    具体来说,我没有在 PowerBI 中运行 print() 命令,而是在 Spyder 中运行。 现在,如果您单击OK 并在The Power Query Editor 中执行第一个sn-p,您将看到一个表格,显示在Applied Steps 下您可以使用哪个变量:

    dataset是在插入Python sn-p时默认构造的,而var2var4是在代码中构造的。都是数据框。即使是pandas Seriesvar5 也无法进行进一步编辑。

    我希望这会有所帮助。如果没有,请不要犹豫,让我知道!

    编辑:

    关于:

    在这些计算之后,我想返回数据集和另一个 表添加到 Power Query 编辑器。

    您可以加载任何表格并使用 Python 对其进行编辑。如果您想保留表格的一个版本,并在另一个表格上进行进一步编辑,您应该查看Edit python script used as Data entry in Power BI

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-10
      • 1970-01-01
      • 2019-01-27
      相关资源
      最近更新 更多