Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么数据帧中的值在从int转换为float和back时会发生变化?_Python_Python 3.x_Pandas - Fatal编程技术网

Python 为什么数据帧中的值在从int转换为float和back时会发生变化?

Python 为什么数据帧中的值在从int转换为float和back时会发生变化?,python,python-3.x,pandas,Python,Python 3.x,Pandas,当使用“astype(float)”和“astype(int)”时,我的代码中的一系列SKU出现了非常奇怪的行为,我无法解释原因。这似乎只发生在我的本地机器上(我无法在在线Juypter笔记本中复制它) 以下是出现此问题的产品列表以及我正在使用它们创建的DF: products = {'SKU': [1111000120,1111000160,1111000182,1111000210,1111001300,2412601027, 2412601449,517210023

当使用“astype(float)”和“astype(int)”时,我的代码中的一系列SKU出现了非常奇怪的行为,我无法解释原因。这似乎只发生在我的本地机器上(我无法在在线Juypter笔记本中复制它)

以下是出现此问题的产品列表以及我正在使用它们创建的DF:

products = {'SKU': [1111000120,1111000160,1111000182,1111000210,1111001300,2412601027,
            2412601449,5172100236,5172100370,5172100713,7130104717]}


dfprod = pd.DataFrame.from_dict(products)
当我在本地机器上将此df转换为fload,然后再转换回int时,我得到以下结果:

我发现这个问题处理类似的问题,但是关于C++,所以我不太确定它是如何适用的。

这可能是整数溢出的情况。该值可能超过整数类型的最大大小。这是有道理的。但是为什么它只会发生在我的本地计算机上呢?将您的计算机的
maxsize
与该数据帧中的每个值进行比较:
import sys;dfprod.SKU.apply(lambda x:sys.maxsize
?可能是
maxsize
小于某些值?我刚刚检查了,不幸的是,这不是解决方案。maxsize是:9223372036854775807我无法在我的机器上重现此行为。您是否碰巧使用了旧的pandas版本?在任何情况下,
dfprod.astype(float).astype(np.uint64)
使用numpy整数类型在我的机器上运行良好。