使用Sqlalchemy和Pandas对多对多关系进行批量插入

时间:2018-03-29 00:44:24

标签: python pandas sqlalchemy

我有5个pandas DataFrame,它们代表现有PostgreSQL数据库中通过多对多关系链接的表。我的问题是如何将这些数据框中的数据插入数据库。

到目前为止,我已经使用automap()来获取sqlalchemy ORM对象,但这是循环遍历每个数据帧行并为数据行创建ORM对象的最佳方式。之后,我想我必须重新遍历每个对象并使用.add()来映射所有对象之间的关系。

这是最好的方法吗?似乎多余和低效。

1 个答案:

答案 0 :(得分:1)

我使用了与sqlalchemy有关的pandas中的以下内容:

df.to_sql('TABLENAME', engine, index=False, if_exists=append)

在创建引擎时,我使用了 fast_executemany = True 选项,它使速度大大提高。

以下是to_sql函数的网址:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_sql.html