Sie werden von den Problemen mit der Groß-/Kleinschreibung bei PostgreSQL gebissen. Wenn Sie den Tabellennamen in der Abfrage angeben, funktioniert es:
df = pd.read_sql_query('select * from "Stat_Table"',con=engine)
Aber ich persönlich würde raten, Tabellennamen (und Spaltennamen) immer in Kleinbuchstaben zu verwenden, auch wenn die Tabelle in die Datenbank geschrieben wird, um solche Probleme zu vermeiden.
Aus den PostgreSQL-Dokumenten (http:// www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS ):
Zur Erläuterung:Sie haben eine Tabelle mit dem Namen Stat_Table
geschrieben in die Datenbank (und sqlalchemy zitiert diesen Namen, sodass er in der Postgres-Datenbank als "Stat_Table" geschrieben wird). Bei der Abfrage 'select * from Stat_Table'
der Tabellenname ohne Anführungszeichen wird in Kleinbuchstaben umgewandelt stat_table
, und so erhalten Sie die Meldung, dass diese Tabelle nicht gefunden wird.
Siehe zB auch Sind PostgreSQL Spaltennamen case-sensitive?