Python Panda.read_csv循环以获取导入错误?

Python Panda.read_csv循环以获取导入错误?,python,pandas,Python,Pandas,我在csv文件中有一个10000 x 250的数据集。当我使用命令时 data = pd.read_csv('pool.csv', delimiter=',',header=None) 当我在正确的路径上时,我实际上导入了值。 首先我得到数据帧。因为我想使用numpy包,所以我需要使用 data = data.values 这就是我变得古怪的时候。我在文件a中的位置[9999,0]处有-0.3839作为值。然而,在导入和计算之后,我注意到Python(或numpy)在导入时做了一些奇

我在csv文件中有一个10000 x 250的数据集。当我使用命令时

    data = pd.read_csv('pool.csv', delimiter=',',header=None)
当我在正确的路径上时,我实际上导入了值。 首先我得到数据帧。因为我想使用numpy包,所以我需要使用

data = data.values
这就是我变得古怪的时候。我在文件a中的位置[9999,0]处有-0.3839作为值。然而,在导入和计算之后,我注意到Python(或numpy)在导入时做了一些奇怪的事情

调用数据[9999,0]的值应该得到预期的-0.3839,但给出的值类似于-0.3899992

我已经用其他语言(如Matlab)导入了该文件,并且没有舍入这些值的问题。我还尝试使用pandas包中的.to_csv命令,而不是.values命令。然而,也有完全相同的问题

第一列的最后10个元素是

-0.2716
0.3711
0.0487
-1.518
0.5068
0.4456
-1.753
-0.4615
-0.5872
-0.3839

是否有任何导入例程没有这些舍入错误?

这是一个浮点错误。这是因为计算机是如何工作的。(如果你真的想知道它是如何工作的,你可以查一下。)不要为它烦恼,它很小

如果您真的想使用精确精度(因为您正在测试精确值),您可以查看Python的十进制模块,但是您的程序会慢很多(可能慢100倍)

您可以在此处阅读更多内容:

你应该知道所有的语言都有这个问题,只有一些语言能更好地隐藏它。(还请注意,在Python3中,浮点错误的“隐藏”已得到改进。)

因为这个问题不能用理想的解决方案来解决,所以你要自己解决它,并根据你的情况选择最合适的解决方案


我不知道“往返旅行”及其局限性,但它可能会帮助你。其他解决方案是使用
float_格式
到_csv
方法。()

这是一个浮点错误。这是因为计算机是如何工作的。(如果你真的想知道它是如何工作的,你可以查一下。)不要为它烦恼,它很小

如果您真的想使用精确精度(因为您正在测试精确值),您可以查看Python的十进制模块,但是您的程序会慢很多(可能慢100倍)

您可以在此处阅读更多内容:

你应该知道所有的语言都有这个问题,只有一些语言能更好地隐藏它。(还请注意,在Python3中,浮点错误的“隐藏”已得到改进。)

因为这个问题不能用理想的解决方案来解决,所以你要自己解决它,并根据你的情况选择最合适的解决方案


我不知道“往返旅行”及其局限性,但它可能会帮助你。其他解决方案是使用
float_格式
到_csv
方法。()

传递
浮点精度='往返'
应能解决此问题:

data = pd.read_csv('pool.csv',delimiter=',',header=None,float_precision='round_trip')

通过
float\u precision='round\u trip'
应该可以解决这个问题:

data = pd.read_csv('pool.csv',delimiter=',',header=None,float_precision='round_trip')

问题是,如果实际值为-0.383899892…,我会理解这一点,但情况正好相反。我在文件中有一个“nice”值-0.3839,并得到长浮点数。最大的问题是,正因为如此,我在一组10000个数据集上已经有大约1%的错误。如果我的数字有8位或更多的小数位,这个问题会变得更糟。此外,我不明白为什么它能如此容易地与其他语言(如Matlab)一起工作。@Killuah13我包含了更多信息问题是,如果实际值为-0.3899992…,我会理解这一点,但情况正好相反。我在文件中有一个“nice”值-0.3839,并得到长浮点数。最大的问题是,正因为如此,我在一组10000个数据集上已经有大约1%的错误。如果我的数字有8位或更多的小数位,这个问题会变得更糟。此外,我不明白为什么它能如此容易地与其他语言如Matlab一起工作。@Killuah13我提供了更多信息