Обновление существующей строки в базе данных из pandas df
У меня есть PostgreSQL db. Pandas имеет функцию 'to_sql', которая записывает записи данных в базу данных. Но я не нашел никакой документации о том, как обновить существующую строку базы данных, используя Pandas, когда im закончил с помощью dataframe.
В настоящее время я могу прочитать таблицу базы данных в фреймворке данных с помощью Pandas read_sql_table. Затем я работаю с данными по мере необходимости. Однако мне не удалось выяснить, как записать этот фреймворк в базу данных для обновления исходных строк.
Я не хочу перезаписывать всю таблицу. Мне просто нужно обновить строки, которые были изначально выбраны.
Ответы
Ответ 1
Один из способов - использовать sqlalchemy "класс таблицы" и session.merge(строка), session.commit():
Вот пример:
for row in range(0, len(df)):
row_data = table_class(column_1=df.ix[i]['column_name'],
column_2=df.ix[i]['column_name'],
...
)
session.merge(row_data)
session.commit()