Как добавить фрейм данных в таблицу Postgres с помощью psycopg2 copy_from - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь сохранить содержимое фрейма данных в таблице postgres. Я использую это -

from sqlalchemy import create_engine
import psycopg2 as pg
import io

address = 'postgresql://username:password@dbname.endpoint.rds.amazonaws.com:5432/dbname'
engine = create_engine(address)
connection = engine.raw_connection()
cursor = connection.cursor()

df_tbl.reset_index(inplace=True)

command = '''create table data.table_name(
index bigint,
pid varchar,
name varchar);'''
cursor.execute(command)
connection.commit()


output = io.StringIO()

df_tbl.to_csv(output, sep=',', header=False, index=False)

output.seek(0)
contents = output.getvalue()
cur = connection.cursor()

cur.copy_from(output, 'data.table_name', sep=',', null='')
connection.commit()
cur.close()

Это создает таблицу и сохраняет данные. Теперь я хочу добавить новые данные в таблицу, используя тот же метод. Как я могу это сделать? Я знаю, что есть функция if_exists = append в to_sql . Но я не хочу использовать to_sql .

Как добавить данные в postgres, используя copy_from ?

...