从CSV或Pandas DataFrame自动PostgreSQL CREATE TABLE和INSERT

时间:2014-01-08 13:37:31

标签: python r postgresql pandas psycopg2

有没有人知道某些Python包或函数可以将Pandas DataFrame(或简称.csv)上传到PostgreSQL表,即使表格没有'还存在

(即它根据python数据类型和PostgreSQL中最接近的等价物之间的映射运行带有相应列名和列类型的CREATE TABLE)

R中,我使用ROracle包提供dbWriteTable函数,该函数执行上述操作。 (参见文档here

2 个答案:

答案 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不确定它的效果如何。