使用Python将Excel数据插入Postgres

时间:2018-05-17 13:40:26

标签: python postgresql pandas xlwings

拥有一个包含大约20.000行数据的工作表,将这些数据插入postgres数据库的最佳方法是什么?

我将在其中插入数据的表包含许多外键,这意味着我不能简单地使用此处所述的方法插入此表:Bulk Insert A Pandas DataFrame Using SQLAlchemy。虽然我有“鞋子”,“夹克”,“袋子”等价值观,但我需要那些以外国桌子的身份证明的形式。

我可以使用xlwings轻松地将这些数据转换为DataFrame,但是我仍然需要弄清楚如何轻松快速地处理外键转换。

E.g。表1:

Observable.just(...).delay(...)

E.g。表2:

product_id  country product
1           USA     Shoes
2           UK      Jacket
3           GER     Bag

E.g。表3(我要上传的那个):

user_id Name
1       John
2       Larry
3       Page

最后我在excel中的表格:

order_id    user    product
1           3       2
2           2       2
3           1       1

谢谢!

1 个答案:

答案 0 :(得分:0)

首先从数据库加载外键,然后使用数据框列进行映射。 举个例子:

engine = create_engine('conn string')
col_tables={'col1':'table1', 'col2':'table2' }
for col, table in col_tables.items()
    res = engine.execute("select name, id from {}".format{table})
    d = dict(res)
    df[col] = df[col].map(d)