This exception is happening because the SQL decimal type will map to the C# decimal type, and the default Parse behavior for decimal doesn't allow scientific notation. I'm reluctant to change that ...
pd.read_sql converts columns of type sqlalchemy.Numeric to floats as the below selection appears to suggest. This seems counter intuitive since in the NUMERIC and DECIMAL types are interchangeable.