PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come scrivere DataFrame nella tabella postgres?

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')