Pandas read_sql_query 将浮点数转为整型
Pandas read_sql_query turning float number to int
我正在尝试将信息从 SQL 数据库提取到 Python。数据库的两列是数字,主要是浮点数格式。我的问题出现在超过 6 位数的数字上,read_sql_query 将它们读取为 int,因此小数点不会出现在数据框中。例如,如果 SQL 中的数据库如下所示:
Index
Voucher
Payed
1
225.21
0
2
695.3
0.35
3
6987512.12
635.21
4
654887.36
69995.36
将数据库获取到 Python 后,数据框如下所示:
Index
Voucher
Payed
1
225.21
0
2
695.3
0.35
3
6987512
635.21
4
654887
69995
超过 6 位数的数字丢失小数点。我的代码是:
query = pd.read_sql_query("SELECT * FROM Database1", conn)
我已经试过了:
query = pd.read_sql_query("SELECT Voucher, Payed FROM Database1", conn,
dtype={'Voucher': np.float64, 'Payed': np.float64}))
和
query = pd.read_sql_query("SELECT CAST(Voucher AS FLOAT) CAST(Payed AS FLOAT) FROM Database1", conn)
你能帮我解决这个问题吗?谢谢!
这似乎只是您的 IDE 限制显示中有效数字的数量而不是数据类型更改的情况,您可以通过将有问题的列打印到控制台来检查这一点
print(query.Payed.values)
我正在尝试将信息从 SQL 数据库提取到 Python。数据库的两列是数字,主要是浮点数格式。我的问题出现在超过 6 位数的数字上,read_sql_query 将它们读取为 int,因此小数点不会出现在数据框中。例如,如果 SQL 中的数据库如下所示:
Index | Voucher | Payed |
---|---|---|
1 | 225.21 | 0 |
2 | 695.3 | 0.35 |
3 | 6987512.12 | 635.21 |
4 | 654887.36 | 69995.36 |
将数据库获取到 Python 后,数据框如下所示:
Index | Voucher | Payed |
---|---|---|
1 | 225.21 | 0 |
2 | 695.3 | 0.35 |
3 | 6987512 | 635.21 |
4 | 654887 | 69995 |
超过 6 位数的数字丢失小数点。我的代码是:
query = pd.read_sql_query("SELECT * FROM Database1", conn)
我已经试过了:
query = pd.read_sql_query("SELECT Voucher, Payed FROM Database1", conn,
dtype={'Voucher': np.float64, 'Payed': np.float64}))
和
query = pd.read_sql_query("SELECT CAST(Voucher AS FLOAT) CAST(Payed AS FLOAT) FROM Database1", conn)
你能帮我解决这个问题吗?谢谢!
这似乎只是您的 IDE 限制显示中有效数字的数量而不是数据类型更改的情况,您可以通过将有问题的列打印到控制台来检查这一点
print(query.Payed.values)