Sto provando a scrivere un DataFrame panda su un database PostgreSQL, usando una tabella qualificata schema.Pandas che scrive dataframe su altro schema postgresql
Io uso il seguente codice:
import pandas.io.sql as psql
from sqlalchemy import create_engine
engine = create_engine(r'postgresql://some:[email protected]/db')
c = engine.connect()
conn = c.connection
df = psql.read_sql("SELECT * FROM xxx", con=conn)
df.to_sql('a_schema.test', engine)
conn.close()
Quello che succede è che i panda scrive in schema di "pubblico", in una tabella denominata 'a_schema.test', invece di scrivere nella tabella "test" in lo schema "a_schema".
Come posso chiedere ai panda di utilizzare uno schema diverso da quello pubblico?
Grazie
Non è necessario creare un oggetto di connessione con 'engine.connect()', è sufficiente passare il motore a 'read_sql'. Inoltre, la funzione è disponibile nei panda di livello superiore, quindi non è necessario importare 'psql' per quello. – joris
Sì, hai ragione. Risolto nella mia risposta. –