I'm trying to extract info from an SQL database to Python. Two columns of the database are numbers, primarily in float format. My problem arises with numbers with more than 6 digits, read_sql_query reads them as int so the decimals do not appear in the dataframe. For example, if the database in SQL looks like this:
Index | Voucher | Payed |
---|---|---|
1 | 225.21 | 0 |
2 | 695.3 | 0.35 |
3 | 6987512.12 | 635.21 |
4 | 654887.36 | 69995.36 |
After getting the database to Python, the dataframe looks like this:
Index | Voucher | Payed |
---|---|---|
1 | 225.21 | 0 |
2 | 695.3 | 0.35 |
3 | 6987512 | 635.21 |
4 | 654887 | 69995 |
Where the numbers with more than 6 or so digits lose their decimals. My code is:
query = pd.read_sql_query("SELECT * FROM Database1", conn)
I've already tried:
query = pd.read_sql_query("SELECT Voucher, Payed FROM Database1", conn,
dtype={'Voucher': np.float64, 'Payed': np.float64}))
and
query = pd.read_sql_query("SELECT CAST(Voucher AS FLOAT) CAST(Payed AS FLOAT) FROM Database1", conn)
Could you help me with this problem. Thanks!