gpt4 book ai didi

python - Pandas 的 `read_sql` 在从具有带小数点的数字列的 Oracle 表中读取时创建整数列

转载 作者:行者123 更新时间:2023-12-05 06:16:35 25 4
gpt4 key购买 nike

我有一个 Oracle 表,其中的列类型为 VARCHAR2(即字符串)和类型为 NUMBER(即带有小数部分的数值)。并且数字列确实包含带小数点的值,而不是整数值。

但是,当我通过 pandas.read_sql 将此表读入 Pandas 数据帧时,我收到数据帧中的数字列作为 int64。我怎样才能避免这种情况并接收具有完整十进制值的 float 列?

我正在使用以下版本

python           : 3.7.4.final.0
pandas : 1.0.3
Oracle : 18c Enterprise Edition / Version 18.9.0.0.0

最佳答案

我遇到过同样的事情。我不确定这是否是原因,但我认为没有任何大小限制的 NUMBER 类型对于 pandas 来说太大了,它会自动截断为 int64 或者类型不正确由 pandas 选择 - 默认 NUMBER 可能被视为整数。您可以将列的类型限制为例如NUMBER(5,4) 并且 pandas 应该将其正确识别为 float 。

我还发现,与 pd.read_sql_table 相比,使用 pd.read_sql 给我正确的类型。

关于python - Pandas 的 `read_sql` 在从具有带小数点的数字列的 Oracle 表中读取时创建整数列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62057464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com