Python 自动PostgreSQL从CSV或DataFrame创建表和插入

Python 自动PostgreSQL从CSV或DataFrame创建表和插入,python,r,postgresql,pandas,psycopg2,Python,R,Postgresql,Pandas,Psycopg2,有人知道一些Python包或函数可以将PandasDataFrame(或简单的.csv)上传到PostgreSQL表,即使该表还不存在 (即,它根据python数据类型与PostgreSQL中最接近的等效数据类型之间的映射,运行具有适当列名和列类型的CREATE TABLE) 在R中,我使用了ROracle包,它提供了一个dbWriteTable函数,实现了我上面描述的功能。(参见文档)他们刚刚为此制作了一个包。不知道它工作得有多好 自pandas 0.14以来,sql函数还支持postgres

有人知道一些
Python
包或函数可以将Pandas
DataFrame
(或简单的
.csv
)上传到PostgreSQL表,即使该表还不存在

(即,它根据python数据类型与PostgreSQL中最接近的等效数据类型之间的映射,运行具有适当列名和列类型的CREATE TABLE)


R
中,我使用了
ROracle
包,它提供了一个
dbWriteTable
函数,实现了我上面描述的功能。(参见文档)

他们刚刚为此制作了一个包。不知道它工作得有多好

自pandas 0.14以来,sql函数还支持postgresql(通过SQLAlchemy,因此SQLAlchemy支持的所有数据库风格都可以使用)。因此,您可以简单地使用
to_sql
将pandas数据帧写入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)
见文件:


如果您有较旧版本的pandas(<0.14),请参阅以下问题:

R中的RPostgreSQL包也支持
dbWriteTable
。这是否回答了您的问题?为什么要导入psycopg2?