问题描述
想知道之前是否有人遇到过这个问题 我正在尝试将数据框中的浮点列转换为整数,但得到了奇怪的结果,这是我的代码:
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 似乎相同,因此存在差异。