Есть ли способ сделать обновление SQL - откуда из фреймворка без итерации через каждую строку? У меня есть база данных postgresql и для обновления таблицы в db из фрейма данных я бы использовал psycopg2 и сделал что-то вроде:
con = psycopg2.connect(database='mydb', user='abc', password='xyz')
cur = con.cursor()
for index, row in df.iterrows():
sql = 'update table set column = %s where column = %s'
cur.execute(sql, (row['whatver'], row['something']))
con.commit()
Но с другой стороны, если im либо читает таблицу из sql, либо записывает целую фреймворк данных в sql (без обновления-где), тогда я бы просто использовал pandas и sqlalchemy. Что-то вроде:
engine = create_engine('postgresql+psycopg2://user:[email protected]')
df.to_sql('table', engine, if_exists='append')
Хорошо, что у меня есть "однострочный", используя to_sql. Не похоже ли что-то подобное обновлению - от pandas до postgresql? Или это единственный способ сделать это, повторяя каждую строку, как я сделал выше. Не повторяется ли в каждой строке неэффективный способ сделать это?