1 回答

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
因?yàn)閜andasql允許您在數(shù)據(jù)幀上運(yùn)行 SQL,所以您可以使用 . 將元組的串聯(lián)值構(gòu)建為逗號(hào)分隔的字符串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)
但是,如果您使用實(shí)際的關(guān)系數(shù)據(jù)庫(kù)作為后端,則不建議使用連接的 SQL 字符串。如果是這樣,請(qǐng)使用參數(shù)化,在開(kāi)發(fā)準(zhǔn)備好的 SQL 語(yǔ)句時(shí)使用占位符(如%sof?和后續(xù)步驟綁定值)。下面用 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)
添加回答
舉報(bào)