我需要用Python Notebook中dataframe中存储的值更新IBM DB2云中的列。我可以从Python Notebook连接到DB2。现在我需要用dataframe中存储的值更新DB2云中表的一列。下面是我的代码:问题是我有100个记录在df相同的必须更新的表,但与此代码10000个记录在表中更新,这意味着100*100.寻找支持
tuple_of_tuples = tuple([tuple(x) for x in df.values])
load_db2_sql = "UPDATE schema.tablename SET Columnname = ?"
stmt = ibm_db.prepare(conn, load_db2_sql)
ibm_db.execute_many(stmt, tuple_of_tuples)
1条答案
按热度按时间8ftvxx2r1#
在几次失败的尝试之后,我想出了一种不同的思维方式,解决了你所面临的问题。
简单的回答:使用pandas
read_sql()
方法将您的表读入 Dataframe ,并使用命令to_sql()
将接收到的表列值替换为新值和更新值。范例:
假设下面是SQL表,名为
dummy_test
,模式名为TEST_SCHEMA
第一个
1.将此表读入panda Dataframe
第一个
1.现在,假设您要使用的值的 Dataframe 名为
df_with_values_to_update
,列名为A
,其中包含您要更新的以下值1.将
db_table
列'A'值替换为df_with_values_to_update
列'A'值1.使用
to_sql()
方法写回db2您可以再次查询步骤2中的db2,以确认这些值已经被替换。