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!
 
    