簡體   English   中英

如何從power bi中的python函數返回單個數據幀

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

我正在嘗試編寫一個 python 函數,它在 power bi 中只返回一個數據幀。 我的 python 腳本中有多個數據幀,但我只想在我的 power bi 環境中返回或打印一個數據幀。

這是我的試用版,但由於某種原因,它在嘗試連接時沒有返回任何內容。

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但它沒有返回任何東西。 有什么我想念的嗎? 有人可以幫我嗎? 我錯過了什么,為什么它不起作用?

但是,當我不使用函數時,這很好用。

在此處輸入圖片說明 在此處輸入圖片說明

我只是想知道為什么當我使用函數並返回時這不起作用。

答案:

改變這個:

my_func()

對此:

output = my_func()

假設您沒有嘗試通過 PowerBI 桌面中的 Py Visual 執行此操作:

細節:

據我所知,要在 PowerBI 中使用 Python,您需要輸出一個 Pandas 數據幀,並且需要輸出一個 Pandas 數據幀(除非您使用的是Python visual object 。似乎您不是)。 如果您在此處指定了如何運行 Python,那么給出簡潔的答案會更容易。 但我可以向您展示一個示例,該示例使用您在 Power Query 編輯器中的代碼段驗證我的初始語句。 有關所有必要的詳細信息,請查看Power BI:如何在 Power Query 編輯器中對多個表使用 Python? .

啟動 Power Query 編輯器后,選擇“ Get Data並單擊“ OK以插入一個空表。 然后轉到Transform並選擇Run Python Script 在下面的對話框中,插入您的腳本並運行它,以便您獲得此設置:

在此處輸入圖片說明

然后單擊output旁邊的Table以獲取您的數據框:

在此處輸入圖片說明

如果單擊dataset旁邊的Table ,您將一無所獲。 那是因為您從一個空的數據框開始。 如果您的 Python 腳本是更復雜的數據加載過程的一部分,那么dataset將包含您的 Python 腳本可以構建的數據。 那么,答案又是什么呢? 沒有output您將無法訪問您的數據框。 如果沒有output = myFunc()那么你就不會讓 PowerBI 知道你已經使用 Python 構建了一個數據框。 然后你將在 Power Query 編輯器中可用的是:

在此處輸入圖片說明

我希望這現在有意義。 如果沒有,請不要猶豫,讓我知道。

編輯

您不必在output = my_func()命名數據幀output 你可以隨意稱呼它。 在您的代碼片段中構建的任何 Pandas 數據框都將在此表中可用:

在此處輸入圖片說明

如果您的目標是在 power bi 中導入它,請嘗試將最后一行更改為

按照微軟指令print(my_func())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM