【发布时间】:2021-04-16 10:00:24
【问题描述】:
我在 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。但它不起作用......我尝试将变量患者的值修改为“患者14”它也不起作用我有同样的错误: 无效的列名 \xa0: '患者'。所以代码有效,问题出在患者变量的“where”条件
(对不起我的英语我是法国人)
【问题讨论】:
-
你的第二个例子没有引号,而第一个例子有,对吗?
-
是的,因为第二个是一个包含名称患者的变量,在第一个示例中,我直接将名称患者放在 where 条件中
标签: python sql database import where-clause