拥有一个包含大约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
谢谢!
答案 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)