pandas astype 应用于长整数 returns 截断的结果

pandas astype applied to long integer returns a truncated result

想知道以前是否有人遇到过这个问题 我正在尝试将数据框中的浮点列转换为整数,结果很奇怪,这是我的代码:

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 似乎是相同的,因此存在差异。