number_tuple = (1,4,6,3) sensex_quaterly_df = psql.sqldf("SELECT * FROM sensex_dfWHERE 'Num' IN ('number_tuple')")“這里 number_tuple 有我想從 sensex_df 數據庫檢索的值”
1 回答

小唯快跑啊
TA貢獻1863條經驗 獲得超2個贊
因為pandasql允許您在數據幀上運行 SQL,所以您可以使用 . 將元組的串聯值構建為逗號分隔的字符串string.join()。
number_tuple = (1,4,6,3)
in_values = ", ".join(str(i) for i in number_tuple)
sql = f"SELECT * FROM sensex_df WHERE Num IN ({in_values})"
sensex_quaterly_df = psql.sqldf(sql)
但是,如果您使用實際的關系數據庫作為后端,則不建議使用連接的 SQL 字符串。如果是這樣,請使用參數化,在開發準備好的 SQL 語句時使用占位符(如%sof?和后續步驟綁定值)。下面用 pandas 演示read_sql:
number_tuple = (1,4,6,3)
in_values = ", ".join('?' for i in number_tuple)
sql = f"SELECT * FROM sensex_df WHERE Num IN ({in_values})"
sensex_quaterly_df = pd.read_sql(sql, conn, params=number_tuple)
添加回答
舉報
0/150
提交
取消