从python导入数据(where条件有问题)



我在Python中工作我有代码可以导入一个运行良好的数据集。然而,在我的数据集中,我有3个不同的患者,我只想导入我感兴趣的患者(可以通过在SQL查询中添加WHERE语句(。因此以下代码有效:

def importecdata():
query2 = "SELECT TECDATA.[Vol_Recalage_US_VD], TECDATA.[Vol_Recalage_Us_VG], TECDATA.[SUBJID] FROM TECDATA  INNER JOIN MEDDATA ON TECDATA.DateTime = MEDDATA.DateTime WHERE TECDATA.[SUBJID]='patient14';"
dftec1 = pd.read_sql(query2, sql_conn, chunksize=100000)
dftec = pd.concat(dftec1)
return(dftec)

它返回患者14的数据但现在我想把病人的名字作为函数中的一个变量,所以我制作了以下代码:

def importecdata(patient):
query2 = "SELECT TECDATA.[Vol_Recalage_US_VD], TECDATA.[Vol_Recalage_Us_VG], TECDATA.[SUBJID] FROM TECDATA  INNER JOIN MEDDATA ON TECDATA.DateTime = MEDDATA.DateTime WHERE TECDATA.[SUBJID]=patient;"
dftec1 = pd.read_sql(query2, sql_conn, chunksize=100000)
dftec = pd.concat(dftec1)
return(dftec)

我检查了一下,病人变量得到了值patient14。但它不起作用。。。我试图将变量patient的值修改为"patient14",但它也不起作用。我有同样的错误:无效列名\xa0:"patient"。所以代码是有效的;其中";患者可变条件

(对不起我的英语,我是法国人(

您必须在以下代码的查询字符串检查中添加您的患者值:

def importecdata(patient):
query2 = "SELECT TECDATA.[Vol_Recalage_US_VD], TECDATA.[Vol_Recalage_Us_VG], TECDATA.[SUBJID] FROM TECDATA  INNER JOIN MEDDATA ON TECDATA.DateTime = MEDDATA.DateTime WHERE TECDATA.[SUBJID]='{0}';"
query2 = query2.format(patient)
dftec1 = pd.read_sql(query2, sql_conn, chunksize=100000)
dftec = pd.concat(dftec1)
return(dftec)

最新更新