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

Import data from python (probleme with where condition)

我在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)

它return病人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)

我 chek 和 patient 变量得到值 patient14。但它不起作用...我尝试将变量 patient 的值修改为 'patient14' 它也不起作用我有同样的错误: 无效的列名 \xa0:'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)