如何 return 来自 python 的单个数据帧在 power bi 中的功能

How to return a single dataframe from python function in power bi

我正在尝试编写一个 python 函数,它 return 在 power bi 中只有一个数据帧。我的 python 脚本中有多个数据帧,但我只想在我的 power bi 环境中 returned 或打印一个数据帧。

这是我的试用版,但由于某种原因,它在尝试连接时 return 没有连接任何东西。

import pandas as pd
import numpy as np

def my_func():

    df=[["d","t","u","y","e"],["d",np.nan,np.nan,np.nan,"o"],["y","p","p","w","r"]]
    df1=[["d","t","u","y","e"],["d",np.nan,np.nan,np.nan,"o"],["y","p","p","w","r"]]
    df=pd.DataFrame(df)
    df1=pd.DataFrame(df1)

    return df

my_func()

我期待这个脚本 return df 但它没有 returning 任何东西。我有什么想念的吗?谁能帮帮我吗?我缺少什么以及为什么它不起作用?

但是,当我不使用函数时,它工作正常。

我只是想知道为什么当我使用函数和 return 时这不起作用。

如果您的目标是在 power bi 中导入它,请尝试将最后一行更改为

print(my_func()) 根据 microsoft instruction

答案:

改变这个:

my_func()

为此:

output = my_func()

假设您不是试图通过 PowerBI 桌面中的 Py Visual 执行此操作:

详情:

据我所知,要在 PowerBI 中使用 Python,您需要输出一个 pandas 数据帧,而 一个 pandas 数据框(除非你使用的是 Python visual object。你似乎没有使用)。如果您在此处指定了您 运行ning Python 的方式,那么给出一个简洁的答案会更容易。但我可以向您展示一个示例,该示例使用 Power Query 编辑器中的代码段来验证我的初始语句。有关所有必要的详细信息,请查看

启动 Power Query 编辑器后,select Get Data 并单击 OK 插入一个空的 table。然后去Transform和selectRun Python Script。在下面的对话框中,插入您的脚本和 运行 它以便您获得此设置:

然后单击 output 旁边的 Table 以获取您的数据框:

如果您单击 dataset 旁边的 Table,您将一无所获。那是因为您从一个空数据框开始。如果您的 Python 脚本是更精细的数据加载过程的一部分,那么 dataset 将包含您的 Python 脚本可以构建的数据。那么,答案又是什么呢?如果没有 output,您将无法访问您的数据框。如果没有 output = myFunc(),那么您不会让 PowerBI 知道您已经使用 Python 构建了数据框。然后您在 Power Query 编辑器中可用的是:

我希望这现在有意义。如果没有,请随时告诉我。

编辑

您不必在 output = my_func() 中命名数据框 output。你可以随意称呼它。在您的代码片段中构建的任何 pandas 数据框都将在此 table:

中可用