簡體   English   中英

在流中使用 python sql function 時無法檢索字段 [{0}] TabPy 錯誤的結果

[英]Unable to retrieve results for field [{0}] TabPy error while using a python sql function in the flow

我正在嘗試在定義的 function 中運行 SQL 查詢。 我想要一個 pandas 數據幀作為 output 但我得到了一個列表,盡管數據似乎正確。 這是我的代碼:

    import pandas as pd
    from pandasql import sqldf
    import pandasql as psql

    cars = {'Brand': ['Honda Civic','Toyota Corolla','Ford Focus','Audi A4'],
                'Price': [22000,25000,27000,35000]}
    df = pd.DataFrame(cars)
    
    
    def test_query(df):
        df = pd.DataFrame(df)
        q = """select * from df"""
    
        df2 = psql.sqldf(q, locals())
        return df2

   test_query(df)

這將返回我實際需要的精細 pandas 數據幀。

現在問題仍然存在,當我在 Tableau Prep Builder 中對我的數據運行此 function 時,我得到的錯誤是

Unable to retrieve results for field [{0}]

我查找了此錯誤,發現“您需要使用 python 命令返回某些內容,其中某些內容是包含適當返回類型的列表。否則,這些值可能存在於 python 但 Tableau 看不到它們”

因此我使用了

 ReturnValues = []
 ReturnValues.append(df2)

仍然,我收到與Unable to retrieve results for field [{0}]相同的錯誤

這里可能是什么原因。

它正在返回數據幀列表,所以只需選擇列表的第一個元素,就完成了。

print(test_query(df)[0])

您的代碼有 3 個問題。

  1. 您在 test_query function 本身的定義的test_query中調用test_query function。

  2. 到 function 您正在傳遞 dataframe object 本身。 所以你不需要再從它創建一個新的 dataframe object 。

  3. test_query function 中,您正在創建列表數據類型的ReturnValues變量,然后將查詢結果附加到它。 因此,您可以直接返回df2

暫無
暫無

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

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