Você está mordido pelos problemas de (in)sensibilidade a maiúsculas e minúsculas com o PostgreSQL. Se você citar o nome da tabela na consulta, funcionará:
df = pd.read_sql_query('select * from "Stat_Table"',con=engine)
Mas, pessoalmente, eu aconselharia sempre usar nomes de tabelas em letras minúsculas (e nomes de colunas), também ao gravar a tabela no banco de dados para evitar esses problemas.
Dos documentos do PostgreSQL (http:// www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS ):
Para explicar um pouco mais:você escreveu uma tabela com o nome
Stat_Table
para o banco de dados (e sqlalchemy citará este nome, então ele será escrito como "Stat_Table" no banco de dados postgres). Ao fazer a consulta 'select * from Stat_Table'
o nome da tabela sem aspas será convertido em letras minúsculas stat_table
, e você recebe a mensagem de que esta tabela não foi encontrada. Veja, por exemplo, também Os nomes das colunas do PostgreSQL diferenciam maiúsculas de minúsculas?