A partire da pandas 0.14 (rilasciato a fine maggio 2014), postgresql è supportato. Il sql
il modulo ora usa sqlalchemy
per supportare diverse versioni di database. Puoi passare un motore sqlalchemy per un database postgresql (vedi documenti). Es.:
from sqlalchemy import create_engine
engine = create_engine('postgresql://username:[email protected]:5432/mydatabase')
df.to_sql('table_name', engine)
Hai ragione sul fatto che nei panda fino alla versione 0.13.1 postgresql non era supportato. Se devi usare una versione precedente di panda, ecco una versione patchata di pandas.io.sql
:https://gist.github.com/jorisvandenbossche/10841234.
L'ho scritto tempo fa, quindi non posso garantire pienamente che funzioni sempre, ma la base dovrebbe essere lì). Se metti quel file nella tua directory di lavoro e lo importi, dovresti essere in grado di farlo (dove con
è una connessione postgresql):
import sql # the patched version (file is named sql.py)
sql.write_frame(df, 'table_name', con, flavor='postgresql')