我的数据库中有一张表,里面有大量数据。
我创建的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数据插入表中?