A partir do pandas 0.14 (lançado no final de maio de 2014), o postgresql é suportado. O
sql
módulo agora usa sqlalchemy
para suportar diferentes tipos de banco de dados. Você pode passar um mecanismo sqlalchemy para um banco de dados postgresql (consulte a documentação). Por exemplo.:from sqlalchemy import create_engine
engine = create_engine('postgresql://username:[email protected]:5432/mydatabase')
df.to_sql('table_name', engine)
Você está correto que em pandas até a versão 0.13.1 o postgresql não era suportado. Se você precisar usar uma versão mais antiga do pandas, aqui está uma versão corrigida de
pandas.io.sql
:https://gist.github.com/jorisvandenbossche/10841234.Eu escrevi isso há um tempo atrás, então não posso garantir totalmente que sempre funcione, mas a base deve estar lá). Se você colocar esse arquivo em seu diretório de trabalho e importá-lo, poderá fazer (onde
con
é uma conexão postgresql):import sql # the patched version (file is named sql.py)
sql.write_frame(df, 'table_name', con, flavor='postgresql')