亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 pandasql 查詢中使用動態變量(元組)?

如何在 pandasql 查詢中使用動態變量(元組)?

翻過高山走不出你 2023-10-06 16:38:30
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)


查看完整回答
反對 回復 2023-10-06
  • 1 回答
  • 0 關注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號