Jste kousnuti problémy s (ne)citlivostí PostgreSQL. Pokud v dotazu uvedete název tabulky, bude to fungovat:
df = pd.read_sql_query('select * from "Stat_Table"',con=engine)
Osobně bych však radil vždy používat názvy tabulek (a názvy sloupců) malými písmeny, a to i při zápisu tabulky do databáze, aby se takovým problémům předešlo.
Z dokumentů PostgreSQL (http:// www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS ):
Pro vysvětlení:napsali jste tabulku s názvem Stat_Table
do databáze (a sqlalchemy bude toto jméno citovat, takže bude zapsáno jako "Stat_Table" v databázi postgres). Při provádění dotazu 'select * from Stat_Table'
název tabulky bez uvozovek bude převeden na malá písmena stat_table
, a tak dostanete zprávu, že tato tabulka nebyla nalezena.
Viz např. také Rozlišují se v názvech sloupců PostgreSQL velká a malá písmena?