あなたはPostgreSQLの(非)感度の問題に悩まされています。クエリでテーブル名を引用すると、機能します:
df = pd.read_sql_query('select * from "Stat_Table"',con=engine)
ただし、個人的には、このような問題を防ぐために、データベースにテーブルを書き込むときも、常に小文字のテーブル名(および列名)を使用することをお勧めします。
PostgreSQLドキュメントから( http:// www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS ):
もう少し説明すると、Stat_Table
という名前のテーブルを作成しました。 データベースに(そしてsqlalchemyはこの名前を引用するので、postgresデータベースでは「Stat_Table」として書き込まれます)。クエリを実行する場合'select * from Stat_Table'
引用符で囲まれていないテーブル名は小文字のstat_table
に変換されます 、したがって、このテーブルが見つからないというメッセージが表示されます。
たとえば、 PostgreSQLの列名では大文字と小文字が区別されますか?