Untitled
unknown
plain_text
2 years ago
951 B
6
Indexable
# Assuming you have source_df and target_df loaded
# Iterate over the primary key values in source_df
for pk_value in source_df[pk].unique():
source_subset = source_df[source_df[pk] == pk_value]
target_subset = target_df[target_df[pk] == pk_value]
if pk_value not in target_subset[pk].values:
# Insert the entire row from source_df, including the primary key
insert_data = source_subset.copy()
insert_data.to_sql(table_name, connection_ext, if_exists='append', index=False)
else:
# Check for updates and generate and execute UPDATE query if needed
mask = (source_subset != target_subset).any(axis=1)
if mask.any():
updates = source_subset.loc[mask].copy()
for column_name, source_val in updates.items():
target_df.loc[target_df[pk] == pk_value, column_name] = source_val
# Commit changes to the database (if necessary)
connection_ext.commit()
Editor is loading...