Du är biten av fall (o)känslighetsproblem med PostgreSQL. Om du citerar tabellnamnet i frågan kommer det att fungera:
df = pd.read_sql_query('select * from "Stat_Table"',con=engine)
Men personligen skulle jag råda dig att alltid använda gemener tabellnamn (och kolumnnamn), även när du skriver tabellen till databasen för att förhindra sådana problem.
Från PostgreSQL-dokumenten (http:// www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS ):
För att förklara lite mer:du har skrivit en tabell med namnet Stat_Table
till databasen (och sqlalchemy kommer att citera detta namn, så det kommer att skrivas som "Stat_Table" i postgres-databasen). När du gör frågan 'select * from Stat_Table'
tabellnamnet utan citattecken kommer att konverteras till små bokstäver stat_table
, och så får du meddelandet att den här tabellen inte hittas.
Se t.ex. även Är PostgreSQL-kolumnnamn skiftlägeskänsliga?