首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一种方法可以使用Int64而不是float在pandas >= 1.0.0数据帧中加载sql查询?

有没有一种方法可以使用Int64而不是float在pandas >= 1.0.0数据帧中加载sql查询?
EN

Stack Overflow用户
提问于 2020-03-18 07:29:59
回答 2查看 207关注 0票数 2

当使用pandas将查询的输出加载到DataFrame中时,标准行为是将包含NULL的整型字段转换为浮点型,以便NULL变为NaN。

从pandas 1.0.0开始,它们包含了一个名为pandas.NA的新类型,用于处理具有NULL的整型列。但是,当使用pandas.read_sql()时,当出现NULL时,整型列仍然转换为浮点型,而不是整型。除此之外,read_sql()方法不像read_csv()那样支持使用dtype参数来强制字段。

有没有一种方法可以将查询中的整型列直接加载到Int64数据类型中,而不是先将其强制为浮点型,然后再手动将其转换为Int64?

EN

回答 2

Stack Overflow用户

发布于 2020-03-18 07:53:05

您是否尝试过从table_name中使用select isnull(col_name,0)。这会将所有空值转换为0。

当某些值为n/a时,整数自动转换为浮点值,就像布尔值转换为对象一样。

票数 1
EN

Stack Overflow用户

发布于 2020-03-18 10:48:39

在当前版本中,似乎没有直接的方法可以做到这一点。无法将列强制转换为此数据类型,并且pandas不会使用此数据类型进行推断。

在这个帖子中讨论了一个类似的问题:Convert Pandas column containing NaNs to dtype int

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60731612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档