有没有人知道某些Python
包或函数可以将Pandas DataFrame
(或简称.csv
)上传到PostgreSQL表,即使表格没有'还存在?
(即它根据python数据类型和PostgreSQL中最接近的等价物之间的映射运行带有相应列名和列类型的CREATE TABLE)
在R
中,我使用ROracle
包提供dbWriteTable
函数,该函数执行上述操作。 (参见文档here)
答案 0 :(得分:5)
由于pandas 0.14,sql函数也支持postgresql(通过SQLAlchemy,因此SQLAlchemy支持的所有数据库风格都有效)。因此,您只需使用to_sql
将pandas DataFrame写入PostgreSQL数据库:
import pandas as pd
from sqlalchemy import create_engine
import psycopg2
engine = create_engine('postgresql://scott:tiger@localhost:5432/mydatabase')
df.to_sql("table_name", engine)
请参阅文档:http://pandas.pydata.org/pandas-docs/stable/io.html#sql-queries
如果您有旧版本的pandas(< 0.14),请参阅此问题:How to write DataFrame to postgres table?
答案 1 :(得分:0)
他们刚刚为此制作了一个包裹。 https://gist.github.com/catawbasam/3164289不确定它的效果如何。