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

从python导入数据(where条件有问题),python,sql,database,import,where-clause,Python,Sql,Database,Import,Where Clause,我在Python中工作 我有一些代码,允许我导入一个工作正常的数据集。但是,在我的数据集中有3个不同的患者,我只想导入我感兴趣的患者(可以通过在SQL查询中添加WHERE语句)。 因此,以下代码起作用: def importecdata(): query2 = "SELECT TECDATA.[Vol_Recalage_US_VD], TECDATA.[Vol_Recalage_Us_VG], TECDATA.[SUBJID] FROM TECDATA INNER JOIN MEDD

我在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)
我检查了patient变量的值patient14。但它不起作用…我尝试将变量patient的值修改为“patient14”。它也不起作用。我有相同的错误: 无效的列名\xa0:“patient”。因此代码可以工作,问题在于patient变量的“where”条件


(对不起,我的英语是法语)

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

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)

您的第二个示例没有引号,而第一个没有引号,是吗?是的,因为第二个变量包含患者姓名,在第一个示例中,我将患者姓名直接放在where条件中。您好,谢谢您的回答,但它不起作用,因为我的数据中患者的姓名正好是:PA-014-FR-PON(而不是患者14我只是举个例子告诉它)我在尝试你的代码时出现了这个错误:未知列名'PA'未知列名'FR'未知列名'PON'@NabilKl抱歉,我忘了在患者周围添加单个qoutes。请检查更新的答案
{0}
现在是
{0}