一尘不染

如何将DataFrame写入postgres表?

python

DataFrame.to_sql
方法,但仅适用于mysql,sqlite和oracle数据库。我无法传递给此方法postgres连接或sqlalchemy引擎。


阅读 156

收藏
2021-01-20

共1个答案

一尘不染

从pandas
0.14(2014年5月发行)开始,支持postgresql。该sql模块现在用于sqlalchemy支持不同的数据库风格。您可以为PostgreSQL数据库传递sqlalchemy引擎(请参阅docs)。例如:

from sqlalchemy import create_engine
engine = create_engine('postgresql://scott:tiger@localhost:5432/mydatabase')
df.to_sql('table_name', engine)

您是正确的,在不支持0.13.1版本的熊猫中,不支持postgresql。如果您需要使用旧版本的熊猫,请使用以下修补版本pandas.io.sqlhttps
:
//gist.github.com/jorisvandenbossche/10841234。
我是在前一段时间写的,所以不能完全保证它始终有效,但是基础应该在那里)。如果您将该文件放在工作目录中并导入,那么您应该能够做到(conPostgreSQL连接在哪里):

import sql  # the patched version (file is named sql.py)
sql.write_frame(df, 'table_name', con, flavor='postgresql')
2021-01-20