【问题标题】:Pandas read_sql_query turning float number to intPandas read_sql_query 将浮点数转换为 int
【发布时间】:2021-10-08 13:05:33
【问题描述】:

我正在尝试将信息从 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 后,dataframe 如下所示:

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 限制了输出中的数字数量,而不是更改的数据

标签: python pandas dataframe read-sql


【解决方案1】:

这似乎只是您的 IDE 限制显示中有效数字的数量而不是数据类型更改的情况,您可以通过将有问题的列打印到控制台来检查这一点

print(query.Payed.values)

【讨论】:

    猜你喜欢
    • 2014-09-03
    • 2021-03-16
    • 2022-08-02
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    相关资源
    最近更新 更多