[英]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 個問題。
您在 test_query function 本身的定義的test_query
中調用test_query
function。
到 function 您正在傳遞 dataframe object 本身。 所以你不需要再從它創建一個新的 dataframe object 。
在test_query
function 中,您正在創建列表數據類型的ReturnValues
變量,然后將查詢結果附加到它。 因此,您可以直接返回df2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.