使用列表将数据从SQL Server导入pandas数据帧,以筛选所需的值



我正试图使用从以前的panda数据帧生成的值列表,将某些数据从SQL服务器导入到新的pandas数据帧中。在我最初的尝试之后,我所能得到的最好的输出就是一个空的数据帧。非常感谢您的帮助!我的代码如下:

test_list = previous_df["StaffName"].tolist()
cnxn_str = ("Driver={XXXXXXXX};"
"Server=XXXXXXXXXXXX;"
"Database=XXXXXXXXX;"
"UID=XXXXXXXXXX;"
"PWD=XXXXXXXXXX;")
cnxn = pyodbc.connect(XXXXX)
new_df = pd.read_sql("SELECT * 
FROM XXXXXXXXXXXXXX
WHERE (Variable_1 in ('X1','X2','X3', 'X4') AND 
Varible_2= 'XXXXXXX' AND
Staff_Name_in_new_df_variable in ('test_list'))",
cnxn)

使用字符串格式注入由人员名称列表组成的sql_string

previous_df=pd.DataFrame({'StaffName':['Bob','Jim','Don']})
test_list = previous_df["StaffName"].tolist()
sql_string = "("
for i in test_list:
sql_string = sql_string + "'" + i + "',"
sql_string = sql_string[:-1] + ")"
sql="select * from table where field in{test_list}".format(test_list=sql_string)
print(sql)

输出

select * from table where field in('Bob','Jim','Don')

最新更新