将列名作为变量传递给python / pandas中函数中的select语句

时间:2015-07-01 06:48:58

标签: python python-2.7 pandas sqlite dataframe

假设我有一个功能:

def retrieve (c,y):
     df = pd.read_sql("select Year, ? from table where Year=? ",db, params=(c,y))
     return df

我希望能够按如下方式调用该函数:

retrieve("col_name",2001)

当我删除列名作为我可以传递的变量时,它可以正常工作。但我也需要能够传递列名。有没有办法让这项工作成功?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用Python格式化查询字符串,而不是使用预准备语句。

querysting = "select Year, {} from table where Year={}".format(c,y)
df = pd.read_sql(querystring,db)