大熊猫。将列名称设置为参数

时间:2017-11-29 08:31:54

标签: python pandas

我正在使用pandas,我想将查询列设置为参数。我试试这个:

res_estacion_b = pd.read_sql("SELECT date, :column FROM table_1 WHERE date BETWEEN 
    TO_DATE(:date_ini, 'DD/MM/YYYY HH24:MI:SS') AND 
    TO_DATE(:date_end, 'DD/MM/YYYY HH24:MI:SS')",
    con=db, params={'date_ini': inicio, 'date_end': fin, 'column': condition.name})

The result is:

     date               :COLUMN
0  2009-01-01 00:00:00  PARK_DEF
1  2009-01-01 00:10:00  PARK_DEF
2  2009-01-01 00:20:00  PARK_DEF
3  2009-01-01 00:30:00  PARK_DEF
4  2009-01-01 00:40:00  PARK_DEF
5  2009-01-01 00:50:00  PARK_DEF

我没有获取列值,而是获取列名称。 是否有可能获得价值?

1 个答案:

答案 0 :(得分:0)

只需提前替换字符串中的列名:

str = "SELECT date, {column} FROM table_1 WHERE date BETWEEN 
    TO_DATE(:date_ini, 'DD/MM/YYYY HH24:MI:SS') AND 
    TO_DATE(:date_end, 'DD/MM/YYYY HH24:MI:SS')".format(column=condition.name)
res_estacion_b = pd.read_sql(str, con=db, params={'date_ini': inicio, 'date_end': fin})
相关问题