如何 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:
中可用
我正在尝试编写一个 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()
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: