如何解决应用于长整数的熊猫 astype 返回截断的结果
想知道之前是否有人遇到过这个问题 我正在尝试将数据框中的浮点列转换为整数,但得到了奇怪的结果,这是我的代码:
proj_id['test2'] = proj_id['campaign_id'].astype('int64')
proj_id[proj_id['campaign_id']==23847591030830034][['campaign_id','test2']]
所以我的campaign_id是 23847591030830034 变成 23847591030830032
我试图抑制科学表达式,舍入,...但似乎转换从我的整数中截断了一个字节
感谢您的帮助
解决方法
这似乎是代表的问题。
当您建立索引时,您将 23847591030830034
转换为浮点数,然后将其与另一个更准确地表示为 23847591030830032.0
的浮点数进行比较,但差异如此之小以至于四舍五入为相同的浮点数:
>>> floated = float(23847591030830034)
>>> inted = 23847591030830032
>>> floated == float(inted)
True
因此,两个整数的 float representation 似乎相同,因此存在差异。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。