Подтвердить что ты не робот

Обновление существующей строки в базе данных из pandas df

У меня есть PostgreSQL db. Pandas имеет функцию 'to_sql', которая записывает записи данных в базу данных. Но я не нашел никакой документации о том, как обновить существующую строку базы данных, используя Pandas, когда im закончил с помощью dataframe.

В настоящее время я могу прочитать таблицу базы данных в фреймворке данных с помощью Pandas read_sql_table. Затем я работаю с данными по мере необходимости. Однако мне не удалось выяснить, как записать этот фреймворк в базу данных для обновления исходных строк.

Я не хочу перезаписывать всю таблицу. Мне просто нужно обновить строки, которые были изначально выбраны.

4b9b3361

Ответ 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()