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