如何在使用copy_from

时间:2019-02-26 13:42:47

标签: python python-3.x pandas

我的数据库中有一张表,里面有大量数据。 我创建的DataFrame与表的列相同,但列的顺序不同。

现在DataFrame.to_sql成功地将数据加载到表中,以优化性能 我尝试将DataFrame转换为csv,然后使用copy_from将此数据附加到表中。 现在,此操作失败,因为列的顺序与列的顺序不同 在数据库表中。

import io,sqlalchemy as sa
csv_dat=io.StringIO()
df.to_csv(csv_dat,index=False,sep='\t')
csv_dat.seek(0)

uri='postgresql://postgres:postgres@172.x.x.172:5432/dbname'
pg_engine=sa.create_engine(uri)
pg_raw=pg_engine.raw_connection()
pg_cursor=pg_raw.cursor()
pg_cursor.copy_from(csv_dat,postgres_table,sep='\t')

此步骤失败,因为列的顺序不同。 csv_dat在第一行中具有列名

在插入数据时是否可以将标题行用作列的顺序?
如果不可能,我们是否可以映射DataFrame中的列并将csv数据插入表中?

0 个答案:

没有答案