Esistono esempi su come passare parametri con una query SQL in Pandas?Panda read_sql con parametri
In particolare, sto utilizzando un motore SQLAlchemy per connettersi a un database PostgreSQL. Finora ho trovato che le seguenti opere:
df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
'where "Timestamp" BETWEEN %s AND %s'),
db,params=[datetime(2014,6,24,16,0),datetime(2014,6,24,17,0)],
index_col=['Timestamp'])
La documentazione Panda dice che params possono anche essere passati come un dizionario, ma io non riesco a farlo funzionare dopo aver provato per esempio:
df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
'where "Timestamp" BETWEEN :dstart AND :dfinish'),
db,params={"dstart":datetime(2014,6,24,16,0),"dfinish":datetime(2014,6,24,17,0)},
index_col=['Timestamp'])
Qual è il modo consigliato di eseguire questi tipi di query da Panda?
Ciò è molto utile: sto usando psycopg2, quindi la sintassi '% (name) s funziona perfettamente. – tobycoleman
Probabilmente dovremmo menzionarne qualcosa nella docstring: https: //github.com/pydata/pandas/issues/7573 – joris
Questa soluzione non funziona più su Postgres: è necessario usare ': notation', e quindi essere sicuri per avvolgere la stringa SQL con 'sqlalchemy.text()' – hamx0r