Оставьте таблицу и напишите новое из Pandas в Postgres - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть некоторые проблемы с записью фрейма данных в таблицу postgres.

Что мне нужно сделать, это следующее: мне нужно сохранить pandas df как таблицу Postgres и завтра, когда будет создан новый pandas df (может иметь больше илименьше столбцов, чем в df предыдущего дня) Мне нужно удалить таблицу Postgres, сохраненную вчера, и записать сегодняшнюю таблицу в Postgres.Из-за непоследовательного количества столбцов я не могу написать DDL для таблицы.

Я попробовал следующее:

import pandas as pd
import psycopg2
import sqlalchemy
from sqlalchemy import *


conn = psycopg2.connect("host=localhost dbname=postgres user=postgres password=passforpostgre")
cur = conn.cursor()
engine = sqlalchemy.create_engine('postgresql://passforpostgre@localhost')

df = pd.DataFrame([['user1','adress1'], ['user2','adress2'], ['user3','adress3']], columns=["name", "address"])

df.to_sql('test_table', con=engine, if_exists='append')
sqlalchemy.delete('df3')
# cur.execute('DROP TABLE "%s";' % 'test_table')

И затем я отбрасываю один столбец (как, возможно, у меня будет другой день)

df2.drop('address', 1)
d2.to_sql('test_table', con=engine, if_exists='append')

Но это не такНе имеет значения, если я использую delete или DROP TABLE, таблица не удаляется из схемы.Но я не могу открыть его, он просто долго запрашивает ...

Может кто-нибудь предложить мне наиболее подходящий способ сделать это?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...